{"version":3,"sources":["components/shared/loading.js","utils/common/toXml.js","api/endpoints/index.js","api/types/index.js","api/actions/common/DataUserAction.js","api/endpoints/ValidateError.js","api/actions/common/LoginAction.js","utils/index.js","utils/common/alert.js","pages/layout/Topbar.js","api/actions/common/ImageUserAction.js","api/actions/common/UploadImageResponse.js","hooks/useScript.js","pages/layout/Title.js","pages/layout/Footer.js","pages/employee/Sibalance.js","api/actions/common/UrlEncuestaAction.js","api/actions/common/ValidateEncuestaAction.js","api/actions/empleado/SiBalanceAction.js","api/actions/empleado/NominaAction.js","api/actions/jefe/EmployeeVactionsAction.js","api/actions/empleado/VacationsExpirationAction.js","api/actions/empleado/NotificaciónCorreoVencAction.js","pages/layout/QRCode.js","api/actions/QrAction.js","pages/layout/EmployeeLeftsidebar.js","components/shared/Card.js","api/actions/systemAdmin/WelcomeMessageAction.js","api/actions/systemAdmin/VarShowOptionsAction.js","api/actions/empleado/VacationsAction.js","api/actions/empleado/MessagesAction.js","pages/employee/Home.js","api/actions/common/IncidentAlert.js","api/actions/systemAdmin/NextInfoUserAction.js","pages/employee/AdditionalFields.js","api/actions/systemAdmin/SaveInfoExtraAction.js","api/actions/empleado/DetalleNominaAction.js","pages/employee/Payroll.js","api/actions/empleado/UrlPdfAction.js","api/actions/empleado/UrlXmlAction.js","api/actions/common/GetValoresConfigAction.js","components/payroll/Table.js","pages/employee/PayrollDetail.js","api/actions/empleado/ConsultaVarFirmaAction.js","api/actions/empleado/ConsultaFirmaAction.js","api/actions/empleado/ActualizaFirmaAction.js","pages/employee/Imss.js","api/actions/empleado/MovimientosImssAction.js","pages/employee/ImssDetail.js","api/actions/empleado/DetalleImssAction.js","pages/employee/Infonavit.js","api/actions/empleado/MovimientosInfonavitAction.js","pages/employee/InfonavitDetail.js","api/actions/empleado/DetalleInfonavitAction.js","pages/employee/Messages.js","pages/employee/MessagesDetail.js","api/actions/empleado/MessagesDetailAction.js","api/actions/empleado/MyMessagesRhAction.js","pages/employee/Requests.js","pages/employee/RequestCreate.js","api/actions/empleado/MessageaRHAction.js","pages/employee/RequestsDetail.js","api/actions/systemAdmin/CancelVacationsEulenAction.js","api/actions/jefe/AuthorizeCancelVacationsAction.js","pages/employee/Vacations.js","api/actions/reportes/GeneraRptPDFCtrlVacacionesAction.js","api/actions/systemAdmin/GetDiasBloqueadosAction.js","api/actions/empleado/SkipWeekendAction.js","api/actions/empleado/CatIncidentsAction.js","api/actions/empleado/ValidaFechasAction.js","api/actions/common/ResetAllStoreAction.js","api/actions/common/ValidateErrorsAction.js","components/dateSelectors/DatePickerSelector.js","components/dateSelectors/DatePickerMultiSelector.js","components/incident/DatePickerAvaibleSelector.js","components/incident/DatePickerAvaibleMultiSelector.js","pages/employee/VacationsRequest.js","api/actions/empleado/InsertVacationsAction.js","api/actions/systemAdmin/ControlVacationsAction.js","pages/employee/VacationsControl.js","api/actions/reportes/GeneraReporteCtrlVacacionesAction.js","api/actions/empleado/ControlVacacionesEmpleadoAction.js","pages/employee/VacationsControlV2.js","pages/employee/Complaints.js","api/actions/empleado/QuejaMessageAction.js","api/actions/perdiem/EmpleadosAlMandoAction.js","api/actions/perdiem/AuthorizersAction.js","api/actions/perdiem/SendEmailsAction.js","pages/employee/chief/ReportControl.js","api/actions/perdiem/EmpleadosPerdiemAction.js","api/actions/perdiem/GetPerdiemAction.js","api/actions/perdiem/GetPreviewAction.js","api/actions/perdiem/AuthorizeRejectAction.js","api/actions/perdiem/EditPerdiemAction.js","pages/layout/TitleReport.js","pages/employee/chief/ReportServiceEmpleado.js","api/actions/perdiem/RejectChiefAction.js","api/actions/perdiem/AuthorizeChiefAction.js","api/actions/perdiem/GetPreviewCanceledAction.js","api/actions/perdiem/GetPreviewAuthorizedAction.js","api/actions/perdiem/EmployeeMovNomAction.js","components/row/Row.js","pages/employee/AfilIndividualizado.js","api/actions/empleado/AfilIndividualizadoAction.js","api/actions/perdiem/ConceptsActions.js","pages/employee/ReportService.js","api/actions/perdiem/DeletePerdiemAction.js","api/actions/perdiem/GeneratePerdiemAction.js","api/actions/perdiem/SendDataChiefAction.js","api/actions/perdiem/CreatePerdiemAction.js","api/actions/perdiem/SignPerdiemAction.js","api/actions/perdiem/EmpleadoJornadaAction.js","api/actions/perdiem/IsPerdiemAction.js","pages/employee/DetailReport.js","api/actions/perdiem/ServiceCodeAction.js","api/actions/empleado/IncidenciasKronesAction.js","api/actions/empleado/VacationsActionV2.js","pages/employee/Incidents.js","api/actions/systemAdmin/IncidenciasConfigAction.js","api/actions/systemAdmin/IncidenciasRazonesAction.js","api/actions/empleado/InsertIncidentAction.js","components/incident/DatePickerSelector.js","components/incident/DatePickerMultiSelector.js","pages/employee/IncidentsV2.js","pages/employee/IncidentRequest.js","components/incident/DatePickerIncident.js","api/actions/empleado/GetincidenciasAspenAction.js","api/actions/systemAdmin/ConsultaArchivosAction.js","pages/employee/DownloadFiles.js","api/actions/empleado/Log_RegistraDescargaArchivo.js","pages/layout/OperatorLeftsidebar.js","pages/common/CajaAhorro.js","api/actions/empleado/DeletePersonalFilesAction.js","pages/employee/UploadFiles2.js","api/actions/empleado/DocumentTypeAction.js","api/actions/empleado/ConsultaArchivosPersonalesPorTrabajador.js","api/actions/empleado/GuardaArchivoPersonalAction.js","api/actions/common/ChangeUserTypeAction.js","api/actions/common/RecoveryPasswordAction.js","api/actions/securityPolicy/CallApiIdentity.js","pages/policies/terms.js","api/actions/common/TermCondAction.js","pages/policies/privacy.js","api/actions/common/PrivacyNoticeAction.js","utils/common/expiredSession.js","pages/login/Login.js","api/actions/systemAdmin/BlockUserAction.js","api/actions/systemAdmin/CompaniesListAction.js","api/actions/common/RecoverPwdByEmailAction.js","pages/layout/SecretQuestionLeftsidebar.js","utils/CommonFunctions.js","pages/login/RecoverPassword.js","api/actions/common/UpdatePasswordAction.js","pages/errors/Error404.js","pages/employee/ComplaintHistory.js","pages/employee/ComplaintHistoryDetail.js","api/actions/eulen/AdminMenuAction.js","routes/Employee.js","pages/employee/HomeForeign.js","pages/layout/SystemAdminLeftsidebar.js","api/actions/jefe/RequestedVacationsAllAction.js","api/actions/jefe/AuthorizeVacationsAction.js","api/actions/jefe/RejectVacationsAction.js","pages/employee/chief/VacationsAuthorization.js","api/actions/jefe/SeeVacationsAction.js","pages/employee/chief/VacationRequestDetail.js","api/actions/jefe/CommentRejectVacationsAction.js","api/actions/eulen/VacationsMassiveAction.js","api/actions/eulen/AuthorizeVacationsMassiveAction.js","api/actions/eulen/RejectVacationsMassiveAction.js","pages/employee/chief/VacationRequestsMassive.js","pages/employee/chief/EmployeeVacationsControl.js","pages/employee/chief/EmployeeVacationsControlV2.js","pages/employee/chief/IncidentsAuthorization.js","pages/employee/chief/IncidentRequestDetail.js","api/actions/jefe/AuthorizeIncidentAction.js","api/actions/jefe/RejectIncidentAction.js","api/actions/jefe/AuthorizeCancelIncidentsAction.js","api/actions/jefe/RejectCancelIncidentsAction.js","components/firm/FirmComponent.js","pages/employee/chief/DetailReportSee.js","pages/layout/RHVacationLeftsidebar.js","pages/Authorizers/Vacations.js","api/actions/eulen/VacationsDirectAction.js","pages/Authorizers/VacationRequests.js","api/actions/eulen/VacationsMassiveDirectAction.js","api/actions/eulen/AuthorizeVacationsMassiveDirectAction.js","api/actions/eulen/RejectVacationsMassiveDirectAction.js","pages/Authorizers/Reports.js","api/actions/eulen/ReportRHVacDirectAction.js","api/actions/common/VacationsCalendarAction.js","pages/employee/chief/CalendarVacations.js","pages/layout/DirectorGralLeftsidebar.js","api/actions/perdiem/DeptosCenterAction.js","pages/systemAdmin/TechnicalServicesConcentrate.js","api/actions/perdiem/JefesPerdiemAction.js","api/actions/perdiem/EmpleadosAllAction.js","api/actions/perdiem/EmpRepoAction.js","api/actions/perdiem/ReportConvertAction.js","api/actions/perdiem/GetXlsPerdiemAction.js","pages/employee/AccountingReport.js","pages/employee/ServiceReportsReport.js","pages/employee/chief/DownloadDocument.js","api/actions/empleado/ConsultaArchivosJefeAction.js","routes/Chief.js","pages/employee/SecretQuestion.js","api/actions/common/SecurityQuestionAction.js","pages/employee/ChangePwd.js","api/actions/common/ChangePasswordAction.js","routes/FirstAccess.js","api/actions/RhUser/CompaniesAction.js","api/actions/RhUser/LicenseDataAction.js","pages/operator/Home.js","api/actions/RhUser/PromotionsAction.js","api/actions/systemAdmin/EditWelcomeMessageAction.js","pages/operator/EditWelcomeMessage.js","api/actions/systemAdmin/AccessMethodAction.js","pages/operator/AccessMethod.js","api/actions/systemAdmin/RestartPasswordAction.js","api/actions/systemAdmin/SearchEmployeeAction.js","api/actions/systemAdmin/UnlockEmployeeAction.js","api/actions/systemAdmin/ChangePasswordEmployeeAction.js","pages/operator/PasswordsReset.js","api/actions/systemAdmin/AdditionalFieldsAction.js","api/actions/systemAdmin/DeleteAddFieldsActiion.js","api/actions/systemAdmin/SelectedAdditionalFieldsAction.js","pages/operator/AdditionalFields.js","api/actions/systemAdmin/ReceiptGenerationEmployeeAction.js","pages/operator/PayrollReceipts.js","pages/operator/Payroll.js","api/actions/RhUser/PeriodosNominaRhAction.js","components/shared/layoutLoading.js","pages/operator/CalculatePayroll/index.js","api/actions/RhUser/GetTypesNominaAction.js","api/actions/RhUser/GetNominaPeriodsAction.js","pages/operator/CalculatePayroll/steps/SelectCompany.js","api/actions/RhUser/GetCalendarNominaAction.js","pages/operator/CalculatePayroll/steps/SelectLocation.js","api/actions/RhUser/GetCentersNominaAction.js","pages/operator/CalculatePayroll/steps/Summary.js","api/actions/RhUser/ProcessNominaAction.js","pages/operator/CalculatePayroll/wizard.js","api/actions/RhUser/AllMessagesToRhRAction.js","pages/operator/Requests.js","pages/operator/RequestDetail.js","api/actions/RhUser/BuzonQuejasAction.js","pages/operator/Complaints.js","api/actions/RhUser/DeleteComplaintAction.js","api/actions/RhUser/BuzonQuejasDetalleActioon.js","pages/operator/ComplaintDetail.js","api/actions/systemAdmin/ListCorporativeMessageAction.js","pages/operator/Messages.js","pages/layout/RHSpecialLeftsidebar.js","api/actions/systemAdmin/CenterCatalogAction.js","api/actions/systemAdmin/DeptsCatalogAction.js","api/actions/systemAdmin/JobCatalogAction.js","pages/systemAdmin/NewMessage.js","api/actions/systemAdmin/NewCorporativeMessageAction.js","api/actions/systemAdmin/DetailCorporativeMessageAction.js","pages/operator/MessagesDetail.js","pages/systemAdmin/EditMessage.js","api/actions/systemAdmin/EditCorporativeMessageAction.js","pages/operator/Calendar.js","api/actions/RhUser/CalendarAction.js","api/actions/eulen/VacationsRhVacationAction.js","pages/operator/VacationRequests.js","api/actions/eulen/AdminMenuActivateAction.js","pages/operator/Menu.js","pages/common/CajaAhorroHistorico.js","pages/systemAdmin/VacationsIncidentsRequested.js","api/actions/systemAdmin/VacationsIncidentsRequestedAction.js","routes/Operator.js","pages/RhDirector/Home.js","routes/RHDirector.js","pages/systemAdmin/Home.js","pages/systemAdmin/EditWelcomeMessage.js","pages/systemAdmin/AccessMethod.js","pages/systemAdmin/PasswordsReset.js","pages/systemAdmin/Messages.js","pages/systemAdmin/MessagesDetail.js","pages/systemAdmin/Requests.js","pages/systemAdmin/RequestDetail.js","pages/systemAdmin/AdditionalFields.js","pages/systemAdmin/Complaints.js","pages/systemAdmin/ComplaintDetail.js","api/actions/systemAdmin/ComplaintResponseAction.js","api/actions/systemAdmin/AllUsersAction.js","api/actions/systemAdmin/NewUserAction.js","api/actions/systemAdmin/ChangePaswordAdminAction.js","api/actions/systemAdmin/ConsultaRolesAction.js","pages/systemAdmin/UsersControl.js","api/actions/systemAdmin/GetReportaExtranjerosAction.js","api/actions/systemAdmin/FaltaTipoEmpleadoAction.js","pages/systemAdmin/IncidentTypeEmployeeControl.js","api/actions/systemAdmin/TBFaltaAction.js","api/actions/common/UpdateValorConfigAction.js","pages/systemAdmin/TabFaltaControl.js","pages/systemAdmin/TBAutorizadorFijoControl.js","api/actions/systemAdmin/TBAutorizadorFijoAction.js","pages/systemAdmin/TypeEmployeeControl.js","pages/systemAdmin/Permissions/RPPermissions.js","api/actions/systemAdmin/EmployerRecorrdsAction.js","api/actions/systemAdmin/EmployerRecordsPermitsAction.js","api/actions/systemAdmin/InsertDeletePermitRPAction.js","api/actions/systemAdmin/CenterPermitAction.js","pages/systemAdmin/Permissions/CenterPermissions.js","api/actions/systemAdmin/InsertDeletePermitCenterAction.js","api/actions/systemAdmin/DepartmentPermitsAction.js","pages/systemAdmin/Permissions/DepartamentsPermissions.js","api/actions/systemAdmin/InsertDeletePermitDeptoAction.js","api/actions/systemAdmin/PermitPositionReducer.js","pages/systemAdmin/Permissions/PositionPermissions.js","api/actions/systemAdmin/InsertDeletePosAction.js","pages/systemAdmin/UserPermissions.js","pages/layout/ReceiptOperatorLeftsidebar.js","pages/systemAdmin/PayrollReceipts.js","pages/systemAdmin/CalendarVacations.js","pages/systemAdmin/DownloadReports.js","api/actions/systemAdmin/URLReporteDocDeacargadosEmpAction.js","pages/systemAdmin/UploadFiles.js","api/actions/systemAdmin/ConsultaVarExtFileAction.js","api/actions/systemAdmin/GuardaArchivoAction.js","api/actions/systemAdmin/DeleteFilesAction.js","pages/systemAdmin/Menu.js","pages/systemAdmin/SuveryNom035.js","api/actions/systemAdmin/GetTipoEncuestasAction.js","pages/systemAdmin/AccountingReport.js","pages/systemAdmin/ServiceReportsReport.js","pages/systemAdmin/ReportVacationsIncidents.js","api/actions/systemAdmin/GeneraRptVacacionIncidenciaAction.js","pages/systemAdmin/UsersSecurityPolicy.js","api/actions/systemAdmin/GetReporte1SolicitudVacacioneCamposIncidenciasAction.js","pages/systemAdmin/ReportRequestsIncidents.js","pages/systemAdmin/ReportRequestsIncidentsAttachedFile.js","pages/systemAdmin/DownloadDocument.js","api/actions/empleado/ConsultaArchivosPersonales.js","api/actions/systemAdmin/ReportIncidentsAction.js","pages/systemAdmin/IncidentReportDownload.js","pages/systemAdmin/RequestedIncidents.js","routes/SystemAdmin.js","pages/RHVacation/VacationRequests.js","pages/RHVacation/Vacations.js","api/actions/eulen/ListCompaniesRptAction.js","api/actions/eulen/FilterCentersAction.js","api/actions/eulen/FilterBoosAction.js","api/actions/eulen/ReportRHVacActtion.js","pages/RHVacation/Reports.js","pages/RHVacation/CalendarVacations.js","pages/RHVacation/ReportControlVacation.js","api/actions/systemAdmin/TypeEmployeeCatalogAction.js","routes/RHVacation.js","pages/DirectorGral/Reports.js","pages/DirectorGral/CalendarVacations.js","pages/DirectorGral/AccountingReport.js","pages/DirectorGral/ServiceReportsReport.js","routes/DirectorGral.js","pages/errors/ErrorLogInExpired.js","routes/Common.js","pages/ReceiptOperator/Home.js","routes/ReceiptOperator.js","pages/RHSpecial/Home.js","routes/RHSpecial.js","routes/Router.js","App.js","api/reducers/common/ValidateErrorReducer.js","api/reducers/common/LoginReducer.js","api/reducers/common/SecurityQuestionReducer.js","api/reducers/common/ChangePasswordReducer.js","api/reducers/common/ImageUserReducer.js","api/reducers/common/DataUserReducer.js","api/reducers/common/CangeColorReducer.js","api/reducers/common/ShowWelcomeReducer.js","api/reducers/common/ChangeMenuReducer.js","api/reducers/common/ChangeUserTypeReducer.js","api/reducers/common/PrivacyNoticeReducer.js","api/reducers/common/TermCondReducer.js","api/reducers/common/UploadImageReducer.js","api/reducers/common/UrlEncuestaReducer.js","api/reducers/common/ValidateEncuestaReducer.js","api/reducers/common/FcmTokenReducer.js","api/reducers/common/RegisterFcmReducer.js","api/reducers/common/RecoveryPasswordReducer.js","api/reducers/common/UpdatePasswordReducer.js","api/reducers/empleado/NominaReducer.js","api/reducers/empleado/DetalleNominaReducer.js","api/reducers/empleado/UrlPdfReducer.js","api/reducers/empleado/UrlXmlReducer.js","api/reducers/empleado/MovimientosImssReducer.js","api/reducers/empleado/DetalleImssReducer.js","api/reducers/empleado/VacationsReducer.js","api/reducers/empleado/InsertVacationsReducer.js","api/reducers/empleado/MovimientosInfonavitReducer.js","api/reducers/empleado/DetalleInfonavitReducer.js","api/reducers/empleado/MessagesReducer.js","api/reducers/empleado/MessagesDetailReducer.js","api/reducers/empleado/MessageaRHReducer.js","api/reducers/empleado/MyMessagesRhReducer.js","api/reducers/empleado/QuejaMessageReducer.js","api/reducers/empleado/SiBalanceReducer.js","api/reducers/jefe/RequestedVacationsReducer.js","api/reducers/jefe/AuthorizeVacationsReducer.js","api/reducers/jefe/RejectVacationsReducer.js","api/reducers/jefe/SeeVacationsReducer.js","api/reducers/QrReducer.js","api/reducers/RhUser/AllMessagesRhReducer.js","api/reducers/RhUser/ReadMessageReducer.js","api/reducers/RhUser/DeleteMessageReducer.js","api/reducers/RhUser/GetTypesNominaReducer.js","api/reducers/RhUser/GetNominaPeriodsReducer.js","api/reducers/RhUser/GetCalendarNominaReducer.js","api/reducers/RhUser/GetCenterNominaReducer.js","api/reducers/RhUser/ProcessNominaReducer.js","api/reducers/RhUser/PeriodosNominaRhReducer.js","api/reducers/RhUser/DetalleNominaRhReducer.js","api/reducers/RhUser/CompaniesReducer.js","api/reducers/RhUser/LicenseDataReducer.js","api/reducers/RhUser/PromotionsReducer.js","api/reducers/RhUser/BuzonQuejasReducer.js","api/reducers/RhUser/BuzonQuejasDetalleReducer.js","api/reducers/RhUser/DeleteComplaintReducer.js","api/reducers/RhUser/CalendarReducer.js","api/reducers/systemAdmin/CentersCatalogReducer.js","api/reducers/systemAdmin/DeptsCatalogReducer.js","api/reducers/systemAdmin/EmployerRecordsReducer.js","api/reducers/systemAdmin/EmployerRecordsPermitsReducer.js","api/reducers/systemAdmin/DepartmentPermitsReducer.js","api/reducers/systemAdmin/CenterPermitReducer.js","api/reducers/systemAdmin/InsertDeletePermitRPReducer.js","api/reducers/systemAdmin/InsertDeletePermitCenterReducer.js","api/reducers/systemAdmin/InsertDeletePermitDeptoReducer.js","api/reducers/systemAdmin/ChangePasswordAdminReducer.js","api/reducers/systemAdmin/NewUserReducer.js","api/reducers/systemAdmin/RestartPasswordReducer.js","api/reducers/systemAdmin/SearchEmployeeReducer.js","api/reducers/systemAdmin/CompaniesListReducer.js","api/reducers/systemAdmin/ChangePasswordEmployeeReducer.js","api/reducers/systemAdmin/UnlockEmployeesReducer.js","api/reducers/systemAdmin/AccessMethodReducer.js","api/reducers/systemAdmin/JobCatalogReducer.js","api/reducers/systemAdmin/PermitPositionUserReducer.js","api/reducers/systemAdmin/InsertDeletePosReducer.js","api/reducers/systemAdmin/AdditionalFieldsReducer.js","api/reducers/systemAdmin/DeleteAddFieldsReducer.js","api/reducers/systemAdmin/NextInfoUserReducer.js","api/reducers/systemAdmin/SaveInfoExtraReducer.js","api/reducers/systemAdmin/ReceiptGenerationEmployeeReducer.js","api/reducers/systemAdmin/BlockUserReducer.js","api/reducers/systemAdmin/AllUsersReducer.js","api/reducers/systemAdmin/WelcomeMessageReducer.js","api/reducers/systemAdmin/EditWelcomeMessageReducer.js","api/reducers/systemAdmin/SelectedAdditionalFieldsReducer.js","api/reducers/systemAdmin/NewCorporativeMessageReducer.js","api/reducers/systemAdmin/EditCorporativeMessageReducer.js","api/reducers/systemAdmin/ListCorporativeMessagesReducer.js","api/reducers/systemAdmin/DetailCorporativeMessageReducer.js","api/reducers/systemAdmin/ControlVacationsReducer.js","api/reducers/systemAdmin/ConsultaRolesReducer.js","api/reducers/systemAdmin/EmployeeCatalogReducer.js","api/reducers/systemAdmin/CancelVacationsEulenReducer.js","api/reducers/jefe/AuthorizeCancelVacationsReducer.js","api/reducers/jefe/RejectCancelVacationsReducer.js","api/reducers/eulen/VacationsMassiveReducer.js","api/reducers/eulen/AuthorizeVacationsMassiveReducer.js","api/reducers/eulen/RejectVacationsMassiveReducer.js","api/reducers/eulen/VacationsRhVacationReducer.js","api/reducers/eulen/ListCompaniesRptReducer.js","api/reducers/eulen/FilterCenterReducer.js","api/reducers/eulen/FilterBoosReducer.js","api/reducers/eulen/ReportRHVacReducer.js","api/reducers/eulen/AdminMenuReducer.js","api/reducers/eulen/AdminMenuActivateReducer.js","api/reducers/eulen/VacationsMassiveDirectReducer.js","api/reducers/eulen/AuthorizeVacationsMassiveDirectReducer.js","api/reducers/eulen/RejectVacationsMassiveDirectReducer.js","api/reducers/eulen/VacationsDirectReducer.js","api/reducers/eulen/ReportRHVacDirectReducer.js","api/reducers/perdiem/CreatePerdiemReducer.js","api/reducers/perdiem/GetPerdiemReducer.js","api/reducers/perdiem/DeletePerdiemReducer.js","api/reducers/perdiem/EditPerdiemReducer.js","api/reducers/perdiem/GeneratePerdiemReducer.js","api/reducers/perdiem/SignPerdiemReducer.js","api/reducers/perdiem/DownloadPerdiemReducer.js","api/reducers/perdiem/IdPerdiemReducer.js","api/reducers/perdiem/AuthorizersReducer.js","api/reducers/perdiem/SendEmailsReducer.js","api/reducers/perdiem/ConceptsReducer.js","api/reducers/perdiem/ServiceCodeReducer.js","api/reducers/jefe/EmployeeVacationsReducer.js","api/reducers/empleado/VacationExpirationReducer.js","api/reducers/perdiem/DeptosCenterReducer.js","api/reducers/perdiem/JefesPerdiemReducer.js","api/reducers/perdiem/EmpleadosAllReducer.js","api/reducers/perdiem/EmpRepoReducer.js","api/reducers/perdiem/EmpleadosAlMandoReducer.js","api/reducers/perdiem/RejectChiefReducer.js","api/reducers/perdiem/AuthorizeChiefReducer.js","api/reducers/perdiem/GetPreviewReducer.js","api/reducers/perdiem/AuthorizeRejectReducer.js","api/reducers/perdiem/EmpleadosPerdiemReducer.js","api/reducers/perdiem/GetPreviewCanceledReducer.js","api/reducers/perdiem/GetPreviewAuthorizedReducer.js","api/reducers/perdiem/ReportConvertReducer.js","api/reducers/perdiem/GetXlsPerdiemReducer.js","api/reducers/perdiem/SendDataChiefReducer.js","api/reducers/perdiem/EmployeeMovNomReducer.js","api/reducers/empleado/CatIncidentsReducer.js","api/reducers/empleado/InsertIncidentAction.js","api/reducers/empleado/SkipWeekendReducer.js","api/reducers/jefe/AuthorizeIncidentReducer.js","api/reducers/jefe/RejectIncidentReducer.js","api/reducers/common/VacationCalendarReducer.js","api/reducers/empleado/IncidenciasKronesReducer.js","api/reducers/empleado/EmpleadoJornadaReducer.js","api/reducers/empleado/ValidaFechasReducer.js","api/reducers/systemAdmin/URLReporteDocDeacargadosEmpReducer.js","api/reducers/empleado/Log_RegistraDescargaArchivoReducer.js","api/reducers/systemAdmin/ConsultaVarExtReducer.js","api/reducers/systemAdmin/ConsultaArchivosReducer.js","api/reducers/systemAdmin/GuardaArchivoReducer.js","api/reducers/systemAdmin/DeleteFilesReducer.js","api/reducers/empleado/ConsultaVarFirmaReducer.js","api/reducers/empleado/ConsultaFirmaReducer.js","api/reducers/empleado/ActualizaFirmaReducer.js","api/reducers/common/IncidentAlertReducer.js","api/reducers/systemAdmin/VarShowOptionsReducer.js","api/reducers/systemAdmin/GetTipoEncuestasReducer.js","api/reducers/empleado/ControlVacacionesEmpleadoReducer.js","api/reducers/systemAdmin/GetDiasBloqueadosReducer.js","api/reducers/common/RecoverPwdByEmailReducer.js","api/reducers/systemAdmin/GeneraRptVacacionIncidenciaReducer.js","api/reducers/reportes/GeneraReporteCtrlVacacionesReducer.js","api/reducers/systemAdmin/TypeEmployeeCatalogReducer.js","api/reducers/empleado/GetincidenciasAspenReducer.js","api/reducers/reportes/GeneraRptPDFCtrlVacacionesReducer.js","api/reducers/common/GetValoresConfigReducer.js","api/reducers/common/UpdateValorConfigReducer.js","api/reducers/systemAdmin/GetReportaExtranjerosReducer.js","api/reducers/systemAdmin/FaltaTipoEmpleadoReducer.js","api/reducers/systemAdmin/IncidenciasConfigReducer.js","api/reducers/systemAdmin/IncidenciasRazonesReducer.js","api/reducers/systemAdmin/GetReporte1SolicitudVacacioneCamposIncidenciasReducer.js","api/reducers/systemAdmin/TBFaltaReducer.js","api/reducers/empleado/AfilIndividualizadoReducer.js","api/reducers/systemAdmin/TBAutorizadorFijoReducer.js","api/reducers/empleado/DocumentTypeReducer.js","api/reducers/empleado/ConsultaArchivosPersonalesReducer.js","api/reducers/empleado/GuardaArchivoPersonalReducer.js","api/reducers/empleado/DeletePersonalFilesReducer.js","api/reducers/empleado/ConsultaArchivosPersonalesPorTrabajadorReducer.js","api/reducers/systemAdmin/IncidentsReportReducer.js","api/reducers/systemAdmin/ComplaintResponseReducer.js","api/reducers/jefe/AuthorizeCancelIncidentsReducer.js","api/reducers/jefe/RejectCancelIncidentsReducer.js","api/reducers/index.js","serviceWorker.js","components/shared/ValidateErrorService.js","index.js","assets/payroll/xlsx.png","assets/payroll/pdf.png","assets/payroll/xml.png"],"names":["Loading","React","createElement","className","viewBox","cx","cy","r","fill","strokeWidth","strokeMiterlimit","PRIVATE_VARS","PRIVATE_VARS_REGEXP","RegExp","join","getIndentStr","indent","arguments","length","undefined","depth","repeat","getType","val","Array","isArray","_name","Date","filterStr","inputStr","filter","regexp","concat","Object","keys","String","replace","str","entity","getAttributeKeyVals","attributes","keyVals","map","attr","key","filteredVal","valStr","formatAttributes","keysValsJoined","objToArray","obj","_content","PRIMITIVE_TYPES","isPrimitive","includes","SIMPLE_TYPES","isSimpleType","isSimpleXML","xmlStr","match","getHeaderString","_ref","header","isOutputStart","toXmlModify","config","_config$depth","_isFirstItem","attributesFilter","_isLastItem","indentStr","valType","isSimple","outputStr","every","a","_objectSpread","newVal","isNewValSimple","preIndentStr","preTag","shouldSelfClose","selfCloseStr","attributesString","_attrs","tag","preTagCloseStr","postTag","outputArr","index","newConfig","outputObj","forEach","privateVar","newContentObj","assign","_toConsumableArray","fnResult","singleVal","headerStr","_regeneratorRuntime","e","t","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","changeToXmlWcf","jsonData","formatJsonSoap","xml","toXML","console","log","changeXml","changeXmlSic","xmlCloseEmty","getVersionAction","_asyncToGenerator","_callee","data","server","directServer","result","configJson","headers","response","responseText","_context","localStorage","getItem","isOK","error","body","SOAPAction","Server","fetch","text","parseString","trim","err","resultJson","envelope","GetVersion","getVersionResponse","_x","_x2","apply","respuesta","version","objResponse","getVersionResult","loginResponse","ochoCaracteresPassword","nombre","materno","paterno","token","idTra","primerAcceso","primerCambio","tipoUser","tipoEmpleado","tipoAutorizador","periodo_ID","LoginV2Response","LoginV2Result","GetOrDefault","Number","SecurityQuestionResponse","dataDetail","InsertPreguntaSecretaResponse","InsertPreguntaSecretaResult","resp","validateNull","ChangePasswordResponse","InsertContraseniaResponse","InsertContraseniaResult","imageResponse","EmpleadoFotoResponse","EmpleadoFotoResult","img","imgResponse","image","dataUserResponse","banco","clabe","curp","correo","edoCivil","fechNac","nss","rfc","trabId","centro","empresa","fechaIngreso","fechaTermino","puesto","registro","TipoEmpleado_ID","TipoEmpleado_Desc","Sindicato_ID","Sindicato_Desc","Reporta_ID","Reporta_Email","Paterno","Materno","Nombre","Periodo_ID","DatosPersonalesResponse","DatosPersonalesResult","movimientosImssResponse","arryResponse","MovimientosIMSSResponse","MovimientosIMSSResult","ListaMovimientos","clsMovimientoIMSS","item","newObj","fechMov","movimiento","ptr","periodosNomina","arrayResp","PeriodosNomina2Response","PeriodosNomina2Result","arrResponseOne","arrRespondeFinal","responseObj","ano","diasTrabajados","fechaFinal","fechaInicio","leido","nombrePeriodo","numeroPeriodo","periodoID","sdi","salario","tipoNomina","tipoNominaID","total","totalDeduccion","totalPercepcion","some","detalleNomina","steps","months","deducciones","clsConceptoNomina","emisor","persepciones","receptor","virtualesDeduccion","virtualesPercepcion","DetalleNominaResponse","DetalleNominaResult","processArrayDetailNomina","dataEmisor","percepciones","dataReseptor","reseptor","validate","param","_default","arrNomina","newArr","importe","parseFloat","nombreConcepto","conceptoId","parseInt","find","it","itemData","detalleImssResponse","DetalleMovimientoIMSSResponse","DetalleMovimientoIMSSResult","movimientosInfonavitResponse","MovimientosINFONAVITResponse","MovimientosINFONAVITResult","listaINFONAVIT","objMovimiento","fecha","Movimiento","detalleInfonavitResponse","DetalleMovimientoINFONAVITResponse","DetalleMovimientoINFONAVITResult","termsResponse","TermCondResponse","TermCondResult","PrivacyResponse","AvisoPrivResponse","AvisoPrivResult","messagesResponse","MensajesAlPersonalResponse","MensajesAlPersonalResult","messages","arrMessages","message","messagesDetail","MensajesAlPersonalDetalleResponse","MensajesAlPersonalDetalleResult","VacationsResponse","MisVacacionesResponse","MisVacacionesResult","Solicitudes","SolCancelacion","Incidencias","diasdis","arrDias","dias","_diasD","diasD","Dia","FechaFin","FechaInicio","RangoFechas","FechaSolicitud","FechaVacacion","SolicitudID","Status","TipoSolicitud","_defineProperty","newData","TipoSolString","VacationsResponseV2","SolCancelaInc","_diasD2","CancelacionIncidencia","newDataCan","ValidaFechaResponse","fechasValidas","VerificaVacacionesResponse","VerificaVacacionesResult","InserVacationsResponse","Result","Details","InsertaVacacionesV2Response","InsertaVacacionesV2Result","objDetails","IncidentDataResponse","ObtieneIncidenciasResponse","ObtieneIncidenciasResult","incidencia","detalle_Incidencia","inc","DataIncidents","Fechas","Motivo","Estatus","ReportaId","IncidentVacDataResponse","NotificaCorreoVencimientoVacacionesResponse","NotificaCorreoVencimientoVacacionesResult","VacationsIncidentsDataResponse","VacacionesIncidenciasPendientesResponse","VacacionesIncidenciasPendientesResult","QuejaMessajeResponse","BuzonQuejaResponse","BuzonQuejaResult","SiBalanceResponse","objEncuestas","ListadoEncuestasAppResponse","ListadoEncuestasAppResult","arrEncuestas","encuesta","newObEncuesta","UrlEncuestaResponse","obtenerURLEncuestaAppResponse","obtenerURLEncuestaAppResult","ValidateEncuestaResponse","acualizaContestadaAPPResponse","acualizaContestadaAPPResult","UrlPdfResponse","CFDI","Especial","ReciboNomPDFResponse","ReciboNomPDFResult","pdfCFDI","pdfEspecial","UrlXmlResponse","ReciboNomXmlResponse","ReciboNomXmlResult","UploadImageResponse","SubirFotoResponse","SubirFotoResult","MessageaRhResponse","BuzonRRHHResponse","BuzonRRHHResult","MyMessagesARHResponce","MisMensajesARHResponse","MisMensajesARHResult","objMessaje","FechaCap","Id","Mensaje","Titulo","Respuesta","ComplaintAdminResponse","ResponderQuejaResponse","ResponderQuejaResult","imageQr","QRResponse","QRResult","AllMessagesToRhResponse","AllMensajesARHResponse","AllMensajesARHResult","fechaCap","id_msj","mensaje","nombreCompleto","titulo","RequestVacationsAllResponse","SolicitudVacacionesAllResponse","SolicitudVacacionesAllResult","solicitudes","DetalleSolicitudAll","detalle","detailData","trabID","AuthorizeVacationsResponse","AutorizacionVacacionesResponse","AutorizacionVacacionesResult","RejectVacationsResponse","RechazoVacacionesResponse","RechazoVacacionesResult","SeeVacations","VistoResponse","VistoResult","GetTypesNominaResponse","GetTiposNominaResponse","GetTiposNominaResult","tiposNomina","TBTipoNomina","tipos","dataType","AplicaAjusteMensual","Descripcion","toUpperCase","Estimacion","Finiquito","NoAplicaSubsidio","PreNomina","ProcesaBajas","TipoNomina_ID","UltimoDiaPagado","NominaPeriodsResponse","GetPeriodosNominaResponse","GetPeriodosNominaResult","nomPeriods","nominaPeriods","nom","dataPeriodsNomina","CalendarNominaResponse","GetCalendarioNominaResponse","GetCalendarioNominaResult","calendariosNomina","calendarioNomina","calendar","Ano","Dias","Mes","MesRow","Periodo","PeriodosMes","TipoNominaIDa","select","GetCentersNominaResponse","GetCentrosNominaResponse","GetCentrosNominaResult","CentrosNomina","CentroNomina","center","Centro_ID","Cerrado","Empleados","Proceso_ID","Usuario","selected","ProcessNominaResponse","SetProcesoNominaResponse","SetProcesoNominaResult","TareasProcesoNomina","Msg","periodosNominaRh","PeriodosNominaAllResponse","PeriodosNominaAllResult","empresasResponse","ListaEmpresasResponse","ListaEmpresasResult","empresas","RecoveryPasswordSuccess","RecuperacionPassResponse","RecuperacionPassResult","UploadPasswordSuccess","CambioPassRecResponse","CambioPassRecResult","Promotions","PromocionesResponse","PromocionesResult","promocion","promo","dataPromocion","notificacion_ID","url","infoAdicional","BuzonQuejas","BuzonQuejaAllResponse","BuzonQuejaAllResult","Quejas","clsBuzonQuejaAll","queja","DataQueja","idMensaje","BuzonQuejasDetail","BuzonQuejaAllDetResponse","BuzonQuejaAllDetResult","DeleteComplaint","DeleteBuzonQuejaResponse","DeleteBuzonQuejaResult","Calendar","CursosResponse","CursosResult","Cursos","curso","detail","CursoID","DescCurso","Fecha","HoraFin","HoraInicio","Instructor","Lugar","NombreCurso","centerCatalog","CatalogoCentrosResponse","CatalogoCentrosResult","catalogo","clsCatalogoSicossDet","DataCenter","descripcion","id","deptsCatalog","CatalogoDeptoResponse","CatalogoDeptoResult","employerRecords","CatalogoRPResponse","CatalogoRPResult","employerRecordsPermits","PermisosXUserRPResponse","PermisosXUserRPResult","Permisos","clsPermisosUserDet","permiso","userId","departmentPermits","PermisosXUserDeptoResponse","PermisosXUserDeptoResult","centerPermit","PermisosXUserCentroResponse","PermisosXUserCentroResult","insertDeletePermitRP","SavePermisoXUserRPResponse","SavePermisoXUserRPResult","insertDeletePermitCenter","SavePermisoXUserCentroResponse","SavePermisoXUserCentroResult","insertDeletePermitDepto","SavePermisoXUserDepartamentoResponse","SavePermisoXUserDepartamentoResult","changePasswordAdmin","CambioPassAdminResponse","CambioPassAdminResult","NewUser","NuevoUsuarioResponse","NuevoUsuarioResult","ActualizaUsuarioResponse","ActualizaUsuarioResult","EliminaUsuarioResponse","EliminaUsuarioResult","RestartPassword","ReiniciaContraseniaResponse","ReiniciaContraseniaResult","Todos","resultado","empleadosFaltantes","empreados","EmpleadosFaltantes","DatosEmpleados","empleado","dataEmpleado","SearchEmployee","BusquedaEmpleadosResponse","BusquedaEmpleadosResult","DataEmpleados","ChangePasswordEmployee","CambiaContraseniaResponse","CambiaContraseniaResult","pwdNueva","UnlockEmployees","DesbloquearEmpleadosResponse","DesbloquearEmpleadosResult","todos","AccessMethod","MetodoAccesoResponse","MetodoAccesoResult","EmpFaltantes","DataEmpleadosItem","errorMessage","configuracion","JobCatalog","CatalogoPuestosResponse","CatalogoPuestosResult","Catalogo","dataCatalogo","PermitPositionUser","PermisosXUserPuestosResponse","PermisosXUserPuestosResult","userID","InsertDeletePos","SavePermisoXUserPuestoResponse","SavePermisoXUserPuestoResult","CompaniesList","ListaEmpresasLoginResponse","ListaEmpresasLoginResult","strings","AdditionalFields","CamposAdicionalesCatResponse","CamposAdicionalesCatResult","CampoAdicional","clsCampoAdicional","campo","DataCampo","DeleteAddFields","SaveCamposAdicionalesResponse","SaveCamposAdicionalesResult","NextInfoUser","InfoExtraResponse","InfoExtraResult","clsInfoExtra","extra","dataExtra","informacion","SaveInfoExtra","SaveInformacionExtraResponse","SaveInformacionExtraResult","ReceiptGenerationEmployee","ReciboGeneradoEmpResponse","ReciboGeneradoEmpResult","clsEmpleadoRec","dataRecibos","trab_ID","detallesRecibo","DetalleRecibo","clsDetalleRecibo","colectRecibo","recibo","dataRecibo","anioPeriodo","fechaGeneracion","tipoConsulta","tipoPeriodo","ultimoAcceso","rutasNomXml","rutasNomPDF","fechaFin","anio","BlockUser","BloqueodeUsuarioResponse","BloqueodeUsuarioResult","AllUsers","UsuariosResponse","UsuariosResult","Users","ArrUsers","user","dataUser","user_id","idRol","descripcionRol","_","WelcomeMessage","MensajeBienvenidaResponse","MensajeBienvenidaResult","EditWelcomeMessage","EditMensajeResponse","EditMensajeResult","SelectedAdditionalFields","CamposSeleccionadosResponse","CamposSeleccionadosResult","NewCorporativeMessage","WriteMensajesCorporativosResponse","WriteMensajesCorporativosResult","EditCorporativeMessage","EditMensajeCorporativoResponse","EditMensajeCorporativoResult","ListCorporativeMessage","MensajesCorporativosResponse","MensajesCorporativosResult","Msjs","clsMsjCorporativoAll","msg","DetailCorporativeMessage","MensajesCorporativosDetResponse","MensajesCorporativosDetResult","ControlVacations","isV2","ControlVacacionesEmpleadov2Response","ControlVacacionesEmpleadov2Result","ControlVacacion","clsControlVacacion","control","controlVacations","Antiguedad","VcacionesOtorgadas","VacacionesGozadas","VacacionesPendientes","FechaAniversario","IdVersion","Trab_id","VacacionesAnticipadas","FechaVencimiento","VacacionesPerdidas","ControlVacacionesEmpleadoResponse","ControlVacacionesEmpleadoResult","Proporcionales","CancelVacationsEulen","InsertaCancelacionResponse","InsertaCancelacionResult","AuthorizeCancelVacationsResponse","AutorizacionCancelacionResponse","AutorizacionCancelacionResult","AuthorizeCancelIncidentsResponse","AutorizacionCancelacionIncidenciaResponse","AutorizacionCancelacionIncidenciaResult","RejectCancelIncidentsResponse","VacationsMassive","esJefe","VacMasivasJefeResponse","VacMasivasJefeResult","VacMasivasRHResponse","VacMasivasRHResult","DetalleSolicitudMas","massiveVacations","Centro_id","JefeTrab_id","AuthorizeVacationsMassive","AutorizaVacMasivasResponse","AutorizaVacMasivasResult","listaInsercion","clsInsercionMasivaDet","ErrorMsg","Insercion","VacationsRhVacation","ConsultaVacacionesResponse","ConsultaVacacionesResult","ListCompaniesRpt","ListaEmpresasRptResponse","ListaEmpresasRptResult","arrEmpre","FilterCenters","LstCentrosResponse","LstCentrosResult","centros","stcCentros","FilterBoos","LstJefesResponse","LstJefesResult","Jefes","stcJefes","NombreCompleto","Trab_id_Jefe","ReportRHVac","RptRolRHVacResponse","RptRolRHVacResult","AdminMenu","MenuSICONSULTAResponse","MenuSICONSULTAResult","Menus","stcMenu","Habilitado","MenuID","NombreMenu","PadreMenuID","IdRol","AdminMenuActivate","MenuActualizaResponse","MenuActualizaResult","VacationsMassiveDirect","VacacionesMasivasDirectosResponse","VacacionesMasivasDirectosResult","centro_id","dia","fechaSolicitud","fechaVacacion","jefeTrab_id","periodo","solicitudID","status","tipoSolicitud","trab_id","AuthorizeVacationsMassiveDirect","AutorizaVacMasivasDirResponse","AutorizaVacMasivasDirResult","errorMsg","insercion","VacationsDirect","ConsultaVacacionesDirResponse","ConsultaVacacionesDirResult","ReportRHVacDirect","RptRolRHVacDirResponse","RptRolRHVacDirResult","CatIncidentsResponse","sessionStorage","CatIncidenciasKronesResponse","CatIncidenciasKronesResult","incidencias","dataModel","idFormulario","diasPermitidos","CatIncidenciasResponse","CatIncidenciasResult","validDateIncidentAction","_ref3","_callee3","isValid","_context3","ValidDateIncident","ValidDateIncidentResponse","_x5","_x6","ValidaDiaIncidenciaResponse","ValidaDiaIncidenciaResult","getDiasBloqueadosAspenAction","_ref4","_callee4","_context4","DiasBloqueados","GetDiasBloqueadosAspenResponse","_x7","_x8","GetDiasBloqueadosAspenResult","clsDiasBloqueados","EsFestivo","EsFinDeSemana","EsIncapacidad","Falta_ID","stringToDate","InsertIncidentsResponse","isKrones","process","InsertaIncidenciaKronesResponse","InsertaIncidenciaKronesResult","InsertaIncidenciaResponse","InsertaIncidenciaResult","skipWeekendResponse","OmiteFinSemanaResponse","OmiteFinSemanaResult","AuthorizeIncidentResponse","AutorizacionIncidenciaResponse","AutorizacionIncidenciaResult","RejectIncidentResponse","EmployeeVacationsResponse","GetEmpleadosVacacionePendientesResponse","GetEmpleadosVacacionePendientesResult","ltsEmpleadoSolicitudes","Model_EmpleadoSolicitud","solicitud","EmpresaId","ReportaID","TrabID","CommentRejectVacationsResponse","ComentarioRechazovacacionesEmpResponse","ComentarioRechazovacacionesEmpResult","vacationExpirationResponse","GetVacaciones_Por_VencerEmpleadoResponse","GetVacaciones_Por_VencerEmpleadoResult","ResponseVacaciones","vac","Año","Dias_Pendientes","Vencimiento","MesesVencer","DiasVencer","changedateFormat","date","dateInit","split","indexOf","VacationsCalendarResponse","GetVacacionesCalendarioResponse","GetVacacionesCalendarioResult","Model_Response_CalVacaciones","model","mod","listVacations","days","day","changeFormat","dataModels","title","allDay","start","end","dateStr","objVacation","Autorizado","FechaString","NumeroDeDia","Fecha_StringToDate","Procesada","IncidenciasKronesResponse","lstIncidencias","empleadoJornadaResponse","GetEmpleadoJornadaTurnoResponse","GetEmpleadoJornadaTurnoResult","EmpleadosJornadaTurno","EmpleadoJornadaTurno","Turnos","EmpleadoJornada","EmpleadoTurnoHorario","tur","empTur","Descanso","Hora_Entrada","Hora_EntradaComida","Hora_Salida","Hora_SalidaComida","Trab_ID","Turno_ID","ChecaTarjeta","FechaMov","FlexTime","HorasExtrasFijas","HorasSemana","Jornada_IDa","Ptr","Roll_IDa","TurnoHorarios","DeptosCenterResponse","depto","cento","GetDeptoCentrosResponse","GetDeptoCentrosResult","lstDepto","stcDepto","datDepto","Depto_ID","dataDepto","lstcentros","datCentros","dataCentros","JefesPerdiemResponse","GetListaJefesResponse","GetListaJefesResult","jefe","EmpleadosAllResponse","EmpleadosAllResult","stcEmpleado","EmpRepoResponse","EmpleadosREPORTEPerdiemResponse","EmpleadosREPORTEPerdiemResult","stcEmpleadoRepPerdiem","Centro_Costo","Tecnologia","EmpleadosAlMandoResponse","EmpleadosAlMandoResult","CentroDescripcion","GetXlsPerdiemResponse","EmpleadosREPORTEPerdiemurlResponse","EmpleadosREPORTEPerdiemurlResult","AuthorizersResponse","AutorizadoresResponse","AutorizadoresResult","lstAutorizadores","Autorizadores","objData","Email","IDAutorizador","DataChiefResponse","GetDatosJefeDirectoResponse","GetDatosJefeDirectoResult","JefeDirecto","EntDatosJefeDirecto","EmployeeMovNomResponse","EmpleadoMovNomResponse","EmpleadoMovNomResult","ConsultaRoles","ConsultaRolesResponse","ConsultaRolesResult","CatalogoRol","clsCatalogoRoles","ID","ConsultaVarExt","ConsultaVarExtFileResponse","ConsultaVarExtFileResult","ConsultaArchivos","files","ConsultaArchivosResponse","ConsultaArchivosResult","file","Contenido","Idx_Archivo","ConsultaArchivosPersonales","ConsultaArchivosPersonalesResponse","ConsultaArchivosPersonalesResult","NombreArchivo","Tipo","ConsultaArchivosPersonalesPorTrabajador","ConsultaArchivosPersonalesPorTrabajadorResponse","ConsultaArchivosPersonalesPorTrabajadorResult","ConsultaArchivosPersonalesJefe","ConsultaArchivosPersonalesJefeResponse","ConsultaArchivosPersonalesJefeResult","obtenerTipoDocumento","documentsTypes","ObtenerTipoDocumentoResponse","ObtenerTipoDocumentoResult","documento","documento_Detalle","doc","DataDocument","GuardaArchivoPersonal","GuardaArchivoPersonalResponse","GuardaArchivoPersonalResult","GuardaArchivo","GuardaArchivoResponse","GuardaArchivoResult","DeleteFiles","DeleteFilesResponse","DeleteFilesResult","DeletePersonalFiles","DeletePersonalFilesResponse","DeletePersonalFilesResult","URLReporteDocDeacargadosEmp","URLReporteDocDeacargadosEmpResponse","URLReporteDocDeacargadosEmpResult","ConsultaVarFirma","ConsultaVarFirmaResponse","ConsultaVarFirmaResult","CatalogoExt","ConsultaFirma","ConsultaFirmaResponse","ConsultaFirmaResult","ActualizaFirma","ActualizaFirmaResponse","ActualizaFirmaResult","GetIncidenciasAlerta","GetIncidenciasAlertaResponse","GetIncidenciasAlertaResult","alert","Incidencia","Log_RegistraDescargaArchivo","Log_RegistraDescargaArchivoResponse","Log_RegistraDescargaArchivoResult","VarShowOptionsResponse","VariablesMuestraOpcionesResponse","VariablesMuestraOpcionesResult","showEstadocivil","showFechaTermino","showGrafica","GetTipoEncuestaResponse","tipoEncuestas","GetTipoEncuestasResponse","GetTipoEncuestasResult","Valor","GetEmpleadosGUIA1Response","empleadosGuia1","GetEmpleadosGUIA1Result","GetUbicacionesConteoResponse","ubicacionesConteo","GetUbicacionesConteoResult","FechaEnvio","Guia","Seleccionado","Total","Ubicacion","Ubicacion_ID","UltimoEnvio","GeneraRptVacacionIncidenciaResponse","GeneraRptVacacionIncidenciaResult","CtrlVacionEmpleadoDatosResponse","ctrlVacionEmpleadoDatosResponse","ctrlVacionEmpleadoDatosResult","clsResponseUsuarioVacacion","Años","CURP","Depto","FechaIngreso","IMSS","Puesto","RFC","Vacaciones","CtrlVacacionesEmpleadoV4Response","ControlVacacionesEmpleadoV4Response","ControlVacacionesEmpleadoV4Result","clsControlVacacionV4","vacacion","AnosDeAntiguedad","DiasOtorgados","FechaDisponibilidad","VacacionesGozadasDelAno","VacacionesPendientesDelAño","VacacionesPerdidasDelAno","GetDiasBloqueadosResponse","GetDiasBloqueadosResult","PermiteSolicitar","RecoverPwdByEmailResponse","Resultado","RecuperacionPassCorreoResponse","RecuperacionPassCorreoResult","GeneraReporteCtrlVac1Response","reporte","GeneraReporte1detalladousuarioResponse","GeneraReporte1detalladousuarioResult","GeneraReporteCtrlVac2Response","GeneraReporte2detalladousuariosResponse","GeneraReporte2detalladousuariosResult","GeneraReporteCtrlVac3Response","GeneraReporte4Response","GeneraReporte4Result","GeneraReporteCtrlVac4Response","GeneraReporte5Response","GeneraReporte5Result","TypeEmployeeCatalogResponse","CatalogoTipoEmpleadoResponse","CatalogoTipoEmpleadoResult","GetincidenciasAspenResponse","IncTomadas","dias_maximos","mesesvigencia","okUltimaFechaSelect","GetincidenciasAspenResult","arrIncidenciasAspen","IncidenciasAspen","GeneraRptPDFCtrlVacacionesResponse","GeneraRptPDFControlVacacionesResponse","GeneraRptPDFControlVacacionesResult","GetValoresConfigResponse","Exito","Configuraciones","GetValoresConfigResult","toLowerCase","configuraciones","Seccion","Variable","UpdateValorConfigResponse","UpdateValorConfigResult","lista","GetReportaExtranjerosResponse","ReportaExtranjeros","GetReportaExtranjerosResult","NomPersonaExtrajera","Correo","NumEmpGlobal","GetTBTipoEmpleadoResponse","TBTipoEmpleado","GetTBTipoEmpleadoResult","Activo","CuentaContable","CuotaFija","OmiteDiaFestivo","OmiteSabado","OmiteDomingo","RegimenSAT_IDa","TipoEmpleadoIMSS","UpdateTBTipoEmpleadoResponse","UpdateTBTipoEmpleadoResult","GetFaltaTipoEmpleadoResponse","FaltaTipoEmpleado","GetFaltaTipoEmpleadoResult","FTE_ID","InsertFaltaTipoEmpleadoResponse","InsertFaltaTipoEmpleadoResult","DeleteFaltaTipoEmpleadoResponse","DeleteFaltaTipoEmpleadoResult","UpdateFaltaTipoEmpleadoResponse","UpdateFaltaTipoEmpleadoResult","GetIncidenciasConfigResponse","IncidenciasConfig","GetIncidenciasConfigResult","CadaCuando","Consecutivos","DesactivarAlSaldar","DiasAntesVencimiento","DiasOtorgar","DiasPorMesIngreso","FechaInicial","LimiteMinutos","NoPendientes","PerderDespuesVencimiento","PorEvento","Razon_ID","Recurrencia","SaldoDiasHabiles","SolicitudesDentroVigencia","VigenciaPorMes","_DiasOtorgados","_DiasPendientes","_DiasGozados","_FechaComienzo","_FechaVencimiento","IniciaIncidenciaConfigEventoResponse","EjecutarProceso","IniciaIncidenciaConfigEventoResult","CancelaIncidenciaConfigEventoResponse","CancelaIncidenciaConfigEventoResult","UpdateIncidenciasConfigResponse","UpdateIncidenciasConfigResult","GetIncidenciasRazonesResponse","IncidenciasRazones","GetIncidenciasRazonesResult","Numero","Vigencia","GetReporte1SolicitudVacacioneCamposIncidenciasResponse","SolicitudVacacioneCamposIncidencias","RutaDescargaRpt","GetReporte1SolicitudVacacioneCamposIncidenciasResult","Archivo","Comentario","ContentType","CorreoNotifica","EmpleadoProcesa_ID","EmpresaReporta","FechaProcesa","FechaReposicion","FechasValidas","HoraEstimada","HoraReal","HoraSalida","IdFormulario","MotivoIncidencia","MotivoVacacion","Nivel","NivelRestante","ReportaA2","Reporta_ID2","RutaDescarga","VacacionSolicitada","Visto","numeroAlertas","GetTBFaltaResponse","TBFalta","GetTBFaltaResult","Descuenta","DescuentaVacacion","InsertTBFaltaResponse","InsertTBFaltaResult","DeleteTBFaltaResponse","DeleteTBFaltaResult","UpdateTBFaltaResponse","UpdateTBFaltaResult","AfilIndividualizadoResponse","Empleado_Nombre","AfilIndividualizadoResult","GetTBAutorizadorFijoResponse","TBAutorizadorFijo","GetTBAutorizadorFijoResult","IdAF","InsertTBAutorizadorFijoResponse","InsertTBAutorizadorFijoResult","DeleteTBAutorizadorFijoResponse","DeleteTBAutorizadorFijoResult","UpdateTBAutorizadorFijoResponse","UpdateTBAutorizadorFijoResult","employeeCatalogResponse","CatalogoEmpleadoResponse","CatalogoEmpleadoResult","VALIDATE_ERROR","getDataUserAction","dispatch","payload","DataUser","item2","j","item3","k","responseError","ValidationNoAuthorization","have","JSON","stringify","indexStart","search","errorStr","substr","fault","faultstring","messageFault","haveError","getLoginAction","Login","getParams","params","others_params","CryptoJS","AES","decrypt","parse","toString","enc","Utf8","getUserType","getEmployeeType","getAuthorizerType","getSesionStorage","getInfoUserLogin","getDatesInRange","arr","dt","setDate","getDate","groupFieldOfArray","array","field","names","transformaUrl","copy","openLink","link","document","setAttribute","href","appendChild","click","remove","modeDetail","logo","details","Fragment","description","src","style","width","textAlign","fontSize","swal","content","button","confirm","buttons","dangerMode","closeOnClickOutside","mapDispatchToProps","getImageUserAction","valid","ImageUser","sendImageAction","ImageResponse","withRouter","connect","state","dataUserData","dataUserError","imageUserData","imageUserError","typeUserSelected","changeUserType","uploadImageData","uploadImage","uploadImageError","props","logoText","logoLightText","_useState","useState","_useState2","_slicedToArray","setLoading","_useState3","_useState4","setUser","_useState5","_useState6","company","setCompany","_useState7","_useState8","setImage","_useState9","_useState10","isMenuCollapsed","setIsMenuCollapsed","uploadFile","useRef","useEffect","window","$","stick_in_parent","_getParams","init","_props$dataUserData","_props$dataUserData$D","handleChangeImage","target","Resizer","imageFileResizer","uri","_handleUserImage","alt","Link","to","paddingTop","marginLeft","minHeight","onClick","data-toggle","aria-haspopup","aria-expanded","accept","onChange","ref","display","current","cursor","clear","history","useScript","cachedScripts","loaded","setState","script","onScriptLoad","onScriptError","splice","addEventListener","removeEventListener","Title","_ref$path","path","actual","_ref$icon","icon","_ref$redirect","redirect","Footer","versionWcf","setVersionWcf","getVersionWcf","request","data-theme","getFullYear","getUrlEncuestaAction","UrlEncuesta","validateEncuestaAction","ValidateEncuestas","siBalanceData","siBalance","siBalanceError","urlEncuestaData","urlEncuesta","urlEncuestaError","validateEncuestaData","validateEncuesta","validateEncuestaError","loading","setUrl","survey","Concluida","Encuesta","EncuestaLink","Encuesta_ID","Puesto_ID","Survey_ID","setTimeout","location","_props$survey","Topbar","marginTop","WebkitOverflowScrolling","paddingBottom","overflowY","position","scrolling","color","zIndex","getSiBalanceAction","SiBalanceList","getPeriodosNominaAction","raServer","REACT_APP_OTHER_SERVER","svrAction","urlServer","idEmpresa","axios","post","Nomina","getEmployeeVacationsAction","EmployeeVacations","getVacationExpirationAction","VacationExpiration","getNotificacionCorreo","NotificaCorreo","getQrAction","QrImage","qrData","qr","qrError","setQr","tabIndex","role","aria-labelledby","aria-hidden","sToken","IdEmpresa","LigaPBIMSS","Modal","show","showModalQR","onHide","onClosed","size","centered","Header","closeButton","Body","Button","variant","adminMenuData","adminMenu","adminMenuError","nextInfoUserData","nextInfoUser","nextInfoUserError","loginData","login","loginError","pathScript","userType","setUserType","employeeType","setEmployeeType","authorizerType","setAuthorizerType","infoLogin","setInfoLogin","menuPorTipoNomina","setMenuPorTipoNomina","_useState11","_useState12","setShowModalQR","menu","formalizaMenuPorTipoNomina","list","m1","PeriodosID","items","permiteMenu","nombreMenu","permite","fn","sm","info","incidenciasAut","QR","NavLink","exact","activeClassName","el","LeftsidebarTrabs","Card","NumberFormat","displayType","thousandSeparator","prefix","decimalScale","moment","format","alignItems","flexDirection","classNameSrc","maxWidth","getWelcomeMessageAction","getVarShowOptionsAction","newSever","VarShowOptions","getVacationsAction","Vacations","getMessagesAction","Messages","getGetIncidenciasAlertaAction","nominaData","nomina","nominaError","welcomeMessageData","welcomeMessage","welcomeMessageError","employeeVacationsData","employeeVacations","employeeVacationsError","vacationsExpirationData","vacationsExpiration","vacationsExpirationError","varShowOptionsData","varShowOptions","varShowOptionsError","incidentAlertData","incidentAlert","incidentAlertError","vacationsData","vacations","vacationsError","messagesData","messagesError","incidentsReportData","incidentsReport","incidentsReportError","loadGraph","setLoadGraph","noGraph","setNoGraph","setData","pendingSurvey","setPendingSurvey","showModal","setShowModal","_useState13","_useState14","modalData","setModalData","_useState15","VacacionesVencer","MensajeAlPersonal","_useState16","showned","setShowned","_useState17","_useState18","filterType","setFilterType","_useState19","_useState20","chart","setChart","_useState21","_useState22","showModalVacations","setShowModalVacations","_useState23","_useState24","_useState25","_useState26","modalVacations","setModalVacations","_useState27","_useState28","_useState29","_useState30","dataVSO","setDataVSO","_useState31","_useState32","dataAllNomina","setDataAllNomina","reglaMapNominas1","Mostrar","reglaFiltroNominas1","validateSurveys","valoresConfig","alertIncidents","_props$incidentAlertD","tableTemplate","class","_getParams2","dataSend2","procesarModalData","expirations","_showned","cerrarModalData","mensajes","fa","fv","strFa","strFv","_props$employeeVacati","_props$incidentsRepor","danArr","filters","sort","b","check","destroy","totalArray","min","Math","max","round","myChart","Chart","labels","datasets","label","toFixed","backgroundColor","borderColor","borderWidth","lineTension","options","legend","scales","yAxes","suggestedMin","ticks","callback","toLocaleString","currency","tooltips","callbacks","tooltipItem","yLabel","diasDisponibles","fechaHoy","fechaAniversario","getMonth","fechaVencimiento","setFullYear","difference","getTime","totalDays","ceil","nuevos","reciente","msgText","onChangeFilterType","getVacationExpiration","_getParams4","dataSendExpired","getMessagesToPersonal","_getParams5","shown","Leftsidebar","SiBalance","overflow","ReactQuill","theme","readOnly","modules","toolbar","movimientos","i1","getYearsOptions","mov","exists","opt","padStart","getPeriodOptions","getTiposNominaOptions","defaultValue","typeOptions","getTypeOptions","height","pointerEvents","getNextInfoUserAction","getSaveInfoExtraAction","saveInfoExtraData","saveInfoExtra","saveInfoExtraError","setValues","addToast","useToasts","hasError","setHasError","send","appearance","autoDismiss","handleInputChange","event","handleChangeValue","preventDefault","padding","margin","LigaPBInfoAdicional","inputs","form_inputs","getdetalleNominaAction","DetalleNomina","detalleNominaData","detalleNominaError","paginaActual","limitePagInferior","limitePagSuperior","registrosPagina","registrosTotales","bloqueActual","limiteBloqueInferior","limiteBloqueSuperior","paginasBloque","multiplosBloque","_handleRowClick","maxHeight","table","_React$createElement","payroll_table","getUrlPdfAction","UrlPdf","getUrlXmlAction","UrlXml","GetValoresConfigAction","notFound","ValoresConfig","Table","IsNullOrWhiteSpace","this","getConsultaVarFirmaAction","getConsultaFirmaAction","getActualizaFirmaAction","urlPdfData","urlPdf","urlPdfError","urlXmlData","urlXml","urlXmlError","consultaVarFirmaData","consultaVarFirma","consultaVarFirmaError","consultaFirmaData","consultaFirma","consultaFirmaError","actualizaFirmaData","actualizaFirma","actualizaFirmaError","getValoresConfigData","getValoresConfig","getValoresConfigError","setDetails","tables","setTables","setXml","pdf","setPdf","msgXml","setMsgXml","msgPdf","setMsgPdf","isSigned","setIsSigned","showCptsVirtuales","setShowCptsVirtuales","ReciboPDF1","ReciboPDF2","etiquetaRecibo","setEtiquetaRecibo","getdetalleNomina","getConsultaVarFirma","getUrlXml","getConsultaFirma","getUrlPdf","dato","downloadXml","res","_server","blob","download","_tables$virtualesDedu3","_tables$virtualesPerc3","showCheckCptsVir","showRecibos","TableSum","_tables$persepciones","_tables$deducciones","deductions","diff","perceptions_table","_tables$deducciones2","_tables$persepciones2","perceptions","deductions_table","marginBottom","checked","htmlFor","_tables$virtualesPerc","_tables$virtualesDedu","virtualPercepcion_table","_tables$virtualesDedu2","_tables$virtualesPerc2","virtualDeduccion_table","handleAuthorizeDownload","disabled","xmlImage","pdfImage","getMovimientosImssAction","Imss","movimientosImssData","movimientosImss","movimientosImssError","imss_table","getDetalleImssAction","DetalleImss","changeColor","detalleImssData","detalleImss","detalleImssError","useParams","contrato","fechaMov","motivo","getMovimientosInfonavitAction","MovInfonavit","infonavitData","movimientosInfonavit","infonavitError","infonavit_table","getDetalleInfonavitAction","DetalleInfonavit","detalleInfonavitData","detalleInfonavit","detalleInfonavitError","tipoDescuento","numCredito","valor","messages_table","getMessagesDetailAction","MessagesDetail","messagesDetailData","messagesDetailError","_props$messagesDetail","getMyMessagesARHAction","MyMessagesARh","myMessagesRhData","myMessagesRh","myMessagesRhError","requests_table","messageARHAction","MessageARH","mesageaRhData","messageaRH","mesageaRhError","form","_handleInput","onSubmit","placeholder","rows","dangerouslySetInnerHTML","__html","regEx","newText","txt","customTransform","getCancelVacationsEulenAction","getAuthorizeCancelVacationsAction","AuthorizeCancelVacations","generaRptPDFCtrlVacacionesAction","UrlReport","cancelVacationsEulenData","cancelVacationsEulen","cancelVacationsEulenError","generaRptPDFCtrlVacacionesData","generaRptPDFCtrlVacaciones","generaRptPDFCtrlVacacionesError","authorizeCancelVacationsData","authorizeCancelVacations","authorizeCancelVacationsError","showTable","setShowTable","vacationExpiration","setVacationExpiration","setValoresConfig","dataModal","setDataModal","setMotivo","GetValoresConfig","antiguedad","diasDisfrutados","diasTomados","totalDiasVacacionales","vacacionesProporcionales","diasDisponiblesProporcionales","downloadUrl","_getParams3","seccion","variable","rejectButton","confirmButton","haveComment","_handleCloseModal","_getParams10","permitirSolicitar","totalVacacionesConsolide","required","autoFocus","_getParams8","_getParams9","_handleConfirmModal","float","_getParams6","downloadReport","reduce","vacacionesPendientesConsolide","proporcionales","_props$vacationsData","_props$vacationsData$","cancelaciones","solCancelacion","canCancel","itemFechaVacacion","cancelacion","whiteSpace","vacations_table","validateDates","cancelations_table","getDiasBloqueadosAction","GetDiasBloqueados","getSkipWeekendAction","skipWeekend","getCatIncidentsAction","action","CatIncidents","resetStore","changeValidateError","store","validateErrorData","validateError","selectedDays","setSelectedDays","ivalid","disabledDays","setDisabledDays","selectedMonth","setSelectedMonth","lockedDays","setLockedDays","getDiasBloqueados","request2","getUTCFullYear","validateDay","_callee2","formatedDate","_context2","valid2","modifiers","disabledDayss","DayPicker","weekdaysShort","onDayClick","_ref2","selDays","selectedIndex","findIndex","selectedDay","DateUtils","isSameDay","selectedDisabled","validated","selectedDisableIndexs","onMonthChange","month","skipWeekendData","skipWeekendError","from","rangeSelected","setRangeSelected","setEnabledDays","_resetDates","resetDates","handleDayClick","range","arrDays","enabled","_day","addDayToRange","getDaysArray","equalDate","_handleReset","setInitialDate","setFinalDate","dayStart","monthStart","monthEnd","dayEnd","_x3","vacationDays","setVacationDays","incidentsDays","setIncidentsDays","pendingAuthDays","setPendingAuthDays","setVacationsData","showTooltip","setShowTooltip","tooltipDates","setTooltipDates","vacaciones","equalDates","inicio","fin","setDays2","skipWeekends","setDays1","onSelectedMonth","filterMonth","arrEstatus","vacation","incidents","pendingAuth","m","getDay","formatDate","leftDay","isDate","DD","MM","YYYY","date1","date2","allDisabledDays","renderTooltip","rowForBox","boxStyle","border","weekdaysLong","onSelectedDays","renderDay","tooltip","Tooltip","tooltipDay","onMouseOver","onMouseLeave","visibility","borderRadius","renderContainerTooltip","setIsKrones","compareIfWeekend","forceReset","onSelectedInitialDate","onSelectedFinalDate","_disabledDays","insertVacationsAction","InsertVacations","getValidaFechasAction","insertInsertVacationsData","insertVacations","insertInsertVacationsError","getDiasBloqueadosData","getDiasBloqueadosError","catIncidentsData","catIncidents","catIncidentsError","validaFechasData","validaFechas","validaFechasError","vacationTypeDate","setVacationTypeDate","setSelectedDisabled","validateDays","setValidateDays","initialDate","finalDate","setSkipWeekends","setVacaciones","setResetDates","_useState33","_useState34","_useState35","_useState36","WEEKDAYS_LONG","_useState37","_useState38","setIncidents","_useState39","_useState40","incident","setIncident","getVacaciones","getCatIncidents","diasValidos","asyncFetch","diasBloqueados","getSkipWeekend","cat","_params","_handleSubmitDates","requests","dates_params","_handleOpenModal","_selectedDays","cadenafechas","handleDropdownData","idx","typesIncident","opti","_renderOptions","DatePickerSelector","DatePickerMultiSelector","initial","DatePickerAvaibleSelector","DatePickerAvaibleMultiSelector","getControlVacationsAction","generaReporteCtrlVac1Action","controlVacationsData","controlVacationsError","generaReporteCtrlVac1Data","generaReporteCtrlVac1","generaReporteCtrlVac1Error","isCtrlVacEmplV2","setIsCtrlVacEmp2","setControlVacations","getControlVacations","ctrlVacs","showColumns","PERIODO","ANTIGUEDAD","ANIVERSARIO","DIAS_OTORGADOS","DIAS_PROPORCIONALES","DIAS_DISFRUTADOS","DIAS_PENDIENTES","VENCIMIENTO","DIAS_PERDIDOS","head","CtrlVacionEmpleadoDatosAction","CtrlVacionEmpleadoDatos","CtrlVacacionesEmpleadoV4Action","CtrlVacacionesEmpleadoV4","ctrlVacionEmpleadoDatosData","ctrlVacionEmpleadoDatos","ctrlVacionEmpleadoDatosError","ctrlVacacionesEmpleadoV4Data","ctrlVacacionesEmpleadoV4","ctrlVacacionesEmpleadoV4Error","vacacionDatos","setVacacionDatos","ctrlVacacion","setCtrlVacacion","EsDiasVencidosSindicato","mostrarColumna","setMostrarColumna","delay","time","getDatosVacacion","getCtrlVacacion","_mostrarColumna","objDVS","sendQuejaMessageAction","QuejaResponse","quejaData","quejaMessage","quejaError","storage","localStorageValue","typeUser","getEmpleadosAlMandoAction","EmpleadosAlMando","AuthorizersAction","Authorizers","SendEmailsAction","json","Response","responseJson","SendEmails","EmpleadosPerdiemAction","EmpleadosPerdiem","empleadosAlMandoData","empleadosAlMando","empleadosAlMandoError","empleadosPerdiemData","empleadosPerdiem","empleadosPerdiemError","authorizersData","authorizers","authorizersError","empleados","setEmpleados","consultaNivelAutorizante","paramss","paramsAuthorizers","results","_handleEmployeeHistroy","centerId","centroDescripcion","NAME","GetPerdiemAction","GetPerdiem","GetPreviewAction","employeeId","GetPreview","AuthorizeRejectAction","AuthorizeReject","EditPerdiemAction","EditPerdiem","TitleReport","RejectChiefAction","RejectChief","AuthorizeChiefAction","AuthorizeChief","GetPreviewCanceledAction","GetPreviewCanceled","GetPreviewAuthorizedAction","GetPreviewAuthorized","employeeMovNomAction","EmployeeMovNom","getPerdiemData","getPerdiem","getPerdiemError","rejectChiefData","rejectChief","rejectChiefError","authorizeChiefData","authorizeChief","authorizeChiefError","getPreviewData","getPreview","getPreviewError","authorizeRejectData","authorizeReject","authorizeRejectError","getPreviewCanceledData","getPreviewCanceled","getPreviewCanceledError","getPreviewAuthorizedData","getPreviewAuthorized","getPreviewAuthorizedError","employeeMovNomData","employeeMovNom","employeeMovNomError","editPerdiemData","editPerdiem","editPerdiemError","thisYear","reportsService","setReportsService","messageReject","setMessageReject","tab","setTab","monthSelected","setMonthSelected","dataPreview","setDataPreview","showServices","setShowServices","messagePreview","setMessagePreview","modifyOS","setModifyOS","backupDataPreview","setBackupDataPreview","showModalPreview","setShowModalPreview","dataModalPreview","setDataModalPreview","showTabCanceled","setShowTabCanceled","dataPreviewCanceled","setDataPreviewCanceled","showTabAuthorized","setShowTabAuthorized","dataPreviewAuthorized","setDataPreviewAuthorized","showModalAuthorize","setShowModalAuthorize","dataModalAuthorize","setDataModalAuthorize","_useState41","_useState42","authorizeOne","setAuthorizeOne","_useState43","_useState44","authorizeTwo","setAuthorizeTwo","DatePreview","mes","getList","nextMonth","monthNumber","backMonth","monthSel","_props$getPerdiemData","_props$getPerdiemData2","_props$getPerdiemData3","_props$getPerdiemData4","_props$authorizeChief","_props$authorizeChief2","preview","_props$employeeMovNom","_props$employeeMovNom2","_props$employeeMovNom3","dataAuthorize","authorize","authorizePreview","modalDataAuthorize","_getParams7","dataSend","seeReport","report","renderStatus","itemId","handleReject","bodyTwo","prepareMessages","messagesss","renderTablePreview","dataToTable","activeInputs","reports","concept","client","city","rs","minWidth","os","handleInputOS","perdiem_request_id","osPrevious","authorized","cumulative","messageRole3","messageRole4","messageRole5","messageRole6","newOS","bdp","newDataPreview","newModifyOS","mo","sended","endEditionOS","editPerdiemRequest","osModified","osModifiedBy","osModifiedDate","_props$dataUserData2","_props$dataUserData2$","useNew","dataMessage","email","rejectPerdiem","_props$dataUserData3","_props$dataUserData3$","_props$dataUserData4","_props$dataUserData4$","authorizePerdiem","cellspacing","orderNo","technicalName","clientName","cityClient","created_at","updated_at","rejectMessage","aria-label","data-target","Row","setShow","textOverflow","AfilIndividualizadoAction","AfilIndividualizado","afilIndividualizadoData","afilIndividualizado","afilIndividualizadoError","collapsed","setCollapsed","afilPersonal","setAfilPersonal","datosPersonales","setDatosPersonales","getDataUser","aria-controls","ConceptsAction","Concepts","DeletePerdiemAction","DeletePerdiem","GeneratePerdiemAction","dataReport","GeneratePerdiem","getDataChiefAction","DataChief","deletePerdiemData","deletePerdiem","deletePerdiemError","generatePerdiemData","generatePerdiem","generatePerdiemError","sendDataChiefData","sendDataChief","sendDataChiefError","conceptsData","concepts","conceptsError","setMessages","setConcepts","paramsToGetChief","newConcept","perdiemRes","previewData","dat","allValues","option","validateSelect","messagesArray","objPrev","handleDelete","generate","workReport","isComplete","rep","startHour","_props$getPerdiemData5","numOrdenes","_handleSign","renderSelector","dataConcept","dataSelect","_props$getPerdiemData6","_props$getPerdiemData7","folios","numberFolio","folio","PerdiemData","cellSpacing","messageRol3","messageRol4","messageRol5","messageRol6","CreatePerdiemAction","CreatePerdiem","SignPerdiemAction","SignPerdiem","getEmpleadoJornadaAction","IdPerdiemAction","IdPerdiem","styleInput","outline","ServiceCodeAction","ServiceCode","createPerdiemData","createPerdiem","createPerdiemError","signPerdiemData","signPerdiem","signPerdiemError","empleadoJornadaData","empleadoJornada","empleadoJornadaError","idPerdiemData","idPerdiem","idPerdiemError","servCodePerdiemData","serviceCode","servCodePerdiemError","canvasTest","canvasTest2","setDataReport","dataReportSaved","setDataReportSaved","setType","setdisabled","isSign","setIsSign","emails","setEmails","noDates","setNoDates","arrayValid","normal","extraN","nocturna","weekEnd","viaje","viajeNormal","viajeExtra","viajeExtraN","viajeNocturna","viajeWeekEnd","totalHours","setTotalHours","noMachine","contactClient","ocupation","projectCoordinator","typeWork","errors","setErrors","codeComing","setCodeComing","checkProperties","_props$location","_props$location$state","_props$location2","_props$location2$stat","_props$location3","_props$location3$stat","_props$location4","_props$location4$stat","_props$location5","_props$location5$stat","_props$location6","_props$location6$stat","datasUser","oderDataUser","observations","finishHour","pause","machineNumber","out","arrival","address","street","colony","cp","country","ahr","tvs","resume","REK","dataRepo","updateHours","toSave","_dataReport$data","newTotal","newV","newS","newDataReport","dates","_props$createPerdiemD","_props$empleadoJornad","_props$idPerdiemData","reportId","comming","procesarServicioReporte","_dataReport$data10","_dataReport$data10$ad","_dataReport$data11","_dataReport$data11$ad","_dataReport$data12","_dataReport$data13","_dataReport$data13$ad","_dataReport$data14","_dataReport$data14$ad","_dataReport$data15","_dataReport$data15$ad","_dataReport$data16","_dataReport$data17","_dataReport$data18","_dataReport$data19","_dataReport$data20","_dataReport$data21","_dataReport$data22","_dataReport$data23","_dataReport$data23$te","_dataReport$data23$te2","_dataReport$data24","_dataReport$data25","_dataReport$data26","_dataReport$data27","_dataReport$data28","_dataReport$data29","_dataReport$data30","_dataReport$data31","_dataReport$data31$ah","_dataReport$data32","_dataReport$data32$ah","_dataReport$data33","_dataReport$data33$ah","_dataReport$data34","_dataReport$data34$ah","_dataReport$data35","_dataReport$data35$ah","_dataReport$data36","_dataReport$data36$ah","_dataReport$data37","_dataReport$data37$ah","_dataReport$data38","_dataReport$data38$ah","_dataReport$data39","_dataReport$data39$ah","_dataReport$data40","_dataReport$data40$ah","_dataReport$data41","_dataReport$data41$ah","_dataReport$data42","_dataReport$data42$ah","_dataReport$data43","_dataReport$data43$ah","_dataReport$data44","_dataReport$data44$ah","_dataReport$data45","_dataReport$data45$ah","_dataReport$data46","_dataReport$data47","_dataReport$data48","_dataReport$data49","_dataReport$data50","_dataReport$data51","timeTravel","handleSubmit","_dataReport$data2","_dataReport$data3","_dataReport$data4","base64","base642","emailsArray","arrSign","canvasContainer","childNodes","toDataURL","nombreCliente","jobTitle","signDate","signature_1","signature_2","mails","handleInput","newReport","autoAsignWhen","assigOther","toLocaleLowerCase","dateSelect","_value$target","_value$target2","newWorkReport","_x4","newAhr","renderSelectorTime","borderBottomColor","renderSelectorTimeTrabel","renderRows","_dataReport$data5","scope","onfocus","onKeyDown","validateDateSelect","renderSelectorPause","deleteRow","_data$data","duration","asHours","newTotalHours","saveDayInRange","orderByType","order","isSBS","ranges","add","addHours","saveDuration","property","rangesViaje","saveDayPause","renderInput","paramName","tittleParam","fontWeight","onKeyUp","renderInputTwo","handleSend","_props$location7","_props$location7$stat","newErrors","success","validateData","getServiceCode","validateGeneralFields","validateWorkReportFields","_dataReport$data7","x","_dataReport$data8","_dataReportSaved$data","dataServCode","currentCode","_props$sendDataChiefD","_dataReport$data9","boss","getTransaltedField","mainFields","secondaryFields","missedFields","row","iR","missed","fila","fields","paramInvalid","zoom","renderSelectorOcupation","borderRight","solid","borderBottom","verticalAlign","paddingLeft","marginRight","_dataReport$data6","addRow","colSpan","rowspan","handleSelect","isInteger","borderStyle","CanvasDraw","lazyRadius","brushRadius","brushColor","hideGrid","_props$location8","_props$location8$stat","actualice","getCatIncidenciasKronesAction","IncidenciasKrones","getVacationsActionV2","VacationsV2","GetIncidenciasConfigAction","GetIncidenciasConfig","IniciaIncidenciaConfigEventoAction","IniciaIncidenciaConfigEvento","CancelaIncidenciaConfigEventoAction","CancelaIncidenciaConfigEvento","UpdateIncidenciasConfigAction","UpdateIncidenciasConfig","GetIncidenciasRazonesAction","GetIncidenciasRazones","incidenciasKronesData","incidenciasKrones","incidenciasKronesError","getIncidenciasConfigData","getIncidenciasConfig","getIncidenciasConfigError","iniciaIncidenciaConfigEventoData","iniciaIncidenciaConfigEvento","iniciaIncidenciaConfigEventoError","cancelaIncidenciaConfigEventoData","cancelaIncidenciaConfigEvento","cancelaIncidenciaConfigEventoError","updateIncidenciasConfigData","updateIncidenciasConfig","updateIncidenciasConfigError","getIncidenciasRazonesData","getIncidenciasRazones","getIncidenciasRazonesError","dataV2","setDataV2","incidenciasConfig","setIncidenciasConfig","incidenciasRazones","setIncidenciasRazones","formularioIncidencia","setFormularioIncidencia","warnings","setWarn","showCancelModal","setShowCancelModal","FaltaID","_handleCancelationCloseModal","handleIncidentEvent","handleOpenModal","handleCloseModal","_getParams11","text2","text1","ix","_renderSelector","catRazones","invalidoE1","FechaIncial","invalidoE2","fechaIncial","_handleConfirmCancelationModal","cancelacionIncidencia","solCancelIncidencias","incidents_tableV2","incidents_table","catIncidentsConfig","vencimientoSL","tryDate","strFecha","m2","incidentsConfig_table","getInsertIncidentsAction","InsertIncidents","insertIncidentsData","insertIncident","insertIncidentsError","incidentTypeDate","setIncidentTypeDate","_useState45","_useState46","getTBodyIncidencias","showDelete","setStatus","onChangeDate","DatePicker","dateFormat","placeholderText","new_date","GetincidenciasAspenAction","GetincidenciasAspen","getincidenciasAspenData","getincidenciasAspenError","setIncidenciasAspen","diasHorasPermiso","setDiasHorasPermiso","fechaReposi","setFechaReposi","setFecha","horaEstimada","setHoraEstimada","horaReal","setHoraReal","horaSalida","setHoraSalida","setFile","_useState47","_useState48","_useState49","_useState50","_useState51","_useState52","_useState53","_useState54","horasFechasForm5","setHorasFechasForm5","filtrosValidos","formulario","_diasHorasPermiso","noGetincidenciasAspen1","noGetincidenciasAspen2","_selectDays","monitorearFechasForm5","incidencia_id","strDates","Horas","horas","horasFechas","MomentFecha","swichData","getFile","renderMotivos","FileBase64","multiple","onDone","maxHorasPermiso","pattern","onKeyPress","evt","which","number","handleFechasForm5","fechas","getFechasSeleccionadas","nvoItem","LabelFecha","fnItem","fl","element","maximo","arrStr","mssg","getConsultaArchivosAction","getLog_RegistraDescargaArchivoAction","consultaArchivosData","consultaArchivos","consultaArchivosError","log_RegistraDescargaArchivoData","log_RegistraDescargaArchivo","log_RegistraDescargaArchivoError","logDownload","fileName","consultArchivos","_props$consultaArchiv","downloadLink","downloadBase64","data_table","OperatorLeftsidebar","EmployeeLeftsidebar","LigaFondoEmpleado","LigaFondoEmpleadoJefe","LigaFondoOperador","getDeletePersonalFilesAction","getDocumentsTypeAction","ObtenerTipoDocumento","getConsultaArchivosPersonalesPorTrabajadorAction","insertGuardaArchivoPersonalAction","documentTypeData","documentType","documentTypeError","consultaArchivosPersonalesPorTrabajadorData","consultaArchivosPersonalesPorTrabajador","consultaArchivosPersonalesPorTrabajadorError","deletePersonalFilesData","deletePersonalFiles","deletePersonalFilesError","guardaArchivosPersonalesData","guardaArchivosPersonales","guardaArchivosPersonalesError","encryptedData","decryptedJson","trabIdValue","userString","uploadType","setFileName","fileBased64","setFileBased64","existFiles","setExistFiles","dataDocumentType","setDataDocumentType","selectedValue","setSelectedValue","fileUploaded","setFileUploaded","defaultOption","getBase64","reader","FileReader","readAsDataURL","onload","consultPersonalArchivos","savePersonalArchivos","file64","deletePersonalFilesFunc","idxFile","deleteMany","docType","arrdocs","geRecoveryPasswordAction","RecoveryPassword","xNA","isJson","dateWithOutTime","isTrue","setHours","toISOString","enableSecurityPolicy","urlApiIdentity","urlApiPermisos","simplifyEmail","emp","callWebApi","controller","middleUrl","middleMethod","urlRequest","initOptions","auth","datos","_args","esExitosa","tipoError","ok","identityAuthentication","userName","xUserAdmin","xEmailAdmin","password","xPasswordAdmin","xToken","unifiedResponseErrors","_errors","identityGetEmail","identityGet","_x9","identityCreate","vigencia","_x10","_x11","_ref6","_callee6","_context6","_x14","identityUpdatePassword","_ref7","_callee7","_context7","currentPassword","validateCurrentPassword","validateNewPassword","ValidateHistoryPassword","TakeHistoryPassword","ValidateContinuosCharsPassword","ValidateConsecutiveCharsPassword","_x15","_x16","identityAddUserRole","_ref8","_callee8","_context8","_x17","_x18","_x19","rolesGetRolesUser","_ref9","_callee9","_context9","_x20","_x21","sicossHistoricoPWDGet","_ref10","_callee10","_context10","_x22","_x23","sicossHistoricoPWDCreate","_ref11","_callee11","hoy","_context11","fechaPwd","_x24","_x25","usuariosList","_ref12","_callee12","_context12","_x26","usuariosCreate","_ref13","_callee13","today","_context13","sexo","forzarCambioPwd","fechaAlta","fechaCambioPwd","diasVigenciaPwd","estatus","forzarDiasInactivo","limiteDiasInactivo","ultimaActividad","_x27","_x28","usuariosUpdatePWD","_ref14","_callee14","_context14","userSicoss","userIdentity","_x29","_x30","usuariosUpdateUltimaActividad","_ref15","_callee15","_context15","pwd","_x31","_x32","usuariosUpdateUserInfo","_ref16","_callee16","_context16","_x33","_x34","getSicossUsuarios","_ref17","_callee17","_context17","getDatosSicossUsuario","_ref18","_callee18","usuarios","_context18","clienteId","_x35","_x36","updateLastActivity","_ref19","_callee19","sicossUsuario","updateUltAct","_context19","_x37","_x38","configureIdentity","_ref20","_callee20","userData","firstAccessOrReset","_args20","_context20","firstName","lastName","passwordDec","validatePassword","configureUsuario","newPassword","confirmPassword","_x39","_x40","_x41","_ref21","_callee21","_data","_args21","_context21","politicaS","_x42","_x43","_x44","_x45","configureNewPassword","_ref22","_callee22","confirmNewPassword","siConsultaPwd","getEmail","historicoPwd","pwds","updatePwd","_args22","_context22","exito","pwdh","_x46","_x47","_x48","_x49","_x50","getTermCondAction","TermsCond","termData","termCond","termError","terms","setTerms","TermCond","flatMap","data-dismiss","getPrivacyNoticeAction","AvisoPriv","avisoData","privacyNotice","avisoError","aviso","setAviso","avisoTmp","getDateAddSeconds","numOfSeconds","setSeconds","getSeconds","clearItemsExp","removeItem","getItemExp","_key","setItemExp","_value","setItem","isExpiredDates","logInExpiration","setLogInDateAndExpiration","segundos","logInDate","AutoLogin","isLogged","LoginV2Action","dataToSave","encrypt","toHtmlEntities","charCodeAt","getBlockUserAction","getCompaniesListAction","recoverPwdByEmailAction","RecoverPwdByEmail","companiesData","companies","companiesError","recoveryPasswordData","recoveryPassword","recoveryPasswordError","blockUserData","blockUser","blockUserError","recoverPwdByEmailData","recoverPwdByEmail","recoverPwdByEmailError","formReset","setResetValues","setScript","setSicossUsuario","identitySuccessLogIn","setIdentitySuccessLogIn","attemptsLogInSP","setAttemptsLogInSP","getCompaniesList","whenLogInSuccess","whenLogInError","_loginData$Login","_loginData$Login2","_loginData$Login3","_loginData$Login4","_loginData$Login5","secondsExpiration","dataToSave2","firstAccess","firstChange","_sicossUsuario","InfoUserLogin","openFirstAccessOrChange","_loginData$Login6","byExpired","eightPassword","pwd_length","encByExpired","_objectSpread2","passDec","handleInput2","_login","_sicossUsuario2","_reset","TerminosCondiciones","AvisoPrivacidad","backgroundImage","backgroundPosition","left","top","validateFormatPassword","hasUpperCase","hasNumber","containCharacter","test","uploadPasswordAction","UpdatePassword","uploadPasswordData","updatePassword","uploadPasswordError","Pregunta","OchoCaracteres","Token","processSuccess","setProcessSuccess","confirm_password","new_password","configure","_getUserInfo","answer","_handleSecurityPolicy","_loginData","_form","usuario","eightCharacters","substring","rpns","getAdminMenuAction","setMenu","getInfoExtra","Switch","Route","RecoverPassword","Error404","Home","Payroll","PayrollDetail","ImssDetail","Infonavit","InfonavitDetail","VacationsRequest","VacationsControl","VacationsControlV2","Sibalance","Requests","RequestsCreate","RequestsDetail","Complaints","ComplaintHistory","ComplaintHistoryDetail","ReportService","ReportServiceEmpleado","ReportControl","DetailReport","Incidents","IncidentsV2","IncidentRequest","DownloadFiles","CajaAhorro","UploadFiles2","msgData","setMsgData","getRequestVacationsAllAction","RecuestVacationsAll","AuthorizeVacationsAction","AuthorizeVacations","RejectVacationsAction","RejectVacations","requestVacationsAllData","requestVacationsAll","requestVacationsAllError","allRequests","setAllRequests","pendiente1","pendiente2","SystemAdminLeftsidebar","seeVacationsAction","getCommentRejectVacationsAction","CommentRejectVacations","authorizeVacationsData","authorizeVacations","authorizeVacationsError","seeVacationsData","seeVacations","seeVacationsError","commentRejectVacationsData","commentRejectVacations","commentRejectVacationsError","comment","setComment","setAction","sortByNewest","setSortByNewest","loadData","_handleRowClickCancel","_handleRowClickCancel0","combinedData","cancelacionGroup","solicitadoGroup","otherGroup","sortedCancelacionGroup","sortedSolicitadoGroup","combined_table","getVacationsMassiveAction","getAuthorizeVacationsMassiveAction","getRejectVacationsMassiveAction","RejectVacationsMassive","vacationsMassiveData","vacationsMassive","vacationsMassiveError","authorizeVacationsMassiveData","authorizeVacationsMassive","authorizeVacationsMassiveError","rejectVacationsMassiveData","rejectVacationsMassive","rejectVacationsMassiveError","tableFilter","setTableFilter","selectedRequests","setSelectedRequests","resultErrors","setResultErrors","checkResults","errorsJsx","correct","handleSelectRequest","handleButtons","_props$vacationsMassi","pending_vacations_table","AuthorizeIncidentAction","AuthorizeIncident","RejectIncidentAction","RejectIncident","getAuthorizeCancelIncidentsAction","AuthorizeCancelIncidents","getRejectCancelIncidentsAction","RejectCancelIncidents","authorizeIncidentData","authorizeIncident","authorizeIncidentError","rejectIncidentData","rejectIncident","rejectIncidentError","authorizeCancelIncidentsData","authorizeCancelIncidents","authorizeCancelIncidentsError","rejectCancelIncidentsData","rejectCancelIncidents","rejectCancelIncidentsError","_handleCancelConfirmModal","handleModalFunction","FirmComponent","canvasFirm","hidden","canvasWidth","canvasHeight","DAYS","Employee","_dataReport$data2$add","_dataReport$data3$add","_dataReport$data5$add","_dataReport$data6$add","_dataReport$data7$add","_dataReport$data13$te","_dataReport$data13$te2","_dataReport$data19$ah","_dataReport$data20$ah","_dataReport$data21$ah","input","getElementById","jsPDF","html2canvas","allowTaint","seCORS","useCORS","canvas","imgData","getElementsByClassName","addImage","ret","output","count","orComparison","andComparison","for","getVacationsDirectAction","vacationsDirectData","vacationsDirect","vacationsDirectError","sideBar","setSideBar","RHVacationLeftsidebar","_props$vacationsDirec","responded_vacactions_table","getVacationsMassiveDirectAction","getAuthorizeVacationsMassiveDirectAction","getRejectVacationsMassiveDirectAction","RejectVacationsMassiveDirect","vacationsMassiveDirectData","vacationsMassiveDirect","vacationsMassiveDirectError","authorizeVacationsMassiveDirectData","authorizeVacationsMassiveDirect","authorizeVacationsMassiveDirectError","rejectVacationsMassiveDirectData","rejectVacationsMassiveDirect","rejectVacationsMassiveDirectError","filtered","fi","getReportRHVacDirectAction","reportRHVacDirectData","reportRHVacDirect","reportRHVacDirectError","initDate","setInitDate","open","minDate","vacationsCalendarAction","VacationsCalendars","localizer","momentLocalizer","vacationsCalendarData","vacationCalendar","vacationsCalendarError","events","setEvents","year","loadEmpleadosAlMando","loadVacations","employees","defaultView","views","popup","culture","tooltipAccessor","eventPropGetter","components","getDeptosCenterAction","DeptosCenter","deptosCenterData","deptosCenter","deptosCenterError","setCentros","centrosSel","setCentrosSel","tecnicos","setTecnicos","tecnicosSel","setTecnicosSel","ocupaciones","setOcupaciones","ocupacionesSel","setOcupacionesSel","blobRpt","setBlobRpt","setFiltersOptions","departamentosCentros","opcionesFiltrosPerdiemData","getOptionsPerdiemRequestsAction","generaRptVacacionIncidenciaData","UrlRpt","generaRptVacacionIncidenciaError","GeneraRptVacacionIncidenciaAction","tmpObject","_yield$getFilterOptio","getFilterOptions","newParams","generaReporte","_ref5","_callee5","_context5","centroCostos","mesReporte","imprimirMesesConsultados","meses","fechaA","fechaB","setMonth","downloadXLS","DirectorGralLeftsidebar","Select","styles","provided","getOptionsCentros","selectCentro","isMulti","noOptionsMessage","getOptionsTecnicos","selectTecnico","getOptionsOcupaciones","selectOcupacion","xlsxImage","getJefesPerdiemAction","JefesPerdiem","getEmpleadosAllAction","EmpleadosAll","getEmpRepoAction","EmpRepo","ReportConvertAction","ReportConvert","getXlsPerdiemAction","GetXlsPerdiem","registerLocale","es","jefesPerdiemData","jefesPerdiem","jefesPerdiemError","empleadosAllData","empleadosAll","empleadosAllError","empRepoData","empRepo","empRepoError","reportConvertData","reportConvert","reportConvertError","getXlsPerdiemData","getXlsPerdiem","getXlsPerdiemError","deptos","setDeptos","centroSel","setCentroSel","deptoSel","setDeptoSel","jefes","setJefes","setJefe","empeladosSelect","setEmpleadosSelect","aditional","endDate","filtersOptions","setFilters","getCompaniesOptions","centrosS","sel","deptosS","ProcessData","sendDataToGetUrl","arrData","employee","dataS","dataEmp","emple","da","rek","getFilterOptionsFromState","selectOption","newCenters","getCenters","selectCenters","departamento","newdepartamento","dep","getDeptos","selectDeptos","newdboss","getBoss","selectBoss","jefeS","getEmpleados","empSel","selecEmpleados","showMonthYearPicker","locale","data-placeholder","getConsultaArchivosPersonalesJefeAction","consultaArchivosPersonalesData","consultaArchivosPersonales","consultaArchivosPersonalesError","noEmpleado","apellidoPaterno","apellidoMaterno","searchParams","setSearchParams","setMissedRecords","filteredInfo","VacationsAuthorization","VacationsAuthorizationDetail","VacationRequestsMassive","EmployeeVacationsControl","EmployeeVacationsControlV2","AuthVacations","AuthVacationRequests","AuthReports","VacationsCalendar","IncidentsAuthorization","IncidentsRequestDetail","AccountingReport","ServiceReportsReport","TechnicalServicesConcentrate","DetailReportSee","DownloadDocument","RouterTrabs","HomeForeign","getSecurityQuestionAction","SecurityQuestion","securityQuestionData","securityQuestion","securityQuestionError","setInit","question","getChangePasswordAction","ChangePassword","changePasswordData","changePassword","changePasswordError","setEightPassword","setByExpired","_props$loginData","_props$loginData$Logi","tmp","old_password","FirstAccess","SecretQuestion","ChangePwd","companiesAction","Companies","licenseDataAction","dataLicense","DatosLicenciaResponse","DatosLicenciaResult","LicenseDataResponse","LicenseData","Movimientos","timbres","TimbresDisponibles","deadVigency","getPromotionsAction","licenseData","license","licenseDataError","promotionsData","promotions","promotionsError","countFinish","setCountFinish","dataUserGet","dataPromotions","licenseError","_props$licenseData","_props$licenseData$Li","ClienteSicoss","Empresa","justifyContent","getEditWelcomeMessageAction","editWelcomeMessageData","editWelcomeMessage","editWelcomeMessageError","setTitle","setMsg","configEditor","setConfigEditor","getAccessMethodAction","accessMethodData","accessMethod","accessMethodError","missedRecords","_props$accessMethodDa","_props$accessMethodDa2","missed_records_table","allUsers","option1","option2","option3","getRestartPasswordAction","getSearchEmployeeAction","getUnlockEmployeesAction","getChangePasswordEmployeeAction","restartPasswordData","restartPassword","restartPasswordError","searchEmployeeData","searchEmployee","searchEmployeeError","changePasswordEmployeeData","changePasswordEmployee","changePasswordEmployeeError","unlockEmployeeData","unlockEmployees","unlockEmployeeError","individualOption","setIndividualOption","setSearch","selectedUser","setSelectedUser","setPwd","employee_number","first_name","last_name","last_last_name","_props$changePassword","_props$restartPasswor","_props$restartPasswor2","_props$unlockEmployee","handleOption","handleSearch","changeButton","otherButtons","_loop","person","employees_table","getAdditionalFieldsAction","getDeleteAddFieldsAction","getSelectedAdditionalFieldsAction","additionalFieldsData","additionalFields","additionalFieldsError","deleteAddFieldsData","deleteAddFields","deleteAddFieldsError","selectedAdditionalFieldsData","selectedAdditionalFields","selectedAdditionalFieldsError","selectedFields","setSelectedFields","_props$deleteAddField","_props$additionalFiel","allFields","additional_fields","getReceiptGenerationEmployeeAction","receiptGenerationEmployeeData","receiptGenerationEmployee","receiptGenerationEmployeeError","csvData","setCsvData","_props$receiptGenerat","_props$receiptGenerat2","_props$receiptGenerat3","_props$receiptGenerat4","_props$receiptGenerat5","_props$receiptGenerat6","csv","maxDate","CSVLink","filename","graph","Morris","Area","xkey","ykeys","pointSize","fillOpacity","pointStrokeColors","behaveLikeLine","gridLineColor","lineWidth","hideHover","lineColors","resize","smooth","xLabelFormat","periodosNominaRhAction","PeriodosNominaRh","nominaRhData","nominaRhError","children","getTypesNominaAction","TypesNomina","getNominaPeriodsAction","NominaPeriods","getCalendarNominaAction","CalendarNomina","typesNominaData","getTypesNomina","typesNominaError","nominaPeriodsData","getNominaPeriods","nominaPeriodsError","calendarNominaData","getCalendarNomina","calendarNominaError","setForm","years","nextStep","setNextStep","periods","payrolls_type","_getData","payroll_type","period_id","company_type","selectedPeriod","updateData","_data$calendar","_handleForm","_objectSpread3","final","_render_options","option_data","form_item","option_value","option_print","payrolls_table","previousStep","getCentersNominaAction","CentersNomina","centersNominaData","getCentersNomina","centersNominaError","centers","setCenters","currentStep","previousData","actual_centers","centers_table","processNominaAction","ProcessNomina","processNominaData","processNomina","processNominaError","period_id_name","payroll_type_name","_processData","purgeDataUser","purgeNomina","generalData","setGeneralData","_handleUpdateData","StepWizard","isLazyMount","SelectCompany","SelectLocation","Summary","getAllMessagesToRhAction","AllMessagesToRh","allMessagesToRhData","allMessagesRh","allMessagesToRhError","getBuzonQuejasAction","buzonQuejasData","buzonQuejas","buzonQuejasError","complaints_table","getDeleteComplaintAction","getBuzonQuejasDetailAction","buzonQuejasDetailData","buzonQuejasDetalle","buzonQuejasDetailError","deleteComplaintData","deleteComplaint","deleteComplaintError","_props$buzonQuejasDet","getListCorporativeMessageAction","listCorporativeMessageData","listCorporativeMessage","listCorporativeMessageError","_props$listCorporativ","getCenterCatalogAction","CenterCatalog","getDeptsCatalogAction","DeptsCatalog","getJobCatalogAction","getNewCorporativeMessageAction","centersCatalogData","centersCatalog","centersCatalogError","deptsCatalogData","deptsCatalogError","jobCatalogData","jobCatalog","jobCatalogError","newCorporativeMessageData","newCorporativeMessage","newCorporativeMessageError","_props$newCorporative","RHSpecialLeftsidebar","addZero","getHours","getMinutes","getPositions","showTimeSelect","timeFormat","timeIntervals","getDetailCorporativeMessageAction","detailCorporativeMessageData","detailCorporativeMessage","detailCorporativeMessageError","_props$detailCorporat","getEditCorporativeMessageAction","editCorporativeMessageData","editCorporativeMessage","editCorporativeMessageError","_props$editCorporativ","getCalendarAction","calendarData","calendarError","formatEvents","eventos","horaInicio","horaFin","desc","instructor","lugar","startAccessor","endAccessor","previous","week","selectable","onSelectEvent","getVacationsRhVacationAction","vacationsRhVacationData","vacationsRhVacation","vacationsRhVacationError","_props$vacationsRhVac","getAdminMenuActivateAction","adminMenuActivateData","adminMenuActivate","adminMenuActivateError","optionsClicked","setOptionsClicked","autoDismissTimeout","isOn","allOptions","onOff","_props$adminMenuData","load","newOptions","LigaCajaAHistOperado","getVacationIncidentAction","ObtenerVacacionesIncidencias","filtroTipoSolicitud","setfiltroTipoSolicitud","filtrosAplicados","setFiltrosAplicados","OperatorLeftSideBar","getTablaIncidencias","PasswordsReset","Payrolls","CalculatePayrolls","CreatePayroll","PayrollReceipts","RequestDetail","NewMessage","EditMessage","ComplaintDetail","Menu","CajaAhorroHistorico","VacacionIncidentRequest","Salario","DirectorRoutes","isParametersFilled","defaultChecked","asyncFetch2","sendRespuestaQuejaAction","ComplaintResponse","respuestaQuejasData","complaintResponse","respuestaQuejasError","getAllUsersAction","getNewUserAction","getChangePasswordAdmin","ChangePasswordAdmin","getConsultaRolesAction","GetReportaExtranjerosAction","GetReportaExtranjeros","ActualizaUsuarioAction","ActualizaUsuario","EliminaUsuarioAction","EliminaUsuario","allUsersData","allUsersError","newUserData","newUser","newUserError","changePasswordAdminData","changePasswordAdminError","consultaRolesData","consultaRoles","consultaRolesError","getReportaExtranjerosData","getReportaExtranjeros","getReportaExtranjerosError","actualizaUsuarioData","actualizaUsuario","actualizaUsuarioError","eliminaUsuarioData","eliminaUsuario","eliminaUsuarioError","defectoValues","UserID","Contrasenia","ContraseniaAnt","ContraseniaNueva","actualiza","newPwd","setNewPwd","showModalNewUser","setShowModalNewUser","userChangePassword","setUserChangePassword","roles","setRoles","roleSelected","setRoleSelected","reportaExtranjeros","setReportaExtranjeros","reportaExtranjeroSelected","setReportaExtranjeroSelected","setAllUsers","Inicializar","rol","_props$allUsersData","_props$consultaRolesD","_props$consultaRolesD2","_props$consultaRolesD3","extranjeros","_handleOpenModalNewUser","itemEdit","_handleCloseModalNewUser","handleDeleteUser","cancel","_handleInputNewPwd","hide","ContraseniaNuevaConfirmacion","renderSelectorRole","renderSelectorReportaExtranjero","textDecoration","users_table","GetTBTipoEmpleadoAction","GetTBTipoEmpleado","GetFaltaTipoEmpleadoAction","GetFaltaTipoEmpleado","InsertFaltaTipoEmpleadoAction","InsertFaltaTipoEmpleado","DeleteFaltaTipoEmpleadoAction","DeleteFaltaTipoEmpleado","UpdateFaltaTipoEmpleadoAction","UpdateFaltaTipoEmpleado","getTBTipoEmpleadoData","getTBTipoEmpleado","getTBTipoEmpleadoError","getFaltaTipoEmpleadoData","getFaltaTipoEmpleado","getFaltaTipoEmpleadoError","insertFaltaTipoEmpleadoData","insertFaltaTipoEmpleado","insertFaltaTipoEmpleadoError","deleteFaltaTipoEmpleadoData","deleteFaltaTipoEmpleado","deleteFaltaTipoEmpleadoError","updateFaltaTipoEmpleadoData","updateFaltaTipoEmpleado","updateFaltaTipoEmpleadoError","showModalRelationship","setShowModalRelationship","setIncidencias","setTipoEmpleado","faltaTipoEmpleado","setFaltaTipoEmpleado","consumed","setConsumed","_handleCloseModalRelationship","_handleOpenModalRelationship","_handleDeleteRelationship","FTEID","TipoEmpleadoID","tpemp","_renderTablaFaltaTipoEmpleado","GetTBFaltaAction","GetTBFalta","InsertTBFaltaAction","InsertTBFalta","DeleteTBFaltaAction","DeleteTBFalta","UpdateTBFaltaAction","UpdateTBFalta","UpdateValorConfigAction","UpdateValorConfig","getTBFaltaData","getTBFalta","getTBFaltaError","insertTBFaltaData","insertTBFalta","insertTBFaltaError","updateTBFaltaData","updateTBFalta","updateTBFaltaError","deleteTBFaltaData","deleteTBFalta","deleteTBFaltaError","updateValorConfig","updateValorConfigData","updateValorConfigError","LoadingGif","loadingCheck","setLoadingCheck","showModalTBFalta","setShowModalTBFalta","optSolInc","optSolIncSelected","setOptSolIncSelected","tbFalta","setTBFalta","formSolicitudIncidencia","setFormSolicitudIncidencia","solInc","formalizaSolicitudIncidencia","Checked","Formulario","spl","_handleOpenModalTBFalta","IsUpdate","SolIncChecked","SolIncFormulario","_handleCloseModalTBFalta","_handleSolicitudIncidencias","SolInc","desFormalizaSolicitudIncidencia","actualizaSolicitudIncidencia","_handleDeleteTBFalta","copyForm","copyTBFalta","fe","solinc","_renderTablaTBFalta","GetTBAutorizadorFijoAction","GetTBAutorizadorFijo","InsertTBAutorizadorFijoAction","InsertTBAutorizadorFijo","UpdateTBAutorizadorFijoAction","UpdateTBAutorizadorFijo","DeleteTBAutorizadorFijoAction","DeleteTBAutorizadorFijo","getTBAutorizadorFijo","getTBAutorizadorFijoData","getTBAutorizadorFijoError","insertTBAutorizadorFijo","insertTBAutorizadorFijoData","insertTBAutorizadorFijoError","deleteTBAutorizadorFijo","deleteTBAutorizadorFijoData","deleteTBAutorizadorFijoError","updateTBAutorizadorFijo","updateTBAutorizadorFijoData","updateTBAutorizadorFijoError","tbAutorizadorFijo","setTBAutorizadorFijo","AsignarReporta","copyTBAutorizadorFijo","_renderTablaTBAutorizadorFijo","UpdateTBTipoEmpleadoAction","UpdateTBTipoEmpleado","updateTBTipoEmpleadoData","updateTBTipoEmpleado","updateTBTipoEmpleadoError","showModalTipoEmpleado","setShowModalTipoEmpleado","_handleCloseModalTipoEmpleado","_renderTablaTBTipoEmpleado","getEmployerRecordsAction","EmployerRecords","getEmployerRecordsPermitsAction","EmployerRecordsPermits","getInsertDeletePermitRPAction","employerRecordsData","employerRecordsError","employerRecordsPermitsData","employerRecordsPermitsError","insertDeletePermitRPData","insertDeletePermitRPError","setAuthorized","all","setAll","handleClickOption","permisos","permissions_table","getCenterPermitAction","CenterPermit","getInsertDeletePermitCenterAction","centersPermitsData","centersPermitsError","insertDeletePermitCenterData","insertDeletePermitCenterError","_props$centersCatalog","getDepartmentPermitsAction","DepartmentPermits","getInsertDeletePermitDeptoAction","departmentPermitsData","departmentPermitsError","insertDeletePermitDeptoData","insertDeletePermitDeptoError","_props$deptsCatalogDa","getPermitPositionUserAction","getInsertDeletePosAction","permitPositionUserData","permitPositionUser","permitPositionUserError","insertDeletePosData","insertDeletePos","insertDeletePosError","_props$insertDeletePo","_props$jobCatalogData","RPPermissions","CenterPermissions","DepartamentsPermissions","PositionPermissions","getEmployeeCatalogAction","employeeCatalogData","employeeCatalog","employeeCatalogError","setRutasNomPDF","setRutasNomXml","empleadoSeleccionado","setEmpleadoSeleccionado","rec","rutasNomPDFBytes","rutasNomXmlBytes","GetEmpleados","ReceiptOperatorLeftsidebar","func","onChangeSelection","binaryData","atob","uint8Array","Uint8Array","Blob","URL","createObjectURL","revokeObjectURL","trabSeleccionado","descargarPdf","getURLReporteDocDeacargadosEmpAction","newServer","urlReporteDocDeacargadosEmpData","urlReporteDocDeacargadosEmp","urlReporteDocDeacargadosEmpError","insertGuardaArchivoAction","getConsultaVarExtFileAction","getDeleteFilesAction","consultaVarExtData","consultaVarExt","consultaVarExtError","deleteFilesData","deleteFiles","deleteFilesError","guardaArchivosData","guardaArchivos","guardaArchivosError","setUploadType","saveArchivos","deleteFilesFunc","consultVar","setPeriodosNomina","Num","IdRoles","menuConf","setMenuConf","menuConfSelected","setMenuConfSelected","GetNominaPeriods","GetMenuPorTipoNomina","periodos","formaliza","getOptionsTiposNomina","selectTipoNomina","saveMenuTN","_props$adminMenuData4","desformaliza","ArrMenu","arrMenu","f2","desFormalizaMenuPorTipoNomina","menuSel","renderSelectorRol","_props$adminMenuData2","selectedIdRoles","_props$adminMenuData3","_menuPorTipoNomina$fi","additional_fields2","getTipoEncuestaAction","TipoEncuestas","getEmpleadosGUIA1Action","EmpleadosGUIA1","getUbicacionesConteoAction","UbicacionesConteo","getSeleccionEmpUbiAction","responseFinal","conteo","SeleccionEmpUbi","seleccionEmpUbi","GetSeleccionEmpUbiResponse","GetSeleccionEmpUbiResult","CP","Calle","Colonia","Estado_ID","FechaCaptura","Mov_ID","Municipio","NumExterior","NumInterior","setEnviarEncuestasGUIA1Action","changeXmlArr","EnviarEncuestasGUIA1Response","EnviarEncuestasGUIA1Result","SetEnviarEncuestasGUIA1Response","setEnviarEncuestasGUIA2_3Action","changeXmlSicExtend","EnviarEncuestasGUIA2_3Response","EnviarEncuestasGUIA2_3Result","SetEnviarEncuestasGUIA2_3Response","getTipoEncuestasData","getTipoEncuestasError","getEmpleadosGUIA1Data","empleadosGUIA1","getEmpleadosGUIA1Error","getUbicacionesConteoData","getUbicacionesConteoError","getSeleccionEmpUbiData","getSeleccionEmpUbiError","setEnviarEncuestasGUIA1Data","enviarEncuestasGUIA1","setEnviarEncuestasGUIA1Error","setEnviarEncuestasGUIA2_3Data","enviarEncuestasGUIA2_3","setEnviarEncuestasGUIA2_3Error","dataTipoEncuestas","setDataTipoEncuestas","dataUbicacionesConteo","setDataUbicacionesConteo","dataSeleccionEmpUbi","setDataSeleccionEmpUbi","setAuthorizedCenter","setAuthorizedDepts","setAuthorizedJobs","dataCenterCatalog","setDataCenterCatalog","dataDeptsCatalog","setDataDeptsCatalog","dataJobCatalog","setDataJobCatalog","dataEmpleadosGUIA1","setDataEmpleadosGUIA1","Busqueda","dataValuesGUIA1","setDataValuesGUIA1","Table_ID","SecondTableShow","dataValuesGUIA2_3","setDataValuesGUIA2_3","dataInfo","setDataInfo","dataValorGUIA","setDataValorGUIA","defaultValuesGUIA1","onChange_tipoEncuestas","arrdcc","arrddc","arrdjc","deg1Arr","arrBusqueda","Enviar","dseuArr","onClickRow_empleadosGUIA1","enviar","isAllCheckeds_ubicacionesConteo","fduc","onCheck_ubicacionesConteo","ubicacion_id","ducArr","seleccionado","isAllCheckeds_seleccionEmpUbi","fdseu","onCheck_seleccionEmpUbi","_renderSelect","dValues","rowsTable_empleadosGUIA1","enviados","asignar","rowsTable_ubicacionesConteo","Ultimoenvio","guia","onChange_guiaUbicacionesConteo","disabledBtnEnviar","fdeg1","arrFilter","tem_deg1Arr","item_deg1","EnviarEncuestasGUIA1","item_duc","i_duc","tem_dseuArr","item_dseu","i_dseu","_i","_Object$entries","entries","_Object$entries$_i","_getParams12","onClick_empleadosGUIA1","rowsTable_seleccionEmpUbi","dataOptions","tabindex","rptVacationsIncidents","jefesSel","setJefesSel","rpt","setRpt","centrosVal","jefesVal","selectJefe","setUsuarios","loadUsersSecurityPolicy","sicossUsuarios","diasInactivo","hanldeUpdateLastActivity","GetReporte1SolicitudVacacioneCamposIncidenciasAction","GetReporte1SolicitudVacacioneCamposIncidencias","getReporte1SolicitudVacacioneCamposIncidencias","getReporte1SolicitudVacacioneCamposIncidenciasData","getReporte1SolicitudVacacioneCamposIncidenciasError","setCatIncidents","selectedIncidents","setSelectedIncidents","incidentsVal","selectIncident","setDatos","consultarDatos","_renderReportTable","getConsultaArchivosPersonalesAction","showResults","setShowResults","applyFilter","filterValue","lowerCaseFilter","getReportIncidentAction","ObtenerIncidencia","dataIncidents","setDataIncidents","filtroEstatus","setFiltroEstatus","consultIncid","UsersControl","UserPermissions","TypeEmployeeControl","IncidentTypeEmployeeControl","TabFaltaControl","TBAutorizadorFijoControl","UsersSecurityPolicy","DownloadReports","UploadFiles","ReportRequestsIncidents","ReportRequestsIncidentsAttachedFile","SuveryNom035","IncidentReportDownload","IncidenciasSolicitadas","getListCompaniesRptAction","XchangeXml","getFilterCentersAction","getFilterBoosAction","getReportRHVacAction","listCompaniesRptData","listCompaniesRpt","listCompaniesRptError","filterCenterData","filterCenter","filterCenterError","filterBoosData","filterBoos","filterBoosError","reportRHVacData","reportRHVac","reportRHVacError","companiesOptions","setCompaniesOptions","centersOptions","setCentersOptions","chiefsOptions","setChiefsOptions","chief","unshift","changeFilter","companiesList","chiefs","centersList","isDisabled","isLoading","getTypeEmployeeCatalogAction","TypeEmployeeCatalog","generaReporteCtrlVac2Action","generaReporteCtrlVac3Action","generaReporteCtrlVac4Action","typeEmployeeCatalog","typeEmployeeCatalogData","typeEmployeeCatalogError","generaReporteCtrlVac2","generaReporteCtrlVac2Data","generaReporteCtrlVac2Error","generaReporteCtrlVac3","generaReporteCtrlVac3Data","generaReporteCtrlVac3Error","deptosSel","setDeptosSel","puestos","setPuestos","puestosSel","setPuestosSel","tiposEmpleado","setTiposEmpleados","tiposEmpleadoSel","setTiposEmpleadosSel","setTipoSolicitud","tipoSolicitudSel","setTipoSolicitudSel","tipoReporte","setTipoReporte","tipoReporteSel","setTipoReporteSel","selectedAllUser","setSelectedAllUser","visibleSearchUser","setVisibleSearchUser","visibleSelectedUser","setVisibleSelectedUser","tipos2","getCenterCatalog","getDeptsCatalog","getJobCatalog","getTypeEmployeeCatalog","_search","countSearch","countSearchSelected","onSearchEmployee","onClickEmployee","_loop4","generaReporteCtrlVac4Data","generaReporteCtrlVac4Error","hideElements1","_loop3","onChangeEmployeeAll","exStyle","getTBodyEmployees","_loop2","getTBodyEmployeesSelected","_usuarios","_centros","_departamento","_tipoEmp","_puesto","VacationRequests","ReportControlVacation","Reports","ReportVacationsIncidents","DirectorGral","CommonRoutes","ErrorLogInExpired","ReceiptOperatorRoutes","EmployeeRoutes","ChiefRoutes","OperatorRoutes","SystemAdminRoutes","RHVacationRoutes","RHSpecialRoutes","fetchedConfig","setFechedConfig","initVariables","initCheckExpiration","IsPrivate","AppServer","mainService","temaColorFijo","logInExpiredModal","logInWaitSeconds","setInterval","reload","Router","stateValidateError","stateLogin","getLogin","purgeLogin","stateSecurityQuestion","getSecurityQuestion","purgeSecurityQuestion","stateChangePassword","getChangePassword","purgeChangePassword","stateImageUser","getImageUser","purgeImageUser","stateDataUser","stateColor","stateShow","changeShow","stateMenu","menuSelected","changeMenu","stateTypeUser","changeTypeUser","stateAviso","getAviso","purgeAviso","stateTerm","getTerm","purgeTerm","stateUploadImage","getUploadImage","purgeUploadImage","stateUrlEncuesta","getUrlEncuesta","purgeUrlEncuesta","stateValidateEncuesta","getValidateEncuesta","purgeValidateEncuesta","stateFcmToken","fcmTokenData","changefcmToken","stateRegisterFcm","registerFcmData","registerFcmError","getRegisterFcm","purgeRegisterFcm","stateRecoveryPassword","getRecoveryPassword","purgeRecoveryPassword","stateUploadPassword","getUploadPassword","purgeUploadPassword","stateNomina","getNomina","stateDetalleNomina","getDetalleNomina","purgeDetalleNomina","stateUrlPdf","purgeUrlPdf","stateUrlXml","purgeUrlXml","stateMovimientosImss","getMovimientosImss","purgeMovimientosImss","stateDetalleImss","getDetalleImss","purgeDetalleImss","stateVacations","getVacations","purgeVacations","stateInsertVacations","getInsertVacations","purgeInsertVacations","stateInfonavit","getInfonavit","purgeInfonavit","stateDetalleInfonavit","getDetalleInfonavit","purgeDetalleInfonavit","stateMessages","getMessages","purgeMessages","stateMessagesDetail","getMessagesDetail","purgeMessagesDetail","stateMesageaRh","getMesageaRh","purgeMesageaRh","stateMyMessagesRh","getMyMessagesRh","purgeMyMessagesRh","stateQueja","getQueja","purgeQueja","stateSiBalance","getSiBalance","purgeSiBalance","stateRequestVacationsAll","getRequestVacationsAll","purgeRequestVacationsAll","stateAuthorizeVacations","getAuthorizeVacations","purgeAuthorizeVacations","stateRejectVacations","rejectVacationsData","rejectVacationsError","purgeRejectVacations","stateSeeVacations","purgeSeeVacations","stateQr","getQr","purgeQr","stateAllMessagesToRh","getAllMessagesToRh","purgeAllMessagesToRh","stateReadMessage","readMessageData","readMessageError","getReadMessage","purgeReadMessage","stateDeleteMessage","deleteMessageData","deleteMessageError","getDeleteMessage","purgeDeleteMessage","stateTypesNomina","purgeTypesNomina","stateNominaPeriods","purgeNominaPeriods","stateCalendarNomina","purgeCalendarNomina","stateCentersNomina","purgeCentersNomina","stateProcessNomina","getProcessNomina","purgeProcessNomina","stateNominaRh","getNominaRh","purgeNominaRh","stateDetalleNominaRh","detalleNominaRhData","detalleNominaRhError","getDetalleNominaRh","purgeDetalleNominaRh","stateCompanies","getCompanies","purgeCompanies","stateLicenseData","getLicenseData","purgeLicenseData","statePromotions","getPromotions","purgePromotions","stateBuzonQuejas","getBuzonQuejas","purgeBuzonQuejas","stateBuzonQuejasDetail","getBuzonQuejasDetail","purgeBuzonQuejasDetail","stateDeleteComplaint","getDeleteComplaint","purgeDeleteComplaint","stateCalendar","getCalendar","purgeCalendar","stateCentersCatalog","getCentersCatalog","purgeCentersCatalog","stateDeptsCatalog","purgeDeptsCatalog","stateEmployerRecords","getEmployerRecords","purgeEmployerRecords","stateEmployerRecordsPermits","getEmployerRecordsPermits","purgeEmployerRecordsPermits","stateDepartmentPermits","getDepartmentPermits","purgeDepartmentPermits","stateCentersPermits","getCentersPermits","purgeCentersPermits","stateInsertDeletePermitRP","getInsertDeletePermitRP","purgeInsertDeletePermitRP","stateInsertDeletePermitCenter","getInsertDeletePermitCenter","purgeInsertDeletePermitCenter","stateInsertDeletePermitDepto","getInsertDeletePermitDepto","purgeInsertDeletePermitDepto","stateChangePasswordAdmin","purgeChangePasswordAdmin","stateNewUser","stateActualizaUsuario","stateEliminaUsuario","stateRestartPassword","getRestartPassword","purgeRestartPassword","stateSearchEmployee","getSearchEmployee","purgeSearchEmployee","stateCompaniesList","companiesListData","companiesListError","purgeCompaniesList","stateChangePasswordEmployee","getChangePasswordEmployee","purgeChangePasswordEmployee","stateUnlockEmployee","getUnlockEmployee","purgeUnlockEmployee","stateAccessMethod","getAccessMethod","purgeAccessMethod","stateJobCatalog","purgeJobCatalog","statePermitPositionUser","getPermitPositionUser","purgePermitPositionUser","stateInsertDeletePos","getInsertDeletePos","purgeInsertDeletePos","stateAdditionalFields","getAdditionalFields","purgeAdditionalFields","stateDeleteAddFields","getDeleteAddFields","purgeDeleteAddFields","stateNextInfoUser","getNextInfoUser","purgeNextInfoUser","stateSaveInfoExtra","getSaveInfoExtra","purgeSaveInfoExtra","stateReceiptGenerationEmployee","getReceiptGenerationEmployee","purgeReceiptGenerationEmployee","stateBlockUser","getBlockUser","purgeBlockUser","stateAllUsers","getAllUsers","purgeAllUsers","stateWelcomeMessage","getWelcomeMessage","purgeWelcomeMessage","stateEditWelcomeMessage","purgeEditWelcomeMessage","stateSelectedAdditionalFields","getSelectedAdditionalFields","purgeSelectedAdditionalFields","stateNewCorporativeMessage","getNewCorporativeMessage","purgeNewCorporativeMessage","stateEditCorporativeMessage","getEditCorporativeMessage","purgeEditCorporativeMessage","stateListCorporativeMessage","getListCorporativeMessage","purgeListCorporativeMessage","stateDetailCorporativeMessage","getDetailCorporativeMessage","purgeDetailCorporativeMessage","stateControlVacations","purgeControlVacations","stateConsultaRoles","getConsultaRoles","purgeConsultaRoles","stateEmployeeCatalog","getEmployeeCatalog","purgeEmployeeCatalog","stateCancelVacationsEulen","getCancelVacationsEulen","purgeCancelVacationsEulen","stateAuthorizeCancelVacations","purgeAuthorizeCancelVacations","stateRejectCancelVacations","rejectCancelVacationsData","rejectCancelVacationsError","RejectCancelVacations","purgeRejectCancelVacations","stateVacationsMassive","getVacationsMassive","purgeVacationsMassive","stateAuthorizeVacationsMassive","getAuthorizeVacationsMassive","purgeAuthorizeVacationsMassive","stateRejectVacationsMassive","getRejectVacationsMassive","purgeRejectVacationsMassive","stateVacationsRhVacation","getVacationsRhVacation","purgeVacationsRhVacation","stateListCompaniesRpt","getListCompaniesRpt","purgeListCompaniesRpt","stateFilterCenter","getFilterCenter","purgeFilterCenter","stateFilterBoos","getFilterBoos","purgeFilterBoos","stateReportRHVac","getReportRHVac","purgeReportRHVac","stateAdminMenu","getAdminMenu","purgeAdminMenu","stateAdminMenuActivate","getAdminMenuActivate","purgeAdminMenuActivate","stateVacationsMassiveDirect","getVacationsMassiveDirect","purgeVacationsMassiveDirect","stateAuthorizeVacationsMassiveDirect","getAuthorizeVacationsMassiveDirect","purgeAuthorizeVacationsMassiveDirect","stateRejectVacationsMassiveDirect","getRejectVacationsMassiveDirect","purgeRejectVacationsMassiveDirect","stateVacationsDirect","getVacationsDirect","purgeVacationsDirect","stateReportRHVacDirect","getReportRHVacDirect","purgeReportRHVacDirect","stateCreatePerdiem","getCreatePerdiem","purgeCreatePerdiem","stateGetPerdiem","purgeGetPerdiem","stateDeletePerdiem","purgeDeletePerdiem","stateEditPerdiem","purgeEditPerdiem","stateGeneratePerdiem","purgeGeneratePerdiem","stateSignPerdiem","purgeSignPerdiem","stateDownloadPerdiem","downloadPerdiemData","downloadPerdiemError","DownloadPerdiem","purgeDownloadPerdiem","stateIdPerdiem","purgeIdPerdiem","stateAuthorizers","purgeAuthorizers","stateSendEmails","sendEmailsData","sendEmailsError","purgeSendEmails","stateConcepts","purgeConcepts","stateServCodePerdiem","getServCodePerdiem","purgeServCodePerdiem","stateEmployeeVacations","getEmployeeVacations","purgeEmployeeVacations","stateVacationsExpiration","getVacationsExpiration","purgeVacationsExpiration","stateDeptosCenter","purgeDeptosCenter","stateJefesPerdiem","purgeJefesPerdiem","stateEmpleadosAll","purgeEmpleadosAll","stateEmpRepo","purgeEmpRepo","stateEmpleadosAlMando","purgeEmpleadosAlMando","stateRejectChief","purgeRejectChief","stateAuthorizeChief","purgeAuthorizeChief","stateGetPreview","purgeGetPreview","stateAuthorizeReject","purgeAuthorizeReject","stateEmpleadosPerdiem","purgeEmpleadosPerdiem","stateGetPreviewCanceled","purgeGetPreviewCanceled","stateGetPreviewAuthorized","purgeGetPreviewAuthorized","stateReportConvert","purgeReportConvert","stateGetXlsPerdiem","purgeGetXlsPerdiem","stateSendDataChief","SendDataChief","purgeSendDataChief","stateEmployeeMovNom","purgeEmployeeMovNom","stateCatIncidents","purgeCatIncidents","stateInsertIncidents","getInsertIncidents","purgeInsertIncidents","stateSkipWeekend","purgeSkipWeekend","stateAuthorizeIncident","getAuthorizeIncident","purgeAuthorizeIncident","stateRejectIncident","getRejectIncident","purgeRejectIncident","stateVacationsCalendar","getVacationsCalendar","purgeVacationsCalendar","stateIncidenciasKrones","getIncidenciasKrones","purgeIncidenciasKrones","stateEmpleadoJornada","getEmpleadoJornada","purgeEmpleadoJornada","stateValidaFechas","getValidaFechas","purgevalidaFechas","stateURLReporteDocDeacargadosEmp","getURLReporteDocDeacargadosEmp","purgeURLReporteDocDeacargadosEmp","stateLog_RegistraDescargaArchivo","getLog_RegistraDescargaArchivo","purgeLog_RegistraDescargaArchivo","stateConsultaVarExt","getConsultaVarExt","purgeConsultaVarExt","stateConsultaArchivos","getConsultaArchivos","purgeConsultaArchivos","stateGuardaArchivos","getGuardaArchivos","stateDeleteFiles","getDeleteFiles","stateConsultaVarFirma","purgeConsultaVarFirma","stateConsultaFirma","purgeConsultaFirma","stateActualizaFirma","getActualizaFirma","purgeActualizaFirma","stateInicidentAlert","purgeIncidentAlert","stateVarShowOptions","getVarShowOptions","stateGetTipoEncuestas","stateGetEmpleadosGUIA1","stateGetUbicacionesConteo","stateGetSeleccionEmpUbi","stateEnviarEncuestasGUIA1","stateEnviarEncuestasGUIA2_3","stateCtrlVacionEmpleadoDatos","stateCtrlVacacionesEmpleadoV4","stateGetDiasBloqueados","getDiasBloqueadosReducer","purgeGetDiasBloqueados","stateRecoverPwdByEmail","recoverPwdByEmailReducer","purgeRecoverPwdByEmail","stateGeneraRptVacacionIncidencia","getGeneraRptVacacionIncidencia","purgeGeneraRptVacacionIncidencia","stateGeneraReporteCtrlVac1","stateGeneraReporteCtrlVac2","stateGeneraReporteCtrlVac3","stateTypeEmployeeCatalog","typeEmployeeCatalogReducer","purgeTypeEmployeeCatalog","stateGetincidenciasAspen","GetincidenciasAspenReducer","purgeGetincidenciasAspen","stateGeneraRptPDFCtrlVacaciones","stateGetValoresConfig","stateUpdateValorConfig","stateGetReportaExtranjeros","stateGetTBTipoEmpleado","stateUpdateTBTipoEmpleado","stateGetFaltaTipoEmpleado","stateInsertFaltaTipoEmpleado","stateDeleteFaltaTipoEmpleado","stateUpdateFaltaTipoEmpleado","stateGetIncidenciasConfig","stateIniciaIncidenciaConfigEvento","stateCancelaIncidenciaConfigEvento","stateUpdateIncidenciasConfig","stateGetIncidenciasRazones","stateGetReporte1SolicitudVacacioneCamposIncidencias","stateGetTBFalta","stateInsertTBFalta","stateDeleteTBFalta","stateUpdateTBFalta","stateAfilIndividualizado","stateGetTBAutorizadorFijo","stateInsertTBAutorizadorFijo","stateDeleteTBAutorizadorFijo","stateUpdateTBAutorizadorFijo","GetTBAutorizadorFijoReducer","purgeGetTBAutorizadorFijo","InsertTBAutorizadorFijoReducer","purgeInsertTBAutorizadorFijo","DeleteTBAutorizadorFijoReducer","purgeDeleteTBAutorizadorFijo","UpdateTBAutorizadorFijoReducer","purgeUpdateTBAutorizadorFijo","stateDocumentType","getDocumentType","purgeDocumentType","stateConsultaArchivosPersonales","getConsultaArchivosPersonales","purgeConsultaArchivosPersonales","stateGuardaArchivosPersonales","getGuardaArchivosPersonales","stateDeletePersonalFiles","getDeletePersonalFiles","stateConsultaArchivosPersonalesPorTrabajador","getConsultaArchivosPersonalesPorTrabajador","purgeConsultaArchivosPersonalesPorTrabajador","stateReportIncidents","getReportIncidents","purgeReportIncidents","stateRespuestaQuejas","getRespuestaQuejas","purgeRespuestaQuejas","stateAuthorizeCancelIncidents","purgeAuthorizeCancelIncidents","stateRejectCancelIncidents","purgeRejectCancelIncidents","rootReducer","combineReducers","_combineReducers","ValidateErrorReducer","LoginReducer","SecurityQuestionReducer","ChangePasswordReducer","RecoveryPasswordReducer","UpdatePasswordReducer","ImageUserReducer","DataUserReducer","ChangeColorReducer","showWelcome","ShowWelcomeReducer","MovimientosImssReducer","ChangeMenuReducer","NominaReducer","DetalleNominaReducer","DetalleImssReducer","MovimientosInfonavitReducer","TermCondReducer","PrivacyNoticeReducer","MessagesReducer","MessagesDetailReducer","DetalleInfonavitReducer","VacationsReducer","InsertVacationsReducer","UploadImageReducer","QuejaMessageReducer","SiBalanceReducer","UrlEncuestaReducer","UrlPdfReducer","UrlXmlReducer","ChangeUserTypeReducer","ValidateEncuestaReducer","MyMessagesRhReducer","MessageaRHReducer","fcmToken","FcmTokenReducer","registerFcm","RegisterFcmReducer","uploadFcm","UploadFcmReducer","QrReducer","RequestedVacationsReducer","AuthorizeVacationsReducer","rejectVacations","RejectVacationsReducer","SeeVacationsReducer","AllMessagesRhReducer","readMessage","ReadMessageReducer","deleteMessage","DeleteMessageReducer","GetTypesNominaReducer","GetNominaPeriodsReducer","GetCalendarNominaReducer","GetCenterNominaReducer","ProcessNominaReducer","PeriodosNominaRhReducer","detalleNominaRh","DetalleNominaRhReducer","CompaniesReducer","LicenseDataReducer","PromotionsReducer","BuzonQuejasReducer","BuzonQuejasDetalleReducer","DeleteComplaintReducer","CalendarReducer","CentersCatalogReducer","DeptsCatalogReducer","EmployerRecordsReducer","EmployerRecordsPermitsReducer","DepartmentPermitsReducer","CenterPermitReducer","InsertDeletePermitRPReducer","InsertDeletePermitCenterReducer","InsertDeletePermitDeptoReducer","ChangePasswordAdminReducer","CompaniesListReducer","purgeNewUser","RestartPasswordReducer","SearchEmployeeReducer","ChangePasswordEmployeeReducer","UnlockEmployeesReducer","AccessMethodReducer","JobCatalogReducer","PermitPositionUserReducer","InsertDeletePosReducer","AdditionalFieldsReducer","DeleteAddFieldsReducer","NextInfoUserReducer","SaveInfoExtraReducer","ReceiptGenerationEmployeeReducer","BlockUserReducer","AllUsersReducer","WelcomeMessageReducer","EditWelcomeMessageReducer","SelectedAdditionalFieldsReducer","NewCorporativeMessageReducer","EditCorporativeMessageReducer","ListCorporativeMessageReducer","DetailCorporativeMessageReducer","ConsultaRolesReducer","EmployeeCatalogReducer","ControlVacationsReducer","CancelVacationsEulenReducer","AuthorizeCancelVacationsReducer","rejectCancelVacations","RejectCancelVacationsReducer","VacationsMassiveReducer","AuthorizeVacationsMassiveReducer","RejectVacationsMassiveReducer","VacationsRhVacationReducer","ListCompaniesRptReducer","FilterCenterReducer","FilterBoosReducer","ReportRHVacReducer","AdminMenuReducer","AdminMenuActivateReducer","VacationsMassiveDirectReducer","AuthorizeVacationsMassiveDirectReducer","RejectVacationsMassiveDirectReducer","VacationsDirectReducer","ReportRHVacDirectReducer","SkipWeekendReducer","CatIncidentsReducer","InsertIncidentReducer","AuthorizeIncidentReducer","RejectIncidentReducer","ValidaFechasReducer","GetPerdiemReducer","CreatePerdiemReducer","DeletePerdiemReducer","EditPerdiemReducer","GeneratePerdiemReducer","SignPerdiemReducer","downloadPerdiem","DownloadPerdiemReducer","IdPerdiemReducer","DeptosCenterReducer","JefesPerdiemReducer","EmpleadosAllReducer","EmpRepoReducer","EmpleadosAlMandoReducer","RejectChiefReducer","AuthorizeChiefReducer","GetPreviewReducer","AuthorizeRejectReducer","EmpleadosPerdiemReducer","GetPreviewCanceledReducer","GetPreviewAuthorizedReducer","GetXlsPerdiemReducer","ReportConvertReducer","AuthorizersReducer","sendEmails","SendEmailsReducer","SendDataChiefReducer","EmployeeMovNomReducer","ConceptsReducer","ServiceCodeReducer","EmployeeVacationsReducer","VacationsExpirationReducer","VacationCalendarReducer","IncidenciasKronesReducer","EmpleadoJornadaReducer","VarShowOptionsReducer","GeneraRptVacacionIncidenciaReducer","URLReporteDocDeacargadosEmpReducer","Log_RegistraDescargaArchivoReducer","ConsultaVarExtReducer","ConsultaArchivosReducer","GuardaArchivoReducer","DeleteFilesReducer","ConsultaVarFirmaReducer","ConsultaFirmaReducer","ActualizaFirmaReducer","IncidentAlertReducer","purgeGetTipoEncuestas","purgeGetEmpleadosGUIA1","purgeGetUbicacionesConteo","purgeGetSeleccionEmpUbi","purgeSetEnviarEncuestasGUIA1","purgeSetEnviarEncuestasGUIA2_3","purgeCtrlVacionEmpleadoDatos","purgeCtrlVacacionesEmpleadoV4","GetDiasBloqueadosReducer","RecoverPwdByEmailReducer","purgeGeneraReporteCtrlVac1","purgeGeneraReporteCtrlVac2","purgeGeneraReporteCtrlVac3","TypeEmployeeCatalogReducer","purgeGeneraRptPDFCtrlVacaciones","purgeGetValoresConfig","purgeUpdateValorConfig","purgeGetReportaExtranjeros","purgeGetTBTipoEmpleado","purgeUpdateTBTipoEmpleado","purgeGetFaltaTipoEmpleado","purgeInsertFaltaTipoEmpleado","purgeDeleteFaltaTipoEmpleado","purgeUpdateFaltaTipoEmpleado","purgeGetIncidenciasConfig","purgeIniciaIncidenciaConfigEvento","purgeCancelaIncidenciaConfigEvento","purgeUpdateIncidenciasConfig","purgeGetIncidenciasRazones","purgeGetReporte1SolicitudVacacioneCamposIncidencias","purgeGetTBFalta","purgeInsertTBFalta","purgeDeleteTBFalta","purgeUpdateTBFalta","purgeAfilIndividualizado","DocumentTypeReducer","ConsultaArchivosPersonalesReducer","GuardaArchivosPersonalesReducer","DeletePersonalFilesReducer","ConsultaArchivosPersonalesPorTrabajadorReducer","IncidentsReportReducer","purgeActualizaUsuario","purgeEliminaUsuario","ComplaintResponseReducer","AuthorizeCancelIncidentsReducer","RejectCancelIncidentsReducer","rootReducerBridge","Boolean","hostname","setValidateErrorData","errorData","_renderAlert","skipReset","Component","component","middleware","applyMiddleware","thunk","createStore","reducers","ReactDOM","render","Provider","BrowserRouter","ToastProvider","ValidateErrorService","App","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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O,OACvB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,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D,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,QAAS0oD,MAAO,SACzB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,MAAO,QACxB,CAAE1oD,MAAO,OAAQ0oD,M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","file":"static/js/main.234bced2.chunk.js","sourcesContent":["import React from 'react';\n\nconst Loading = () => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport default Loading;\n","const ARRAY = 'array';\nconst BOOLEAN = 'boolean';\nconst DATE = 'date';\nconst NULL = 'null';\nconst NUMBER = 'number';\nconst OBJECT = 'object';\nconst SPECIAL_OBJECT = 'special-object';\nconst STRING = 'string';\n\nconst PRIVATE_VARS = ['_selfCloseTag', '_attrs'];\nconst PRIVATE_VARS_REGEXP = new RegExp(PRIVATE_VARS.join('|'), 'g');\n\n/**\n * Determines the indent string based on current tree depth.\n */\nconst getIndentStr = (indent = '', depth = 0) => indent.repeat(depth);\n\n/**\n * Sugar function supplementing JS's quirky typeof operator, plus some extra help to detect\n * \"special objects\" expected by jstoxml.\n * Example:\n * getType(new Date());\n * -> 'date'\n */\nconst getType = val =>\n Array.isArray(val) && ARRAY ||\n (typeof val === OBJECT && val !== null && val._name && SPECIAL_OBJECT) ||\n (val instanceof Date && DATE) ||\n val === null && NULL ||\n typeof val;\n\n/**\n * Replaces matching values in a string with a new value.\n * Example:\n * filterStr('foo&bar', { '&': '&' });\n * -> 'foo&bar'\n */\nconst filterStr = (inputStr = '', filter = {}) => {\n const regexp = new RegExp(`(${Object.keys(filter).join('|')})`, 'g');\n\n return String(inputStr).replace(regexp, (str, entity) => filter[entity] || '');\n};\n\n/**\n * Maps an object or array of arribute keyval pairs to a string.\n * Examples:\n * { foo: 'bar', baz: 'g' } -> 'foo=\"bar\" baz=\"g\"'\n * [ { ⚡: true }, { foo: 'bar' } ] -> '⚡ foo=\"bar\"'\n */\nconst getAttributeKeyVals = (attributes = {}, filter) => {\n const isArray = Array.isArray(attributes);\n\n let keyVals = [];\n if (isArray) {\n // Array containing complex objects and potentially duplicate attributes.\n keyVals = attributes.map(attr => {\n const key = Object.keys(attr)[0];\n const val = attr[key];\n\n const filteredVal = (filter) ? filterStr(val, filter) : val;\n const valStr = (filteredVal === true) ? '' : `=\"${filteredVal}\"`;\n return `${key}${valStr}`;\n });\n } else {\n const keys = Object.keys(attributes);\n keyVals = keys.map(key => {\n // Simple object - keyval pairs.\n\n // For boolean true, simply output the key.\n const filteredVal = (filter) ? filterStr(attributes[key], filter) : attributes[key];\n const valStr = (attributes[key] === true) ? '' : `=\"${filteredVal}\"`;\n\n return `${key}${valStr}`;\n });\n }\n\n return keyVals;\n};\n\n/**\n * Converts an attributes object/array to a string of keyval pairs.\n * Example:\n * formatAttributes({ a: 1, b: 2 })\n * -> 'a=\"1\" b=\"2\"'\n */\nconst formatAttributes = (attributes = {}, filter) => {\n const keyVals = getAttributeKeyVals(attributes, filter);\n if (keyVals.length === 0) return '';\n\n const keysValsJoined = keyVals.join(' ');\n return ` ${keysValsJoined}`;\n};\n\n/**\n * Converts an object to a jstoxml array.\n * Example:\n * objToArray({ foo: 'bar', baz: 2 });\n * ->\n * [\n * {\n * _name: 'foo',\n * _content: 'bar'\n * },\n * {\n * _name: 'baz',\n * _content: 2\n * }\n * ]\n */\nconst objToArray = (obj = {}) => (Object.keys(obj).map(key => {\n return {\n _name: key,\n _content: obj[key]\n };\n}));\n\n/**\n * Determines if a value is a primitive JavaScript value (not including Symbol).\n * Example:\n * isPrimitive(4);\n * -> true\n */\nconst PRIMITIVE_TYPES = [STRING, NUMBER, BOOLEAN];\nconst isPrimitive = val => PRIMITIVE_TYPES.includes(getType(val));\n\n/**\n * Determines if a value is a simple primitive type that can fit onto one line. Needed for\n * determining any needed indenting and line breaks.\n * Example:\n * isSimpleType(new Date());\n * -> true\n */\nconst SIMPLE_TYPES = [...PRIMITIVE_TYPES, DATE, SPECIAL_OBJECT];\nconst isSimpleType = val => SIMPLE_TYPES.includes(getType(val));\n/**\n * Determines if an XML string is a simple primitive, or contains nested data.\n * Example:\n * isSimpleXML('');\n * -> false\n */\nconst isSimpleXML = xmlStr => !xmlStr.match('<');\n\n/**\n * Assembles an XML header as defined by the config.\n */\nconst DEFAULT_XML_HEADER = '';\nconst getHeaderString = ({ header, indent, depth, isOutputStart }) => {\n const shouldOutputHeader = header && isOutputStart;\n\n if (!shouldOutputHeader) return '';\n\n const shouldUseDefaultHeader = typeof header === BOOLEAN;\n return `${(shouldUseDefaultHeader) ? DEFAULT_XML_HEADER : header}${indent ? '\\n' : ''}`;\n};\n\n/**\n * Recursively traverses an object tree and converts the output to an XML string.\n * Example:\n * toXmlModify({ foo: 'bar' });\n * -> bar\n */\nexport const toXmlModify = (\n obj = {},\n config = {}\n) => {\n const {\n // Tree depth\n depth = 0,\n indent,\n _isFirstItem,\n _isLastItem,\n attributesFilter,\n header,\n filter\n } = config;\n\n // Determine indent string based on depth.\n const indentStr = getIndentStr(indent, depth);\n\n // For branching based on value type.\n const valType = getType(obj);\n const isSimple = isSimpleType(obj);\n\n // Determine if this is the start of the output. Needed for header and indenting.\n const isOutputStart = depth === 0 && (isSimple || (!isSimple && _isFirstItem));\n\n let outputStr = '';\n switch (valType) {\n case 'special-object': {\n // Processes a specially-formatted object used by jstoxml.\n\n const { _name, _content } = obj;\n\n // Output text content without a tag wrapper.\n if (_content === null) {\n outputStr = _name;\n break;\n }\n\n // Handles arrays of primitive values. (#33)\n if (Array.isArray(_content) && _content.every(isPrimitive)) {\n return _content.map(a => {\n return toXmlModify({\n _name,\n _content: a\n },\n {\n ...config,\n depth\n });\n }).join('');\n }\n\n // Don't output private vars (such as _attrs).\n if (_name.match(PRIVATE_VARS_REGEXP)) break;\n\n // Process the nested new value and create new config.\n const newVal = toXmlModify(_content, { ...config, depth: depth + 1 });\n const newValType = getType(newVal);\n const isNewValSimple = isSimpleXML(newVal);\n\n // Pre-tag output (indent and line breaks).\n const preIndentStr = (indent && !isOutputStart) ? '\\n' : '';\n const preTag = `${preIndentStr}${indentStr}`;\n\n // Tag output.\n const valIsEmpty = newValType === 'undefined' || newVal === '';\n const shouldSelfClose = false\n const selfCloseStr = (shouldSelfClose) ? '/' : '';\n const attributesString = formatAttributes(obj._attrs, attributesFilter);\n const tag = `<${_name}${attributesString}${selfCloseStr}>`;\n\n // Post-tag output (closing tag, indent, line breaks).\n const preTagCloseStr = (indent && !isNewValSimple) ? `\\n${indentStr}` : '';\n const postTag = (!shouldSelfClose) ? `${newVal}${preTagCloseStr}` : '';\n\n outputStr = `${preTag}${tag}${postTag}`;\n break;\n }\n\n case 'object': {\n // Iterates over keyval pairs in an object, converting each item to a special-object.\n\n const keys = Object.keys(obj);\n const outputArr = keys.map((key, index) => {\n const newConfig = {\n ...config,\n _isFirstItem: index === 0,\n _isLastItem: ((index + 1) === keys.length)\n };\n\n const outputObj = { _name: key };\n\n if (getType(obj[key]) === 'object') {\n // Sub-object contains an object.\n\n // Move private vars up as needed. Needed to support certain types of objects\n // E.g. { foo: { _attrs: { a: 1 } } } -> \n PRIVATE_VARS.forEach(privateVar => {\n const val = obj[key][privateVar];\n if (typeof val !== 'undefined') {\n outputObj[privateVar] = val;\n delete obj[key][privateVar];\n }\n });\n\n const hasContent = typeof obj[key]._content !== 'undefined';\n if (hasContent) {\n // _content has sibling keys, so pass as an array (edge case).\n // E.g. { foo: 'bar', _content: { baz: 2 } } -> bar2\n if (Object.keys(obj[key]).length > 1) {\n const newContentObj = Object.assign({}, obj[key]);\n delete newContentObj._content;\n\n outputObj._content = [\n ...objToArray(newContentObj),\n obj[key]._content\n ];\n }\n }\n }\n\n // Fallthrough: just pass the key as the content for the new special-object.\n if (typeof outputObj._content === 'undefined') outputObj._content = obj[key];\n\n const xml = toXmlModify(outputObj, newConfig, key);\n\n return xml;\n }, config);\n\n outputStr = outputArr.join('');\n break;\n }\n\n case 'function': {\n // Executes a user-defined function and return output.\n\n const fnResult = obj(config);\n\n outputStr = toXmlModify(fnResult, config);\n break;\n }\n\n case 'array': {\n // Iterates and converts each value in an array.\n\n const outputArr = obj.map((singleVal, index) => {\n const newConfig = {\n ...config,\n _isFirstItem: index === 0,\n _isLastItem: ((index + 1) === obj.length)\n };\n return toXmlModify(singleVal, newConfig);\n });\n\n outputStr = outputArr.join('');\n\n break;\n }\n\n // number, string, boolean, date, null, etc\n default: {\n outputStr = filterStr(obj, filter);\n break;\n }\n }\n\n const headerStr = getHeaderString({ header, indent, depth, isOutputStart });\n\n return `${headerStr}${outputStr}`;\n};\n\nexport default {\n toXmlModify\n};\n\n","import { toXML } from \"jstoxml\";\nimport { toXmlModify } from \"../../utils/common/toXml\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\n\nexport const changeToXmlWcf = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n \"xmlns:wcf\": \"http://schemas.datacontract.org/2004/07/wcfKioscoSicossLib\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXML(formatJsonSoap);\n console.log('SOAP ACTION', 'changeToXmlWcf', xml);\n return xml;\n};\n\nexport const changeXml = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXML(formatJsonSoap);\n console.log('SOAP ACTION', 'changeXml', xml);\n return xml;\n};\n\nexport const XchangeXml = (jsonData) => {\n let formatJsonSoap = {\n _name: 'x:Envelope',\n _attrs: {\n 'xmlns:x': 'http://schemas.xmlsoap.org/soap/envelope/',\n 'xmlns:tem': 'http://tempuri.org/'\n },\n _content: {\n 'x:Header': '',\n _name: 'x:Body',\n _content: {\n ...jsonData\n }\n }\n }\n\n let xml = toXmlModify(formatJsonSoap)\n //console.log('DESPUES DEL TRANSFORM', xml)\n console.log('SOAP ACTION', 'XchangeXml', xml);\n return xml\n};\n\nexport const changeXmlSic = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n \"xmlns:sic\":\n \"http://schemas.datacontract.org/2004/07/Sicoss.Entidades.Net.Entidades\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXML(formatJsonSoap);\n console.log('SOAP ACTION', 'changeXmlSic', xml);\n return xml;\n};\n\nexport const changeXmlArr = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n \"xmlns:arr\": \"http://schemas.microsoft.com/2003/10/Serialization/Arrays\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXML(formatJsonSoap);\n console.log('SOAP ACTION', 'changeXmlArr', xml);\n return xml;\n};\n\nexport const changeXmlSicExtend = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n \"xmlns:sic\": \"http://schemas.datacontract.org/2004/07/Sicoss.Entidades.Net.EntidadesExtendidas\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXML(formatJsonSoap);\n console.log('SOAP ACTION', 'changeXmlSicExtend', xml);\n return xml;\n};\n\nexport const xmlCloseEmty = (jsonData) => {\n let formatJsonSoap = {\n _name: \"soapenv:Envelope\",\n _attrs: {\n \"xmlns:soapenv\": \"http://schemas.xmlsoap.org/soap/envelope/\",\n \"xmlns:tem\": \"http://tempuri.org/\",\n },\n _content: {\n _name: \"soapenv:Body\",\n _content: {\n ...jsonData,\n },\n },\n };\n\n let xml = toXmlModify(formatJsonSoap);\n return xml;\n};\n\nexport const getVersionAction = async (data, server) => {\n let nameService = 'wcfKioscoAdmin';\n let action = 'getVersion';\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\n\n let result = {\n isOK: false,\n error: \"No data\",\n };\n\n let configJson = {};\n configJson['tem:' + action] = { \n ...data \n };\n\n let obj = changeXml(configJson);\n console.log('OIHB', obj);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n SOAPAction: \"http://tempuri.org/I\" + nameService + \"/\" + action,\n Server: directServer,\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n let response = await fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config);\n let responseText = await response.text();\n // console.log('OIHB', responseText);\n let finalResponse = await parseString(responseText, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n\n }\n } \n else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n result = response;\n }\n }\n response = {\n isOK: true,\n GetVersion: getVersionResponse(body),\n };\n \n result = response;\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n result = response;\n }\n });\n \n // console.log('OIHB', result);\n return result;\n};\n\nexport const getVersionResponse = (response) => {\n let result = {\n respuesta: '',\n version: 'N/A',\n };\n if ('getVersionResponse' in response) {\n let objResponse = response.getVersionResponse[0].getVersionResult[0];\n result.respuesta = (objResponse['a:Respuesta'] ? objResponse['a:Respuesta'][0] : '');\n result.version = (objResponse['a:Version'] ? objResponse['a:Version'][0] : '');\n }\n return result;\n};\n\n// export const loginResponse = (response) => {\n// let objResponse = response.LoginV2Response[0].LoginV2Result[0];\n// let obj = {\n// error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n// ? objResponse[\"a:ErrorMsg\"][0]\n// : \"\",\n// ochoCaracteresPassword:\n// Number(objResponse[\"a:OchoCaracteres\"][0]) === 1 ? true : false,\n// nombre: validateNull(objResponse[\"a:Nombre\"][0])\n// ? objResponse[\"a:Nombre\"][0]\n// : \"\",\n// materno: validateNull(objResponse[\"a:Materno\"][0])\n// ? objResponse[\"a:Materno\"][0]\n// : \"\",\n// paterno: validateNull(objResponse[\"a:Paterno\"][0])\n// ? objResponse[\"a:Paterno\"][0]\n// : \"\",\n// token: validateNull(objResponse[\"a:Token\"][0])\n// ? objResponse[\"a:Token\"][0]\n// : \"\",\n// idTra: validateNull(objResponse[\"a:TrabID\"][0])\n// ? objResponse[\"a:TrabID\"][0]\n// : \"\",\n// primerAcceso: Number(objResponse[\"a:PrimerAcceso\"][0]) || 0,\n// primerCambio: objResponse[\"a:PrimerCambio\"][0] === \"true\" ? true : false,\n// tipoUser: Number(objResponse[\"a:TipoUser\"][0]) || 3,\n// };\n// if (objResponse && \"a:TipoEmpleado\" in objResponse) {\n// obj[\"tipoEmpleado\"] = validateNull(objResponse[\"a:TipoEmpleado\"][0])\n// ? objResponse[\"a:TipoEmpleado\"][0]\n// : 0;\n// }\n// if (objResponse && \"a:TipoAutorizador\" in objResponse) {\n// obj[\"tipoAutorizador\"] = validateNull(objResponse[\"a:TipoAutorizador\"][0])\n// ? objResponse[\"a:TipoAutorizador\"][0]\n// : 0;\n// }\n// return obj;\n// };\n\nexport const loginResponse = (response) => {\n let result = {\n error: \"\",\n ochoCaracteresPassword: false,\n nombre: \"\",\n materno: \"\",\n paterno: \"\",\n token: \"\",\n idTra: \"\",\n primerAcceso: 0,\n primerCambio: false,\n tipoUser: 3,\n tipoEmpleado: 0,\n tipoAutorizador: 0,\n periodo_ID: 0,\n };\n\n if (!response.LoginV2Response) return result;\n if (!response.LoginV2Response[0].LoginV2Result) return result;\n\n let objResponse = response.LoginV2Response[0].LoginV2Result[0];\n result = {\n error: GetOrDefault(objResponse[\"a:ErrorMsg\"], \"\"),\n ochoCaracteresPassword: GetOrDefault(objResponse[\"a:OchoCaracteres\"], \"\") == \"1\",\n nombre: GetOrDefault(objResponse[\"a:Nombre\"], \"\"),\n materno: GetOrDefault(objResponse[\"a:Materno\"], \"\"),\n paterno: GetOrDefault(objResponse[\"a:Paterno\"], \"\"),\n token: GetOrDefault(objResponse[\"a:Token\"], \"\"),\n idTra: GetOrDefault(objResponse[\"a:TrabID\"], \"\"),\n primerAcceso: Number(GetOrDefault(objResponse[\"a:PrimerAcceso\"], \"0\")),\n primerCambio: GetOrDefault(objResponse[\"a:PrimerCambio\"], \"false\") == \"true\",\n tipoUser: Number(GetOrDefault(objResponse[\"a:TipoUser\"], \"3\")),\n tipoEmpleado: Number(GetOrDefault(objResponse[\"a:TipoEmpleado\"], \"0\")),\n tipoAutorizador: Number(GetOrDefault(objResponse[\"a:TipoAutorizador\"], \"0\")),\n periodo_ID: Number(GetOrDefault(objResponse[\"a:Periodo_ID\"], \"0\")),\n };\n\n return result;\n};\n\nexport const SecurityQuestionResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.InsertPreguntaSecretaResponse[0].InsertPreguntaSecretaResult[0];\n let resp = validateNull(objResponse[\"a:Result\"][0])\n ? objResponse[\"a:Result\"][0]\n : false;\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const ChangePasswordResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.InsertContraseniaResponse[0].InsertContraseniaResult[0];\n let resp = objResponse[\"a:Result\"][0] || false;\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const imageResponse = (response) => {\n let objResponse = response.EmpleadoFotoResponse[0].EmpleadoFotoResult[0];\n let img = null;\n let imgResponse = objResponse[\"a:Foto\"][0];\n if (validateNull(imgResponse)) {\n img = objResponse[\"a:Foto\"][0];\n }\n let obj = {\n image: img,\n };\n return obj;\n};\n\n// export const dataUserResponse = (response) => {\n// let objResponse =\n// response.DatosPersonalesResponse[0].DatosPersonalesResult[0];\n// let obj = {\n// banco: objResponse[\"a:Banco\"][0],\n// clabe: objResponse[\"a:CLABE\"][0],\n// curp: objResponse[\"a:CURP\"][0],\n// correo: objResponse[\"a:Correo\"][0],\n// edoCivil: objResponse[\"a:EstadoCivil\"][0],\n// fechNac: objResponse[\"a:FechaNac\"][0],\n// nss: objResponse[\"a:NSS\"][0],\n// rfc: objResponse[\"a:RFC\"][0],\n// trabId: objResponse[\"a:TrabID\"][0],\n// centro: objResponse[\"a:Centro\"][0],\n// empresa: objResponse[\"a:Empresa\"][0],\n// fechaIngreso: objResponse[\"a:FechaIngreso\"][0],\n// fechaTermino: objResponse[\"a:FechaTermino\"][0],\n// puesto: objResponse[\"a:Puesto\"][0],\n// registro: objResponse[\"a:Registro\"][0],\n\n// TipoEmpleado_ID: GetOrDefault(objResponse['a:TipoEmpleado_ID'], ''),\n// TipoEmpleado_Desc: GetOrDefault(objResponse['a:TipoEmpleado_Desc'], ''),\n// Sindicato_ID: GetOrDefault(objResponse['a:Sindicato_ID'], ''),\n// Sindicato_Desc: GetOrDefault(objResponse['a:Sindicato_Desc'], ''),\n \n// Reporta_ID: GetOrDefault(objResponse['a:Reporta_ID'], ''),\n// Reporta_Email: GetOrDefault(objResponse['a:Reporta_Email'], ''),\n \n// Paterno: GetOrDefault(objResponse['a:Paterno'], ''),\n// Materno: GetOrDefault(objResponse['a:Materno'], ''),\n// Nombre: GetOrDefault(objResponse['a:Nombre'], ''),\n\n// Periodo_ID: GetOrDefault(objResponse['a:Periodo_ID'], ''),\n// };\n// return obj;\n// };\n\nexport const dataUserResponse = (response) => {\n let result = {\n banco: \"\",\n clabe: \"\",\n curp: \"\",\n correo: \"\",\n edoCivil: \"\",\n fechNac: \"\",\n nss: \"\",\n rfc: \"\",\n trabId: \"\",\n centro: \"\",\n empresa: \"\",\n fechaIngreso: \"\",\n fechaTermino: \"\",\n puesto: \"\",\n registro: \"\",\n\n TipoEmpleado_ID: 0,\n TipoEmpleado_Desc: \"\",\n Sindicato_ID: 0,\n Sindicato_Desc: \"\",\n \n Reporta_ID: \"\",\n Reporta_Email: \"\",\n \n Paterno: \"\",\n Materno: \"\",\n Nombre: \"\",\n\n Periodo_ID: 0,\n };\n\n if (!response.DatosPersonalesResponse) return result;\n if (!response.DatosPersonalesResponse[0].DatosPersonalesResult) return result;\n\n let objResponse =response.DatosPersonalesResponse[0].DatosPersonalesResult[0];\n result = {\n banco: GetOrDefault(objResponse[\"a:Banco\"], \"\"),\n clabe: GetOrDefault(objResponse[\"a:CLABE\"], \"\"),\n curp: GetOrDefault(objResponse[\"a:CURP\"], \"\"),\n correo: GetOrDefault(objResponse[\"a:Correo\"], \"\"),\n edoCivil: GetOrDefault(objResponse[\"a:EstadoCivil\"], \"\"),\n fechNac: GetOrDefault(objResponse[\"a:FechaNac\"], \"\"),\n nss: GetOrDefault(objResponse[\"a:NSS\"], \"\"),\n rfc: GetOrDefault(objResponse[\"a:RFC\"], \"\"),\n trabId: GetOrDefault(objResponse[\"a:TrabID\"], \"\"),\n centro: GetOrDefault(objResponse[\"a:Centro\"], \"\"),\n empresa: GetOrDefault(objResponse[\"a:Empresa\"], \"\"),\n fechaIngreso: GetOrDefault(objResponse[\"a:FechaIngreso\"], \"\"),\n fechaTermino: GetOrDefault(objResponse[\"a:FechaTermino\"], \"\"),\n puesto: GetOrDefault(objResponse[\"a:Puesto\"], \"\"),\n registro: GetOrDefault(objResponse[\"a:Registro\"], \"\"),\n\n TipoEmpleado_ID: Number(GetOrDefault(objResponse[\"a:TipoEmpleado_ID\"], \"0\")),\n TipoEmpleado_Desc: GetOrDefault(objResponse[\"a:TipoEmpleado_Desc\"], \"\"),\n Sindicato_ID: Number(GetOrDefault(objResponse[\"a:Sindicato_ID\"], \"-1\")),\n Sindicato_Desc: GetOrDefault(objResponse[\"a:Sindicato_Desc\"], \"\"),\n \n Reporta_ID: GetOrDefault(objResponse[\"a:Reporta_ID\"], \"\"),\n Reporta_Email: GetOrDefault(objResponse[\"a:Reporta_Email\"], \"\"),\n \n Paterno: GetOrDefault(objResponse[\"a:Paterno\"], \"\"),\n Materno: GetOrDefault(objResponse[\"a:Materno\"], \"\"),\n Nombre: GetOrDefault(objResponse[\"a:Nombre\"], \"\"),\n\n Periodo_ID: Number(GetOrDefault(objResponse[\"a:Periodo_ID\"], \"0\")),\n };\n\n return result;\n};\n\nexport const movimientosImssResponse = (response) => {\n let arryResponse = [];\n let objResponse =\n response.MovimientosIMSSResponse[0].MovimientosIMSSResult[0];\n if (objResponse && \"a:ListaMovimientos\" in objResponse) {\n let ListaMovimientos = objResponse[\"a:ListaMovimientos\"][0];\n if (ListaMovimientos && \"a:clsMovimientoIMSS\" in ListaMovimientos) {\n let clsMovimientoIMSS = ListaMovimientos[\"a:clsMovimientoIMSS\"];\n if (clsMovimientoIMSS.length > 0) {\n clsMovimientoIMSS.map((item, index) => {\n let newObj = {\n fechMov: item[\"a:FechaMov\"][0],\n movimiento: item[\"a:Movimiento\"][0],\n ptr: item[\"a:Ptr\"][0],\n };\n arryResponse.push(newObj);\n });\n return arryResponse;\n } else {\n return arryResponse;\n }\n } else {\n return arryResponse;\n }\n } else {\n return arryResponse;\n }\n};\n\nexport const periodosNomina = (response) => {\n let arrayResp = [];\n let objResponse =\n response.PeriodosNomina2Response[0].PeriodosNomina2Result[0];\n if (objResponse && \"a:PeriodosNomina\" in objResponse) {\n let arrResponseOne = objResponse[\"a:PeriodosNomina\"][0];\n if (arrResponseOne && \"a:clsPeriodoNomina2Response\" in arrResponseOne) {\n let arrRespondeFinal = arrResponseOne[\"a:clsPeriodoNomina2Response\"];\n if (arrRespondeFinal && arrRespondeFinal.length > 0) {\n arrRespondeFinal.map((responseObj) => {\n let obj = {\n ano: responseObj[\"a:Ano\"][0] || \"\",\n diasTrabajados: responseObj[\"a:DiasTrabajados\"][0] || \"\",\n fechaFinal: responseObj[\"a:FechaFinal\"][0] || \"\",\n fechaInicio: responseObj[\"a:FechaInicio\"][0] || \"\",\n leido: responseObj[\"a:Leido\"][0] || \"\",\n nombrePeriodo: responseObj[\"a:NombrePeriodo\"][0] || \"\",\n numeroPeriodo: responseObj[\"a:NumPeriodo\"][0] || \"\",\n periodoID: responseObj[\"a:PeriodoID\"][0] || \"\",\n sdi: responseObj[\"a:SDI\"][0] || \"\",\n salario: responseObj[\"a:Salario\"][0] || \"\",\n tipoNomina: responseObj[\"a:TipoNomina\"][0] || \"\",\n tipoNominaID: responseObj[\"a:TipoNominaID\"][0] || \"\",\n total: responseObj[\"a:Total\"][0] || \"\",\n totalDeduccion: responseObj[\"a:TotalDeduccion\"][0] || \"\",\n totalPercepcion: responseObj[\"a:TotalPercepcion\"][0] || \"\",\n trabId: responseObj[\"a:TrabID\"][0] || \"\",\n };\n\n let duplicado = arrayResp.some(item => \n item.ano == obj.ano \n && item.fechaInicio == obj.fechaInicio \n && item.fechaFinal == obj.fechaFinal \n && item.numeroPeriodo == obj.numeroPeriodo \n && item.periodoID == obj.periodoID \n && item.tipoNominaID == obj.tipoNominaID\n && item.total == obj.total);\n if (!duplicado) {\n arrayResp.push(obj);\n }\n });\n }\n }\n }\n return arrayResp;\n};\n\nexport const detalleNomina = (response, steps, months) => {\n let detalleNomina = {};\n detalleNomina = {\n deducciones: {\n clsConceptoNomina: [],\n },\n emisor: {},\n persepciones: {\n clsConceptoNomina: [],\n },\n receptor: {},\n virtualesDeduccion: {\n clsConceptoNomina: [],\n },\n virtualesPercepcion: {\n clsConceptoNomina: [],\n },\n steps: steps,\n months: months,\n };\n let objResponse = response.DetalleNominaResponse[0].DetalleNominaResult[0];\n //DEDUCCIONES\n let deducciones = \n \"a:Deducciones\" in objResponse && objResponse[\"a:Deducciones\"] != \"\" ? objResponse[\"a:Deducciones\"][0] : {};\n let clsConceptoNomina = [];\n if (\"a:clsConceptoNomina\" in deducciones) {\n clsConceptoNomina =\n deducciones[\"a:clsConceptoNomina\"].length > 0 ? processArrayDetailNomina(deducciones[\"a:clsConceptoNomina\"]) : [];\n }\n detalleNomina[\"deducciones\"][\"clsConceptoNomina\"] = clsConceptoNomina;\n //EMISOR\n let dataEmisor = {};\n let emisor = \"a:Emisor\" in objResponse ? objResponse[\"a:Emisor\"][0] : null;\n if (emisor) {\n dataEmisor[\"direccion\"] = validateNull(emisor[\"a:Direccion\"][0])\n ? emisor[\"a:Direccion\"][0]\n : null;\n dataEmisor[\"empresa\"] = validateNull(emisor[\"a:Empresa\"][0])\n ? emisor[\"a:Empresa\"][0]\n : null;\n dataEmisor[\"expedicion\"] = validateNull(emisor[\"a:Expedicion\"][0])\n ? emisor[\"a:Expedicion\"][0]\n : null;\n dataEmisor[\"rfc\"] = validateNull(emisor[\"a:RFC\"][0])\n ? emisor[\"a:RFC\"][0]\n : null;\n dataEmisor[\"registroPatronal\"] = validateNull(\n emisor[\"a:RegistroPatronal\"][0]\n )\n ? emisor[\"a:RegistroPatronal\"][0]\n : null;\n }\n detalleNomina[\"emisor\"] = dataEmisor;\n //PERCEPCIONES\n let percepciones = \n \"a:Percepciones\" in objResponse && objResponse[\"a:Percepciones\"] != \"\" ? objResponse[\"a:Percepciones\"][0] : {};\n if (\"a:clsConceptoNomina\" in percepciones) {\n detalleNomina[\"persepciones\"][\"clsConceptoNomina\"] =\n percepciones[\"a:clsConceptoNomina\"].length > 0 ? processArrayDetailNomina(percepciones[\"a:clsConceptoNomina\"]) : [];\n }\n // RECEPTOR\n let dataReseptor = {};\n let reseptor =\n \"a:Receptor\" in objResponse ? objResponse[\"a:Receptor\"][0] : null;\n if (reseptor) {\n dataReseptor[\"barrasCFDI\"] = validateNull(reseptor[\"a:BarrasCFDI\"][0])\n ? reseptor[\"a:BarrasCFDI\"][0]\n : null;\n dataReseptor[\"cadenaOriginal\"] = validateNull(\n reseptor[\"a:CadenaOriginal\"][0]\n )\n ? reseptor[\"a:CadenaOriginal\"][0]\n : null;\n dataReseptor[\"faltas\"] = validateNull(reseptor[\"a:Faltas\"][0])\n ? reseptor[\"a:Faltas\"][0]\n : null;\n dataReseptor[\"fechaCertificacion\"] = validateNull(\n reseptor[\"a:FechaCertificacion\"][0]\n )\n ? reseptor[\"a:FechaCertificacion\"][0]\n : null;\n dataReseptor[\"formaPago\"] = validateNull(reseptor[\"a:FormaPago\"][0])\n ? reseptor[\"a:FormaPago\"][0]\n : null;\n dataReseptor[\"NSS\"] = validateNull(reseptor[\"a:NSS\"][0])\n ? reseptor[\"a:NSS\"][0]\n : null;\n dataReseptor[\"noSerieCSD\"] = validateNull(reseptor[\"a:NoSerieCSD\"][0])\n ? reseptor[\"a:NoSerieCSD\"][0]\n : null;\n dataReseptor[\"bombre\"] = validateNull(reseptor[\"a:Nombre\"][0])\n ? reseptor[\"a:Nombre\"][0]\n : null;\n dataReseptor[\"RFC\"] = validateNull(reseptor[\"a:RFC\"][0])\n ? reseptor[\"a:RFC\"][0]\n : null;\n dataReseptor[\"selloCFDI\"] = validateNull(reseptor[\"a:SelloCFDI\"][0])\n ? reseptor[\"a:SelloCFDI\"][0]\n : null;\n dataReseptor[\"selloSAT\"] = validateNull(reseptor[\"a:SelloSAT\"][0])\n ? reseptor[\"a:SelloSAT\"][0]\n : null;\n dataReseptor[\"UUID\"] = validateNull(reseptor[\"a:UUID\"][0])\n ? reseptor[\"a:UUID\"][0]\n : null;\n }\n detalleNomina[\"receptor\"] = dataReseptor;\n //VIRTUALES DEDUCCION\n let virtualesDeduccion =\n \"a:VirtualesDeduccion\" in objResponse && objResponse[\"a:VirtualesDeduccion\"] != \"\" ? objResponse[\"a:VirtualesDeduccion\"][0] : {};\n if (\"a:clsConceptoNomina\" in virtualesDeduccion) {\n detalleNomina[\"virtualesDeduccion\"][\"clsConceptoNomina\"] = \n virtualesDeduccion[\"a:clsConceptoNomina\"].length > 0 ? processArrayDetailNomina(virtualesDeduccion[\"a:clsConceptoNomina\"]) : [];\n }\n //VIRTUALES PERCEPCION\n let virtualesPercepcion =\n \"a:VirtualesPercepcion\" in objResponse && objResponse[\"a:VirtualesPercepcion\"] != \"\" ? objResponse[\"a:VirtualesPercepcion\"][0] : {};\n if (\"a:clsConceptoNomina\" in virtualesPercepcion) {\n detalleNomina[\"virtualesPercepcion\"][\"clsConceptoNomina\"] =\n virtualesPercepcion[\"a:clsConceptoNomina\"].length > 0 ? processArrayDetailNomina(virtualesPercepcion[\"a:clsConceptoNomina\"]) : [];\n }\n return detalleNomina;\n};\n\nconst validateNull = (data) => {\n let validate = true;\n if (data instanceof Object) {\n if (\"$\" in data) {\n if (\"i:nil\" in data[\"$\"]) {\n return (validate = false);\n }\n }\n } \n else {\n return (validate = true);\n }\n\n return validate;\n};\n\nconst GetOrDefault = (param, _default = null) => {\n if (!param) return _default;\n param = param[0];\n\n if (param instanceof Object) {\n if (\"$\" in param) {\n if (\"i:nil\" in param[\"$\"]) {\n return _default;\n }\n }\n } \n\n return param;\n};\n\nconst processArrayDetailNomina = (arrNomina) => {\n let newArr = [];\n if (arrNomina.length > 0) {\n\n arrNomina.map((item) => {\n\n // let itemData = {};\n // if (\"a:Importe\" in item) {\n // itemData[\"importe\"] = item[\"a:Importe\"][0];\n // }\n // if (\"a:NombreConcepto\" in item) {\n // itemData[\"nombreConcepto\"] = item[\"a:NombreConcepto\"][0];\n // }\n // if (\"a:conceptoID\" in item) {\n // itemData[\"conceptoId\"] = item[\"a:conceptoID\"][0];\n // }\n // newArr.push(itemData);\n\n let importe = parseFloat(GetOrDefault(item[\"a:Importe\"], 0));\n let nombreConcepto = GetOrDefault(item[\"a:NombreConcepto\"], 0);\n let conceptoId = parseInt(GetOrDefault(item[\"a:conceptoID\"], 0));\n\n let obj = newArr.find(it => it.conceptoId == conceptoId);\n if (obj == undefined || obj == null) {\n let itemData = {\n importe: importe,\n nombreConcepto: nombreConcepto,\n conceptoId: conceptoId,\n };\n newArr.push(itemData);\n }\n else {\n obj.importe += importe;\n }\n \n });\n }\n return newArr;\n};\n\nexport const detalleImssResponse = (response) => {\n let objResponse =\n response.DetalleMovimientoIMSSResponse[0].DetalleMovimientoIMSSResult[0];\n let validate = validateNull(objResponse[\"a:ErrorMsg\"][0]);\n let dataDetail = {};\n\n if (validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n dataDetail[\"error\"] = validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\";\n } else {\n dataDetail[\"contrato\"] = validateNull(objResponse[\"a:Contrato\"][0])\n ? objResponse[\"a:Contrato\"][0]\n : \"\";\n dataDetail[\"fechaMov\"] = validateNull(objResponse[\"a:FechaMov\"][0])\n ? objResponse[\"a:FechaMov\"][0]\n : \"\";\n dataDetail[\"motivo\"] = validateNull(objResponse[\"a:Motivo\"][0])\n ? objResponse[\"a:Motivo\"][0]\n : \"\";\n dataDetail[\"movimiento\"] = validateNull(objResponse[\"a:Movimiento\"][0])\n ? objResponse[\"a:Movimiento\"][0]\n : \"\";\n dataDetail[\"ptr\"] = validateNull(objResponse[\"a:Ptr\"][0])\n ? objResponse[\"a:Ptr\"][0]\n : \"\";\n dataDetail[\"puesto\"] = validateNull(objResponse[\"a:Puesto\"][0])\n ? objResponse[\"a:Puesto\"][0]\n : \"\";\n dataDetail[\"sdi\"] = validateNull(objResponse[\"a:SDI\"][0])\n ? objResponse[\"a:SDI\"][0]\n : \"\";\n dataDetail[\"salario\"] = validateNull(objResponse[\"a:Salario\"][0])\n ? objResponse[\"a:Salario\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const movimientosInfonavitResponse = (response) => {\n let arryResponse = [];\n let objResponse =\n response.MovimientosINFONAVITResponse[0].MovimientosINFONAVITResult[0];\n if (objResponse && \"a:ListaMovimientos\" in objResponse) {\n if (validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n arryResponse = [{ error: objResponse[\"a:ErrorMsg\"][0] }];\n } else {\n let ListaMovimientos = objResponse[\"a:ListaMovimientos\"][0];\n if (ListaMovimientos && \"a:clsMovimientoINFONAVIT\" in ListaMovimientos) {\n let listaINFONAVIT = ListaMovimientos[\"a:clsMovimientoINFONAVIT\"];\n if (listaINFONAVIT && listaINFONAVIT.length > 0) {\n listaINFONAVIT.map((movimiento) => {\n let objMovimiento = {\n fecha: validateNull(movimiento[\"a:FechaMov\"][0])\n ? movimiento[\"a:FechaMov\"][0]\n : \"\",\n Movimiento: validateNull(movimiento[\"a:Movimiento\"][0])\n ? movimiento[\"a:Movimiento\"][0]\n : \"\",\n ptr: validateNull(movimiento[\"a:ptr\"][0])\n ? movimiento[\"a:ptr\"][0]\n : \"\",\n };\n arryResponse.push(objMovimiento);\n });\n }\n }\n }\n }\n return arryResponse;\n};\n\nexport const detalleInfonavitResponse = (response) => {\n let objResponse =\n response.DetalleMovimientoINFONAVITResponse[0]\n .DetalleMovimientoINFONAVITResult[0];\n let validate = validateNull(objResponse[\"a:ErrorMsg\"][0]);\n let dataDetail = {};\n\n if (validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n dataDetail[\"error\"] = validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\";\n } else {\n dataDetail[\"fecha\"] = validateNull(objResponse[\"a:Fecha\"][0])\n ? objResponse[\"a:Fecha\"][0]\n : \"\";\n dataDetail[\"movimiento\"] = validateNull(objResponse[\"a:Movimiento\"][0])\n ? objResponse[\"a:Movimiento\"][0]\n : \"\";\n dataDetail[\"numCredito\"] = validateNull(objResponse[\"a:NumCredito\"][0])\n ? objResponse[\"a:NumCredito\"][0]\n : \"\";\n dataDetail[\"tipoDescuento\"] = validateNull(\n objResponse[\"a:TipoDescuento\"][0]\n )\n ? objResponse[\"a:TipoDescuento\"][0]\n : \"\";\n dataDetail[\"valor\"] = validateNull(objResponse[\"a:Valor\"][0])\n ? objResponse[\"a:Valor\"][0]\n : \"\";\n dataDetail[\"ptr\"] = validateNull(objResponse[\"a:ptr\"][0])\n ? objResponse[\"a:ptr\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const termsResponse = (response) => {\n let dataDetail = {};\n let objResponse = response.TermCondResponse[0].TermCondResult[0];\n if (validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n dataDetail[\"error\"] = validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\";\n } else {\n dataDetail[\"TermCond\"] = validateNull(objResponse[\"a:TermCond\"][0])\n ? objResponse[\"a:TermCond\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const PrivacyResponse = (response) => {\n let dataDetail = {};\n let objResponse = response.AvisoPrivResponse[0].AvisoPrivResult[0];\n if (validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n dataDetail[\"error\"] = validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\";\n } else {\n dataDetail[\"AvisoPriv\"] = validateNull(objResponse[\"a:AvisoPriv\"][0])\n ? objResponse[\"a:AvisoPriv\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const messagesResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.MensajesAlPersonalResponse[0].MensajesAlPersonalResult[0];\n if (objResponse && \"a:Mensajes\" in objResponse) {\n let messages = objResponse[\"a:Mensajes\"][0];\n if (messages && \"a:clsMensajePersonal\" in messages) {\n let arrMessages = messages[\"a:clsMensajePersonal\"];\n if (arrMessages && arrMessages.length > 0) {\n //let itemData = {};\n arrMessages.map((message) => {\n let itemData = {};\n itemData[\"fecha\"] = (message[\"a:Fecha\"]) ? message[\"a:Fecha\"][0] : \"\";\n itemData[\"msgText\"] = (message[\"a:MsgText\"]) ? message[\"a:MsgText\"][0] : \"\";\n itemData[\"titulo\"] = (message[\"a:Titulo\"]) ? message[\"a:Titulo\"][0] : \"\";\n itemData[\"idMensaje\"] = (message[\"a:idMensaje\"]) ? message[\"a:idMensaje\"][0] : \"\";\n itemData[\"reciente\"] = (message[\"a:Reciente\"]) ? message[\"a:Reciente\"][0] : \"\";\n itemData[\"visto\"] = (message[\"a:Visto\"]) ? message[\"a:Visto\"][0] : \"\";\n itemData[\"fechaVencimiento\"] = (message[\"a:FechaVencimiento\"]) ? message[\"a:FechaVencimiento\"][0] : \"\";\n dataDetail.push(itemData);\n });\n }\n } \n // else if (objResponse && \"a:ErrorMsg\" in objResponse && validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n // let error = {};\n // error[\"error\"] = objResponse[\"a:ErrorMsg\"][0];\n // dataDetail.push(error);\n // }\n }\n\n // if (objResponse && \"a:ErrorMsg\" in objResponse \n // && validateNull(objResponse[\"a:ErrorMsg\"][0]) \n // && objResponse[\"a:ErrorMsg\"][0] == \"Acceso no autorizado\") {\n // let data = {\n // error: validateNull(objResponse[\"a:ErrorMsg\"][0]) ? objResponse[\"a:ErrorMsg\"][0] : \"\",\n // };\n // dataDetail = data;\n // }\n return dataDetail;\n};\n\nexport const messagesDetail = (response) => {\n let dataDetail = {};\n let objResponse =\n response.MensajesAlPersonalDetalleResponse[0]\n .MensajesAlPersonalDetalleResult[0];\n if (objResponse && \"a:Mensaje\" in objResponse) {\n dataDetail[\"mensaje\"] = validateNull(objResponse[\"a:Mensaje\"][0])\n ? objResponse[\"a:Mensaje\"][0]\n : \"\";\n dataDetail[\"fecha\"] = validateNull(objResponse[\"a:Fecha\"][0])\n ? objResponse[\"a:Fecha\"][0]\n : \"\";\n dataDetail[\"titulo\"] = validateNull(objResponse[\"a:Titulo\"][0])\n ? objResponse[\"a:Titulo\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const VacationsResponse = (response) => {\n let dataDetail = {};\n let objResponse = response.MisVacacionesResponse[0].MisVacacionesResult[0];\n dataDetail[\"antiguedad\"] = validateNull(objResponse[\"a:Antiguedad\"][0])\n ? objResponse[\"a:Antiguedad\"][0]\n : \"\";\n\n let Solicitudes = [];\n let SolCancelacion = [];\n let Incidencias = [];\n let diasdis = objResponse[\"a:Solicitudes\"][0];\n\n if (diasdis && \"a:DetalleSolicitud\" in diasdis) {\n let arrDias = diasdis[\"a:DetalleSolicitud\"];\n if (arrDias && arrDias.length > 0) {\n arrDias.map((dias) => {\n let diasD = {\n Dia: dias[\"a:Dia\"][0],\n FechaFin: validateNull(dias[\"a:FechaFin\"][0])\n ? dias[\"a:FechaFin\"][0]\n : \"\",\n FechaInicio: validateNull(dias[\"a:FechaInicio\"][0])\n ? dias[\"a:FechaInicio\"][0]\n : \"\",\n RangoFechas: validateNull(dias[\"a:RangoFechas\"][0])\n ? dias[\"a:RangoFechas\"][0] == \"true\"\n : false,\n FechaSolicitud: dias[\"a:FechaSolicitud\"][0],\n FechaVacacion: dias[\"a:FechaVacacion\"][0],\n SolicitudID: dias[\"a:SolicitudID\"][0],\n Status: dias[\"a:Status\"][0],\n TipoSolicitud: dias[\"a:TipoSolString\"][0],\n RangoFechas: dias[\"a:RangoFechas\"][0],\n Comentario: GetOrDefault(dias[\"a:Comentario\"], ''),\n MotivoVacacion: GetOrDefault(dias[\"a:MotivoVacacion\"], ''),\n RutaDescarga: GetOrDefault(dias[\"a:RutaDescarga\"], ''),\n };\n if (diasD.TipoSolicitud === \"Cancelación\") {\n SolCancelacion.push(diasD);\n }\n if (diasD.TipoSolicitud === \"Vacación\") {\n Solicitudes.push(diasD);\n }\n if (\n diasD.TipoSolicitud != \"Cancelación\" &&\n diasD.TipoSolicitud != \"Vacación\"\n ) {\n let newData = {\n ...diasD,\n TipoSolString: dias[\"a:TipoSolString\"][0],\n FechaInicio: dias[\"a:FechaInicio\"][0],\n FechaFin: dias[\"a:FechaFin\"][0],\n };\n\n Incidencias.push(newData);\n }\n });\n }\n }\n dataDetail[\"diasDisfrutados\"] = validateNull(objResponse[\"a:DiasTomados\"][0])\n ? Number(objResponse[\"a:DiasTomados\"][0])\n : \"\";\n dataDetail[\"solicitudes\"] = Solicitudes;\n dataDetail[\"solCancelacion\"] = SolCancelacion;\n dataDetail[\"incidencias\"] = Incidencias;\n dataDetail[\"totalDiasDisfrutados\"] = validateNull(\n objResponse[\"a:DiasTomados\"][0]\n )\n ? Number(objResponse[\"a:DiasTomados\"][0])\n : 0;\n dataDetail[\"diasDisponibles\"] = validateNull(\n objResponse[\"a:DiasDisponibles\"][0]\n )\n ? objResponse[\"a:DiasDisponibles\"][0]\n : \"\";\n dataDetail[\"diasTomados\"] = validateNull(objResponse[\"a:DiasTomados\"][0])\n ? objResponse[\"a:DiasTomados\"][0]\n : \"\";\n dataDetail[\"fechaIngreso\"] = validateNull(objResponse[\"a:FechaIngreso\"][0])\n ? objResponse[\"a:FechaIngreso\"][0]\n : \"\";\n dataDetail[\"totalDiasVacacionales\"] = validateNull(\n objResponse[\"a:TotalDiasVacacionales\"][0]\n )\n ? objResponse[\"a:TotalDiasVacacionales\"][0]\n : \"\";\n dataDetail[\"trabId\"] = validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\";\n\n dataDetail[\"proporcionales\"] = \"0\";\n dataDetail[\"vacacionesPendientesConsolide\"] = \"0\";\n dataDetail[\"totalVacacionesConsolide\"] = \"0\";\n dataDetail[\"vacacionesProporcionales\"] = validateNull(objResponse[\"a:VacacionesProporcionales\"][0])\n ? objResponse[\"a:VacacionesProporcionales\"][0]\n : \"\";\n dataDetail[\"diasDisponiblesProporcionales\"] = validateNull(objResponse[\"a:DiasDisponiblesProporcionales\"][0])\n ? objResponse[\"a:DiasDisponiblesProporcionales\"][0]\n : \"\";\n // Vacaciones Proporcionales = Proporcionales\n // Total de Vacaciones Devengadas = VacacionesPendientesConsolide\n // Total, Vacaciones= TotalVacacionesConsolide\n\n if (objResponse[\"a:Proporcionales\"]) {\n dataDetail[\"proporcionales\"] = \n validateNull(objResponse[\"a:Proporcionales\"][0]) ? objResponse[\"a:Proporcionales\"][0]: \"\";\n }\n if (objResponse[\"a:VacacionesPendientesConsolide\"]) {\n dataDetail[\"vacacionesPendientesConsolide\"] = \n validateNull(objResponse[\"a:VacacionesPendientesConsolide\"][0]) ? objResponse[\"a:VacacionesPendientesConsolide\"][0]: \"\";\n }\n if (objResponse[\"a:TotalVacacionesConsolide\"]) {\n dataDetail[\"totalVacacionesConsolide\"] = \n validateNull(objResponse[\"a:TotalVacacionesConsolide\"][0]) ? objResponse[\"a:TotalVacacionesConsolide\"][0]: \"\";\n }\n\n return dataDetail;\n};\n\n\nexport const VacationsResponseV2 = (response) => {\n let dataDetail = {};\n let objResponse = response.MisVacacionesResponse[0].MisVacacionesResult[0];\n dataDetail[\"antiguedad\"] = validateNull(objResponse[\"a:Antiguedad\"][0])\n ? objResponse[\"a:Antiguedad\"][0]\n : \"\";\n\n let Solicitudes = [];\n let SolCancelacion = [];\n let Incidencias = [];\n let SolCancelaInc = [];\n let diasdis = objResponse[\"a:Solicitudes\"][0];\n\n if (diasdis && \"a:DetalleSolicitud\" in diasdis) {\n let arrDias = diasdis[\"a:DetalleSolicitud\"];\n if (arrDias && arrDias.length > 0) {\n arrDias.map((dias) => {\n let diasD = {\n Dia: dias[\"a:Dia\"][0],\n FechaFin: validateNull(dias[\"a:FechaFin\"][0])\n ? dias[\"a:FechaFin\"][0]\n : \"\",\n FechaInicio: validateNull(dias[\"a:FechaInicio\"][0])\n ? dias[\"a:FechaInicio\"][0]\n : \"\",\n RangoFechas: validateNull(dias[\"a:RangoFechas\"][0])\n ? dias[\"a:RangoFechas\"][0] == \"true\"\n : false,\n FechaSolicitud: dias[\"a:FechaSolicitud\"][0],\n FechaVacacion: dias[\"a:FechaVacacion\"][0],\n SolicitudID: dias[\"a:SolicitudID\"][0],\n Status: dias[\"a:Status\"][0],\n TipoSolicitud: dias[\"a:TipoSolicitud\"][0],\n TipoSolString: dias[\"a:TipoSolString\"][0],\n RangoFechas: dias[\"a:RangoFechas\"][0],\n Comentario: GetOrDefault(dias[\"a:Comentario\"], ''),\n MotivoVacacion: GetOrDefault(dias[\"a:MotivoVacacion\"], ''),\n RutaDescarga: GetOrDefault(dias[\"a:RutaDescarga\"], ''),\n CancelacionIncidencia: validateNull(dias[\"a:CancelacionIncidencia\"][0])\n ? dias[\"a:CancelacionIncidencia\"][0]\n : \"\",\n };\n if (diasD.TipoSolicitud === \"3\") {\n SolCancelacion.push(diasD);\n }\n if (diasD.TipoSolicitud === \"1\") {\n Solicitudes.push(diasD);\n }\n if (\n diasD.TipoSolicitud != \"3\" &&\n diasD.TipoSolicitud != \"1\"\n ) {\n\n if (diasD.CancelacionIncidencia == \"Si\") {\n let newDataCan = {\n ...diasD,\n TipoSolString: dias[\"a:TipoSolString\"][0],\n FechaInicio: dias[\"a:FechaInicio\"][0],\n FechaFin: dias[\"a:FechaFin\"][0],\n };\n\n SolCancelaInc.push(newDataCan)\n\n } else {\n let newData = {\n ...diasD,\n TipoSolString: dias[\"a:TipoSolString\"][0],\n FechaInicio: dias[\"a:FechaInicio\"][0],\n FechaFin: dias[\"a:FechaFin\"][0],\n };\n\n Incidencias.push(newData)\n }\n\n\n }\n\n });\n }\n }\n dataDetail[\"diasDisfrutados\"] = validateNull(objResponse[\"a:DiasTomados\"][0])\n ? Number(objResponse[\"a:DiasTomados\"][0])\n : \"\";\n dataDetail[\"solicitudes\"] = Solicitudes;\n dataDetail[\"solCancelacion\"] = SolCancelacion;\n dataDetail[\"solCancelIncidencias\"] = SolCancelaInc;\n dataDetail[\"incidencias\"] = Incidencias;\n dataDetail[\"totalDiasDisfrutados\"] = validateNull(\n objResponse[\"a:DiasTomados\"][0]\n )\n ? Number(objResponse[\"a:DiasTomados\"][0])\n : 0;\n dataDetail[\"diasDisponibles\"] = validateNull(\n objResponse[\"a:DiasDisponibles\"][0]\n )\n ? objResponse[\"a:DiasDisponibles\"][0]\n : \"\";\n dataDetail[\"diasTomados\"] = validateNull(objResponse[\"a:DiasTomados\"][0])\n ? objResponse[\"a:DiasTomados\"][0]\n : \"\";\n dataDetail[\"fechaIngreso\"] = validateNull(objResponse[\"a:FechaIngreso\"][0])\n ? objResponse[\"a:FechaIngreso\"][0]\n : \"\";\n dataDetail[\"totalDiasVacacionales\"] = validateNull(\n objResponse[\"a:TotalDiasVacacionales\"][0]\n )\n ? objResponse[\"a:TotalDiasVacacionales\"][0]\n : \"\";\n dataDetail[\"trabId\"] = validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\";\n\n dataDetail[\"proporcionales\"] = \"0\";\n dataDetail[\"vacacionesPendientesConsolide\"] = \"0\";\n dataDetail[\"totalVacacionesConsolide\"] = \"0\";\n // Vacaciones Proporcionales = Proporcionales\n // Total de Vacaciones Devengadas = VacacionesPendientesConsolide\n // Total, Vacaciones= TotalVacacionesConsolide\n\n if (objResponse[\"a:Proporcionales\"]) {\n dataDetail[\"proporcionales\"] =\n validateNull(objResponse[\"a:Proporcionales\"][0]) ? objResponse[\"a:Proporcionales\"][0] : \"\";\n }\n if (objResponse[\"a:VacacionesPendientesConsolide\"]) {\n dataDetail[\"vacacionesPendientesConsolide\"] =\n validateNull(objResponse[\"a:VacacionesPendientesConsolide\"][0]) ? objResponse[\"a:VacacionesPendientesConsolide\"][0] : \"\";\n }\n if (objResponse[\"a:TotalVacacionesConsolide\"]) {\n dataDetail[\"totalVacacionesConsolide\"] =\n validateNull(objResponse[\"a:TotalVacacionesConsolide\"][0]) ? objResponse[\"a:TotalVacacionesConsolide\"][0] : \"\";\n }\n\n return dataDetail;\n};\n\nexport const ValidaFechaResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.VerificaVacacionesResponse[0].VerificaVacacionesResult[0];\n\n let fechasValidas = objResponse[\"a:Fechas\"][0];\n if (fechasValidas && \"b:dateTime\" in fechasValidas){\n let clsFechasValidas = fechasValidas[\"b:dateTime\"];\n dataDetail = clsFechasValidas;\n }\n return dataDetail;\n};\n\nexport const validVacationsAction = async (data, server) => {\n let configJson = {\n \"tem:ValidaDiaVacacionV2\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ValidaDiaVacacionV2\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n let response = await fetch(server, config);\n let responseText = await response.text();\n let isValid = null;\n let finalResponse = await parseString(\n responseText,\n { trim: true },\n (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n isValid = false;\n }\n }\n response = {\n isOK: true,\n ValidVacation: ValidVacationsResponse(body),\n };\n\n isValid = response.ValidVacation;\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n isValid = false;\n }\n }\n );\n return isValid;\n};\n\nexport const ValidVacationsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.ValidaDiaVacacionV2Response[0].ValidaDiaVacacionV2Result[0];\n if (objResponse && objResponse === \"OK\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const InserVacationsResponse = (response) => {\n // let dataDetail = {};\n // let objResponse =\n // response.InsertaVacacionesV2Response[0].InsertaVacacionesV2Result[0];\n // if (objResponse && \"a:Result\" in objResponse) {\n // let result = objResponse[\"a:Result\"][0];\n // if (result === \"true\") {\n // dataDetail = {\n // error: \"\",\n // result: true,\n // };\n // } else {\n // dataDetail = {\n // error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n // ? objResponse[\"a:ErrorMsg\"][0]\n // : \"Algo salio mal intenta otra ves\",\n // result: false,\n // };\n // }\n // }\n // return dataDetail;\n let dataDetail = {\n Result: false,\n Details: []\n };\n let objResponse = response.InsertaVacacionesV2Response[0].InsertaVacacionesV2Result[0];\n if (objResponse) {\n dataDetail.Result = (objResponse[\"a:Result\"] ? objResponse[\"a:Result\"][0] : 'false') == 'true';\n let objDetails = objResponse[\"a:Details\"] ? objResponse[\"a:Details\"][0] : {};\n if (objDetails && 'b:string' in objDetails) {\n dataDetail.Details = objDetails[\"b:string\"] ;\n }\n }\n return dataDetail;\n};\n\n\nexport const IncidentDataResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.ObtieneIncidenciasResponse[0].ObtieneIncidenciasResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let incidencia = objResponse[\"a:Solicitudes\"][0];\n if (incidencia && \"a:DetalleIncidencia\" in incidencia) {\n let detalle_Incidencia = incidencia[\"a:DetalleIncidencia\"];\n if (detalle_Incidencia && detalle_Incidencia.length > 0) {\n\n detalle_Incidencia.map((inc) => {\n let DataIncidents = {\n Dia: validateNull(inc[\"a:Dia\"][0]) ? inc[\"a:Dia\"][0]\n : \"\",\n Fechas: validateNull(inc[\"a:Fechas\"][0]) ? inc[\"a:Fechas\"][0]\n : \"\",\n Materno: validateNull(inc[\"a:Materno\"][0]) ? inc[\"a:Materno\"][0]\n : \"\",\n Paterno: validateNull(inc[\"a:Paterno\"][0]) ? inc[\"a:Paterno\"][0]\n : \"\",\n Motivo: validateNull(inc[\"a:Motivo\"][0]) ? inc[\"a:Motivo\"][0]\n : \"\",\n Nombre: validateNull(inc[\"a:Nombre\"][0]) ? inc[\"a:Nombre\"][0]\n : \"\",\n Estatus: validateNull(inc[\"a:Status\"][0]) ? inc[\"a:Status\"][0]\n : \"\",\n TipoSolicitud: validateNull(inc[\"a:TipoSolString\"][0]) ? inc[\"a:TipoSolString\"][0]\n : \"\",\n ReportaId: validateNull(inc[\"a:reporta_id\"][0]) ? inc[\"a:reporta_id\"][0]\n : \"\",\n };\n\n dataDetail.push(DataIncidents)\n\n });\n\n }\n }\n}\n return dataDetail;\n};\n\nexport const IncidentVacDataResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.NotificaCorreoVencimientoVacacionesResponse[0].NotificaCorreoVencimientoVacacionesResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let incidencia = objResponse[\"a:Solicitudes\"][0];\n if (incidencia && \"a:DetalleIncidencia\" in incidencia) {\n let detalle_Incidencia = incidencia[\"a:DetalleIncidencia\"];\n if (detalle_Incidencia && detalle_Incidencia.length > 0) {\n\n detalle_Incidencia.map((inc) => {\n let DataIncidents = {\n Dia: validateNull(inc[\"a:Dia\"][0]) ? inc[\"a:Dia\"][0]\n : \"\",\n Fechas: validateNull(inc[\"a:Fechas\"][0]) ? inc[\"a:Fechas\"][0]\n : \"\",\n Materno: validateNull(inc[\"a:Materno\"][0]) ? inc[\"a:Materno\"][0]\n : \"\",\n Paterno: validateNull(inc[\"a:Paterno\"][0]) ? inc[\"a:Paterno\"][0]\n : \"\",\n Nombre: validateNull(inc[\"a:Nombre\"][0]) ? inc[\"a:Nombre\"][0]\n : \"\",\n Estatus: validateNull(inc[\"a:Status\"][0]) ? inc[\"a:Status\"][0]\n : \"\",\n TipoSolicitud: validateNull(inc[\"a:TipoSolString\"][0]) ? inc[\"a:TipoSolString\"][0]\n : \"\",\n ReportaId: validateNull(inc[\"a:reporta_id\"][0]) ? inc[\"a:reporta_id\"][0]\n : \"\",\n };\n\n dataDetail.push(DataIncidents)\n\n });\n\n }\n }\n}\n return dataDetail;\n};\n\nexport const VacationsIncidentsDataResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.VacacionesIncidenciasPendientesResponse[0].VacacionesIncidenciasPendientesResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let incidencia = objResponse[\"a:Solicitudes\"][0];\n if (incidencia && \"a:DetalleIncidencia\" in incidencia) {\n let detalle_Incidencia = incidencia[\"a:DetalleIncidencia\"];\n if (detalle_Incidencia && detalle_Incidencia.length > 0) {\n\n detalle_Incidencia.map((inc) => {\n let DataIncidents = {\n Dia: validateNull(inc[\"a:Dia\"][0]) ? inc[\"a:Dia\"][0]\n : \"\",\n Fechas: validateNull(inc[\"a:Fechas\"][0]) ? inc[\"a:Fechas\"][0]\n : \"\",\n Materno: validateNull(inc[\"a:Materno\"][0]) ? inc[\"a:Materno\"][0]\n : \"\",\n Paterno: validateNull(inc[\"a:Paterno\"][0]) ? inc[\"a:Paterno\"][0]\n : \"\",\n Nombre: validateNull(inc[\"a:Nombre\"][0]) ? inc[\"a:Nombre\"][0]\n : \"\",\n Estatus: validateNull(inc[\"a:Status\"][0]) ? inc[\"a:Status\"][0]\n : \"\",\n TipoSolicitud: validateNull(inc[\"a:TipoSolString\"][0]) ? inc[\"a:TipoSolString\"][0]\n : \"\",\n ReportaId: validateNull(inc[\"a:reporta_id\"][0]) ? inc[\"a:reporta_id\"][0]\n : \"\",\n };\n\n dataDetail.push(DataIncidents)\n\n });\n\n }\n }\n}\n return dataDetail;\n};\n\n\n\nexport const QuejaMessajeResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.BuzonQuejaResponse[0].BuzonQuejaResult[0];\n let resp = validateNull(objResponse[\"a:subida\"][0])\n ? objResponse[\"a:subida\"][0]\n : false;\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const SiBalanceResponse = (response) => {\n let dataDetail = [];\n\n let objResponse =\n response.ListadoEncuestasAppResponse[0].ListadoEncuestasAppResult[0];\n let objEncuestas = objResponse[\"a:ListaEncuestas\"][0];\n if (objEncuestas && \"b:EntEmpleadoEncuesta\" in objEncuestas) {\n let arrEncuestas = objEncuestas[\"b:EntEmpleadoEncuesta\"];\n if (arrEncuestas && arrEncuestas.length > 0) {\n arrEncuestas.map((encuesta) => {\n let newObEncuesta = {};\n newObEncuesta[\"Centro_ID\"] = validateNull(encuesta[\"b:Centro_ID\"][0])\n ? encuesta[\"b:Centro_ID\"][0]\n : \"\";\n newObEncuesta[\"Concluida\"] = validateNull(encuesta[\"b:Concluida\"][0])\n ? encuesta[\"b:Concluida\"][0]\n : \"\";\n newObEncuesta[\"Depto_ID\"] = validateNull(encuesta[\"b:Depto_ID\"][0])\n ? encuesta[\"b:Depto_ID\"][0]\n : \"\";\n newObEncuesta[\"Email\"] = validateNull(encuesta[\"b:Email\"][0])\n ? encuesta[\"b:Email\"][0]\n : \"\";\n newObEncuesta[\"Encuesta\"] = validateNull(encuesta[\"b:Encuesta\"][0])\n ? encuesta[\"b:Encuesta\"][0]\n : \"\";\n newObEncuesta[\"EncuestaLink\"] = validateNull(\n encuesta[\"b:EncuestaLink\"][0]\n )\n ? encuesta[\"b:EncuestaLink\"][0]\n : \"\";\n newObEncuesta[\"Encuesta_ID\"] = validateNull(\n encuesta[\"b:Encuesta_ID\"][0]\n )\n ? encuesta[\"b:Encuesta_ID\"][0]\n : \"\";\n newObEncuesta[\"FechaEnvio\"] = validateNull(encuesta[\"b:FechaEnvio\"][0])\n ? encuesta[\"b:FechaEnvio\"][0]\n : \"\";\n newObEncuesta[\"Puesto_ID\"] = validateNull(encuesta[\"b:Puesto_ID\"][0])\n ? encuesta[\"b:Puesto_ID\"][0]\n : \"\";\n\n newObEncuesta[\"Survey_ID\"] = validateNull(encuesta[\"b:Survey_ID\"][0])\n ? encuesta[\"b:Survey_ID\"][0]\n : \"\";\n newObEncuesta[\"Trab_ID\"] = validateNull(encuesta[\"b:Trab_ID\"][0])\n ? encuesta[\"b:Trab_ID\"][0]\n : \"\";\n newObEncuesta[\"Ubicacion_ID\"] = validateNull(\n encuesta[\"b:Ubicacion_ID\"][0]\n )\n ? encuesta[\"b:Ubicacion_ID\"][0]\n : \"\";\n dataDetail.push(newObEncuesta);\n });\n } else {\n dataDetail = [];\n }\n } else {\n dataDetail = [];\n }\n\n return dataDetail;\n};\n\nexport const UrlEncuestaResponse = (response) => {\n let dataDetail = \"\";\n let objResponse =\n response.obtenerURLEncuestaAppResponse[0].obtenerURLEncuestaAppResult[0];\n let resp = validateNull(objResponse[\"a:url\"][0])\n ? objResponse[\"a:url\"][0]\n : \"\";\n if (resp && resp.length > 0) {\n dataDetail = resp;\n }\n return dataDetail;\n};\n\nexport const ValidateEncuestaResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.acualizaContestadaAPPResponse[0].acualizaContestadaAPPResult[0];\n let resp = validateNull(objResponse[\"a:contestada\"][0])\n ? objResponse[\"a:contestada\"][0]\n : \"\";\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const UrlPdfResponse = (response) => {\n let dataDetail = { CFDI: null, Especial: null};\n let objResponse = response.ReciboNomPDFResponse[0].ReciboNomPDFResult[0];\n let pdfCFDI = validateNull(objResponse[\"a:RutaDescargaPdf\"]) ? objResponse[\"a:RutaDescargaPdf\"][0] : \"\";\n let pdfEspecial = validateNull(objResponse[\"a:RutaReciboEspecial\"]) ? objResponse[\"a:RutaReciboEspecial\"][0] : \"\";\n if (pdfCFDI && pdfCFDI.length > 0) {\n dataDetail.CFDI = pdfCFDI;\n }\n if (pdfEspecial && pdfEspecial.length > 0) {\n dataDetail.Especial = pdfEspecial;\n }\n console.log(\"_PDF_CFDI\", pdfCFDI);\n console.log(\"_PDF_ESPE\", pdfEspecial);\n return dataDetail;\n};\n\nexport const UrlXmlResponse = (response) => {\n let dataDetail = \"\";\n let objResponse = response.ReciboNomXmlResponse[0].ReciboNomXmlResult[0];\n let resp = validateNull(objResponse[\"a:RutaDescargaPdf\"][0])\n ? objResponse[\"a:RutaDescargaPdf\"][0]\n : \"\";\n if (resp && resp.length > 0) {\n dataDetail = resp;\n }\n\n return dataDetail;\n};\n\nexport const UploadImageResponse = (response) => {\n\n let dataDetail = {};\n let objResponse = response.SubirFotoResponse[0].SubirFotoResult[0];\n\n return dataDetail;\n};\n\nexport const MessageaRhResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.BuzonRRHHResponse[0].BuzonRRHHResult[0];\n let resp = validateNull(objResponse[\"a:Result\"][0])\n ? objResponse[\"a:Result\"][0]\n : \"\";\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const MyMessagesARHResponce = (response) => {\n let dataDetail = [];\n let objResponse = response.MisMensajesARHResponse[0].MisMensajesARHResult[0];\n if (objResponse && \"a:Mensajes\" in objResponse) {\n let resp = objResponse[\"a:Mensajes\"][0];\n\n if (resp && \"a:clsDetalleMisMensajesRH\" in resp) {\n let detailMessages = resp[\"a:clsDetalleMisMensajesRH\"];\n detailMessages.map((message) => {\n let objMessaje = {\n FechaCap: message[\"a:FechaCap\"][0],\n Id: message[\"a:Id_msj\"][0],\n Mensaje: message[\"a:Mensaje\"][0],\n Titulo: message[\"a:Titulo\"][0],\n Respuesta: validateNull(message['a:Respuesta'][0]) ? message['a:Respuesta'][0] : '',\n };\n dataDetail.push(objMessaje);\n });\n }\n }\n\n return dataDetail;\n};\n\nexport const ComplaintAdminResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.ResponderQuejaResponse[0].ResponderQuejaResult[0];\n let resp = validateNull(objResponse[\"a:Result\"][0])\n ? objResponse[\"a:Result\"][0]\n : \"\";\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const imageQr = (response) => {\n let objResponse = response.QRResponse[0].QRResult[0];\n let img = null;\n let imgResponse = objResponse[\"a:ImagenBase64\"][0];\n if (validateNull(imgResponse)) {\n img = objResponse[\"a:ImagenBase64\"][0];\n }\n return img;\n};\n\n//USER RH\n\nexport const AllMessagesToRhResponse = (response) => {\n let dataDetail = [];\n\n let objResponse = response.AllMensajesARHResponse[0].AllMensajesARHResult[0];\n if (objResponse && \"a:Mensajes\" in objResponse) {\n let resp = objResponse[\"a:Mensajes\"][0];\n\n if (resp && \"a:clsDetalleAllMensajesRH\" in resp) {\n let detailMessages = resp[\"a:clsDetalleAllMensajesRH\"];\n detailMessages.map((message) => {\n let objMessaje = {\n emisor: message[\"a:Emisor\"][0] || \"\",\n fechaCap: message[\"a:FechaCap\"][0] || \"\",\n id_msj: message[\"a:Id_msj\"][0] || \"\",\n mensaje: message[\"a:Mensaje\"][0] || \"\",\n nombreCompleto: message[\"a:NombreCompleto\"][0] || \"\",\n titulo: message[\"a:Titulo\"][0] || \"\",\n leido: message[\"a:leido\"][0] === \"true\",\n };\n dataDetail.push(objMessaje);\n });\n }\n }\n\n return dataDetail;\n};\n\nexport const ReadMessageResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.MsjLeidoResponse[0].MsjLeidoResult[0];\n let resp = validateNull(objResponse[\"a:Result\"][0])\n ? objResponse[\"a:Result\"][0]\n : false;\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\nexport const DeleteMessageResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.MsjBorradoResponse[0].MsjBorradoResult[0];\n let resp = validateNull(objResponse[\"a:Result\"][0])\n ? objResponse[\"a:Result\"][0]\n : false;\n if (resp && resp === \"true\") {\n dataDetail = true;\n }\n return dataDetail;\n};\n\n//JEFE\nexport const RequestVacationsAllResponse = (response) => {\n let dataDetail = [];\n let objResponse =\n response.SolicitudVacacionesAllResponse[0].SolicitudVacacionesAllResult[0];\n if (\n objResponse &&\n \"a:SolicitudxTabajador\" in objResponse &&\n objResponse[\"a:SolicitudxTabajador\"] !== \"\"\n ) {\n let solicitudes = objResponse[\"a:SolicitudxTabajador\"][0];\n if (solicitudes && \"a:SolicitudesTrabajador\" in solicitudes) {\n let DetalleSolicitudAll = solicitudes[\"a:SolicitudesTrabajador\"];\n if (DetalleSolicitudAll && DetalleSolicitudAll.length > 0) {\n DetalleSolicitudAll.map((detalle, index) => {\n const detailData = {\n nombreCompleto: detalle[\"a:NombreCompleto\"][0] || \"\",\n trabID: detalle[\"a:TrabID\"][0] || \"\",\n };\n dataDetail.push(detailData);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const AuthorizeVacationsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionVacacionesResponse[0].AutorizacionVacacionesResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result.length > 0) {\n dataDetail = Result === \"true\";\n }\n }\n return dataDetail;\n};\n\nexport const RejectVacationsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.RechazoVacacionesResponse[0].RechazoVacacionesResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const SeeVacations = (response) => {\n let dataDetail = false;\n let objResponse = response.VistoResponse[0].VistoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n//RH USER\n\nexport const GetTypesNominaResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.GetTiposNominaResponse[0].GetTiposNominaResult[0];\n if (objResponse && \"a:TiposNomina\" in objResponse) {\n let tiposNomina = objResponse[\"a:TiposNomina\"][0];\n if (tiposNomina && \"a:TBTipoNomina\" in tiposNomina) {\n let TBTipoNomina = tiposNomina[\"a:TBTipoNomina\"];\n if (TBTipoNomina.length > 0) {\n TBTipoNomina.map((tipos) => {\n let dataType = {\n AplicaAjusteMensual: tipos[\"a:AplicaAjusteMensual\"][0] || \"\",\n Descripcion: tipos[\"a:Descripcion\"][0].toUpperCase() || \"\",\n Estimacion: tipos[\"a:Estimacion\"][0] || \"\",\n Finiquito: tipos[\"a:Finiquito\"][0] || \"\",\n NoAplicaSubsidio: tipos[\"a:NoAplicaSubsidio\"][0] || \"\",\n PreNomina: tipos[\"a:PreNomina\"][0] || \"\",\n ProcesaBajas: tipos[\"a:ProcesaBajas\"][0] || \"\",\n TipoNomina_ID: tipos[\"a:TipoNomina_ID\"][0] || \"\",\n UltimoDiaPagado: tipos[\"a:UltimoDiaPagado\"][0] || \"\",\n };\n dataDetail.push(dataType);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const NominaPeriodsResponse = (response) => {\n let dataDetail = [];\n let objResponse =\n response.GetPeriodosNominaResponse[0].GetPeriodosNominaResult[0];\n if (objResponse && \"a:NominaPeriodos\" in objResponse) {\n let nomPeriods = objResponse[\"a:NominaPeriodos\"][0];\n if (nomPeriods && \"a:NomPeriodos\" in nomPeriods) {\n let nominaPeriods = nomPeriods[\"a:NomPeriodos\"];\n if (nominaPeriods.length > 0) {\n nominaPeriods.map((nom) => {\n const dataPeriodsNomina = {\n Descripcion: nom[\"a:Descripcion\"][0] || \"\",\n Periodo_ID: nom[\"a:Periodo_ID\"][0] || \"\",\n };\n dataDetail.push(dataPeriodsNomina);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const CalendarNominaResponse = (response) => {\n let dataDetail = [];\n let objResponse =\n response.GetCalendarioNominaResponse[0].GetCalendarioNominaResult[0];\n if (objResponse && \"a:CalendariosNomina\" in objResponse) {\n let calendariosNomina = objResponse[\"a:CalendariosNomina\"][0];\n if (calendariosNomina && \"a:CalendarioNomina\" in calendariosNomina) {\n let calendarioNomina = calendariosNomina[\"a:CalendarioNomina\"];\n if (calendarioNomina && calendarioNomina.length > 0) {\n calendarioNomina.map((nom) => {\n const calendar = {\n Ano: nom[\"a:Ano\"][0] || \"\",\n Dias: nom[\"a:Dias\"][0] || \"\",\n FechaFin: nom[\"a:Fin\"][0] || \"\",\n FechaInicio: nom[\"a:Inicio\"][0] || \"\",\n Mes: nom[\"a:Mes\"][0] || \"\",\n MesRow: nom[\"a:MesRow\"][0] || \"\",\n Periodo: nom[\"a:Periodo\"][0] || \"\",\n Periodo_ID: nom[\"a:Periodo_ID\"][0] || \"\",\n PeriodosMes: nom[\"a:PeriodosMes\"][0] || \"\",\n TipoNominaIDa: nom[\"a:TipoNominaIDa\"][0] || \"\",\n select: false,\n };\n dataDetail.push(calendar);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const GetCentersNominaResponse = (response) => {\n let dataDetail = [];\n let objResponse =\n response.GetCentrosNominaResponse[0].GetCentrosNominaResult[0];\n if (objResponse && \"a:CentrosNomina\" in objResponse) {\n let CentrosNomina = objResponse[\"a:CentrosNomina\"][0];\n if (CentrosNomina && \"a:CentroNomina\" in CentrosNomina) {\n let CentroNomina = CentrosNomina[\"a:CentroNomina\"];\n if (CentroNomina.length > 0) {\n CentroNomina.map((center) => {\n let obj = {\n Centro_ID: center[\"a:Centro_ID\"][0] || \"\",\n Cerrado: center[\"a:Cerrado\"][0] || \"\",\n Descripcion: center[\"a:Descripcion\"][0].toUpperCase() || \"\",\n Empleados: center[\"a:Empleados\"][0] || \"\",\n Estatus: center[\"a:Estatus\"][0] || \"\",\n Proceso_ID: center[\"a:Proceso_ID\"][0] || \"\",\n Usuario: center[\"a:Usuario\"][0] || \"\",\n selected: false,\n };\n dataDetail.push(obj);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const ProcessNominaResponse = (response) => {\n let dataDetail = {};\n let objResponse =\n response.SetProcesoNominaResponse[0].SetProcesoNominaResult[0];\n if (objResponse && \"a:TareasProcesoNomina\" in objResponse) {\n let TareasProcesoNomina = objResponse[\"a:TareasProcesoNomina\"][0];\n if (TareasProcesoNomina && \"a:Proceso_ID\" in TareasProcesoNomina) {\n dataDetail = {\n Msg: TareasProcesoNomina[\"a:Msg\"][0] || \"\",\n Proceso_ID: TareasProcesoNomina[\"a:Proceso_ID\"][0] || \"\",\n };\n }\n }\n return dataDetail;\n};\n\nexport const periodosNominaRh = (response) => {\n let arrayResp = [];\n let objResponse =\n response.PeriodosNominaAllResponse[0].PeriodosNominaAllResult[0];\n if (objResponse && \"a:PeriodosNomina\" in objResponse) {\n let arrResponseOne = objResponse[\"a:PeriodosNomina\"][0];\n if (arrResponseOne && \"a:clsPeriodoNominaAllResponse\" in arrResponseOne) {\n let arrRespondeFinal = arrResponseOne[\"a:clsPeriodoNominaAllResponse\"];\n if (arrRespondeFinal && arrRespondeFinal.length > 0) {\n arrRespondeFinal.map((responseObj) => {\n let obj = {\n ano: responseObj[\"a:Ano\"][0] || \"\",\n //diasTrabajados:responseObj['a:DiasTrabajados'][0] || 0,\n fechaFinal: responseObj[\"a:FechaFinal\"][0] || \"\",\n fechaInicio: responseObj[\"a:FechaInicio\"][0] || \"\",\n //leido:responseObj['a:Leido'][0] || false,\n nombrePeriodo: responseObj[\"a:NombrePeriodo\"][0] || \"\",\n numeroPeriodo: responseObj[\"a:NumPeriodo\"][0] || \"\",\n periodoID: responseObj[\"a:PeriodoID\"][0] || \"\",\n //sdi:responseObj['a:SDI'][0] || '',\n //salario:responseObj['a:Salario'][0] || '',\n tipoNomina: responseObj[\"a:TipoNomina\"][0] || \"\",\n tipoNominaID: responseObj[\"a:TipoNominaID\"][0] || \"\",\n total: responseObj[\"a:Total\"][0] || \"\",\n totalDeduccion: responseObj[\"a:TotalDeduccion\"][0] || \"\",\n totalPercepcion: responseObj[\"a:TotalPercepcion\"][0] || \"\",\n //trabId:responseObj['a:TrabID'][0] || '',\n };\n arrayResp.push(obj);\n });\n }\n }\n }\n return arrayResp;\n};\n\nexport const detalleNominaRh = (response) => {\n let detalleNomina = {};\n detalleNomina = {\n deducciones: {\n clsConceptoNomina: [],\n },\n persepciones: {\n clsConceptoNomina: [],\n },\n trabajadores: \"0\",\n };\n let objResponse =\n response.DetalleNominaAllResponse[0].DetalleNominaAllResult[0];\n //DEDUCCIONES\n let deducciones =\n \"a:Deducciones\" in objResponse ? objResponse[\"a:Deducciones\"][0] : null;\n let clsConceptoNomina = [];\n if (deducciones && \"a:clsConceptoNomina\" in deducciones) {\n clsConceptoNomina =\n deducciones[\"a:clsConceptoNomina\"].length > 0\n ? processArrayDetailNomina(deducciones[\"a:clsConceptoNomina\"])\n : [];\n }\n detalleNomina[\"deducciones\"][\"clsConceptoNomina\"] = clsConceptoNomina;\n\n //PERCEPCIONES\n let percepciones =\n \"a:Percepciones\" in objResponse ? objResponse[\"a:Percepciones\"][0] : null;\n if (percepciones && \"a:clsConceptoNomina\" in percepciones) {\n detalleNomina[\"persepciones\"][\"clsConceptoNomina\"] =\n percepciones[\"a:clsConceptoNomina\"].length > 0\n ? processArrayDetailNomina(percepciones[\"a:clsConceptoNomina\"])\n : [];\n }\n //TRABAJADORES\n let trabajadores =\n \"a:TotalTrabajadores\" in objResponse\n ? objResponse[\"a:TotalTrabajadores\"][0]\n : \"0\";\n detalleNomina[\"trabajadores\"] = trabajadores;\n return detalleNomina;\n};\n\nexport const empresasResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.ListaEmpresasResponse[0].ListaEmpresasResult[0];\n if (objResponse && \"a:string\" in objResponse) {\n let empresas = objResponse[\"a:string\"];\n if (empresas && empresas.length > 0) {\n empresas.map((empresa) => {\n dataDetail.push(empresa);\n });\n }\n }\n return dataDetail;\n};\n\nexport const LicenseDataResponse = (response) => {\n let dataDetail = {};\n let objResponse = response.DatosLicenciaResponse[0].DatosLicenciaResult[0];\n let error = objResponse[\"a:ErrorMsg\"][0];\n if (\n error &&\n \"$\" in error &&\n \"i:nil\" in error[\"$\"] &&\n error[\"$\"][\"i:nil\"] === \"true\"\n ) {\n dataDetail[\"ClienteSicoss\"] = validateNull(\n objResponse[\"a:ClienteSicoss\"][0]\n )\n ? objResponse[\"a:ClienteSicoss\"][0]\n : \"\";\n dataDetail[\"Empresa\"] = validateNull(objResponse[\"a:Empresa\"][0])\n ? objResponse[\"a:Empresa\"][0]\n : \"\";\n dataDetail[\"FechaVencimiento\"] = validateNull(\n objResponse[\"a:FechaVencimiento\"][0]\n )\n ? objResponse[\"a:FechaVencimiento\"][0]\n : \"\";\n dataDetail[\"Movimientos\"] = validateNull(objResponse[\"a:Movimientos\"][0])\n ? objResponse[\"a:Movimientos\"][0]\n : \"\";\n dataDetail[\"TimbresDisponibles\"] = validateNull(\n objResponse[\"a:TimbresDisponibles\"][0]\n )\n ? objResponse[\"a:TimbresDisponibles\"][0]\n : \"\";\n } else {\n dataDetail[\"error\"] = validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\";\n }\n\n return dataDetail;\n};\n\nexport const RecoveryPasswordSuccess = (response) => {\n let dataDetail = {};\n let objResponse =\n response.RecuperacionPassResponse[0].RecuperacionPassResult[0];\n if (objResponse && \"a:Pregunta\" in objResponse) {\n dataDetail[\"OchoCaracteres\"] = validateNull(\n objResponse[\"a:OchoCaracteres\"][0]\n )\n ? objResponse[\"a:OchoCaracteres\"][0]\n : \"\";\n dataDetail[\"Pregunta\"] = validateNull(objResponse[\"a:Pregunta\"][0])\n ? objResponse[\"a:Pregunta\"][0]\n : \"\";\n dataDetail[\"Token\"] = validateNull(objResponse[\"a:Token\"][0])\n ? objResponse[\"a:Token\"][0]\n : \"\";\n }\n return dataDetail;\n};\n\nexport const UploadPasswordSuccess = (response) => {\n let dataDetail = {};\n let objResponse = response.CambioPassRecResponse[0].CambioPassRecResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n const result = objResponse[\"a:Result\"][0];\n if (result === \"false\") {\n dataDetail[\"errorMessage\"] = objResponse[\"a:ErrorMsg\"][0];\n }\n if (result === \"true\") {\n dataDetail[\"success\"] = true;\n }\n } else {\n dataDetail[\"errorMessage\"] =\n \"El serrvicio no está disponible en este momento, intenta mas tarde\";\n }\n return dataDetail;\n};\n\nexport const Promotions = (response) => {\n let dataDetail = [];\n let objResponse = response.PromocionesResponse[0].PromocionesResult[0];\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n \"$\" in objResponse[\"a:ErrorMsg\"][0] &&\n \"i:nil\" in objResponse[\"a:ErrorMsg\"][0][\"$\"] &&\n objResponse[\"a:ErrorMsg\"][0][\"$\"][\"i:nil\"] === \"true\"\n ) {\n if (objResponse && \"a:Promociones\" in objResponse) {\n let promocion = objResponse[\"a:Promociones\"][0];\n if (\n promocion &&\n \"a:Promocion\" in promocion &&\n promocion[\"a:Promocion\"].length > 0\n ) {\n let promociones = promocion[\"a:Promocion\"];\n promociones.map((promo) => {\n let dataPromocion = {\n notificacion_ID: validateNull(promo[\"a:Notificacion_ID\"][0])\n ? promo[\"a:Notificacion_ID\"][0]\n : \"\",\n titulo: validateNull(promo[\"a:Titulo\"][0])\n ? promo[\"a:Titulo\"][0]\n : \"\",\n url: validateNull(promo[\"a:Url\"][0]) ? promo[\"a:Url\"][0] : \"\",\n infoAdicional: validateNull(promo[\"a:infoAdicional\"][0])\n ? promo[\"a:infoAdicional\"][0]\n : \"\",\n };\n dataDetail.push(dataPromocion);\n });\n }\n }\n } else {\n dataDetail = [objResponse[\"a:ErrorMsg\"][0]];\n }\n return dataDetail;\n};\n\nexport const BuzonQuejas = (response) => {\n let dataDetail = [];\n let objResponse = response.BuzonQuejaAllResponse[0].BuzonQuejaAllResult[0];\n if (objResponse && \"a:Quejas\" in objResponse) {\n let Quejas = objResponse[\"a:Quejas\"][0];\n if (Quejas && \"a:clsBuzonQuejaAll\" in Quejas) {\n let clsBuzonQuejaAll = Quejas[\"a:clsBuzonQuejaAll\"];\n if (clsBuzonQuejaAll && clsBuzonQuejaAll.length > 0) {\n clsBuzonQuejaAll.map((queja) => {\n let DataQueja = {\n fecha: validateNull(queja[\"a:Fecha\"][0]) ? queja[\"a:Fecha\"][0] : \"\",\n titulo: validateNull(queja[\"a:Titulo\"][0])\n ? queja[\"a:Titulo\"][0]\n : \"\",\n idMensaje: validateNull(queja[\"a:idMensaje\"][0])\n ? queja[\"a:idMensaje\"][0]\n : \"\",\n };\n dataDetail.push(DataQueja);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const BuzonQuejasDetail = (response) => {\n let dataDetail = {};\n let objResponse =\n response.BuzonQuejaAllDetResponse[0].BuzonQuejaAllDetResult[0];\n if (objResponse && \"a:Mensaje\" in objResponse) {\n dataDetail = {\n fecha: validateNull(objResponse[\"a:Fecha\"][0])\n ? objResponse[\"a:Fecha\"][0]\n : \"\",\n Mensaje: validateNull(objResponse[\"a:Mensaje\"][0])\n ? objResponse[\"a:Mensaje\"][0]\n : \"\",\n Titulo: validateNull(objResponse[\"a:Titulo\"][0])\n ? objResponse[\"a:Titulo\"][0]\n : \"\",\n };\n }\n\n return dataDetail;\n};\n\nexport const DeleteComplaint = (response) => {\n let dataDetail = false;\n let objResponse =\n response.DeleteBuzonQuejaResponse[0].DeleteBuzonQuejaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n dataDetail = Result === \"true\";\n }\n\n return dataDetail;\n};\n\nexport const Calendar = (response) => {\n let dataDetail = [];\n let objResponse = response.CursosResponse[0].CursosResult[0];\n if (objResponse && \"a:Cursos\" in objResponse) {\n let Cursos = objResponse[\"a:Cursos\"][0];\n if (Cursos && \"a:Curso\" in Cursos && Cursos[\"a:Curso\"].length > 0) {\n let Curso = Cursos[\"a:Curso\"];\n Curso.map((curso) => {\n let detail = {\n CursoID: validateNull(curso[\"a:CursoID\"][0])\n ? curso[\"a:CursoID\"][0]\n : \"\",\n DescCurso: validateNull(curso[\"a:DescCurso\"][0])\n ? curso[\"a:DescCurso\"][0]\n : \"\",\n Fecha: validateNull(curso[\"a:Fecha\"][0]) ? curso[\"a:Fecha\"][0] : \"\",\n HoraFin: validateNull(curso[\"a:HoraFin\"][0])\n ? curso[\"a:HoraFin\"][0]\n : \"\",\n HoraInicio: validateNull(curso[\"a:HoraInicio\"][0])\n ? curso[\"a:HoraInicio\"][0]\n : \"\",\n Instructor: validateNull(curso[\"a:Instructor\"][0])\n ? curso[\"a:Instructor\"][0]\n : \"\",\n Lugar: validateNull(curso[\"a:Lugar\"][0]) ? curso[\"a:Lugar\"][0] : \"\",\n NombreCurso: validateNull(curso[\"a:NombreCurso\"][0])\n ? curso[\"a:NombreCurso\"][0]\n : \"\",\n };\n dataDetail.push(detail);\n });\n }\n }\n return dataDetail;\n};\n\n//ADMIN\n\nexport const centerCatalog = (response) => {\n let dataDetail = [];\n let objResponse =\n response.CatalogoCentrosResponse[0].CatalogoCentrosResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let catalogo = objResponse[\"a:Catalogo\"][0];\n if (catalogo && \"a:clsCatalogoSicossDet\" in catalogo) {\n let clsCatalogoSicossDet = catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet && clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((centro) => {\n let DataCenter = {\n descripcion: validateNull(centro[\"a:Descripcion\"][0])\n ? centro[\"a:Descripcion\"][0]\n : \"\",\n id: validateNull(centro[\"a:ID\"][0]) ? centro[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0]) &&\n objResponse[\"a:ErrorMsg\"][0] == \"Acceso no autorizado\"\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const deptsCatalog = (response) => {\n let dataDetail = [];\n let objResponse = response.CatalogoDeptoResponse[0].CatalogoDeptoResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let catalogo = objResponse[\"a:Catalogo\"][0];\n if (catalogo && \"a:clsCatalogoSicossDet\" in catalogo) {\n let clsCatalogoSicossDet = catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet && clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((centro) => {\n let DataCenter = {\n descripcion: validateNull(centro[\"a:Descripcion\"][0])\n ? centro[\"a:Descripcion\"][0]\n : \"\",\n id: validateNull(centro[\"a:ID\"][0]) ? centro[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const employerRecords = (response) => {\n let dataDetail = [];\n let objResponse = response.CatalogoRPResponse[0].CatalogoRPResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let catalogo = objResponse[\"a:Catalogo\"][0];\n if (catalogo && \"a:clsCatalogoSicossDet\" in catalogo) {\n let clsCatalogoSicossDet = catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet && clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((centro) => {\n let DataCenter = {\n descripcion: validateNull(centro[\"a:Descripcion\"][0])\n ? centro[\"a:Descripcion\"][0]\n : \"\",\n id: validateNull(centro[\"a:ID\"][0]) ? centro[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const employerRecordsPermits = (response) => {\n let dataDetail = [];\n let objResponse =\n response.PermisosXUserRPResponse[0].PermisosXUserRPResult[0];\n if (objResponse && \"a:Permisos\" in objResponse) {\n let Permisos = objResponse[\"a:Permisos\"][0];\n if (Permisos && \"a:clsPermisosUserDet\" in Permisos) {\n let clsPermisosUserDet = Permisos[\"a:clsPermisosUserDet\"];\n if (clsPermisosUserDet && clsPermisosUserDet.length > 0) {\n clsPermisosUserDet.map((permiso) => {\n let DataCenter = {\n descripcion: validateNull(permiso[\"a:Descripcion\"][0])\n ? permiso[\"a:Descripcion\"][0]\n : \"\",\n userId: validateNull(permiso[\"a:UserID\"][0])\n ? permiso[\"a:UserID\"][0]\n : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const departmentPermits = (response) => {\n let dataDetail = [];\n let objResponse =\n response.PermisosXUserDeptoResponse[0].PermisosXUserDeptoResult[0];\n if (objResponse && \"a:Permisos\" in objResponse) {\n let Permisos = objResponse[\"a:Permisos\"][0];\n if (Permisos && \"a:clsPermisosUserDet\" in Permisos) {\n let clsPermisosUserDet = Permisos[\"a:clsPermisosUserDet\"];\n if (clsPermisosUserDet && clsPermisosUserDet.length > 0) {\n clsPermisosUserDet.map((permiso) => {\n let DataCenter = {\n descripcion: validateNull(permiso[\"a:Descripcion\"][0])\n ? permiso[\"a:Descripcion\"][0]\n : \"\",\n userId: validateNull(permiso[\"a:UserID\"][0])\n ? permiso[\"a:UserID\"][0]\n : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const centerPermit = (response) => {\n let dataDetail = [];\n let objResponse =\n response.PermisosXUserCentroResponse[0].PermisosXUserCentroResult[0];\n if (objResponse && \"a:Permisos\" in objResponse) {\n let Permisos = objResponse[\"a:Permisos\"][0];\n if (Permisos && \"a:clsPermisosUserDet\" in Permisos) {\n let clsPermisosUserDet = Permisos[\"a:clsPermisosUserDet\"];\n if (clsPermisosUserDet && clsPermisosUserDet.length > 0) {\n clsPermisosUserDet.map((permiso) => {\n let DataCenter = {\n descripcion: validateNull(permiso[\"a:Descripcion\"][0])\n ? permiso[\"a:Descripcion\"][0]\n : \"\",\n userId: validateNull(permiso[\"a:UserID\"][0])\n ? permiso[\"a:UserID\"][0]\n : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const insertDeletePermitRP = (response) => {\n let dataDetail = false;\n let objResponse =\n response.SavePermisoXUserRPResponse[0].SavePermisoXUserRPResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const insertDeletePermitCenter = (response) => {\n let dataDetail = false;\n let objResponse =\n response.SavePermisoXUserCentroResponse[0].SavePermisoXUserCentroResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const insertDeletePermitDepto = (response) => {\n let dataDetail = false;\n let objResponse =\n response.SavePermisoXUserDepartamentoResponse[0]\n .SavePermisoXUserDepartamentoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const changePasswordAdmin = (response) => {\n let dataDetail = false;\n let objResponse =\n response.CambioPassAdminResponse[0].CambioPassAdminResult[0];\n\n if (objResponse && \"a:Result\" in objResponse) {\n const result = objResponse[\"a:Result\"][0];\n if (result === \"false\") {\n dataDetail = {\n error: objResponse[\"a:ErrorMsg\"][0],\n };\n }\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n\n return dataDetail;\n};\n\nexport const NewUser = (response) => {\n let dataDetail = false;\n let objResponse = response.NuevoUsuarioResponse[0].NuevoUsuarioResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const ActualizaUsuarioResponse = (response) => {\n let result = {\n Result: false, \n };\n\n if (!response.ActualizaUsuarioResponse) return result;\n if (!response.ActualizaUsuarioResponse[0].ActualizaUsuarioResult) return result;\n \n let objResponse = response.ActualizaUsuarioResponse[0].ActualizaUsuarioResult[0];\n result.Result = GetOrDefault(objResponse['a:Result'], 'false') == 'true';\n\n return result;\n};\n\nexport const EliminaUsuarioResponse = (response) => {\n let result = {\n Result: false, \n };\n\n if (!response.EliminaUsuarioResponse) return result;\n if (!response.EliminaUsuarioResponse[0].EliminaUsuarioResult) return result;\n \n let objResponse = response.EliminaUsuarioResponse[0].EliminaUsuarioResult[0];\n result.Result = GetOrDefault(objResponse['a:Result'], 'false') == 'true';\n\n return result;\n};\n\nexport const RestartPassword = (response) => {\n let dataDetail = {};\n let objResponse =\n response.ReiniciaContraseniaResponse[0].ReiniciaContraseniaResult[0];\n if (objResponse && \"a:Todos\" in objResponse) {\n let Todos = objResponse[\"a:Todos\"][0];\n if (Todos === \"false\") {\n dataDetail = {\n trabID: validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\",\n resultado: validateNull(objResponse[\"a:Resultado\"][0])\n ? objResponse[\"a:Resultado\"][0]\n : \"\",\n empleadosFaltantes: validateNull(objResponse[\"a:EmpleadosFaltantes\"][0])\n ? objResponse[\"a:EmpleadosFaltantes\"][0]\n : 0,\n };\n }\n if (Todos === \"true\") {\n let empreados = [];\n let EmpleadosFaltantes = objResponse[\"a:EmpleadosFaltantes\"][0];\n if (EmpleadosFaltantes && \"a:DatosEmpleados\" in EmpleadosFaltantes) {\n let DatosEmpleados = EmpleadosFaltantes[\"a:DatosEmpleados\"];\n if (DatosEmpleados && DatosEmpleados.length > 0) {\n DatosEmpleados.map((empleado) => {\n let dataEmpleado = {\n curp: validateNull(empleado[\"a:CURP\"][0])\n ? empleado[\"a:CURP\"][0]\n : \"\",\n materno: validateNull(empleado[\"a:Materno\"][0])\n ? empleado[\"a:Materno\"][0]\n : \"\",\n nss: validateNull(empleado[\"a:NSS\"][0])\n ? empleado[\"a:NSS\"][0]\n : \"\",\n nombre: validateNull(empleado[\"a:Nombre\"][0])\n ? empleado[\"a:Nombre\"][0]\n : \"\",\n paterno: validateNull(empleado[\"a:Paterno\"][0])\n ? empleado[\"a:Paterno\"][0]\n : \"\",\n rfc: validateNull(empleado[\"a:RFC\"][0])\n ? empleado[\"a:RFC\"][0]\n : \"\",\n trabID: validateNull(empleado[\"a:TrabID\"][0])\n ? empleado[\"a:TrabID\"][0]\n : \"\",\n };\n empreados.push(dataEmpleado);\n });\n }\n }\n dataDetail = {\n trabID: validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\",\n resultado: validateNull(objResponse[\"a:Resultado\"][0])\n ? objResponse[\"a:Resultado\"][0]\n : \"\",\n empleadosFaltantes: empreados,\n };\n }\n }\n return dataDetail;\n};\n\nexport const SearchEmployee = (response) => {\n let dataDetail = [];\n let objResponse =\n response.BusquedaEmpleadosResponse[0].BusquedaEmpleadosResult[0];\n if (objResponse && \"a:Empleados\" in objResponse) {\n let Empleados = objResponse[\"a:Empleados\"][0];\n if (Empleados && \"a:DatosEmpleados\" in Empleados) {\n let DatosEmpleados = Empleados[\"a:DatosEmpleados\"];\n if (DatosEmpleados && DatosEmpleados.length > 0) {\n DatosEmpleados.map((empleado) => {\n let DataEmpleados = {\n curp: validateNull(empleado[\"a:CURP\"][0])\n ? empleado[\"a:CURP\"][0]\n : \"\",\n materno: validateNull(empleado[\"a:Materno\"][0])\n ? empleado[\"a:Materno\"][0]\n : \"\",\n nss: validateNull(empleado[\"a:NSS\"][0]) ? empleado[\"a:NSS\"][0] : \"\",\n nombre: validateNull(empleado[\"a:Nombre\"][0])\n ? empleado[\"a:Nombre\"][0]\n : \"\",\n paterno: validateNull(empleado[\"a:Paterno\"][0])\n ? empleado[\"a:Paterno\"][0]\n : \"\",\n rfc: validateNull(empleado[\"a:RFC\"][0]) ? empleado[\"a:RFC\"][0] : \"\",\n trabID: validateNull(empleado[\"a:TrabID\"][0])\n ? empleado[\"a:TrabID\"][0]\n : \"\",\n };\n dataDetail.push(DataEmpleados);\n });\n }\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0]) &&\n objResponse[\"a:ErrorMsg\"][0] == \"Acceso no autorizado\"\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const ChangePasswordEmployee = (response) => {\n let dataDetail = {};\n let objResponse =\n response.CambiaContraseniaResponse[0].CambiaContraseniaResult[0];\n if (\n objResponse &&\n \"a:Resultado\" in objResponse &&\n \"a:TrabID\" in objResponse\n ) {\n dataDetail = {\n pwdNueva: validateNull(objResponse[\"a:PwdNueva\"][0])\n ? objResponse[\"a:PwdNueva\"][0]\n : \"\",\n resultado: validateNull(objResponse[\"a:Resultado\"][0])\n ? objResponse[\"a:Resultado\"][0]\n : \"\",\n trabID: validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\",\n };\n }\n return dataDetail;\n};\n\nexport const UnlockEmployees = (response) => {\n let dataDetail = {};\n let objResponse =\n response.DesbloquearEmpleadosResponse[0].DesbloquearEmpleadosResult[0];\n if (\n objResponse &&\n \"a:Resultado\" in objResponse &&\n \"a:TrabID\" in objResponse\n ) {\n dataDetail = {\n todos: objResponse[\"a:Todos\"][0] === true ? true : false,\n resultado: validateNull(objResponse[\"a:Resultado\"][0])\n ? objResponse[\"a:Resultado\"][0]\n : \"\",\n trabID: validateNull(objResponse[\"a:TrabID\"][0])\n ? objResponse[\"a:TrabID\"][0]\n : \"\",\n };\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0])\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const AccessMethod = (response) => {\n let dataDetail = {};\n let objResponse = response.MetodoAccesoResponse[0].MetodoAccesoResult[0];\n if (objResponse && \"a:Todos\" in objResponse) {\n let Todos = objResponse[\"a:Todos\"][0];\n if (Todos) {\n let EmpFaltantes = objResponse[\"a:EmpFaltantes\"][0];\n let empleadosFaltantes = [];\n if (EmpFaltantes && \"a:DatosEmpleados\" in EmpFaltantes) {\n let DatosEmpleados = EmpFaltantes[\"a:DatosEmpleados\"];\n if (DatosEmpleados && DatosEmpleados.length > 0) {\n DatosEmpleados.map((empleado) => {\n let DataEmpleadosItem = {\n curp: validateNull(empleado[\"a:CURP\"][0])\n ? empleado[\"a:CURP\"][0]\n : \"\",\n materno: validateNull(empleado[\"a:Materno\"][0])\n ? empleado[\"a:Materno\"][0]\n : \"\",\n nss: validateNull(empleado[\"a:NSS\"][0])\n ? empleado[\"a:NSS\"][0]\n : \"\",\n nombre: validateNull(empleado[\"a:Nombre\"][0])\n ? empleado[\"a:Nombre\"][0]\n : \"\",\n paterno: validateNull(empleado[\"a:Paterno\"][0])\n ? empleado[\"a:Paterno\"][0]\n : \"\",\n rfc: validateNull(empleado[\"a:RFC\"][0])\n ? empleado[\"a:RFC\"][0]\n : \"\",\n trabID: validateNull(empleado[\"a:TrabID\"][0])\n ? empleado[\"a:TrabID\"][0]\n : \"\",\n };\n empleadosFaltantes.push(DataEmpleadosItem);\n });\n }\n }\n dataDetail = {\n todos: Todos === \"true\" ? true : false,\n errorMessage: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n configuracion: validateNull(objResponse[\"a:Configuracion\"][0])\n ? objResponse[\"a:Configuracion\"][0]\n : \"\",\n empleadosFaltantes: empleadosFaltantes,\n };\n }\n }\n return dataDetail;\n};\n\nexport const JobCatalog = (response) => {\n let dataDetail = [];\n let objResponse =\n response.CatalogoPuestosResponse[0].CatalogoPuestosResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let Catalogo = objResponse[\"a:Catalogo\"][0];\n if (Catalogo && \"a:clsCatalogoSicossDet\" in Catalogo) {\n let clsCatalogoSicossDet = Catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((catalogo) => {\n let dataCatalogo = {\n descripcion: validateNull(catalogo[\"a:Descripcion\"][0])\n ? catalogo[\"a:Descripcion\"][0]\n : \"\",\n id: validateNull(catalogo[\"a:ID\"][0]) ? catalogo[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(dataCatalogo);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const PermitPositionUser = (response) => {\n let dataDetail = [];\n let objResponse =\n response.PermisosXUserPuestosResponse[0].PermisosXUserPuestosResult[0];\n if (objResponse && \"a:Permisos\" in objResponse) {\n let Permisos = objResponse[\"a:Permisos\"][0];\n if (Permisos && \"a:clsPermisosUserDet\" in Permisos) {\n let clsPermisosUserDet = Permisos[\"a:clsPermisosUserDet\"];\n if (clsPermisosUserDet && clsPermisosUserDet.length > 0) {\n clsPermisosUserDet.map((permiso) => {\n let dataCatalogo = {\n descripcion: validateNull(permiso[\"a:Descripcion\"][0])\n ? permiso[\"a:Descripcion\"][0]\n : \"\",\n userID: validateNull(permiso[\"a:UserID\"][0])\n ? permiso[\"a:UserID\"][0]\n : \"\",\n };\n dataDetail.push(dataCatalogo);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const InsertDeletePos = (response) => {\n let dataDetail = false;\n let objResponse =\n response.SavePermisoXUserPuestoResponse[0].SavePermisoXUserPuestoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const CompaniesList = (response) => {\n let dataDetail = [];\n let objResponse =\n response.ListaEmpresasLoginResponse[0].ListaEmpresasLoginResult[0];\n if (objResponse && \"a:string\" in objResponse) {\n let strings = objResponse[\"a:string\"];\n if (strings && strings.length > 0) {\n dataDetail = strings;\n }\n }\n return dataDetail;\n};\n\nexport const AdditionalFields = (response) => {\n let dataDetail = [];\n let objResponse =\n response.CamposAdicionalesCatResponse[0].CamposAdicionalesCatResult[0];\n if (objResponse && \"a:CampoAdicional\" in objResponse) {\n let CampoAdicional = objResponse[\"a:CampoAdicional\"][0];\n if (CampoAdicional && \"a:clsCampoAdicional\" in CampoAdicional) {\n let clsCampoAdicional = CampoAdicional[\"a:clsCampoAdicional\"];\n if (clsCampoAdicional && clsCampoAdicional.length > 0) {\n clsCampoAdicional.map((campo) => {\n let DataCampo = {\n campo: validateNull(campo[\"a:Campo\"][0]) ? campo[\"a:Campo\"][0] : \"\",\n id: validateNull(campo[\"a:Id\"][0]) ? campo[\"a:Id\"][0] : \"\",\n };\n dataDetail.push(DataCampo);\n });\n }\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0])\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const DeleteAddFields = (response) => {\n let dataDetail = [];\n let objResponse =\n response.SaveCamposAdicionalesResponse[0].SaveCamposAdicionalesResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const NextInfoUser = (response) => {\n let dataDetail = [];\n let objResponse = response.InfoExtraResponse[0].InfoExtraResult[0];\n if (objResponse && \"a:CampoAdicional\" in objResponse) {\n let CampoAdicional = objResponse[\"a:CampoAdicional\"][0];\n if (CampoAdicional && \"a:clsInfoExtra\" in CampoAdicional) {\n let clsInfoExtra = CampoAdicional[\"a:clsInfoExtra\"];\n if (clsInfoExtra && clsInfoExtra.length > 0) {\n clsInfoExtra.map((extra) => {\n let dataExtra = {\n campo: validateNull(extra[\"a:Campo\"][0]) ? extra[\"a:Campo\"][0] : \"\",\n id: validateNull(extra[\"a:Id\"][0]) ? extra[\"a:Id\"][0] : \"\",\n informacion: validateNull(extra[\"a:Informacion\"][0])\n ? extra[\"a:Informacion\"][0]\n : \"\",\n };\n dataDetail.push(dataExtra);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const SaveInfoExtra = (response) => {\n let dataDetail = false;\n let objResponse =\n response.SaveInformacionExtraResponse[0].SaveInformacionExtraResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const ReceiptGenerationEmployee = (response) => {\n let dataDetail = [];\n let objResponse =\n response.ReciboGeneradoEmpResponse[0].ReciboGeneradoEmpResult[0];\n if (objResponse && \"a:Empleados\" in objResponse) {\n let Empleados = objResponse[\"a:Empleados\"][0];\n if (Empleados && \"a:clsEmpleadoRec\" in Empleados) {\n Empleados[\"a:clsEmpleadoRec\"].forEach(clsEmpleadoRec => {\n let dataRecibos = {\n nombre: validateNull(clsEmpleadoRec[\"a:Nombre\"][0])\n ? clsEmpleadoRec[\"a:Nombre\"][0]\n : \"\",\n trab_ID: validateNull(clsEmpleadoRec[\"a:Trab_ID\"][0])\n ? clsEmpleadoRec[\"a:Trab_ID\"][0]\n : \"\",\n detallesRecibo: [],\n };\n if (clsEmpleadoRec && \"a:DetalleRecibo\" in clsEmpleadoRec) {\n let DetalleRecibo = clsEmpleadoRec[\"a:DetalleRecibo\"][0];\n if (DetalleRecibo && \"a:clsDetalleRecibo\" in DetalleRecibo) {\n let clsDetalleRecibo = DetalleRecibo[\"a:clsDetalleRecibo\"];\n if (clsDetalleRecibo && clsDetalleRecibo.length > 0) {\n let colectRecibo = [];\n clsDetalleRecibo.map((recibo) => {\n let dataRecibo = {\n anioPeriodo: validateNull(recibo[\"a:Año_Periodo\"][0])\n ? recibo[\"a:Año_Periodo\"][0]\n : \"\",\n centro: validateNull(recibo[\"a:Centro\"][0])\n ? recibo[\"a:Centro\"][0]\n : \"\",\n fechaGeneracion: validateNull(recibo[\"a:FechaGeneracion\"][0])\n ? recibo[\"a:FechaGeneracion\"][0]\n : \"\",\n tipoConsulta: validateNull(recibo[\"a:TipoConsulta\"][0])\n ? recibo[\"a:TipoConsulta\"][0]\n : \"\",\n tipoNomina: validateNull(recibo[\"a:TipoNomina\"][0])\n ? recibo[\"a:TipoNomina\"][0]\n : \"\",\n tipoPeriodo: validateNull(recibo[\"a:TipoPeriodo\"][0])\n ? recibo[\"a:TipoPeriodo\"][0]\n : \"\",\n ultimoAcceso: validateNull(recibo[\"a:UltimoAcceso\"][0])\n ? recibo[\"a:UltimoAcceso\"][0]\n : \"\",\n rutasNomXml: validateNull(recibo[\"a:RutasNomXML\"][0])\n ? recibo[\"a:RutasNomXML\"][0]\n :\"\",\n rutasNomPDF: validateNull(recibo[\"a:RutasNomPDF\"][0])\n ? recibo[\"a:RutasNomPDF\"][0]\n :\"\",\n fechaInicio: validateNull(recibo[\"a:FechaInicio\"][0])\n ? recibo[\"a:FechaInicio\"][0]\n :\"\",\n fechaFin: validateNull(recibo[\"a:FechaFin\"][0])\n ? recibo[\"a:FechaFin\"][0]\n :\"\",\n numeroPeriodo: validateNull(recibo[\"a:NumPeriodo\"][0])\n ? recibo[\"a:NumPeriodo\"][0]\n :\"\",\n anio: validateNull(recibo[\"a:Anio\"][0])\n ? recibo[\"a:Anio\"][0]\n :\"\",\n tipoNominaID: validateNull(recibo[\"a:TipoNominaID\"][0])\n ? recibo[\"a:TipoNominaID\"][0]\n :\"\",\n periodoID: validateNull(recibo[\"a:PeriodoID\"][0])\n ? recibo[\"a:PeriodoID\"][0]\n :\"\"\n };\n colectRecibo.push(dataRecibo);\n });\n dataRecibos[\"detallesRecibo\"] = colectRecibo;\n }\n }\n }\n dataDetail.push(dataRecibos);\n });\n }\n }\n return dataDetail;\n};\n\nexport const BlockUser = (response) => {\n let dataDetail = false;\n let objResponse =\n response.BloqueodeUsuarioResponse[0].BloqueodeUsuarioResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const AllUsers = (response) => {\n let dataDetail = [];\n let objResponse = response.UsuariosResponse[0].UsuariosResult[0];\n if (objResponse && \"a:Usuarios\" in objResponse) {\n let Users = objResponse[\"a:Usuarios\"][0];\n if (Users && \"a:clsUser2\" in Users) {\n let ArrUsers = Users[\"a:clsUser2\"];\n if (ArrUsers && ArrUsers.length > 0) {\n ArrUsers.map((user) => {\n let dataUser = {\n descripcion: \n validateNull(user[\"a:Descripcion\"][0]) ? user[\"a:Descripcion\"][0] : \"\",\n user_id: \n validateNull(user[\"a:User_id\"][0]) ? user[\"a:User_id\"][0] : \"\",\n idRol: \n user[\"a:IdRol\"] ? (validateNull(user[\"a:IdRol\"][0]) ? user[\"a:IdRol\"][0] : \"\") : \"\",\n descripcionRol: \n user[\"a:DescripcionRol\"] ? (validateNull(user[\"a:DescripcionRol\"][0]) ? user[\"a:DescripcionRol\"][0] : \"\") : \"\",\n };\n dataDetail.push(dataUser);\n });\n }\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0]._) &&\n objResponse[\"a:ErrorMsg\"][0]._ == \"Acceso no autorizado\"\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0]._)\n ? objResponse[\"a:ErrorMsg\"][0]._\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const WelcomeMessage = (response) => {\n let dataDetail = {};\n let objResponse =\n response.MensajeBienvenidaResponse[0].MensajeBienvenidaResult[0];\n if (objResponse && \"a:TituloMsj\" in objResponse) {\n let data = {\n id: validateNull(objResponse[\"a:ID\"][0]) ? objResponse[\"a:ID\"][0] : \"\",\n mensaje: validateNull(objResponse[\"a:Mensaje\"][0])\n ? objResponse[\"a:Mensaje\"][0]\n : \"\",\n titulo: validateNull(objResponse[\"a:TituloMsj\"][0])\n ? objResponse[\"a:TituloMsj\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0])\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const EditWelcomeMessage = (response) => {\n let dataDetail = false;\n let objResponse = response.EditMensajeResponse[0].EditMensajeResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0])\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\nexport const SelectedAdditionalFields = (response) => {\n let dataDetail = [];\n let objResponse =\n response.CamposSeleccionadosResponse[0].CamposSeleccionadosResult[0];\n if (objResponse && \"a:CampoAdicional\" in objResponse) {\n let CampoAdicional = objResponse[\"a:CampoAdicional\"][0];\n if (CampoAdicional && \"a:clsCampoAdicional\" in CampoAdicional) {\n let clsCampoAdicional = CampoAdicional[\"a:clsCampoAdicional\"];\n if (clsCampoAdicional && clsCampoAdicional.length > 0) {\n clsCampoAdicional.map((campo) => {\n let data = {\n campo: validateNull(campo[\"a:Campo\"][0]) ? campo[\"a:Campo\"][0] : \"\",\n id: validateNull(campo[\"a:Id\"][0]) ? campo[\"a:Id\"][0] : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const NewCorporativeMessage = (response) => {\n let dataDetail = false;\n let objResponse =\n response.WriteMensajesCorporativosResponse[0]\n .WriteMensajesCorporativosResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const EditCorporativeMessage = (response) => {\n let dataDetail = false;\n let objResponse =\n response.EditMensajeCorporativoResponse[0].EditMensajeCorporativoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const ListCorporativeMessage = (response) => {\n let dataDetail = [];\n let objResponse =\n response.MensajesCorporativosResponse[0].MensajesCorporativosResult[0];\n if (objResponse && \"a:Msjs\" in objResponse) {\n let Msjs = objResponse[\"a:Msjs\"][0];\n if (Msjs && \"a:clsMsjCorporativoAll\" in Msjs) {\n let clsMsjCorporativoAll = Msjs[\"a:clsMsjCorporativoAll\"];\n if (clsMsjCorporativoAll && clsMsjCorporativoAll.length > 0) {\n clsMsjCorporativoAll.map((msg) => {\n let data = {\n Fecha: validateNull(msg[\"a:Fecha\"][0]) ? msg[\"a:Fecha\"][0] : \"\",\n Titulo: validateNull(msg[\"a:Titulo\"][0]) ? msg[\"a:Titulo\"][0] : \"\",\n idMensaje: validateNull(msg[\"a:idMensaje\"][0])\n ? msg[\"a:idMensaje\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const DetailCorporativeMessage = (response) => {\n let dataDetail = {};\n let objResponse =\n response.MensajesCorporativosDetResponse[0]\n .MensajesCorporativosDetResult[0];\n if (objResponse && \"a:Titulo\" in objResponse) {\n dataDetail = {\n Fecha: validateNull(objResponse[\"a:Fecha\"][0])\n ? objResponse[\"a:Fecha\"][0]\n : \"\",\n Titulo: validateNull(objResponse[\"a:Titulo\"][0])\n ? objResponse[\"a:Titulo\"][0]\n : \"\",\n Mensaje: validateNull(objResponse[\"a:Mensaje\"][0])\n ? objResponse[\"a:Mensaje\"][0]\n : \"\",\n idMensaje: validateNull(objResponse[\"a:idMensaje\"][0])\n ? objResponse[\"a:idMensaje\"][0]\n : \"\",\n };\n }\n return dataDetail;\n};\n\n// export const ControlVacations = (response, isKrones = null) => {\n// if (isKrones == null) {\n// isKrones = process.env.REACT_APP_IS_KRONES == '1';\n// }\n\n// let dataDetail = [];\n\n// if (isKrones) {\n// console.log('TEST ControlVacacionesEmpleadov2 RESPONSE', response)\n// let objResponse = response.ControlVacacionesEmpleadov2Response[0].ControlVacacionesEmpleadov2Result[0]\n// if (objResponse && 'a:ControlVacacion' in objResponse) {\n// let ControlVacacion = objResponse['a:ControlVacacion'][0];\n// if (ControlVacacion && 'a:ResponseVacaciones' in ControlVacacion) {\n// let clsControlVacacion = ControlVacacion['a:ResponseVacaciones']\n// if (clsControlVacacion && clsControlVacacion.length > 0) {\n// clsControlVacacion.map((control) => {\n// let controlVacations = {\n// Antiguedad: validateNull(control['a:Antiguedad'][0]) ? control['a:Antiguedad'][0] : '',\n// DiasOtorgados: validateNull(control['a:DiasOtorgados'][0]) ? control['a:DiasOtorgados'][0] : '',\n// Dias_Distrutados: validateNull(control['a:Dias_Distrutados'][0]) ? control['a:Dias_Distrutados'][0] : '',\n// Dias_Pendientes: validateNull(control['a:Dias_Pendientes'][0]) ? control['a:Dias_Pendientes'][0] : '',\n// FechaAniversario: validateNull(control['a:FechaAniversario'][0]) ? control['a:FechaAniversario'][0] : '',\n// IdVersion: validateNull(control['a:IdVersion'][0]) ? control['a:IdVersion'][0] : '',\n// Trab_id: validateNull(control['a:Trab_id'][0]) ? control['a:Trab_id'][0] : '',\n// VacacionesAnticipadas: validateNull(control['a:VacacionesAnticipadas'][0]) ? control['a:VacacionesAnticipadas'][0] : '',\n// VacacionesCanceladas: validateNull(control['a:VacacionesCanceladas'][0]) ? control['a:VacacionesCanceladas'][0] : '',\n// Vencimiento: validateNull(control['a:Vencimiento'][0]) ? control['a:Vencimiento'][0] : '',\n// periodo: validateNull(control['a:periodo'][0]) ? control['a:periodo'][0] : '',\n// VacacionesPerdidas: '0',\n// }\n \n// if (localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1') {\n// let version = (control['a:IdVersion'] ? control['a:IdVersion'][0] : '0');\n// if (version == '2') controlVacations.VacacionesPerdidas = control['a:VacacionesCanceladas'] ? control['a:VacacionesCanceladas'][0] : '';\n// }\n\n// dataDetail.push(controlVacations)\n// })\n// }\n// }\n// }\n// console.log('TEST ControlVacacionesEmpleado CONVERT', dataDetail)\n// }\n// else if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\n// let objResponse = response.ControlVacacionesEmpleadoResponse[0].ControlVacacionesEmpleadoResult[0];\n// if (objResponse && \"a:ControlVacacion\" in objResponse) {\n// let ControlVacacion = objResponse[\"a:ControlVacacion\"][0];\n// if (ControlVacacion && \"a:clsControlVacacion\" in ControlVacacion) {\n// let clsControlVacacion = ControlVacacion[\"a:clsControlVacacion\"];\n// if (clsControlVacacion && clsControlVacacion.length > 0) {\n// clsControlVacacion.map((control) => {\n// let controlVacations = {\n// Antiguedad: validateNull(control[\"a:Antiguedad\"][0]) ? control[\"a:Antiguedad\"][0] : \"0.00\",\n// VcacionesOtorgadas: validateNull(control[\"a:VcacionesOtorgadas\"][0]) ? control[\"a:VcacionesOtorgadas\"][0] : \"0\",\n// Proporcionales: validateNull(control[\"a:Proporcionales\"][0]) ? control[\"a:Proporcionales\"][0] : \"0\",\n// VacacionesGozadas: validateNull(control[\"a:VacacionesGozadas\"][0]) ? control[\"a:VacacionesGozadas\"][0] : \"0\",\n// VacacionesPendientes: validateNull(control[\"a:VacacionesPendientes\"][0]) ? control[\"a:VacacionesPendientes\"][0] : \"0\",\n// FechaVencimiento: validateNull(control[\"a:FechaVencimiento\"][0]) ? control[\"a:FechaVencimiento\"][0] : \"\",\n// Canceladas: validateNull(control[\"a:Canceladas\"][0]) ? control[\"a:Canceladas\"][0] : \"0\",\n// };\n\n// dataDetail.push(controlVacations);\n// });\n// }\n// }\n// }\n// }\n// else {\n// let objResponse = response.ControlVacacionesEmpleadoResponse[0].ControlVacacionesEmpleadoResult[0];\n// if (objResponse && \"a:ControlVacacion\" in objResponse) {\n// let ControlVacacion = objResponse[\"a:ControlVacacion\"][0];\n// if (ControlVacacion && \"a:clsControlVacacion\" in ControlVacacion) {\n// let clsControlVacacion = ControlVacacion[\"a:clsControlVacacion\"];\n// if (clsControlVacacion && clsControlVacacion.length > 0) {\n// clsControlVacacion.map((control) => {\n// let controlVacations = {\n// Antiguedad: validateNull(control[\"a:Antiguedad\"][0]) ? control[\"a:Antiguedad\"][0] : \"\",\n// FechaVencimiento: validateNull(control[\"a:FechaVencimiento\"][0]) ? control[\"a:FechaVencimiento\"][0] : \"\",\n// VacacionesPendientes: validateNull(control[\"a:VacacionesPendientes\"][0]) ? control[\"a:VacacionesPendientes\"][0] : \"\",\n// VcacionesOtorgadas: validateNull(control[\"a:VcacionesOtorgadas\"][0]) ? control[\"a:VcacionesOtorgadas\"][0] : \"\",\n// VacacionesPerdidas: '0',\n// };\n \n// if (localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1') {\n// let version = (control['a:IdVersion'] ? control['a:IdVersion'][0] : '0');\n// if (version == '2') controlVacations.VacacionesPerdidas = control['a:VacacionesCanceladas'] ? control['a:VacacionesCanceladas'][0] : '';\n// }\n\n// dataDetail.push(controlVacations);\n// });\n// }\n// }\n// }\n// }\n\n// return dataDetail;\n// };\n\nexport const ControlVacations = (response, isV2 = false) => {\n let dataDetail = [];\n\n if (isV2) {\n console.log('TEST ControlVacacionesEmpleadov2 RESPONSE', response)\n let objResponse = response.ControlVacacionesEmpleadov2Response[0].ControlVacacionesEmpleadov2Result[0]\n if (objResponse && 'a:ControlVacacion' in objResponse) {\n let ControlVacacion = objResponse['a:ControlVacacion'][0];\n if (ControlVacacion && 'a:ResponseVacaciones' in ControlVacacion) {\n let clsControlVacacion = ControlVacacion['a:ResponseVacaciones']\n if (clsControlVacacion && clsControlVacacion.length > 0) {\n clsControlVacacion.map((control) => {\n let controlVacations = {\n Antiguedad: GetOrDefault(control['a:Antiguedad'], '0'),\n VcacionesOtorgadas: GetOrDefault(control['a:DiasOtorgados'], '0'),\n VacacionesGozadas: GetOrDefault(control['a:Dias_Distrutados'], '0'),\n VacacionesPendientes: GetOrDefault(control['a:Dias_Pendientes'], '0'),\n FechaAniversario: GetOrDefault(control['a:FechaAniversario'], ''),\n IdVersion: GetOrDefault(control['a:IdVersion'], '0'),\n Trab_id: GetOrDefault(control['a:Trab_id'], '0'),\n VacacionesAnticipadas: GetOrDefault(control['a:VacacionesAnticipadas'], '0'),\n //VacacionesCanceladas: GetOrDefault(control['a:VacacionesCanceladas'], '0'),\n FechaVencimiento: GetOrDefault(control['a:Vencimiento'], ''),\n Periodo: GetOrDefault(control['a:periodo'], ''),\n VacacionesPerdidas: GetOrDefault(control['a:VacacionesCanceladas'], '0'),\n }\n\n dataDetail.push(controlVacations)\n })\n }\n }\n }\n console.log('TEST ControlVacacionesEmpleado CONVERT', dataDetail)\n }\n else {\n let objResponse = response.ControlVacacionesEmpleadoResponse[0].ControlVacacionesEmpleadoResult[0];\n if (objResponse && \"a:ControlVacacion\" in objResponse) {\n let ControlVacacion = objResponse[\"a:ControlVacacion\"][0];\n if (ControlVacacion && \"a:clsControlVacacion\" in ControlVacacion) {\n let clsControlVacacion = ControlVacacion[\"a:clsControlVacacion\"];\n if (clsControlVacacion && clsControlVacacion.length > 0) {\n clsControlVacacion.map((control) => {\n let controlVacations = {\n Antiguedad: GetOrDefault(control[\"a:Antiguedad\"], '0'),\n FechaAniversario: GetOrDefault(control[\"a:FechaAniversario\"], ''),\n VcacionesOtorgadas: GetOrDefault(control[\"a:VcacionesOtorgadas\"], '0'),\n Proporcionales: GetOrDefault(control[\"a:Proporcionales\"], '0'),\n VacacionesGozadas: GetOrDefault(control[\"a:VacacionesGozadas\"], '0'),\n VacacionesPendientes: GetOrDefault(control[\"a:VacacionesPendientes\"], '0'),\n FechaVencimiento: GetOrDefault(control[\"a:FechaVencimiento\"], ''),\n VacacionesPerdidas: GetOrDefault(control['a:Canceladas'], '0'),\n };\n\n dataDetail.push(controlVacations);\n });\n }\n }\n }\n }\n\n return dataDetail;\n};\n\n//EULEN\n\nexport const CancelVacationsEulen = (response) => {\n let dataDetail = false;\n let objResponse =\n response.InsertaCancelacionResponse[0].InsertaCancelacionResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const AuthorizeCancelVacationsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionCancelacionResponse[0]\n .AutorizacionCancelacionResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const RejectCancelVacationsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.RechazoCancelacionResponse[0].RechazoCancelacionResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n\nexport const AuthorizeCancelIncidentsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionCancelacionIncidenciaResponse[0]\n .AutorizacionCancelacionIncidenciaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n\nexport const RejectCancelIncidentsResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionCancelacionIncidenciaResponse[0]\n .AutorizacionCancelacionIncidenciaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n\nexport const VacationsMassive = (response, esJefe = false) => {\n let dataDetail = [];\n let objResponse = {};\n if (!esJefe) \n objResponse = response.VacMasivasRHResponse[0].VacMasivasRHResult[0];\n else \n objResponse = response.VacMasivasJefeResponse[0].VacMasivasJefeResult[0];\n\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n const Solicitudes = objResponse[\"a:Solicitudes\"][0];\n if (Solicitudes && \"a:DetalleSolicitudMas\" in Solicitudes) {\n const DetalleSolicitudMas = Solicitudes[\"a:DetalleSolicitudMas\"];\n\n if (DetalleSolicitudMas && DetalleSolicitudMas.length > 0) {\n DetalleSolicitudMas.map((detail) => {\n let massiveVacations = {\n Centro_id: validateNull(detail[\"a:Centro_id\"][0])\n ? detail[\"a:Centro_id\"][0]\n : \"\",\n Dia: validateNull(detail[\"a:Dia\"][0]) ? detail[\"a:Dia\"][0] : \"\",\n FechaSolicitud: validateNull(detail[\"a:FechaSolicitud\"][0])\n ? detail[\"a:FechaSolicitud\"][0]\n : \"\",\n FechaVacacion: validateNull(detail[\"a:FechaVacacion\"][0])\n ? detail[\"a:FechaVacacion\"][0]\n : \"\",\n JefeTrab_id: validateNull(detail[\"a:JefeTrab_id\"][0])\n ? detail[\"a:JefeTrab_id\"][0]\n : \"\",\n Nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : \"\",\n Periodo: validateNull(detail[\"a:Periodo\"][0])\n ? detail[\"a:Periodo\"][0]\n : \"\",\n SolicitudID: validateNull(detail[\"a:SolicitudID\"][0])\n ? detail[\"a:SolicitudID\"][0]\n : \"\",\n Status: validateNull(detail[\"a:Status\"][0])\n ? detail[\"a:Status\"][0]\n : \"\",\n TipoSolicitud: validateNull(detail[\"a:TipoSolicitud\"][0])\n ? detail[\"a:TipoSolicitud\"][0]\n : \"\",\n TipoSolString: validateNull(detail[\"a:TipoSolString\"][0])\n ? detail[\"a:TipoSolString\"][0]\n : \"\",\n Trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : \"\",\n FechaInicio: validateNull(detail[\"a:FechaInicio\"][0])\n ? detail[\"a:FechaInicio\"][0]\n : \"\",\n FechaFin: validateNull(detail[\"a:FechaFin\"][0])\n ? detail[\"a:FechaFin\"][0]\n : \"\",\n RangoFechas: validateNull(detail[\"a:RangoFechas\"][0])\n ? detail[\"a:RangoFechas\"][0]\n : \"\",\n };\n dataDetail.push(massiveVacations);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const AuthorizeVacationsMassive = (response) => {\n let dataDetail = [];\n let objResponse =\n response.AutorizaVacMasivasResponse[0].AutorizaVacMasivasResult[0];\n if (objResponse && \"a:listaInsercion\" in objResponse) {\n let listaInsercion = objResponse[\"a:listaInsercion\"][0];\n if (listaInsercion && \"a:clsInsercionMasivaDet\" in listaInsercion) {\n let clsInsercionMasivaDet = listaInsercion[\"a:clsInsercionMasivaDet\"];\n if (clsInsercionMasivaDet && clsInsercionMasivaDet.length > 0) {\n clsInsercionMasivaDet.map((detail) => {\n let data = {\n ErrorMsg: validateNull(detail[\"a:ErrorMsg\"][0])\n ? detail[\"a:ErrorMsg\"][0]\n : null,\n Fecha: validateNull(detail[\"a:Fecha\"][0])\n ? detail[\"a:Fecha\"][0]\n : null,\n Insercion: validateNull(detail[\"a:Insercion\"][0])\n ? detail[\"a:Insercion\"][0]\n : false,\n Nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : null,\n Trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : null,\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const VacationsRhVacation = (response) => {\n let dataDetail = [];\n let objResponse =\n response.ConsultaVacacionesResponse[0].ConsultaVacacionesResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let Solicitudes = objResponse[\"a:Solicitudes\"][0];\n if (Solicitudes && \"a:DetalleSolicitudMas\" in Solicitudes) {\n let DetalleSolicitudMas = Solicitudes[\"a:DetalleSolicitudMas\"];\n if (DetalleSolicitudMas && DetalleSolicitudMas.length > 0) {\n DetalleSolicitudMas.map((detail) => {\n let data = {\n Centro_id: validateNull(detail[\"a:Centro_id\"][0])\n ? detail[\"a:Centro_id\"][0]\n : \"\",\n Dia: validateNull(detail[\"a:Dia\"][0]) ? detail[\"a:Dia\"][0] : \"\",\n FechaSolicitud: validateNull(detail[\"a:FechaSolicitud\"][0])\n ? detail[\"a:FechaSolicitud\"][0]\n : \"\",\n FechaVacacion: validateNull(detail[\"a:FechaVacacion\"][0])\n ? detail[\"a:FechaVacacion\"][0]\n : \"\",\n JefeTrab_id: validateNull(detail[\"a:JefeTrab_id\"][0])\n ? detail[\"a:JefeTrab_id\"][0]\n : \"\",\n Nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : \"\",\n Periodo: validateNull(detail[\"a:Periodo\"][0])\n ? detail[\"a:Periodo\"][0]\n : \"\",\n SolicitudID: validateNull(detail[\"a:SolicitudID\"][0])\n ? detail[\"a:SolicitudID\"][0]\n : \"\",\n Status: validateNull(detail[\"a:Status\"][0])\n ? detail[\"a:Status\"][0]\n : \"\",\n TipoSolicitud: validateNull(detail[\"a:TipoSolString\"][0])\n ? detail[\"a:TipoSolString\"][0]\n : \"\",\n Trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : \"\",\n\n FechaInicio: validateNull(detail[\"a:FechaInicio\"][0])\n ? detail[\"a:FechaInicio\"][0]\n : \"\",\n FechaFin: validateNull(detail[\"a:FechaFin\"][0])\n ? detail[\"a:FechaFin\"][0]\n : \"\",\n RangoFechas: validateNull(detail[\"a:RangoFechas\"][0])\n ? detail[\"a:RangoFechas\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const ListCompaniesRpt = (response) => {\n let dataDetail = [];\n let objResponse =\n response.ListaEmpresasRptResponse[0].ListaEmpresasRptResult[0];\n if (objResponse && \"a:Empresas\" in objResponse) {\n let empresas = objResponse[\"a:Empresas\"][0];\n if (empresas && \"b:string\" in empresas) {\n let arrEmpre = empresas[\"b:string\"];\n if (arrEmpre && arrEmpre.length > 0) {\n arrEmpre.map((empresa) => {\n dataDetail.push(empresa);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const FilterCenters = (response) => {\n let dataDetail = [];\n let objResponse = response.LstCentrosResponse[0].LstCentrosResult[0];\n if (objResponse && \"a:centros\" in objResponse) {\n let centros = objResponse[\"a:centros\"][0];\n if (centros && \"b:stcCentros\" in centros) {\n let stcCentros = centros[\"b:stcCentros\"];\n if (stcCentros && stcCentros.length > 0) {\n stcCentros.map((detail) => {\n let data = {\n Centro_ID: validateNull(detail[\"b:Centro_ID\"][0])\n ? detail[\"b:Centro_ID\"][0]\n : \"\",\n Descripcion: validateNull(detail[\"b:Descripcion\"][0])\n ? detail[\"b:Descripcion\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const FilterBoos = (response) => {\n let dataDetail = [];\n let objResponse = response.LstJefesResponse[0].LstJefesResult[0];\n if (objResponse && \"a:Jefes\" in objResponse) {\n let Jefes = objResponse[\"a:Jefes\"][0];\n if (Jefes && \"b:stcJefes\" in Jefes) {\n let stcJefes = Jefes[\"b:stcJefes\"];\n if (stcJefes && stcJefes.length > 0) {\n stcJefes.map((detail) => {\n let data = {\n NombreCompleto: validateNull(detail[\"b:NombreCompleto\"][0])\n ? detail[\"b:NombreCompleto\"][0]\n : \"\",\n Trab_id_Jefe: validateNull(detail[\"b:Trab_id_Jefe\"][0])\n ? detail[\"b:Trab_id_Jefe\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const ReportRHVac = (response) => {\n let dataDetail = \"\";\n let objResponse = response.RptRolRHVacResponse[0].RptRolRHVacResult[0];\n if (objResponse && \"a:RutaDescargaRpt\" in objResponse) {\n let RutaDescargaRpt = objResponse[\"a:RutaDescargaRpt\"][0];\n dataDetail = RutaDescargaRpt;\n }\n return dataDetail;\n};\n\nexport const AdminMenu = (response) => {\n let dataDetail = [];\n let objResponse = response.MenuSICONSULTAResponse[0].MenuSICONSULTAResult[0];\n if (objResponse && \"a:Menus\" in objResponse) {\n let Menus = objResponse[\"a:Menus\"][0];\n if (Menus && \"b:stcMenu\" in Menus) {\n let stcMenu = Menus[\"b:stcMenu\"];\n if (stcMenu && stcMenu.length > 0) {\n stcMenu.map((detail) => {\n const data = {\n Descripcion: validateNull(detail[\"b:Descripcion\"][0])\n ? detail[\"b:Descripcion\"][0]\n : \"\",\n Habilitado: validateNull(detail[\"b:Habilitado\"][0])\n ? detail[\"b:Habilitado\"][0]\n : \"\",\n MenuID: validateNull(detail[\"b:MenuID\"][0])\n ? detail[\"b:MenuID\"][0]\n : \"\",\n NombreMenu: validateNull(detail[\"b:NombreMenu\"][0])\n ? detail[\"b:NombreMenu\"][0]\n : \"\",\n PadreMenuID: GetOrDefault(detail[\"b:PadreMenuID\"], \"\"),\n IdRol: GetOrDefault(detail[\"b:IdRol\"], \"\"),\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const AdminMenuActivate = (response) => {\n let dataDetail = false;\n let objResponse = response.MenuActualizaResponse[0].MenuActualizaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const VacationsMassiveDirect = (response) => {\n let dataDetail = [];\n let objResponse =\n response.VacacionesMasivasDirectosResponse[0]\n .VacacionesMasivasDirectosResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let Solicitudes = objResponse[\"a:Solicitudes\"][0];\n if (\n Solicitudes &&\n \"a:DetalleSolicitudMas\" in Solicitudes &&\n Solicitudes[\"a:DetalleSolicitudMas\"].length > 0\n ) {\n let DetalleSolicitudMas = Solicitudes[\"a:DetalleSolicitudMas\"];\n DetalleSolicitudMas.map((detail) => {\n let data = {\n centro_id: validateNull(detail[\"a:Centro_id\"][0])\n ? detail[\"a:Centro_id\"][0]\n : \"\",\n dia: validateNull(detail[\"a:Dia\"][0]) ? detail[\"a:Dia\"][0] : \"\",\n fechaSolicitud: validateNull(detail[\"a:FechaSolicitud\"][0])\n ? detail[\"a:FechaSolicitud\"][0]\n : \"\",\n fechaVacacion: validateNull(detail[\"a:FechaVacacion\"][0])\n ? detail[\"a:FechaVacacion\"][0]\n : \"\",\n jefeTrab_id: validateNull(detail[\"a:JefeTrab_id\"][0])\n ? detail[\"a:JefeTrab_id\"][0]\n : \"\",\n nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : \"\",\n periodo: validateNull(detail[\"a:Periodo\"][0])\n ? detail[\"a:Periodo\"][0]\n : \"\",\n solicitudID: validateNull(detail[\"a:SolicitudID\"][0])\n ? detail[\"a:SolicitudID\"][0]\n : \"\",\n status: validateNull(detail[\"a:Status\"][0])\n ? detail[\"a:Status\"][0]\n : \"\",\n tipoSolicitud: validateNull(detail[\"a:TipoSolicitud\"][0])\n ? detail[\"a:TipoSolicitud\"][0]\n : \"\",\n trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n return dataDetail;\n};\n\nexport const AuthorizeVacationsMassiveDirect = (response) => {\n let dataDetail = [];\n let objResponse =\n response.AutorizaVacMasivasDirResponse[0].AutorizaVacMasivasDirResult[0];\n if (objResponse && \"a:listaInsercion\" in objResponse) {\n let listaInsercion = objResponse[\"a:listaInsercion\"][0];\n if (\n listaInsercion &&\n \"a:clsInsercionMasivaDet\" in listaInsercion &&\n listaInsercion[\"a:clsInsercionMasivaDet\"].length > 0\n ) {\n let clsInsercionMasivaDet = listaInsercion[\"a:clsInsercionMasivaDet\"];\n clsInsercionMasivaDet.map((detail) => {\n let data = {\n errorMsg: validateNull(detail[\"a:ErrorMsg\"][0])\n ? detail[\"a:ErrorMsg\"][0]\n : \"\",\n fecha: validateNull(detail[\"a:Fecha\"][0]) ? detail[\"a:Fecha\"][0] : \"\",\n insercion: validateNull(detail[\"a:Insercion\"][0])\n ? detail[\"a:Insercion\"][0]\n : \"\",\n nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : \"\",\n trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n return dataDetail;\n};\n\nexport const VacationsDirect = (response) => {\n let dataDetail = [];\n let objResponse =\n response.ConsultaVacacionesDirResponse[0].ConsultaVacacionesDirResult[0];\n if (objResponse && \"a:Solicitudes\" in objResponse) {\n let Solicitudes = objResponse[\"a:Solicitudes\"][0];\n if (Solicitudes && \"a:DetalleSolicitudMas\" in Solicitudes) {\n let DetalleSolicitudMas = Solicitudes[\"a:DetalleSolicitudMas\"];\n if (DetalleSolicitudMas && DetalleSolicitudMas.length > 0) {\n DetalleSolicitudMas.map((detail) => {\n let data = {\n centro_id: validateNull(detail[\"a:Centro_id\"][0])\n ? detail[\"a:Centro_id\"][0]\n : \"\",\n dia: validateNull(detail[\"a:Dia\"][0]) ? detail[\"a:Dia\"][0] : \"\",\n fechaSolicitud: validateNull(detail[\"a:FechaSolicitud\"][0])\n ? detail[\"a:FechaSolicitud\"][0]\n : \"\",\n fechaVacacion: validateNull(detail[\"a:FechaVacacion\"][0])\n ? detail[\"a:FechaVacacion\"][0]\n : \"\",\n jefeTrab_id: validateNull(detail[\"a:JefeTrab_id\"][0])\n ? detail[\"a:JefeTrab_id\"][0]\n : \"\",\n nombre: validateNull(detail[\"a:Nombre\"][0])\n ? detail[\"a:Nombre\"][0]\n : \"\",\n periodo: validateNull(detail[\"a:Periodo\"][0])\n ? detail[\"a:Periodo\"][0]\n : \"\",\n solicitudID: validateNull(detail[\"a:SolicitudID\"][0])\n ? detail[\"a:SolicitudID\"][0]\n : \"\",\n status: validateNull(detail[\"a:Status\"][0])\n ? detail[\"a:Status\"][0]\n : \"\",\n tipoSolicitud: validateNull(detail[\"a:TipoSolicitud\"][0])\n ? detail[\"a:TipoSolicitud\"][0]\n : \"\",\n trab_id: validateNull(detail[\"a:Trab_id\"][0])\n ? detail[\"a:Trab_id\"][0]\n : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const ReportRHVacDirect = (response) => {\n let dataDetail = \"\";\n let objResponse = response.RptRolRHVacDirResponse[0].RptRolRHVacDirResult[0];\n if (objResponse && \"a:RutaDescargaRpt\" in objResponse) {\n let RutaDescargaRpt = objResponse[\"a:RutaDescargaRpt\"][0];\n dataDetail = RutaDescargaRpt;\n }\n return dataDetail;\n};\n\nexport const CatIncidentsResponse = (response) => {\n let dataDetail = [];\n \n if (sessionStorage.getItem(\"SICONSULTA_ValidaDiasKrones\") == \"1\"){\n let objResponse = response.CatIncidenciasKronesResponse[0].CatIncidenciasKronesResult[0];\n if (objResponse && \"a:lstIncidencias\" in objResponse) {\n let incidencias = objResponse[\"a:lstIncidencias\"][0];\n if (incidencias && \"a:incidenciaKrones\" in incidencias) {\n let incidencia = incidencias[\"a:incidenciaKrones\"];\n if (incidencia && incidencia.length > 0) {\n incidencia.map((inc) => {\n let dataModel = {\n descripcion: GetOrDefault(inc['a:descripcion'], ''),\n id: GetOrDefault(inc['a:id'], ''),\n idFormulario: GetOrDefault(inc['a:idFormulario'], ''),\n diasPermitidos: GetOrDefault(inc['a:diasPermitidos'], ''),\n }\n dataDetail.push(dataModel);\n });\n }\n }\n }\n }else{\n let objResponse = response.CatIncidenciasResponse[0].CatIncidenciasResult[0];\n if (objResponse && \"a:lstIncidencias\" in objResponse) {\n let incidencias = objResponse[\"a:lstIncidencias\"][0];\n if (incidencias && \"a:incidencia\" in incidencias) {\n let incidencia = incidencias[\"a:incidencia\"];\n if (incidencia && incidencia.length > 0) {\n // incidencia.map((inci) => {\n // let data = {\n // descripcion: validateNull(inci[\"a:descripcion\"][0])\n // ? inci[\"a:descripcion\"][0]\n // : \"\",\n // id: validateNull(inci[\"a:id\"][0]) ? inci[\"a:id\"][0] : \"\",\n // };\n // dataDetail.push(data);\n // });\n incidencia.map((inc) => {\n let dataModel = {\n descripcion: GetOrDefault(inc['a:descripcion'], ''),\n id: GetOrDefault(inc['a:id'], ''),\n idFormulario: GetOrDefault(inc['a:idFormulario'], ''),\n }\n dataDetail.push(dataModel);\n });\n }\n }\n }\n }\n return dataDetail;\n};\n\nexport const validDateIncidentAction = async (data, server) => {\n let configJson = {\n \"tem:ValidaDiaIncidencia\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n console.log('OIHB', obj);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ValidaDiaIncidencia\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n let response = await fetch(server, config);\n let responseText = await response.text();\n let isValid = null;\n let finalResponse = await parseString(\n responseText,\n { trim: true },\n (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n isValid = false;\n }\n }\n response = {\n isOK: true,\n ValidDateIncident: ValidDateIncidentResponse(body),\n };\n\n isValid = response.ValidDateIncident;\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n isValid = response;\n }\n }\n );\n return isValid;\n};\n\nexport const ValidDateIncidentResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.ValidaDiaIncidenciaResponse[0].ValidaDiaIncidenciaResult[0];\n if (objResponse && objResponse === \"OK\") {\n dataDetail = true;\n }\n\n if (objResponse && objResponse === \"Acceso no autorizado\") {\n dataDetail = objResponse;\n }\n return dataDetail;\n};\n\nexport const getDiasBloqueadosAspenAction = async (data, server) => {\n let result = {\n isOK: false,\n error: \"No data\",\n };\n\n let configJson = {\n \"tem:GetDiasBloqueadosAspen\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n console.log('OIHB', obj);\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc';\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n SOAPAction: \"http://tempuri.org/IwcfKioscoEmpleado/GetDiasBloqueadosAspen\",\n Server: directServer,\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n let response = await fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\" ? directServer : server), config);\n let responseText = await response.text();\n // console.log('OIHB', responseText);\n let finalResponse = await parseString(responseText, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n\n }\n } \n else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n result = response;\n }\n }\n response = {\n isOK: true,\n DiasBloqueados: GetDiasBloqueadosAspenResponse(body),\n };\n \n result = response;\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n result = response;\n }\n });\n \n // console.log('OIHB', result);\n return result;\n};\n\nexport const GetDiasBloqueadosAspenResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.GetDiasBloqueadosAspenResponse[0].GetDiasBloqueadosAspenResult[0];\n if (objResponse && \"a:DiasBloqueados\" in objResponse) {\n let DiasBloqueados = objResponse[\"a:DiasBloqueados\"][0];\n if (DiasBloqueados && \"a:clsDiasBloqueadosAspen.EntDiaBloqueado\" in DiasBloqueados) {\n let clsDiasBloqueados = DiasBloqueados[\"a:clsDiasBloqueadosAspen.EntDiaBloqueado\"];\n if (clsDiasBloqueados.length > 0) {\n clsDiasBloqueados.map((dia) => {\n let data = {\n Descripcion: dia[\"a:Descripcion\"] ? dia[\"a:Descripcion\"][0] : \"\",\n EsFestivo: dia[\"a:EsFestivo\"] ? dia[\"a:EsFestivo\"][0] : \"\",\n EsFinDeSemana: dia[\"a:EsFinDeSemana\"] ? dia[\"a:EsFinDeSemana\"][0] : \"\",\n EsIncapacidad: dia[\"a:EsIncapacidad\"] ? dia[\"a:EsIncapacidad\"][0] : \"\",\n Falta_ID: dia[\"a:Falta_ID\"] ? dia[\"a:Falta_ID\"][0] : \"\",\n Fecha: dia[\"a:Fecha\"] ? stringToDate(dia[\"a:Fecha\"][0]) : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const InsertIncidentsResponse = (response, isKrones = null) => {\n if (isKrones == null) {\n isKrones = process.env.REACT_APP_IS_KRONES == '1';\n }\n\n let dataDetail = {\n Result: false,\n Details: []\n };\n let objResponse = (isKrones ? response.InsertaIncidenciaKronesResponse[0].InsertaIncidenciaKronesResult[0] :\n response.InsertaIncidenciaResponse[0].InsertaIncidenciaResult[0]);\n if (objResponse) {\n dataDetail.Result = (objResponse[\"a:Result\"] ? objResponse[\"a:Result\"][0] : 'false') == 'true';\n let objDetails = objResponse[\"a:Details\"] ? objResponse[\"a:Details\"][0] : {};\n if (objDetails && 'b:string' in objDetails) {\n dataDetail.Details = objDetails[\"b:string\"] ;\n }\n }\n return dataDetail;\n};\n\nexport const skipWeekendResponse = (response) => {\n let dataDetail = false;\n let objResponse = response.OmiteFinSemanaResponse[0].OmiteFinSemanaResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let Result = objResponse[\"a:Valor\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const AuthorizeIncidentResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionIncidenciaResponse[0].AutorizacionIncidenciaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const RejectIncidentResponse = (response) => {\n let dataDetail = false;\n let objResponse =\n response.AutorizacionIncidenciaResponse[0].AutorizacionIncidenciaResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let Result = objResponse[\"a:Result\"][0];\n if (Result && Result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n//Krones \n\nexport const EmployeeVacationsResponse = (response) => {\n let dataDetail = []\n console.log('EmployeeVacations KRONES', response)\n let objResponse = response.GetEmpleadosVacacionePendientesResponse[0].GetEmpleadosVacacionePendientesResult[0]\n if (objResponse && 'a:ltsEmpleadoSolicitudes' in objResponse) {\n let ltsEmpleadoSolicitudes = objResponse['a:ltsEmpleadoSolicitudes'];\n if (ltsEmpleadoSolicitudes && 'a:Model_EmpleadoSolicitud' in ltsEmpleadoSolicitudes[0]) {\n let Model_EmpleadoSolicitud = ltsEmpleadoSolicitudes[0]['a:Model_EmpleadoSolicitud']\n if (Model_EmpleadoSolicitud && Model_EmpleadoSolicitud.length > 0) {\n Model_EmpleadoSolicitud.map((solicitud) => {\n let data = {\n EmpresaId: validateNull(solicitud['a:EmpresaId'][0]) ? solicitud['a:EmpresaId'][0] : '',\n NombreCompleto: validateNull(solicitud['a:NombreCompleto'][0]) ? solicitud['a:NombreCompleto'][0] : '',\n ReportaID: validateNull(solicitud['a:ReportaID'][0]) ? solicitud['a:ReportaID'][0] : '',\n TrabID: validateNull(solicitud['a:TrabID'][0]) ? solicitud['a:TrabID'][0] : '',\n }\n dataDetail.push(data)\n })\n }\n }\n }\n console.log('EmployeeVacations KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const CommentRejectVacationsResponse = (response) => {\n let dataDetail = false\n console.log('ComentarioRechazovacacionesEmp KRONES', response)\n let objResponse = response.ComentarioRechazovacacionesEmpResponse[0].ComentarioRechazovacacionesEmpResult[0]\n if (objResponse && 'a:Result' in objResponse) {\n let Result = objResponse['a:Result'][0];\n if (Result && Result === 'true') {\n dataDetail = true\n }\n }\n console.log('ComentarioRechazovacacionesEmp KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n//\nexport const vacationExpirationResponse = (response) => {\n let dataDetail = [];\n\n if (!response.GetVacaciones_Por_VencerEmpleadoResponse) return dataDetail;\n if (!response.GetVacaciones_Por_VencerEmpleadoResponse[0].GetVacaciones_Por_VencerEmpleadoResult) return dataDetail;\n\n console.log('GetVacaciones_Por_VencerEmpleado KRONES', response)\n let objResponse = response.GetVacaciones_Por_VencerEmpleadoResponse[0].GetVacaciones_Por_VencerEmpleadoResult[0]\n if (objResponse && 'a:ControlVacacion' in objResponse) {\n let ControlVacacion = objResponse['a:ControlVacacion'][0]\n if (ControlVacacion && 'a:ResponseVacaciones' in ControlVacacion) {\n let ResponseVacaciones = ControlVacacion['a:ResponseVacaciones']\n if (ResponseVacaciones && ResponseVacaciones.length > 0) {\n ResponseVacaciones.map((vac) => {\n let data = {\n Año: GetOrDefault(vac['a:Año'], '0'),\n Periodo: GetOrDefault(vac['a:periodo'], ''),\n Dias_Pendientes: GetOrDefault(vac['a:Dias_Pendientes'], '0'),\n FechaAniversario: GetOrDefault(vac['a:FechaAniversario'], ''),\n Vencimiento: GetOrDefault(vac['a:Vencimiento'], ''),\n MesesVencer: GetOrDefault(vac['a:MesesVencer'], '0'),\n DiasVencer: GetOrDefault(vac['a:DiasVencer'], '0'),\n }\n dataDetail.push(data)\n })\n }\n }\n }\n console.log('GetVacaciones_Por_VencerEmpleado KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\n//export const ConsultaRoles = (response) => {\n// let dataDetail = []\n// console.log('ConsultaRoles KRONES', response)\n// let objResponse = response.ConsultaRolesResponse[0].ConsultaRolesResult[0]\n// if (objResponse && 'a:CatalogoRol' in objResponse) {\n// let CatalogoRol = objResponse['a:CatalogoRol'][0]\n// if (CatalogoRol && 'a:clsCatalogoRoles' in CatalogoRol) {\n// let clsCatalogoRoles = CatalogoRol['a:clsCatalogoRoles']\n// if (clsCatalogoRoles && clsCatalogoRoles.length > 0) {\n// clsCatalogoRoles.map((vac) => {\n// let data = {\n// Descripcion: validateNull(vac['a:Descripcion'][0]) ? vac['a:Descripcion'][0] : '',\n// ID: validateNull(vac['a:ID'][0]) ? vac['a:ID'][0] : '',\n// }\n// dataDetail.push(data)\n// })\n\n// }\n// }\n// }\n// console.log('ConsultaRoles KRONES TRANSFORM', dataDetail)\n// return dataDetail\n//}\n\n//import moment from 'moment';\n\nconst changeFormat = (date) => {\n let dateInit = date.split('/')\n console.log(dateInit)\n return `${dateInit[2]}/${dateInit[1]}/${dateInit[0]}`\n}\n\nconst changedateFormat = (date) => {\n let dateInit = date.split('/')\n console.log(dateInit)\n return `${dateInit[2]}-${dateInit[1]}-${dateInit[0]}`\n}\n\nconst stringToDate = (date) => {\n date = date || \"\";\n if (date.indexOf(\"/\") >= 0) {\n let d = date.split(' ')[0].split('/');\n console.log('OIHB Data date', date);\n return new Date(`${d[2]}-${d[1]}-${d[0]}T00:00:00`);\n }\n return null;\n}\n\nexport const VacationsCalendarResponse = (response) => {\n let dataDetail = []\n console.log('GetVacacionesCalendario KRONES', response)\n\n let objResponse = response.GetVacacionesCalendarioResponse[0].GetVacacionesCalendarioResult[0]\n if (objResponse && 'a:Model_Response_CalVacaciones' in objResponse) {\n const Model_Response_CalVacaciones = objResponse['a:Model_Response_CalVacaciones'];\n if (Model_Response_CalVacaciones && Model_Response_CalVacaciones.length > 0) {\n Model_Response_CalVacaciones.map((model) => {\n\n let mod = model['a:Colaborasdor'][0]\n\n let vacations = model['a:ltsCalanedarioVacaciones'][0]\n\n let listVacations = vacations['a:FechaVacacionSolicitada']\n let days = []\n\n if (listVacations && listVacations.length > 0) {\n\n listVacations.map((vac) => {\n let day = changeFormat(vac['a:FechaString'][0])\n\n let dataModels = {\n id: 0,\n title: validateNull(mod['a:NombreCompleto'][0]) ? mod['a:NombreCompleto'][0] : '',\n allDay: false,\n start: new Date(day),\n end: new Date(day),\n type: vac['a:TipoSolicitud'][0],\n dateStr: changedateFormat(vac['a:FechaString'][0]),\n trabId: validateNull(vac['a:TrabID'][0]) ? vac['a:TrabID'][0] : '',\n }\n dataDetail.push(dataModels)\n\n let objVacation = {\n Autorizado: validateNull(vac['a:Autorizado'][0]) ? vac['a:Autorizado'][0] : '',\n Dia: validateNull(vac['a:Dia'][0]) ? vac['a:Dia'][0] : '',\n FechaString: validateNull(vac['a:FechaString'][0]) ? vac['a:FechaString'][0] : '',\n NumeroDeDia: validateNull(vac['a:NumeroDeDia'][0]) ? vac['a:NumeroDeDia'][0] : '',\n Fecha_StringToDate: validateNull(vac['a:Fecha_StringToDate'][0]) ? vac['a:Fecha_StringToDate'][0] : '',\n TrabID: validateNull(vac['a:TrabID'][0]) ? vac['a:TrabID'][0] : '',\n Procesada: validateNull(vac['a:Procesada'][0]) ? vac['a:Procesada'][0] : '',\n SolicitudID: validateNull(vac['a:SolicitudID'][0]) ? vac['a:SolicitudID'][0] : '',\n TipoSolString: validateNull(vac['a:TipoSolString'][0]) ? vac['a:TipoSolString'][0] : '',\n TipoSolicitud: validateNull(vac['a:TipoSolicitud'][0]) ? vac['a:TipoSolicitud'][0] : '',\n };\n\n days.push(objVacation)\n })\n }\n let dataModel = {\n NombreCompleto: validateNull(mod['a:NombreCompleto'][0]) ? mod['a:NombreCompleto'][0] : '',\n ReportaID: validateNull(mod['a:ReportaID'][0]) ? mod['a:ReportaID'][0] : '',\n TrabID: validateNull(mod['a:TrabID'][0]) ? mod['a:TrabID'][0] : '',\n Days: days\n }\n\n // dataDetail.push(dataModel)\n })\n }\n\n }\n console.log('GetVacacionesCalendario KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const IncidenciasKronesResponse = (response) => {\n let dataDetail = [];\n console.log('CatIncidencias KRONES', response)\n let objResponse = response.CatIncidenciasResponse[0].CatIncidenciasResult[0]\n if (objResponse && 'a:lstIncidencias' in objResponse) {\n let lstIncidencias = objResponse['a:lstIncidencias'][0];\n if (lstIncidencias && 'a:incidencia' in lstIncidencias) {\n let incidencias = lstIncidencias['a:incidencia'];\n if (incidencias && incidencias.length > 0) {\n incidencias.map((inc) => {\n let dataModel = {\n descripcion: validateNull(inc['a:descripcion'][0]) ? inc['a:descripcion'][0] : '',\n id: validateNull(inc['a:id'][0]) ? inc['a:id'][0] : '',\n idFormulario: validateNull(inc['a:idFormulario'][0]) ? inc['a:idFormulario'][0] : '',\n }\n dataDetail.push(dataModel)\n })\n }\n }\n }\n console.log('CatIncidencias KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const empleadoJornadaResponse = (response) => {\n let dataDetail = {};\n console.log('GetEmpleadoJornadaTurno KRONES', response)\n let objResponse = response.GetEmpleadoJornadaTurnoResponse[0].GetEmpleadoJornadaTurnoResult[0];\n if (objResponse && 'a:EmpleadosJornadaTurno' in objResponse) {\n let EmpleadosJornadaTurno = objResponse['a:EmpleadosJornadaTurno'][0];\n if (EmpleadosJornadaTurno && 'a:EmpleadoJornadaTurno' in EmpleadosJornadaTurno) {\n let EmpleadoJornadaTurno = EmpleadosJornadaTurno['a:EmpleadoJornadaTurno'][0];\n let Turnos = [];\n let EmpleadoJornada = EmpleadoJornadaTurno['a:TurnoHorarios'][0];\n if (EmpleadoJornada && 'a:EmpleadoTurnoHorario' in EmpleadoJornada) {\n let EmpleadoTurnoHorario = EmpleadoJornada['a:EmpleadoTurnoHorario'];\n if (EmpleadoTurnoHorario && EmpleadoTurnoHorario.length > 0) {\n EmpleadoTurnoHorario.map((tur) => {\n let empTur = {\n Descanso: validateNull(tur['a:Descanso'][0]) ? tur['a:Descanso'][0] : '',\n Dia: validateNull(tur['a:Dia'][0]) ? tur['a:Dia'][0] : '',\n Hora_Entrada: validateNull(tur['a:Hora_Entrada'][0]) ? tur['a:Hora_Entrada'][0] : '',\n Hora_EntradaComida: validateNull(tur['a:Hora_EntradaComida'][0]) ? tur['a:Hora_EntradaComida'][0] : '',\n Hora_Salida: validateNull(tur['a:Hora_Salida'][0]) ? tur['a:Hora_Salida'][0] : '',\n Hora_SalidaComida: validateNull(tur['a:Hora_SalidaComida'][0]) ? tur['a:Hora_SalidaComida'][0] : '',\n Trab_ID: validateNull(tur['a:Trab_ID'][0]) ? tur['a:Trab_ID'][0] : '',\n Turno_ID: validateNull(tur['a:Turno_ID'][0]) ? tur['a:Turno_ID'][0] : '',\n }\n Turnos.push(empTur)\n })\n\n }\n }\n let data = {\n ChecaTarjeta: validateNull(EmpleadoJornadaTurno['a:ChecaTarjeta'][0]) ? EmpleadoJornadaTurno['a:ChecaTarjeta'][0] : '',\n Descripcion: validateNull(EmpleadoJornadaTurno['a:Descripcion'][0]) ? EmpleadoJornadaTurno['a:Descripcion'][0] : '',\n FechaMov: validateNull(EmpleadoJornadaTurno['a:FechaMov'][0]) ? EmpleadoJornadaTurno['a:FechaMov'][0] : '',\n FlexTime: validateNull(EmpleadoJornadaTurno['a:FlexTime'][0]) ? EmpleadoJornadaTurno['a:FlexTime'][0] : '',\n HorasExtrasFijas: validateNull(EmpleadoJornadaTurno['a:HorasExtrasFijas'][0]) ? EmpleadoJornadaTurno['a:HorasExtrasFijas'][0] : '',\n HorasSemana: validateNull(EmpleadoJornadaTurno['a:HorasSemana'][0]) ? EmpleadoJornadaTurno['a:HorasSemana'][0] : '',\n Jornada_IDa: validateNull(EmpleadoJornadaTurno['a:Jornada_IDa'][0]) ? EmpleadoJornadaTurno['a:Jornada_IDa'][0] : '',\n Ptr: validateNull(EmpleadoJornadaTurno['a:Ptr'][0]) ? EmpleadoJornadaTurno['a:Ptr'][0] : '',\n Roll_IDa: validateNull(EmpleadoJornadaTurno['a:Roll_IDa'][0]) ? EmpleadoJornadaTurno['a:Roll_IDa'][0] : '',\n Trab_ID: validateNull(EmpleadoJornadaTurno['a:Trab_ID'][0]) ? EmpleadoJornadaTurno['a:Trab_ID'][0] : '',\n TurnoHorarios: Turnos,\n Turno_ID: validateNull(EmpleadoJornadaTurno['a:Turno_ID'][0]) ? EmpleadoJornadaTurno['a:Turno_ID'][0] : '',\n Trab_ID: validateNull(EmpleadoJornadaTurno['a:Trab_ID'][0]) ? EmpleadoJornadaTurno['a:Trab_ID'][0] : '',\n }\n dataDetail = data\n }\n\n }\n console.log('GetEmpleadoJornadaTurno KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const DeptosCenterResponse = (response) => {\n let dataDetail = {\n depto: [],\n cento: []\n };\n console.log('GetDeptoCentros KRONES', response)\n let objResponse = response.GetDeptoCentrosResponse[0].GetDeptoCentrosResult[0];\n if (objResponse && 'a:lstDepto' in objResponse) {\n let lstDepto = objResponse['a:lstDepto'][0];\n if (lstDepto && 'b:stcDepto' in lstDepto && lstDepto['b:stcDepto'].length > 0) {\n let stcDepto = lstDepto['b:stcDepto'];\n let datDepto = [\n { Depto_ID: '0', Descripcion: 'Todos' }\n ]\n stcDepto.map((depto) => {\n let dataDepto = {\n Depto_ID: validateNull(depto['b:Depto_ID'][0]) ? depto['b:Depto_ID'][0] : '',\n Descripcion: validateNull(depto['b:Descripcion'][0]) ? depto['b:Descripcion'][0] : '',\n }\n datDepto.push(dataDepto)\n })\n dataDetail['depto'] = datDepto\n }\n }\n if (objResponse && 'a:lstcentros' in objResponse) {\n let lstcentros = objResponse['a:lstcentros'][0];\n if (lstcentros && 'b:stcCentros' in lstcentros && lstcentros['b:stcCentros'].length > 0) {\n let stcCentros = lstcentros['b:stcCentros']\n let datCentros = [\n { Centro_ID: '0', Descripcion: 'Todos' }\n ]\n stcCentros.map((centro) => {\n let dataCentros = {\n Centro_ID: validateNull(centro['b:Centro_ID'][0]) ? centro['b:Centro_ID'][0] : '',\n Descripcion: validateNull(centro['b:Descripcion'][0]) ? centro['b:Descripcion'][0] : '',\n }\n datCentros.push(dataCentros)\n })\n dataDetail['cento'] = datCentros\n }\n }\n\n console.log('GetDeptoCentros KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const JefesPerdiemResponse = (response) => {\n let dataDetail = [\n {\n NombreCompleto: 'Todos',\n Trab_id_Jefe: 0\n }\n ];\n console.log('GetListaJefes KRONES', response)\n let objResponse = response.GetListaJefesResponse[0].GetListaJefesResult[0]\n if (objResponse && 'a:Jefes' in objResponse) {\n let Jefes = objResponse['a:Jefes'][0];\n if (Jefes && 'b:stcJefes' in Jefes) {\n let stcJefes = Jefes['b:stcJefes'];\n if (stcJefes && stcJefes.length > 0) {\n stcJefes.map((jefe) => {\n let dataModel = {\n NombreCompleto: validateNull(jefe['b:NombreCompleto'][0]) ? jefe['b:NombreCompleto'][0] : '',\n Trab_id_Jefe: validateNull(jefe['b:Trab_id_Jefe'][0]) ? jefe['b:Trab_id_Jefe'][0] : '',\n }\n dataDetail.push(dataModel)\n })\n }\n }\n }\n console.log('GetListaJefes KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\n\nexport const EmpleadosAllResponse = (response) => {\n let dataDetail = [];\n console.log('EmpeladosAll KRONES', response)\n let objResponse = response.EmpleadosAllResponse[0].EmpleadosAllResult[0]\n if (objResponse && 'a:Empleados' in objResponse) {\n let Empleados = objResponse['a:Empleados'][0];\n if (Empleados && 'b:stcEmpleado' in Empleados) {\n let stcEmpleado = Empleados['b:stcEmpleado'];\n if (stcEmpleado && stcEmpleado.length > 0) {\n stcEmpleado.map((empleado) => {\n let dataModel = {\n name: validateNull(empleado['b:NombreCompleto'][0]) ? empleado['b:NombreCompleto'][0] : '',\n id: validateNull(empleado['b:Trab_ID'][0]) ? empleado['b:Trab_ID'][0] : '',\n }\n dataDetail.push(dataModel)\n })\n }\n }\n }\n console.log('EmpeladosAll KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const EmpRepoResponse = (response) => {\n let dataDetail = [];\n console.log('EmpleadosREPORTEPerdiem KRONES', response)\n let objResponse = response.EmpleadosREPORTEPerdiemResponse[0].EmpleadosREPORTEPerdiemResult[0]\n if (objResponse && 'a:Empleados' in objResponse) {\n let Empleados = objResponse['a:Empleados'][0];\n if (Empleados && 'b:stcEmpleadoRepPerdiem' in Empleados) {\n let stcEmpleadoRepPerdiem = Empleados['b:stcEmpleadoRepPerdiem'];\n if (stcEmpleadoRepPerdiem && stcEmpleadoRepPerdiem.length > 0) {\n stcEmpleadoRepPerdiem.map((empleado) => {\n let dataModel = {\n Centro_Costo: validateNull(empleado['b:Centro_Costo'][0]) ? empleado['b:Centro_Costo'][0] : '',\n Nombre: validateNull(empleado['b:Nombre'][0]) ? empleado['b:Nombre'][0] : '',\n Reporta_ID: validateNull(empleado['b:Reporta_ID'][0]) ? empleado['b:Reporta_ID'][0] : '',\n Tecnologia: validateNull(empleado['b:Tecnologia'][0]) ? empleado['b:Tecnologia'][0] : '',\n Trab_ID: validateNull(empleado['b:Trab_ID'][0]) ? empleado['b:Trab_ID'][0] : '',\n }\n dataDetail.push(dataModel)\n })\n }\n }\n }\n console.log('EmpleadosREPORTEPerdiem KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const EmpleadosAlMandoResponse = (response) => {\n let dataDetail = [];\n console.log('EmpleadosAlMando KRONES', response)\n let objResponse = response.EmpleadosAlMandoResponse[0].EmpleadosAlMandoResult[0]\n if (objResponse && 'a:Empleados' in objResponse) {\n let Empleados = objResponse['a:Empleados'][0];\n if (Empleados && 'b:stcEmpleado' in Empleados) {\n let stcEmpleado = Empleados['b:stcEmpleado'];\n if (stcEmpleado && stcEmpleado.length > 0) {\n stcEmpleado.map((empleado) => {\n let dataModel = {\n NombreCompleto: validateNull(empleado['b:NombreCompleto'][0]) ? empleado['b:NombreCompleto'][0] : '',\n Trab_ID: validateNull(empleado['b:Trab_ID'][0]) ? empleado['b:Trab_ID'][0] : '',\n CentroDescripcion: validateNull(empleado['b:CentroDescripcion'][0]) ? empleado['b:CentroDescripcion'][0] : '',\n Centro_ID: validateNull(empleado['b:Centro_ID'][0]) ? empleado['b:Centro_ID'][0] : '',\n }\n dataDetail.push(dataModel)\n })\n }\n }\n }\n console.log('EmpleadosAlMando KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const GetXlsPerdiemResponse = (response) => {\n let dataDetail = '';\n console.log('EmpleadosREPORTEPerdiemurl KRONES', response)\n let objResponse = response.EmpleadosREPORTEPerdiemurlResponse[0].EmpleadosREPORTEPerdiemurlResult[0];\n if (objResponse && 'a:url' in objResponse) {\n let url = objResponse['a:url'][0]\n if (url && url.length > 0) {\n dataDetail = url\n }\n }\n console.log('EmpleadosREPORTEPerdiemurl KRONES TRANSFORM', dataDetail)\n return dataDetail\n\n}\n\nexport const AuthorizersResponse = (response) => {\n let dataDetail = [];\n console.log('Autorizadores KRONES', response)\n let objResponse = response.AutorizadoresResponse[0].AutorizadoresResult[0];\n if (objResponse && 'a:lstAutorizadores' in objResponse) {\n let lstAutorizadores = objResponse['a:lstAutorizadores'][0];\n if (lstAutorizadores && 'a:Autorizadores' in lstAutorizadores) {\n let Autorizadores = lstAutorizadores['a:Autorizadores'];\n if (Autorizadores && Autorizadores.length > 0) {\n Autorizadores.map((data) => {\n let objData = {\n Email: validateNull(data['a:Email'][0]) ? data['a:Email'][0] : '',\n IDAutorizador: validateNull(data['a:IDAutorizador'][0]) ? data['a:IDAutorizador'][0] : '',\n NombreCompleto: validateNull(data['a:NombreCompleto'][0]) ? data['a:NombreCompleto'][0] : '',\n Trab_ID: validateNull(data['a:Trab_ID'][0]) ? data['a:Trab_ID'][0] : '',\n }\n dataDetail.push(objData);\n })\n }\n }\n }\n console.log('Autorizadores KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\n\nexport const DataChiefResponse = (response) => {\n let dataDetail = {};\n console.log('GetDatosJefeDirecto KRONES', response)\n let objResponse = response.GetDatosJefeDirectoResponse[0].GetDatosJefeDirectoResult[0];\n if (objResponse && 'a:JefeDirecto' in objResponse) {\n let JefeDirecto = objResponse['a:JefeDirecto'][0];\n if (JefeDirecto && 'a:EntDatosJefeDirecto' in JefeDirecto) {\n let EntDatosJefeDirecto = JefeDirecto['a:EntDatosJefeDirecto'][0]\n if (EntDatosJefeDirecto && 'a:NombreCompleto' in EntDatosJefeDirecto) {\n dataDetail = {\n Email: validateNull(EntDatosJefeDirecto['a:Email'][0]) ? EntDatosJefeDirecto['a:Email'][0] : '',\n NombreCompleto: validateNull(EntDatosJefeDirecto['a:NombreCompleto'][0]) ? EntDatosJefeDirecto['a:NombreCompleto'][0] : '',\n Trab_ID: validateNull(EntDatosJefeDirecto['a:Trab_ID'][0]) ? EntDatosJefeDirecto['a:Trab_ID'][0] : '',\n }\n }\n }\n }\n console.log('GetDatosJefeDirecto KRONES TRANSFORM', dataDetail)\n return dataDetail\n\n}\n\nexport const EmployeeMovNomResponse = (response) => {\n let dataDetail = false;\n console.log('EmpleadoMovNom KRONES', response)\n let objResponse = response.EmpleadoMovNomResponse[0].EmpleadoMovNomResult[0];\n if (objResponse && 'a:Result' in objResponse) {\n let Result = objResponse['a:Result'][0]\n if (Result && Result === 'true') {\n dataDetail = true\n }\n }\n console.log('EmpleadoMovNom KRONES TRANSFORM', dataDetail)\n return dataDetail\n}\n\nexport const ConsultaRoles = (response) => {\n let dataDetail = [];\n let objResponse = response.ConsultaRolesResponse[0].ConsultaRolesResult[0];\n if (objResponse && \"a:CatalogoRol\" in objResponse) {\n let CatalogoRol = objResponse[\"a:CatalogoRol\"][0];\n if (CatalogoRol && \"a:clsCatalogoRoles\" in CatalogoRol) {\n let clsCatalogoRoles = CatalogoRol[\"a:clsCatalogoRoles\"];\n if (clsCatalogoRoles && clsCatalogoRoles.length > 0) {\n clsCatalogoRoles.map((vac) => {\n let data = {\n Descripcion: validateNull(vac[\"a:Descripcion\"][0])\n ? vac[\"a:Descripcion\"][0]\n : \"\",\n ID: validateNull(vac[\"a:ID\"][0]) ? vac[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(data);\n });\n }\n }\n }\n return dataDetail;\n};\n\nexport const ConsultaVarExt = (response) => {\n let dataDetail = false;\n let objResponse = response.ConsultaVarExtFileResponse[0].ConsultaVarExtFileResult[0];\n console.log('lala', objResponse);\n if (objResponse && \"a:Valor\" in objResponse) {\n let result = objResponse[\"a:Valor\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\n\nexport const ConsultaArchivos = (response) => {\n let files = [];\n let objResponse = response.ConsultaArchivosResponse[0].ConsultaArchivosResult[0];\n if (objResponse && \"a:Archivos\" in objResponse) {\n let archivos = objResponse['a:Archivos'][0]['a:DetalleArchivo'];\n archivos.map(file => {\n let newObj = {\n Contenido: file['a:Contenido'][0],\n Idx_Archivo: file['a:Idx_Archivo'][0],\n Nombre: file['a:Nombre'][0]\n }\n\n files.push(newObj)\n })\n }\n return files;\n};\n\nexport const ConsultaArchivosPersonales = (response) => {\n let files = [];\n let objResponse = response.ConsultaArchivosPersonalesResponse[0].ConsultaArchivosPersonalesResult[0];\n if (objResponse && \"a:Archivos\" in objResponse) {\n let archivos = objResponse['a:Archivos'][0]['a:DetalleArchivoPersonal'];\n archivos.map(file => {\n let newObj = {\n Contenido: file['a:Contenido'][0],\n Idx_Archivo: file['a:Idx_Archivo'][0],\n NombreArchivo: file['a:NombreArchivo'][0],\n Tipo: file['a:Tipo'][0],\n Trab_id: file['a:Trab_id'][0],\n Nombre: file['a:Nombre'][0],\n Paterno: file['a:Paterno'][0],\n Materno: file['a:Materno'][0]\n\n }\n\n files.push(newObj)\n })\n }\n return files;\n};\n\nexport const ConsultaArchivosPersonalesPorTrabajador = (response) => {\n let files = [];\n let objResponse = response.ConsultaArchivosPersonalesPorTrabajadorResponse[0].ConsultaArchivosPersonalesPorTrabajadorResult [0];\n if (objResponse && \"a:Archivos\" in objResponse) {\n let archivos = objResponse['a:Archivos'][0]['a:DetalleArchivoPersonal'];\n archivos.map(file => {\n let newObj = {\n Contenido: file['a:Contenido'][0],\n Idx_Archivo: file['a:Idx_Archivo'][0],\n Nombre: file['a:Nombre'][0],\n Tipo: file['a:Tipo'][0],\n Trab_id: file['a:Trab_id'][0]\n }\n\n files.push(newObj)\n })\n }\n return files;\n};\n\n\nexport const ConsultaArchivosPersonalesJefe = (response) => {\n let files = [];\n let objResponse = response.ConsultaArchivosPersonalesJefeResponse[0].ConsultaArchivosPersonalesJefeResult [0];\n if (objResponse && \"a:Archivos\" in objResponse) {\n let archivos = objResponse['a:Archivos'][0]['a:DetalleArchivoPersonal'];\n archivos.map(file => {\n let newObj = {\n Contenido: file['a:Contenido'][0],\n Idx_Archivo: file['a:Idx_Archivo'][0],\n NombreArchivo: file['a:NombreArchivo'][0],\n Tipo: file['a:Tipo'][0],\n Trab_id: file['a:Trab_id'][0],\n Nombre: file['a:Nombre'][0],\n Paterno: file['a:Paterno'][0],\n Materno: file['a:Materno'][0]\n\n }\n\n files.push(newObj)\n })\n }\n return files;\n};\n\nexport const obtenerTipoDocumento = (response) => {\n let documentsTypes = [];\n let objResponse = response.ObtenerTipoDocumentoResponse[0].ObtenerTipoDocumentoResult[0];\n if (objResponse && \"a:Documento\" in objResponse) {\n let documento = objResponse[\"a:Documento\"][0];\n if (documento && \"a:Documento_Detalle\" in documento) {\n let documento_Detalle = documento[\"a:Documento_Detalle\"];\n if (documento_Detalle && documento_Detalle.length > 0) {\n documento_Detalle.map((doc) => {\n let DataDocument = {\n nombre: validateNull(doc[\"a:Nombre\"][0])\n ? doc[\"a:Nombre\"][0]\n : \"\",\n id: validateNull(doc[\"a:Id\"][0]) ? doc[\"a:Id\"][0] : \"\",\n };\n documentsTypes.push(DataDocument);\n });\n }\n }\n }\n return documentsTypes;\n};\n\nexport const GuardaArchivoPersonal = (response) => {\n let dataDetail = false;\n let objResponse = response.GuardaArchivoPersonalResponse[0].GuardaArchivoPersonalResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const GuardaArchivo = (response) => {\n let dataDetail = false;\n let objResponse = response.GuardaArchivoResponse[0].GuardaArchivoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let result = objResponse[\"a:Result\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const DeleteFiles = (response) => {\n let dataDetail = false;\n let objResponse = response.DeleteFilesResponse[0].DeleteFilesResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let result = objResponse[\"a:Valor\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const DeletePersonalFiles = (response) => {\n let dataDetail = false;\n let objResponse = response.DeletePersonalFilesResponse[0].DeletePersonalFilesResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let result = objResponse[\"a:Valor\"][0];\n if (result === \"true\") {\n dataDetail = true;\n }\n }\n return dataDetail;\n};\n\nexport const URLReporteDocDeacargadosEmp = (response) => {\n let dataDetail = '';\n let objResponse = response.URLReporteDocDeacargadosEmpResponse[0].URLReporteDocDeacargadosEmpResult[0];\n if (objResponse && \"a:url\" in objResponse) {\n let result = objResponse[\"a:url\"][0];\n dataDetail = result\n }\n return dataDetail;\n};\n\nexport const ConsultaVarFirma = (response) => {\n let dataDetail = [];\n let objResponse = response.ConsultaVarFirmaResponse[0].ConsultaVarFirmaResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let CatalogoExt = objResponse[\"a:Valor\"][0];\n dataDetail.push(CatalogoExt)\n }\n return dataDetail;\n};\n\nexport const ConsultaFirma = (response) => {\n let dataDetail = [];\n let objResponse = response.ConsultaFirmaResponse[0].ConsultaFirmaResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let CatalogoExt = objResponse[\"a:Valor\"][0];\n dataDetail = CatalogoExt;\n }\n return dataDetail;\n};\n\nexport const ActualizaFirma = (response) => {\n let dataDetail = [];\n let objResponse = response.ActualizaFirmaResponse[0].ActualizaFirmaResult[0];\n if (objResponse && \"a:Valor\" in objResponse) {\n let CatalogoExt = objResponse[\"a:Valor\"][0];\n dataDetail.push(CatalogoExt)\n }\n return dataDetail;\n};\n\nexport const GetIncidenciasAlerta = (response) => {\n let data = [];\n let objResponse = response.GetIncidenciasAlertaResponse[0].GetIncidenciasAlertaResult[0];\n if (objResponse && \"a:lstAlertaIncidencia\" in objResponse) {\n let alerts = objResponse[\"a:lstAlertaIncidencia\"][0]['a:IncidenciasAlerta'];\n alerts.map(alert => {\n console.log('hh', alert);\n let newObj = {\n Dia: alert['a:Dia'][0],\n Fecha: alert['a:Fecha'][0],\n Incidencia: alert['a:Incidencia'][0]\n }\n\n data.push(newObj)\n })\n }\n return data;\n};\n\nexport const Log_RegistraDescargaArchivo = (response) => {\n let dataDetail = [];\n let objResponse = response.Log_RegistraDescargaArchivoResponse[0].Log_RegistraDescargaArchivoResult[0];\n if (objResponse && \"a:Result\" in objResponse) {\n let CatalogoExt = objResponse[\"a:Result\"][0];\n dataDetail.push(CatalogoExt)\n }\n return dataDetail;\n};\n\nexport const VarShowOptionsResponse = (response) => {\n let dataDetail = {};\n console.log(\"TEST VariablesMuestraOpciones RESPONSE\", response);\n let objResponse = response.VariablesMuestraOpcionesResponse[0].VariablesMuestraOpcionesResult[0];\n if (objResponse && \"a:showEstadocivil\" in objResponse) {\n let data = {\n showEstadocivil: validateNull(objResponse[\"a:showEstadocivil\"][0]) ? objResponse[\"a:showEstadocivil\"][0] : \"\",\n showFechaTermino: validateNull(objResponse[\"a:showFechaTermino\"][0]) ? objResponse[\"a:showFechaTermino\"][0] : \"\",\n showGrafica: validateNull(objResponse[\"a:showGrafica\"][0]) ? objResponse[\"a:showGrafica\"][0] : \"\",\n };\n dataDetail = data;\n }\n\n if (objResponse && \"a:ErrorMsg\" in objResponse && validateNull(objResponse[\"a:ErrorMsg\"][0])) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0]) ? objResponse[\"a:ErrorMsg\"][0] : \"\",\n };\n dataDetail = data;\n }\n\n console.log(\"TEST VariablesMuestraOpciones RESPONSE\", dataDetail);\n return dataDetail;\n};\n\n//NOM035\nexport const GetTipoEncuestaResponse = (response) => {\n\t\t\t\t\t \n console.log(\"TEST GetTipoEncuestas RESPONSE\", response);\n\n let tipoEncuestas = [];\n let objResponse = response.GetTipoEncuestasResponse[0].GetTipoEncuestasResult[0];\n if (objResponse && \"a:lstTipoEncuesta\" in objResponse) {\n let entTE = objResponse['a:lstTipoEncuesta'][0]['a:EntTipoEncuesta'];\n entTE.map(obj => {\n let newObj = {\n Descripcion: obj['a:Descripcion'][0],\n Valor: obj['a:Valor'][0]\n };\n\n tipoEncuestas.push(newObj);\n });\n }\n\n console.log(\"TEST GetTipoEncuestas RESPONSE\", tipoEncuestas);\n return tipoEncuestas;\n};\n\nexport const GetEmpleadosGUIA1Response = (response) => {\n console.log(\"TEST GetEmpleadosGUIA1 RESPONSE\", response);\n let empleadosGuia1 = [];\n let objResponse = response.GetEmpleadosGUIA1Response[0].GetEmpleadosGUIA1Result[0];\n if (objResponse && \"a:lstEmpGuia1\" in objResponse) {\n let duev2 = objResponse['a:lstEmpGuia1'][0]['a:EntEmpleadoGuia1'];\n duev2.map(obj => {\n let newObj = {\n NombreCompleto: obj['a:NombreCompleto'][0],\n TrabID: obj['a:TrabID'][0],\n };\n\n empleadosGuia1.push(newObj);\n });\n }\n\n console.log(\"TEST GetEmpleadosGUIA1 RESPONSE\", empleadosGuia1);\n return empleadosGuia1;\n};\n\nexport const GetUbicacionesConteoResponse = (response) => {\n console.log(\"TEST GetUbicacionesConteo RESPONSE\", response);\n\n let ubicacionesConteo = [];\n let objResponse = response.GetUbicacionesConteoResponse[0].GetUbicacionesConteoResult[0];\n if (objResponse && \"a:lstUbicacionConteo\" in objResponse) {\n let stcUC = objResponse['a:lstUbicacionConteo'][0]['b:stcUbicacionConteo'];\n stcUC.map(obj => {\n let newObj = {\n FechaEnvio: obj['b:FechaEnvio'][0],\n Guia: obj['b:Guia'][0],\n Seleccionado: obj['b:Seleccionado'][0],\n Total: obj['b:Total'][0],\n Ubicacion: obj['b:Ubicacion'][0],\n Ubicacion_ID: obj['b:Ubicacion_ID'][0],\n UltimoEnvio: obj['b:UltimoEnvio'][0],\n };\n\n ubicacionesConteo.push(newObj);\n });\n }\n\n console.log(\"TEST GetUbicacionesConteo RESPONSE\", ubicacionesConteo);\n return ubicacionesConteo;\n};\n\nexport const GetSeleccionEmpUbiResponse = (response) => {\n console.log(\"TEST GetSeleccionEmpUbi RESPONSE\", response);\n let responseFinal = {\n isOK: true,\n conteo: 0,\n SeleccionEmpUbi: []\n };\n\n let conteo = 0;\n let seleccionEmpUbi = [];\n let objResponse = response.GetSeleccionEmpUbiResponse[0].GetSeleccionEmpUbiResult[0];\n if (objResponse && \"a:conteo\" in objResponse) {\n conteo = objResponse['a:conteo'][0];\n } \n if (objResponse && \"a:lstEmpUbi\" in objResponse) {\n let duev2 = objResponse['a:lstEmpUbi'][0]['b:DetalleUbicacionEmpleadov2'];\n duev2.map(obj => {\n let newObj = {\n CP: obj['b:CP'][0],\n Calle: obj['b:Calle'][0],\n Centro_ID: obj['b:Centro_ID'][0],\n Colonia: obj['b:Colonia'][0],\n Depto_ID: obj['b:Depto_ID'][0],\n Email: obj['b:Email'][0],\n Estado_ID: obj['b:Estado_ID'][0],\n FechaCaptura: obj['b:FechaCaptura'][0],\n FechaMov: obj['b:FechaMov'][0],\n Materno: obj['b:Materno'][0],\n Mov_ID: obj['b:Mov_ID'][0],\n Municipio: obj['b:Municipio'][0],\n Nombre: obj['b:Nombre'][0],\n NumExterior: obj['b:NumExterior'][0],\n NumInterior: obj['b:NumInterior'][0],\n Paterno: obj['b:Paterno'][0],\n Puesto_ID: obj['b:Puesto_ID'][0],\n Seleccionado: obj['b:Seleccionado'][0],\n Trab_ID: obj['b:Trab_ID'][0],\n Ubicacion: obj['b:Ubicacion'][0],\n Ubicacion_ID: obj['b:Ubicacion_ID'][0],\n };\n\n seleccionEmpUbi.push(newObj);\n });\n }\n\n responseFinal.conteo = conteo;\n responseFinal.SeleccionEmpUbi = seleccionEmpUbi;\n\n console.log(\"TEST GetSeleccionEmpUbi RESPONSE\", seleccionEmpUbi);\n return responseFinal;\n};\n\nexport const SetEnviarEncuestasGUIA1Response = (response) => {\n console.log(\"TEST SetEnviarEncuestasGUIA1 RESPONSE\", response);\n let responseFinal = {\n isOK: true,\n ErrorMsg: \"\",\n Result: \"false\"\n };\n\n let objResponse = response.EnviarEncuestasGUIA1Response[0].EnviarEncuestasGUIA1Result[0];\n if (objResponse && \"a:ErrorMsg\" in objResponse) {\n responseFinal.ErrorMsg = objResponse['a:ErrorMsg'][0];\n } \n if (objResponse && \"a:Result\" in objResponse) {\n responseFinal.Result = objResponse['a:Result'][0];\n } \n\n console.log(\"TEST SetEnviarEncuestasGUIA1 RESPONSE\", responseFinal);\n return responseFinal;\n};\n\nexport const SetEnviarEncuestasGUIA2_3Response = (response) => {\n console.log(\"TEST SetEnviarEncuestasGUIA2_3 RESPONSE\", response);\n let responseFinal = {\n isOK: true,\n ErrorMsg: \"\",\n Result: \"false\"\n };\n\n let objResponse = response.EnviarEncuestasGUIA2_3Response[0].EnviarEncuestasGUIA2_3Result[0];\n if (objResponse && \"a:ErrorMsg\" in objResponse) {\n responseFinal.ErrorMsg = objResponse['a:ErrorMsg'][0];\n } \n if (objResponse && \"a:Result\" in objResponse) {\n responseFinal.Result = objResponse['a:Result'][0];\n } \n\n console.log(\"TEST SetEnviarEncuestasGUIA2_3 RESPONSE\", responseFinal);\n return responseFinal;\n};\n\nexport const GeneraRptVacacionIncidenciaResponse = (response) => {\n let dataDetail = \"\";\n let objResponse = response.GeneraRptVacacionIncidenciaResponse[0].GeneraRptVacacionIncidenciaResult[0];\n let resp = validateNull(objResponse[\"a:RutaDescargaRpt\"][0]) ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n dataDetail = resp;\n }\n \n return dataDetail;\n};\n\n//PEÑAFIEL\nexport const CtrlVacionEmpleadoDatosResponse = (response) => {\n let data = {};\n console.log('CtrlVacionEmpleadoDatos', response);\n let objResponse = response.ctrlVacionEmpleadoDatosResponse[0].ctrlVacionEmpleadoDatosResult[0];\n if (objResponse && 'a:ControlVacacion' in objResponse) {\n let ControlVacacion = objResponse['a:ControlVacacion'][0];\n if (ControlVacacion && 'a:clsResponseUsuarioVacacion' in ControlVacacion) {\n let clsResponseUsuarioVacacion = ControlVacacion['a:clsResponseUsuarioVacacion'][0];\n if (clsResponseUsuarioVacacion) {\n data = {\n Años: (clsResponseUsuarioVacacion['a:Años'][0]) ? clsResponseUsuarioVacacion['a:Años'][0] : '',\n CURP: (clsResponseUsuarioVacacion['a:CURP'][0]) ? clsResponseUsuarioVacacion['a:CURP'][0] : '',\n Depto: (clsResponseUsuarioVacacion['a:Depto'][0]) ? clsResponseUsuarioVacacion['a:Depto'][0] : '',\n Dias: (clsResponseUsuarioVacacion['a:Dias'][0]) ? clsResponseUsuarioVacacion['a:Dias'][0] : '',\n FechaIngreso: (clsResponseUsuarioVacacion['a:FechaIngreso'][0]) ? clsResponseUsuarioVacacion['a:FechaIngreso'][0] : '',\n IMSS: (clsResponseUsuarioVacacion['a:IMSS'][0]) ? clsResponseUsuarioVacacion['a:IMSS'][0] : '',\n Nombre: (clsResponseUsuarioVacacion['a:Nombre'][0]) ? clsResponseUsuarioVacacion['a:Nombre'][0] : '',\n Puesto: (clsResponseUsuarioVacacion['a:Puesto'][0]) ? clsResponseUsuarioVacacion['a:Puesto'][0] : '',\n RFC: (clsResponseUsuarioVacacion['a:RFC'][0]) ? clsResponseUsuarioVacacion['a:RFC'][0] : '',\n Trab_ID: (clsResponseUsuarioVacacion['a:Trab_ID'][0]) ? clsResponseUsuarioVacacion['a:Trab_ID'][0] : '',\n Vacaciones: (clsResponseUsuarioVacacion['a:Vacaciones'][0]) ? clsResponseUsuarioVacacion['a:Vacaciones'][0] : '',\n\n TipoEmpleado_ID: GetOrDefault(clsResponseUsuarioVacacion['a:TipoEmpleado_ID'], ''),\n TipoEmpleado_Desc: GetOrDefault(clsResponseUsuarioVacacion['a:TipoEmpleado_Desc'], ''),\n Sindicato_ID: GetOrDefault(clsResponseUsuarioVacacion['a:Sindicato_ID'], ''),\n Sindicato_Desc: GetOrDefault(clsResponseUsuarioVacacion['a:Sindicato_Desc'], ''),\n };\n }\n }\n }\n console.log('CtrlVacionEmpleadoDatos TRANSFORM', data);\n return data;\n};\n\nexport const CtrlVacacionesEmpleadoV4Response = (response) => {\n let dataDetail = [];\n console.log('CtrlVacacionesEmpleadoV4', response);\n let objResponse = response.ControlVacacionesEmpleadoV4Response[0].ControlVacacionesEmpleadoV4Result[0];\n if (objResponse && 'a:ControlVacacion' in objResponse) {\n let ControlVacacion = objResponse['a:ControlVacacion'][0];\n if (ControlVacacion && 'a:clsControlVacacionV4' in ControlVacacion) {\n let clsControlVacacionV4 = ControlVacacion['a:clsControlVacacionV4'];\n if (clsControlVacacionV4 && clsControlVacacionV4.length > 0) {\n clsControlVacacionV4.map((vacacion) => {\n let data = {\n AnosDeAntiguedad: (vacacion['a:AnosDeAntiguedad']) ? (vacacion['a:AnosDeAntiguedad'][0] || '0') : '',\n Año: (vacacion['a:Año']) ? vacacion['a:Año'][0] : '',\n DiasOtorgados: (vacacion['a:DiasOtorgados']) ? vacacion['a:DiasOtorgados'][0] : '',\n FechaDisponibilidad: (vacacion['a:FechaDisponibilidad']) ? vacacion['a:FechaDisponibilidad'][0] : '',\n FechaVencimiento: (vacacion['a:FechaVencimiento']) ? vacacion['a:FechaVencimiento'][0] : '',\n Trab_ID: (vacacion['a:Trab_ID']) ? vacacion['a:Trab_ID'][0] : '',\n VacacionesGozadasDelAno: (vacacion['a:VacacionesGozadasDelAno']) ? vacacion['a:VacacionesGozadasDelAno'][0] : '',\n VacacionesPendientesDelAño: (vacacion['a:VacacionesPendientesDelAño']) ? vacacion['a:VacacionesPendientesDelAño'][0] : '',\n VacacionesPerdidasDelAno: (vacacion['a:VacacionesPerdidasDelAno']) ? vacacion['a:VacacionesPerdidasDelAno'][0] : '',\n };\n dataDetail.push(data);\n })\n }\n }\n }\n console.log('CtrlVacacionesEmpleadoV4 TRANSFORM', dataDetail);\n return dataDetail;\n};\n\nexport const GetDiasBloqueadosResponse = (response) => {\n let result = [];\n\n if (!response.GetDiasBloqueadosResponse) return result;\n if (!response.GetDiasBloqueadosResponse[0].GetDiasBloqueadosResult) return result;\n\n let objResponse = response.GetDiasBloqueadosResponse[0].GetDiasBloqueadosResult[0];\n if (objResponse && \"a:DiasBloqueados\" in objResponse) {\n let DiasBloqueados = objResponse[\"a:DiasBloqueados\"][0];\n if (DiasBloqueados && \"a:clsDiasBloqueados.EntDiaBloqueado\" in DiasBloqueados) {\n let clsDiasBloqueados = DiasBloqueados[\"a:clsDiasBloqueados.EntDiaBloqueado\"];\n if (clsDiasBloqueados.length > 0) {\n clsDiasBloqueados.map((item) => {\n let data = {\n // Descripcion: dia[\"a:Descripcion\"] ? dia[\"a:Descripcion\"][0] : \"\",\n // EsFestivo: dia[\"a:EsFestivo\"] ? dia[\"a:EsFestivo\"][0] : \"\",\n // EsFinDeSemana: dia[\"a:EsFinDeSemana\"] ? dia[\"a:EsFinDeSemana\"][0] : \"\",\n // EsIncapacidad: dia[\"a:EsIncapacidad\"] ? dia[\"a:EsIncapacidad\"][0] : \"\",\n // Falta_ID: dia[\"a:Falta_ID\"] ? dia[\"a:Falta_ID\"][0] : \"\",\n // Fecha: dia[\"a:Fecha\"] ? new Date(dia[\"a:Fecha\"][0] + \"T00:00:00\") : null,\n Fecha: new Date(GetOrDefault(item['a:Fecha'], '2000-01-01') + 'T00:00:00'), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n Descripcion: GetOrDefault(item['a:Descripcion'], ''), \n EsFestivo: GetOrDefault(item['a:EsFestivo'], '') == 'true', \n EsIncapacidad: GetOrDefault(item['a:EsIncapacidad'], '') == 'true', \n EsFinDeSemana: GetOrDefault(item['a:EsFinDeSemana'], '') == 'true', \n PermiteSolicitar: GetOrDefault(item['a:PermiteSolicitar'], '') == 'true', \n };\n result.push(data);\n });\n }\n }\n }\n \n return result;\n};\n\nexport const RecoverPwdByEmailResponse = (response) => {\n let resultado = { Resultado: '' };\n let objResponse = response.RecuperacionPassCorreoResponse[0].RecuperacionPassCorreoResult[0];\n resultado.Resultado = (objResponse[\"a:Resultado\"] ? objResponse[\"a:Resultado\"][0] : \"\");\n return resultado;\n};\n\n//ASPEN-COMAU\nexport const GeneraReporteCtrlVac1Response = (response) => {\n let reporte = \"\";\n let objResponse = response.GeneraReporte1detalladousuarioResponse[0].GeneraReporte1detalladousuarioResult[0];\n let resp = objResponse[\"a:RutaDescargaRpt\"] ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n reporte = resp;\n }\n\n return reporte;\n};\n\nexport const GeneraReporteCtrlVac2Response = (response) => {\n let reporte = \"\";\n let objResponse = response.GeneraReporte2detalladousuariosResponse[0].GeneraReporte2detalladousuariosResult[0];\n let resp = objResponse[\"a:RutaDescargaRpt\"] ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n reporte = resp;\n }\n\n return reporte;\n};\n\nexport const GeneraReporteCtrlVac3Response = (response) => {\n let reporte = \"\";\n let objResponse = response.GeneraReporte4Response[0].GeneraReporte4Result[0];\n let resp = objResponse[\"a:RutaDescargaRpt\"] ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n reporte = resp;\n }\n\n return reporte;\n};\n\nexport const GeneraReporteCtrlVac4Response = (response) => {\n let reporte = \"\";\n let objResponse = response.GeneraReporte5Response[0].GeneraReporte5Result[0];\n let resp = objResponse[\"a:RutaDescargaRpt\"] ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n reporte = resp;\n }\n\n return reporte;\n};\n\nexport const TypeEmployeeCatalogResponse = (response) => {\n let dataDetail = [];\n let objResponse = response.CatalogoTipoEmpleadoResponse[0].CatalogoTipoEmpleadoResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let Catalogo = objResponse[\"a:Catalogo\"][0];\n if (Catalogo && \"a:clsCatalogoSicossDet\" in Catalogo) {\n let clsCatalogoSicossDet = Catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((catalogo) => {\n let dataCatalogo = {\n id: catalogo[\"a:ID\"] ? catalogo[\"a:ID\"][0] : \"\", \n descripcion: catalogo[\"a:Descripcion\"] ? catalogo[\"a:Descripcion\"][0] : \"\", \n };\n dataDetail.push(dataCatalogo);\n });\n }\n }\n }\n\n return dataDetail;\n};\n\nexport const GetincidenciasAspenResponse = (response) => {\n let dataDetail = [{\n Descripcion: '',\n Falta_ID: '', \n IncTomadas: 0,\n dias_maximos: 0,\n mesesvigencia: 0,\n okUltimaFechaSelect: true, \n }];\n let objResponse = response.GetincidenciasAspenResponse[0].GetincidenciasAspenResult[0];\n if (objResponse && \"a:incidenciaASPENN.IncidenciasAspen\" in objResponse) {\n let arrIncidenciasAspen = objResponse[\"a:incidenciaASPENN.IncidenciasAspen\"];\n if (arrIncidenciasAspen.length > 0) {\n dataDetail = [];\n arrIncidenciasAspen.map((IncidenciasAspen) => {\n //console.log('OIHB ASPEN', IncidenciasAspen);\n let item = {};\n item.Descripcion = IncidenciasAspen[\"a:Descripcion\"] ? IncidenciasAspen[\"a:Descripcion\"][0] : '';\n item.Falta_ID = IncidenciasAspen[\"a:Falta_ID\"] ? IncidenciasAspen[\"a:Falta_ID\"][0] : '';\n item.IncTomadas = IncidenciasAspen[\"a:IncTomadas\"] ? parseInt(IncidenciasAspen[\"a:IncTomadas\"][0]) : 0;\n item.dias_maximos = IncidenciasAspen[\"a:dias_maximos\"] ? parseInt(IncidenciasAspen[\"a:dias_maximos\"][0]) : 0;\n item.mesesvigencia = IncidenciasAspen[\"a:mesesvigencia\"] ? parseInt(IncidenciasAspen[\"a:mesesvigencia\"][0]) : 0;\n item.okUltimaFechaSelect = IncidenciasAspen[\"a:okUltimaFechaSelect\"] ? (IncidenciasAspen[\"a:okUltimaFechaSelect\"][0] != 'False') : true;\n dataDetail.push(item);\n });\n }\n }\n\n return dataDetail;\n};\n\n//MARSH\nexport const GeneraRptPDFCtrlVacacionesResponse = (response) => {\n let reporte = \"\";\n let objResponse = response.GeneraRptPDFControlVacacionesResponse[0].GeneraRptPDFControlVacacionesResult[0];\n let resp = objResponse[\"a:RutaDescargaRpt\"] ? objResponse[\"a:RutaDescargaRpt\"][0] : \"\";\n if (resp && resp.length > 0) {\n reporte = resp;\n }\n\n return reporte;\n};\n\n//GENERAL\nexport const GetValoresConfigResponse = (response) => {\n let result = {\n Exito: false, \n Configuraciones: []\n };\n\n if (!response.GetValoresConfigResponse) return result;\n if (!response.GetValoresConfigResponse[0].GetValoresConfigResult) return result;\n \n let objResponse = response.GetValoresConfigResponse[0].GetValoresConfigResult[0];\n result.Exito = (objResponse['a:Exito'] ? (objResponse['a:Exito'][0] + \"\").toLowerCase() == \"true\": false);\n let configuraciones = objResponse['a:Configuraciones'] ? objResponse['a:Configuraciones'][0] : {};\n\n if (configuraciones && \"a:ValoresConfig\" in configuraciones) {\n let lista = configuraciones[\"a:ValoresConfig\"];\n \n lista.map((item) => {\n let data = {\n Seccion: validateNull(item[\"a:Seccion\"][0]) ? item[\"a:Seccion\"][0] : \"\", \n Variable: validateNull(item[\"a:Variable\"][0]) ? item[\"a:Variable\"][0] : \"\", \n Valor: validateNull(item[\"a:Valor\"][0]) ? item[\"a:Valor\"][0] : \"\", \n };\n result.Configuraciones.push(data);\n });\n }\n\n return result;\n};\n\nexport const UpdateValorConfigResponse = (response) => {\n let result = {\n Configuraciones: [], \n Exito: false, \n Mensaje: '', \n };\n\n if (!response.UpdateValorConfigResponse) return result;\n if (!response.UpdateValorConfigResponse[0].UpdateValorConfigResult) return result;\n \n let objResponse = response.UpdateValorConfigResponse[0].UpdateValorConfigResult[0];\n\n let lista = GetOrDefault(objResponse['a:Configuraciones'], {});\n if (lista && 'a:ValoresConfig' in lista) {\n let items = lista['a:ValoresConfig'];\n items.map((item) => {\n let data = {\n Seccion: GetOrDefault(item['a:Seccion'], ''), \n Valor: GetOrDefault(item['a:Valor'], ''), \n Variable: GetOrDefault(item['a:Variable'], ''), \n };\n result.Configuraciones.push(data);\n });\n }\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const GetReportaExtranjerosResponse = (response) => {\n let result = {\n Exito: false, \n ReportaExtranjeros: []\n };\n\n if (!response.GetReportaExtranjerosResponse) return result;\n if (!response.GetReportaExtranjerosResponse[0].GetReportaExtranjerosResult) return result;\n \n let objResponse = response.GetReportaExtranjerosResponse[0].GetReportaExtranjerosResult[0];\n result.Exito = (objResponse['a:Exito'] ? (objResponse['a:Exito'][0] + \"\").toLowerCase() == \"true\": false);\n let ReportaExtranjeros = objResponse['a:ReportaExtranjeros'] ? objResponse['a:ReportaExtranjeros'][0] : {};\n if (ReportaExtranjeros && \"a:ReportaExtranjeros\" in ReportaExtranjeros) {\n let lista = ReportaExtranjeros[\"a:ReportaExtranjeros\"];\n\n lista.map((item) => {\n let data = {\n NomPersonaExtrajera: validateNull(item[\"a:NomPersonaExtrajera\"][0]) ? item[\"a:NomPersonaExtrajera\"][0] : \"\", \n Correo: validateNull(item[\"a:Correo\"][0]) ? item[\"a:Correo\"][0] : \"\", \n NumEmpGlobal: validateNull(item[\"a:NumEmpGlobal\"][0]) ? item[\"a:NumEmpGlobal\"][0] : \"0\", \n Trab_ID: validateNull(item[\"a:Trab_ID\"][0]) ? item[\"a:Trab_ID\"][0] : \"0\", \n };\n result.ReportaExtranjeros.push(data);\n });\n }\n \n return result;\n};\n\n//FALTA TIPO EMPLEADO\nexport const GetTBTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n TBTipoEmpleado: [], \n };\n\n if (!response.GetTBTipoEmpleadoResponse) return result;\n if (!response.GetTBTipoEmpleadoResponse[0].GetTBTipoEmpleadoResult) return result;\n \n let objResponse = response.GetTBTipoEmpleadoResponse[0].GetTBTipoEmpleadoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n let lista = GetOrDefault(objResponse['a:TBTipoEmpleado'], {});\n if (lista && 'a:TBTipoEmpleado' in lista) {\n let items = lista['a:TBTipoEmpleado'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n CuentaContable: GetOrDefault(item['a:CuentaContable'], ''), \n CuotaFija: GetOrDefault(item['a:CuotaFija'], ''), \n Descripcion: GetOrDefault(item['a:Descripcion'], ''), \n OmiteDiaFestivo: GetOrDefault(item['a:OmiteDiaFestivo'], false), \n OmiteSabado: GetOrDefault(item['a:OmiteSabado'], false), \n OmiteDomingo: GetOrDefault(item['a:OmiteDomingo'], false), \n RegimenSAT_IDa: GetOrDefault(item['a:RegimenSAT_IDa'], 0), \n TipoEmpleadoIMSS: GetOrDefault(item['a:TipoEmpleadoIMSS'], 0), \n TipoEmpleado_ID: GetOrDefault(item['a:TipoEmpleado_ID'], 0), \n };\n result.TBTipoEmpleado.push(data);\n });\n }\n\n return result;\n};\n\nexport const UpdateTBTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n };\n\n if (!response.UpdateTBTipoEmpleadoResponse) return result;\n if (!response.UpdateTBTipoEmpleadoResponse[0].UpdateTBTipoEmpleadoResult) return result;\n \n let objResponse = response.UpdateTBTipoEmpleadoResponse[0].UpdateTBTipoEmpleadoResult[0];\n \n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const GetFaltaTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n FaltaTipoEmpleado: [], \n };\n\n if (!response.GetFaltaTipoEmpleadoResponse) return result;\n if (!response.GetFaltaTipoEmpleadoResponse[0].GetFaltaTipoEmpleadoResult) return result;\n \n let objResponse = response.GetFaltaTipoEmpleadoResponse[0].GetFaltaTipoEmpleadoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n let lista = GetOrDefault(objResponse['a:FaltaTipoEmpleado'], {});\n if (lista && 'a:FaltaTipoEmpleado' in lista) {\n let items = lista['a:FaltaTipoEmpleado'];\n items.map((item) => {\n let data = {\n FTE_ID: GetOrDefault(item['a:FTE_ID'], 0), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n TipoEmpleado_ID: GetOrDefault(item['a:TipoEmpleado_ID'], 0), \n };\n result.FaltaTipoEmpleado.push(data);\n });\n }\n\n return result;\n};\n\nexport const InsertFaltaTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n FaltaTipoEmpleado: [], \n };\n\n if (!response.InsertFaltaTipoEmpleadoResponse) return result;\n if (!response.InsertFaltaTipoEmpleadoResponse[0].InsertFaltaTipoEmpleadoResult) return result;\n \n let objResponse = response.InsertFaltaTipoEmpleadoResponse[0].InsertFaltaTipoEmpleadoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:FaltaTipoEmpleado'], {});\n if (lista && 'a:FaltaTipoEmpleado' in lista) {\n let items = lista['a:FaltaTipoEmpleado'];\n items.map((item) => {\n let data = {\n FTE_ID: GetOrDefault(item['a:FTE_ID'], 0), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n TipoEmpleado_ID: GetOrDefault(item['a:TipoEmpleado_ID'], 0), \n };\n result.FaltaTipoEmpleado.push(data);\n });\n }\n\n return result;\n};\n\nexport const DeleteFaltaTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n FaltaTipoEmpleado: [], \n };\n\n if (!response.DeleteFaltaTipoEmpleadoResponse) return result;\n if (!response.DeleteFaltaTipoEmpleadoResponse[0].DeleteFaltaTipoEmpleadoResult) return result;\n \n let objResponse = response.DeleteFaltaTipoEmpleadoResponse[0].DeleteFaltaTipoEmpleadoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:FaltaTipoEmpleado'], {});\n if (lista && 'a:FaltaTipoEmpleado' in lista) {\n let items = lista['a:FaltaTipoEmpleado'];\n items.map((item) => {\n let data = {\n FTE_ID: GetOrDefault(item['a:FTE_ID'], 0), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n TipoEmpleado_ID: GetOrDefault(item['a:TipoEmpleado_ID'], 0), \n };\n result.FaltaTipoEmpleado.push(data);\n });\n }\n\n return result;\n};\n\nexport const UpdateFaltaTipoEmpleadoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n FaltaTipoEmpleado: [], \n };\n\n if (!response.UpdateFaltaTipoEmpleadoResponse) return result;\n if (!response.UpdateFaltaTipoEmpleadoResponse[0].UpdateFaltaTipoEmpleadoResult) return result;\n \n let objResponse = response.UpdateFaltaTipoEmpleadoResponse[0].UpdateFaltaTipoEmpleadoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:FaltaTipoEmpleado'], {});\n if (lista && 'a:FaltaTipoEmpleado' in lista) {\n let items = lista['a:FaltaTipoEmpleado'];\n items.map((item) => {\n let data = {\n FTE_ID: GetOrDefault(item['a:FTE_ID'], 0), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n TipoEmpleado_ID: GetOrDefault(item['a:TipoEmpleado_ID'], 0), \n };\n result.FaltaTipoEmpleado.push(data);\n });\n }\n\n return result;\n};\n\n//INCIDENCIAS CONFIG\nexport const GetIncidenciasConfigResponse = (response) => {\n let result = {\n Exito: false, \n IncidenciasConfig: [], \n Mensaje: '', \n };\n\n if (!response.GetIncidenciasConfigResponse) return result;\n if (!response.GetIncidenciasConfigResponse[0].GetIncidenciasConfigResult) return result;\n \n let objResponse = response.GetIncidenciasConfigResponse[0].GetIncidenciasConfigResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n let lista = GetOrDefault(objResponse['a:IncidenciasConfig'], {});\n if (lista && 'a:IncidenciasConfig' in lista) {\n let items = lista['a:IncidenciasConfig'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n CadaCuando: GetOrDefault(item['a:CadaCuando'], 0), \n Consecutivos: GetOrDefault(item['a:Consecutivos'], false), \n DesactivarAlSaldar: GetOrDefault(item['a:DesactivarAlSaldar'], false), \n DiasAntesVencimiento: GetOrDefault(item['a:DiasAntesVencimiento'], 0), \n DiasOtorgar: GetOrDefault(item['a:DiasOtorgar'], 0), \n DiasPorMesIngreso: GetOrDefault(item['a:DiasPorMesIngreso'], false), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n FechaInicial: GetOrDefault(item['a:FechaInicial'], ''), \n Id: GetOrDefault(item['a:Id'], 0), \n LimiteMinutos: GetOrDefault(item['a:LimiteMinutos'], 0), \n NoPendientes: GetOrDefault(item['a:NoPendientes'], 0), \n PerderDespuesVencimiento: GetOrDefault(item['a:PerderDespuesVencimiento'], false), \n PorEvento: GetOrDefault(item['a:PorEvento'], false), \n Razon_ID: GetOrDefault(item['a:Razon_ID'], 0), \n Recurrencia: GetOrDefault(item['a:Recurrencia'], ''), \n SaldoDiasHabiles: GetOrDefault(item['a:SaldoDiasHabiles'], false), \n SolicitudesDentroVigencia: GetOrDefault(item['a:SolicitudesDentroVigencia'], false), \n VigenciaPorMes: GetOrDefault(item['a:VigenciaPorMes'], false), \n\n _DiasOtorgados: GetOrDefault(item['a:_DiasOtorgados'], 0), \n _DiasPendientes: GetOrDefault(item['a:_DiasPendientes'], 0), \n _DiasGozados: GetOrDefault(item['a:_DiasGozados'], 0), \n _FechaComienzo: GetOrDefault(item['a:_FechaComienzo'], ''), \n _FechaVencimiento: GetOrDefault(item['a:_FechaVencimiento'], ''), \n };\n result.IncidenciasConfig.push(data);\n });\n }\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const IniciaIncidenciaConfigEventoResponse = (response) => {\n let result = {\n EjecutarProceso: false, \n Exito: false, \n Mensaje: '', \n };\n\n if (!response.IniciaIncidenciaConfigEventoResponse) return result;\n if (!response.IniciaIncidenciaConfigEventoResponse[0].IniciaIncidenciaConfigEventoResult) return result;\n \n let objResponse = response.IniciaIncidenciaConfigEventoResponse[0].IniciaIncidenciaConfigEventoResult[0];\n\n result.EjecutarProceso = GetOrDefault(objResponse['a:EjecutarProceso'], false);\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const CancelaIncidenciaConfigEventoResponse = (response) => {\n let result = {\n EjecutarProceso: false, \n Exito: false, \n Mensaje: '', \n };\n\n if (!response.CancelaIncidenciaConfigEventoResponse) return result;\n if (!response.CancelaIncidenciaConfigEventoResponse[0].CancelaIncidenciaConfigEventoResult) return result;\n \n let objResponse = response.CancelaIncidenciaConfigEventoResponse[0].CancelaIncidenciaConfigEventoResult[0];\n\n result.EjecutarProceso = GetOrDefault(objResponse['a:EjecutarProceso'], false);\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const UpdateIncidenciasConfigResponse = (response) => {\n let result = {\n Exito: false, \n IncidenciasConfig: [], \n Mensaje: '', \n };\n\n if (!response.UpdateIncidenciasConfigResponse) return result;\n if (!response.UpdateIncidenciasConfigResponse[0].UpdateIncidenciasConfigResult) return result;\n \n let objResponse = response.UpdateIncidenciasConfigResponse[0].UpdateIncidenciasConfigResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const GetIncidenciasRazonesResponse = (response) => {\n let result = {\n Exito: false, \n IncidenciasRazones: [], \n Mensaje: '', \n };\n\n if (!response.GetIncidenciasRazonesResponse) return result;\n if (!response.GetIncidenciasRazonesResponse[0].GetIncidenciasRazonesResult) return result;\n \n let objResponse = response.GetIncidenciasRazonesResponse[0].GetIncidenciasRazonesResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n let lista = GetOrDefault(objResponse['a:IncidenciasRazones'], {});\n if (lista && 'a:IncidenciasRazones' in lista) {\n let items = lista['a:IncidenciasRazones'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n Descripcion: GetOrDefault(item['a:Descripcion'], ''), \n Dias: GetOrDefault(item['a:Dias'], 0), \n Falta_ID: GetOrDefault(item['a:Falta_ID'], ''), \n Id: GetOrDefault(item['a:Id'], 0), \n Numero: GetOrDefault(item['a:Numero'], 0), \n Vigencia: GetOrDefault(item['a:Vigencia'], 0), \n };\n result.IncidenciasRazones.push(data);\n });\n }\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n\n return result;\n};\n\nexport const GetReporte1SolicitudVacacioneCamposIncidenciasResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n SolicitudVacacioneCamposIncidencias: [], \n RutaDescargaRpt: \"\",\n };\n\n if (!response.GetReporte1SolicitudVacacioneCamposIncidenciasResponse) return result;\n if (!response.GetReporte1SolicitudVacacioneCamposIncidenciasResponse[0].GetReporte1SolicitudVacacioneCamposIncidenciasResult) return result;\n \n let objResponse = response.GetReporte1SolicitudVacacioneCamposIncidenciasResponse[0].GetReporte1SolicitudVacacioneCamposIncidenciasResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:SolicitudVacacioneCamposIncidencias'], {});\n if (lista && 'a:SolicitudVacacioneCamposIncidencias' in lista) {\n let items = lista['a:SolicitudVacacioneCamposIncidencias'];\n items.map((item) => {\n let data = {\n Archivo: GetOrDefault(item['a:Archivo'], ''), \n Autorizado: GetOrDefault(item['a:Autorizado'], false), \n Año: GetOrDefault(item['a:Año'], 0), \n Comentario: GetOrDefault(item['a:Comentario'], ''), \n ContentType: GetOrDefault(item['a:ContentType'], ''), \n CorreoNotifica: GetOrDefault(item['a:CorreoNotifica'], ''), \n Dias: GetOrDefault(item['a:Dias'], ''), \n EmpleadoProcesa_ID: GetOrDefault(item['a:EmpleadoProcesa_ID'], ''), \n EmpresaReporta: GetOrDefault(item['a:EmpresaReporta'], ''), \n Fecha: GetOrDefault(item['a:Fecha'], ''), \n FechaFin: GetOrDefault(item['a:FechaFin'], ''), \n FechaInicio: GetOrDefault(item['a:FechaInicio'], ''), \n FechaProcesa: GetOrDefault(item['a:FechaProcesa'], ''), \n FechaReposicion: GetOrDefault(item['a:FechaReposicion'], ''), \n FechaSolicitud: GetOrDefault(item['a:FechaSolicitud'], ''), \n Fechas: GetOrDefault(item['a:Fechas'], ''), \n FechasValidas: GetOrDefault(item['a:FechasValidas'], ''), \n HoraEstimada: GetOrDefault(item['a:HoraEstimada'], ''), \n HoraReal: GetOrDefault(item['a:HoraReal'], ''), \n HoraSalida: GetOrDefault(item['a:HoraSalida'], ''), \n IdFormulario: GetOrDefault(item['a:IdFormulario'], 0), \n Mes: GetOrDefault(item['a:Mes'], 0), \n MotivoIncidencia: GetOrDefault(item['a:MotivoIncidencia'], ''), \n MotivoVacacion: GetOrDefault(item['a:MotivoVacacion'], ''), \n Nivel: GetOrDefault(item['a:Nivel'], ''), \n NivelRestante: GetOrDefault(item['a:NivelRestante'], ''), \n NombreArchivo: GetOrDefault(item['a:NombreArchivo'], ''), \n NombreCompleto: GetOrDefault(item['a:NombreCompleto'], ''), \n Procesada: GetOrDefault(item['a:Procesada'], false), \n RangoFechas: GetOrDefault(item['a:RangoFechas'], false), \n ReportaA2: GetOrDefault(item['a:ReportaA2'], ''), \n Reporta_ID: GetOrDefault(item['a:Reporta_ID'], ''), \n Reporta_ID2: GetOrDefault(item['a:Reporta_ID2'], ''), \n RutaDescarga: GetOrDefault(item['a:RutaDescarga'], ''), \n SolicitudID: GetOrDefault(item['a:SolicitudID'], 0), \n TipoSolString: GetOrDefault(item['a:TipoSolString'], ''), \n TipoSolicitud: GetOrDefault(item['a:TipoSolicitud'], ''), \n TrabID: GetOrDefault(item['a:TrabID'], ''), \n Trab_ID: GetOrDefault(item['a:Trab_ID'], ''), \n VacacionSolicitada: GetOrDefault(item['a:VacacionSolicitada'], ''), \n Visto: GetOrDefault(item['a:Visto'], false), \n numeroAlertas: GetOrDefault(item['a:numeroAlertas'], 0), \n };\n result.SolicitudVacacioneCamposIncidencias.push(data);\n });\n }\n result.RutaDescargaRpt = GetOrDefault(objResponse['a:RutaDescargaRpt'], '');\n\n return result;\n};\n\n//CONF TBFALTA\n\nexport const GetTBFaltaResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBFalta: [], \n };\n\n if (!response.GetTBFaltaResponse) return result;\n if (!response.GetTBFaltaResponse[0].GetTBFaltaResult) return result;\n \n let objResponse = response.GetTBFaltaResponse[0].GetTBFaltaResult[0];\n console.log('OIHB DATA', objResponse);\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBFalta'], {});\n if (lista && 'b:EntTBFalta' in lista) {\n let items = lista['b:EntTBFalta'];\n items.map((item) => {\n let data = {\n Descripcion: GetOrDefault(item['b:Descripcion'], ''), \n Descuenta: GetOrDefault(item['b:Descuenta'], false), \n DescuentaVacacion: GetOrDefault(item['b:DescuentaVacacion'], false), \n Falta_ID: GetOrDefault(item['b:Falta_ID'], ''), \n };\n result.TBFalta.push(data);\n });\n }\n\n return result;\n};\n\nexport const InsertTBFaltaResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBFalta: [], \n };\n\n if (!response.InsertTBFaltaResponse) return result;\n if (!response.InsertTBFaltaResponse[0].InsertTBFaltaResult) return result;\n \n let objResponse = response.InsertTBFaltaResponse[0].InsertTBFaltaResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBFalta'], {});\n if (lista && 'b:EntTBFalta' in lista) {\n let items = lista['b:EntTBFalta'];\n items.map((item) => {\n let data = {\n Descripcion: GetOrDefault(item['b:Descripcion'], ''), \n Descuenta: GetOrDefault(item['b:Descuenta'], false), \n DescuentaVacacion: GetOrDefault(item['b:DescuentaVacacion'], false), \n Falta_ID: GetOrDefault(item['b:Falta_ID'], ''), \n };\n result.TBFalta.push(data);\n });\n }\n\n return result;\n};\n\nexport const DeleteTBFaltaResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBFalta: [], \n };\n\n if (!response.DeleteTBFaltaResponse) return result;\n if (!response.DeleteTBFaltaResponse[0].DeleteTBFaltaResult) return result;\n \n let objResponse = response.DeleteTBFaltaResponse[0].DeleteTBFaltaResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBFalta'], {});\n if (lista && 'b:EntTBFalta' in lista) {\n let items = lista['b:EntTBFalta'];\n items.map((item) => {\n let data = {\n Descripcion: GetOrDefault(item['b:Descripcion'], ''), \n Descuenta: GetOrDefault(item['b:Descuenta'], false), \n DescuentaVacacion: GetOrDefault(item['b:DescuentaVacacion'], false), \n Falta_ID: GetOrDefault(item['b:Falta_ID'], ''), \n };\n result.TBFalta.push(data);\n });\n }\n\n return result;\n};\n\nexport const UpdateTBFaltaResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBFalta: [], \n };\n\n if (!response.UpdateTBFaltaResponse) return result;\n if (!response.UpdateTBFaltaResponse[0].UpdateTBFaltaResult) return result;\n \n let objResponse = response.UpdateTBFaltaResponse[0].UpdateTBFaltaResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBFalta'], {});\n if (lista && 'b:EntTBFalta' in lista) {\n let items = lista['b:EntTBFalta'];\n items.map((item) => {\n let data = {\n Descripcion: GetOrDefault(item['b:Descripcion'], ''), \n Descuenta: GetOrDefault(item['b:Descuenta'], false), \n DescuentaVacacion: GetOrDefault(item['b:DescuentaVacacion'], false), \n Falta_ID: GetOrDefault(item['b:Falta_ID'], ''), \n };\n result.TBFalta.push(data);\n });\n }\n\n return result;\n};\n\nexport const AfilIndividualizadoResponse = (response) => {\n let result = {\n Archivo: '', \n Empleado_Nombre: '', \n IMSS: '', \n RFC: '', \n Trab_ID: '', \n };\n\n if (!response.AfilIndividualizadoResponse) return result;\n if (!response.AfilIndividualizadoResponse[0].AfilIndividualizadoResult) return result;\n \n let objResponse = response.AfilIndividualizadoResponse[0].AfilIndividualizadoResult[0];\n\n result.Archivo = GetOrDefault(objResponse['a:Archivo'], '');\n result.Empleado_Nombre = GetOrDefault(objResponse['a:Empleado_Nombre'], '');\n result.IMSS = GetOrDefault(objResponse['a:IMSS'], '');\n result.RFC = GetOrDefault(objResponse['a:RFC'], '');\n result.Trab_ID = GetOrDefault(objResponse['a:Trab_ID'], '');\n\n return result;\n};\n\n\nexport const GetTBAutorizadorFijoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBAutorizadorFijo: [], \n };\n\n if (!response.GetTBAutorizadorFijoResponse) return result;\n if (!response.GetTBAutorizadorFijoResponse[0].GetTBAutorizadorFijoResult) return result;\n \n let objResponse = response.GetTBAutorizadorFijoResponse[0].GetTBAutorizadorFijoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBAutorizadorFijo'], {});\n if (lista && 'a:TBAutorizadorFijo' in lista) {\n let items = lista['a:TBAutorizadorFijo'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n IdAF: GetOrDefault(item['a:IdAF'], 0), \n Reporta_ID: GetOrDefault(item['a:Reporta_ID'], ''), \n Trab_ID: GetOrDefault(item['a:Trab_ID'], ''), \n };\n result.TBAutorizadorFijo.push(data);\n });\n }\n\n return result;\n};\n\nexport const InsertTBAutorizadorFijoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBAutorizadorFijo: [], \n };\n\n if (!response.InsertTBAutorizadorFijoResponse) return result;\n if (!response.InsertTBAutorizadorFijoResponse[0].InsertTBAutorizadorFijoResult) return result;\n \n let objResponse = response.InsertTBAutorizadorFijoResponse[0].InsertTBAutorizadorFijoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBAutorizadorFijo'], {});\n if (lista && 'a:TBAutorizadorFijo' in lista) {\n let items = lista['a:TBAutorizadorFijo'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n IdAF: GetOrDefault(item['a:IdAF'], 0), \n Reporta_ID: GetOrDefault(item['a:Reporta_ID'], ''), \n Trab_ID: GetOrDefault(item['a:Trab_ID'], ''), \n };\n result.TBAutorizadorFijo.push(data);\n });\n }\n\n return result;\n};\n\nexport const DeleteTBAutorizadorFijoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBAutorizadorFijo: [], \n };\n\n if (!response.DeleteTBAutorizadorFijoResponse) return result;\n if (!response.DeleteTBAutorizadorFijoResponse[0].DeleteTBAutorizadorFijoResult) return result;\n \n let objResponse = response.DeleteTBAutorizadorFijoResponse[0].DeleteTBAutorizadorFijoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBAutorizadorFijo'], {});\n if (lista && 'a:TBAutorizadorFijo' in lista) {\n let items = lista['a:TBAutorizadorFijo'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n IdAF: GetOrDefault(item['a:IdAF'], 0), \n Reporta_ID: GetOrDefault(item['a:Reporta_ID'], ''), \n Trab_ID: GetOrDefault(item['a:Trab_ID'], ''), \n };\n result.TBAutorizadorFijo.push(data);\n });\n }\n\n return result;\n};\n\nexport const UpdateTBAutorizadorFijoResponse = (response) => {\n let result = {\n Exito: false, \n Mensaje: '', \n TBAutorizadorFijo: [], \n };\n\n if (!response.UpdateTBAutorizadorFijoResponse) return result;\n if (!response.UpdateTBAutorizadorFijoResponse[0].UpdateTBAutorizadorFijoResult) return result;\n \n let objResponse = response.UpdateTBAutorizadorFijoResponse[0].UpdateTBAutorizadorFijoResult[0];\n\n result.Exito = GetOrDefault(objResponse['a:Exito'], false);\n result.Mensaje = GetOrDefault(objResponse['a:Mensaje'], '');\n let lista = GetOrDefault(objResponse['a:TBAutorizadorFijo'], {});\n if (lista && 'a:TBAutorizadorFijo' in lista) {\n let items = lista['a:TBAutorizadorFijo'];\n items.map((item) => {\n let data = {\n Activo: GetOrDefault(item['a:Activo'], false), \n IdAF: GetOrDefault(item['a:IdAF'], 0), \n Reporta_ID: GetOrDefault(item['a:Reporta_ID'], ''), \n Trab_ID: GetOrDefault(item['a:Trab_ID'], ''), \n };\n result.TBAutorizadorFijo.push(data);\n });\n }\n\n return result;\n};\n\n//Catálogo empleado\nexport const employeeCatalogResponse = (response) => {\n let dataDetail = [];\n let objResponse =\n response.CatalogoEmpleadoResponse[0].CatalogoEmpleadoResult[0];\n if (objResponse && \"a:Catalogo\" in objResponse) {\n let catalogo = objResponse[\"a:Catalogo\"][0];\n if (catalogo && \"a:clsCatalogoSicossDet\" in catalogo) {\n let clsCatalogoSicossDet = catalogo[\"a:clsCatalogoSicossDet\"];\n if (clsCatalogoSicossDet && clsCatalogoSicossDet.length > 0) {\n clsCatalogoSicossDet.map((centro) => {\n let DataCenter = {\n descripcion: validateNull(centro[\"a:Descripcion\"][0])\n ? centro[\"a:Descripcion\"][0]\n : \"\",\n id: validateNull(centro[\"a:ID\"][0]) ? centro[\"a:ID\"][0] : \"\",\n };\n dataDetail.push(DataCenter);\n });\n }\n }\n }\n\n if (\n objResponse &&\n \"a:ErrorMsg\" in objResponse &&\n validateNull(objResponse[\"a:ErrorMsg\"][0]) &&\n objResponse[\"a:ErrorMsg\"][0] == \"Acceso no autorizado\"\n ) {\n let data = {\n error: validateNull(objResponse[\"a:ErrorMsg\"][0])\n ? objResponse[\"a:ErrorMsg\"][0]\n : \"\",\n };\n dataDetail = data;\n }\n\n return dataDetail;\n};\n\n","export const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_ERROR = 'LOGIN_ERROR';\nexport const LOGIN_PURGE = 'LOGIN_PURGE';\n\nexport const SECURITY_QUESTION_SUCCESS = 'SECURITY_QUESTION_SUCCESS';\nexport const SECURITY_QUESTION_ERROR = 'SECURITY_QUESTION_ERROR';\nexport const SECURITY_QUESTION_PURGE = 'SECURITY_QUESTION_PURGE';\n\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\nexport const CHANGE_PASSWORD_ERROR = 'CHANGE_PASSWORD_ERROR';\nexport const CHANGE_PASSWORD_PURGE = 'CHANGE_PASSWORD_PURGE';\n\n\nexport const IMAGE_USER_SUCCESS = 'IMAGE_USER_SUCCESS';\nexport const IMAGE_USER_ERROR = 'IMAGE_USER_ERROR';\nexport const IMAGE_USER_PURGE = 'IMAGE_USER_PURGE';\n\nexport const DATA_USER_SUCCESS = 'DATA_USER_SUCCESS';\nexport const DATA_USER_ERROR = 'DATA_USER_ERROR';\nexport const DATA_USER_PURGE = 'DATA_USER_PURGE';\n\nexport const COLOR = 'COLOR';\nexport const MENU = 'MENU';\nexport const TYPE_USER = 'TYPE_USER';\nexport const FCM_TOKEN = 'FCM_TOKEN';\nexport const SHOW_WELCOME = 'SHOW_WELCOME';\nexport const VALIDATE_ERROR = 'VALIDATE_ERROR';\nexport const RESET_STORE = 'RESET_STORE';\n\nexport const MOVIMIENTOS_IMSS_SUCCESS = 'MOVIMIENTOS_IMSS_SUCCESS';\nexport const MOVIMIENTOS_IMSS_ERROR = 'MOVIMIENTOS_IMSS_ERROR';\nexport const MOVIMIENTOS_IMSS_PURGE = 'MOVIMIENTOS_IMSS_PURGE';\n\nexport const NOMINA_SUCCESS = 'NOMINA_SUCCESS';\nexport const NOMINA_ERROR = 'NOMINA_ERROR';\nexport const NOMINA_PURGE = 'NOMINA_PURGE';\n\nexport const DETALLE_NOMINA_SUCCESS = 'DETALLE_NOMINA_SUCCESS';\nexport const DETALLE_NOMINA_ERROR = 'DETALLE_NOMINA_ERROR';\nexport const DETALLE_NOMINA_PURGE = 'DETALLE_NOMINA_PURGE';\n\nexport const NOMINA_INFO_SUCCESS = 'NOMINA_INFO_SUCCESS';\n\nexport const DETALLE_IMSS_SUCCESS = 'DETALLE_IMSS_SUCCESS';\nexport const DETALLE_IMSS_ERROR = 'DETALLE_IMSS_ERROR';\nexport const DETALLE_IMSS_PURGE = 'DETALLE_IMSS_PURGE';\n\nexport const INFONAVIT_SUCCESS = 'INFONAVIT_SUCCESS';\nexport const INFONAVIT_ERROR = 'INFONAVIT_ERROR';\nexport const INFONAVIT_PURGE = 'INFONAVIT_PURGE';\n\nexport const DETALLE_INFONAVIT_SUCCESS = 'DETALLE_INFONAVIT_SUCCESS';\nexport const DETALLE_INFONAVIT_ERROR = 'DETALLE_INFONAVIT_ERROR';\nexport const DETALLE_INFONAVIT_PURGE = 'DETALLE_INFONAVIT_PURGE';\n\nexport const TERM_SUCCESS = 'TERM_SUCCESS';\nexport const TERM_ERROR = 'TERM_ERROR';\nexport const TERM_PURGE = 'TERM_PURGE';\n\nexport const AVISO_SUCCESS = 'AVISO_SUCCESS';\nexport const AVISO_ERROR = 'AVISO_ERROR';\nexport const AVISO_PURGE = 'AVISO_PURGE';\n\nexport const VACATIONS_SUCCESS = 'VACATIONS_SUCCESS';\nexport const VACATIONS_ERROR = 'VACATIONS_ERROR';\nexport const VACATIONS_PURGE = 'VACATIONS_PURGE';\n\nexport const INSERT_VACATIONS_SUCCESS = 'INSERT_VACATIONS_SUCCESS';\nexport const INSERT_VACATIONS_ERROR = 'INSERT_VACATIONS_ERROR';\nexport const INSERT_VACATIONS_PURGE = 'INSERT_VACATIONS_PURGE';\n\n\nexport const MESSAGES_SUCCESS = 'MESSAGES_SUCCESS';\nexport const MESSAGES_ERROR = 'MESSAGES_ERROR';\nexport const MESSAGES_PURGE = 'MESSAGES_PURGE';\n\nexport const MESSAGES_DETAIL_SUCCESS = 'MESSAGES_DETAIL_SUCCESS';\nexport const MESSAGES_DETAIL_ERROR = 'MESSAGES_DETAIL_ERROR';\nexport const MESSAGES_DETAIL_PURGE = 'MESSAGES_DETAIL_PURGE';\n\nexport const UPLOAD_IMAGE_SUCCESS = 'UPLOAD_IMAGE_SUCCESS';\nexport const UPLOAD_IMAGE_ERROR = 'UPLOAD_IMAGE_ERROR';\nexport const UPLOAD_IMAGE_PURGE = 'UPLOAD_IMAGE_PURGE';\n\nexport const QUEJA_SUCCESS = 'QUEJA_SUCCESS';\nexport const QUEJA_ERROR = 'QUEJA_ERROR';\nexport const QUEJA_PURGE = 'QUEJA_PURGE';\n\nexport const SI_BALANCE_SUCCESS = 'SI_BALANCE_SUCCESS';\nexport const SI_BALANCE_ERROR = 'SI_BALANCE_ERROR';\nexport const SI_BALANCE_PURGE = 'SI_BALANCE_PURGE';\n\nexport const URL_ENCUESTA_SUCCESS = 'URL_ENCUESTA_SUCCESS';\nexport const URL_ENCUESTA_ERROR = 'URL_ENCUESTA_ERROR';\nexport const URL_ENCUESTA_PURGE = 'URL_ENCUESTA_PURGE';\n\nexport const VALIDATE_ENCUESTA_SUCCESS = 'VALIDATE_ENCUESTA_SUCCESS';\nexport const VALIDATE_ENCUESTA_ERROR = 'VALIDATE_ENCUESTA_ERROR';\nexport const VALIDATE_ENCUESTA_PURGE = 'VALIDATE_ENCUESTA_PURGE';\n\nexport const URL_PDF_SUCCESS = 'URL_PDF_SUCCESS';\nexport const URL_PDF_ERROR = 'URL_PDF_ERROR';\nexport const URL_PDF_PURGE = 'URL_PDF_PURGE';\n\nexport const URL_XML_SUCCESS = 'URL_XML_SUCCESS';\nexport const URL_XML_ERROR = 'URL_XML_ERROR';\nexport const URL_XML_PURGE = 'URL_XML_PURGE';\n\nexport const MY_MESSAGES_RH_SUCCESS = 'MY_MESSAGES_RH_SUCCESS';\nexport const MY_MESSAGES_RH_ERROR = 'MY_MESSAGES_RH_ERROR';\nexport const MY_MESSAGES_RH_PURGE = 'MY_MESSAGES_RH_PURGE';\n\nexport const MENSAJEA_RH_SUCCESS = 'MENSAJEA_RH_SUCCESS';\nexport const MENSAJEA_RH_ERROR = 'MENSAJEA_RH_ERROR';\nexport const MENSAJEA_RH_PURGE = 'MENSAJEA_RH_PURGE';\n\nexport const QR_SUCCESS = 'QR_SUCCESS';\nexport const QR_ERROR = 'QR_ERROR';\nexport const QR_PURGE = 'QR_PURGE';\n\n//USER JEFE\nexport const REQUEST_VACATIONS_ALL_SUCCESS = 'REQUEST_VACATIONS_ALL_SUCCESS';\nexport const REQUEST_VACATIONS_ALL_ERROR = 'REQUEST_VACATIONS_ALL_ERROR';\nexport const REQUEST_VACATIONS_ALL_PURGE = 'REQUEST_VACATIONS_ALL_PURGE';\n\nexport const AUTHORIZE_VACATIONS_SUCCESS = 'AUTHORIZE_VACATIONS_SUCCESS';\nexport const AUTHORIZE_VACATIONS_ERROR = 'AUTHORIZE_VACATIONS_ERROR';\nexport const AUTHORIZE_VACATIONS_PURGE = 'AUTHORIZE_VACATIONS_PURGE';\n\nexport const SEE_VACATIONS_SUCCESS = 'SEE_VACATIONS_SUCCESS';\nexport const SEE_VACATIONS_ERROR = 'SEE_VACATIONS_ERROR';\nexport const SEE_VACATIONS_PURGE = 'SEE_VACATIONS_PURGE';\n\nexport const REJECT_VACATIONS_SUCCESS = 'REJECT_VACATIONS_SUCCESS';\nexport const REJECT_VACATIONS_ERROR = 'REJECT_VACATIONS_ERROR';\nexport const REJECT_VACATIONS_PURGE = 'REJECT_VACATIONS_PURGE';\n\n//RH USER\n\nexport const ALL_MESSAGES_TO_RH_SUCCESS = 'ALL_MESSAGES_TO_RH_SUCCESS';\nexport const ALL_MESSAGES_TO_RH_ERROR = 'ALL_MESSAGES_TO_RH_ERROR';\nexport const ALL_MESSAGES_TO_RH_PURGE = 'ALL_MESSAGES_TO_RH_PURGE';\n\nexport const READ_MESSAGE_SUCCESS = 'READ_MESSAGE_SUCCESS';\nexport const READ_MESSAGE_ERROR = 'READ_MESSAGE_ERROR';\nexport const READ_MESSAGE_PURGE = 'READ_MESSAGE_PURGE';\n\nexport const DELETE_MESSAGE_SUCCESS = 'DELETE_MESSAGE_SUCCESS';\nexport const DELETE_MESSAGE_ERROR = 'DELETE_MESSAGE_ERROR';\nexport const DELETE_MESSAGE_PURGE = 'DELETE_MESSAGE_PURGE';\n\nexport const TYPES_NOMINA_SUCCESS = 'TYPES_NOMINA_SUCCESS';\nexport const TYPES_NOMINA_ERROR = 'TYPES_NOMINA_ERROR';\nexport const TYPES_NOMINA_PURGE = 'TYPES_NOMINA_PURGE';\n\nexport const NOMINA_PERIODS_SUCCESS = 'NOMINA_PERIODS_SUCCESS';\nexport const NOMINA_PERIODS_ERROR = 'NOMINA_PERIODS_ERROR';\nexport const NOMINA_PERIODS_PURGE = 'NOMINA_PERIODS_PURGE';\n\nexport const CALENDAR_NOMINA_SUCCESS = 'CALENDAR_NOMINA_SUCCESS';\nexport const CALENDAR_NOMINA_ERROR = 'CALENDAR_NOMINA_ERROR';\nexport const CALENDAR_NOMINA_PURGE = 'CALENDAR_NOMINA_PURGE';\n\nexport const CENTERS_NOMINA_SUCCESS = 'CENTERS_NOMINA_SUCCESS';\nexport const CENTERS_NOMINA_ERROR = 'CENTERS_NOMINA_ERROR';\nexport const CENTERS_NOMINA_PURGE = 'CENTERS_NOMINA_PURGE';\n\nexport const PROCESS_NOMINA_SUCCESS = 'PROCESS_NOMINA_SUCCESS';\nexport const PROCESS_NOMINA_ERROR = 'PROCESS_NOMINA_ERROR';\nexport const PROCESS_NOMINA_PURGE = 'PROCESS_NOMINA_PURGE';\n\nexport const NOMINA_RH_SUCCESS = 'NOMINA_RH_SUCCESS';\nexport const NOMINA_RH_ERROR = 'NOMINA_RH_ERROR';\nexport const NOMINA_RH_PURGE = 'NOMINA_RH_PURGE';\n\nexport const DETALLE_NOMINA_RH_SUCCESS = 'DETALLE_NOMINA_RH_SUCCESS';\nexport const DETALLE_NOMINA_RH_ERROR = 'DETALLE_NOMINA_RH_ERROR';\nexport const DETALLE_NOMINA_RH_PURGE = 'DETALLE_NOMINA_RH_PURGE';\n\nexport const COMPANIES_SUCCESS = 'COMPANIES_SUCCESS';\nexport const COMPANIES_ERROR = 'COMPANIES_ERROR';\nexport const COMPANIES_PURGE = 'COMPANIES_PURGE';\n\nexport const LICENSE_DATA_SUCCESS = 'LICENSE_DATA_SUCCESS';\nexport const LICENSE_DATA_ERROR = 'LICENSE_DATA_ERROR';\nexport const LICENSE_DATA_PURGE = 'LICENSE_DATA_PURGE';\n\nexport const UPDATE_FCM_SUCCESS = 'UPDATE_FCM_SUCCESS';\nexport const UPDATE_FCM_ERROR = 'UPDATE_FCM_ERROR';\nexport const UPDATE_FCM_PURGE = 'UPDATE_FCM_PURGE';\n\nexport const REGISTER_FCM_SUCCESS = 'REGISTER_FCM_SUCCESS';\nexport const REGISTER_FCM_ERROR = 'REGISTER_FCM_ERROR';\nexport const REGISTER_FCM_PURGE = 'REGISTER_FCM_PURGE';\n\nexport const RECOVERY_PASSWORD_SUCCESS = 'RECOVERY_PASSWORD_SUCCESS';\nexport const RECOVERY_PASSWORD_ERROR = 'RECOVERY_PASSWORD_ERROR';\nexport const RECOVERY_PASSWORD_PURGE = 'RECOVERY_PASSWORD_PURGE';\n\nexport const UPDATE_PASSWORD_SUCCESS = 'UPDATE_PASSWORD_SUCCESS';\nexport const UPDATE_PASSWORD_ERROR = 'UPDATE_PASSWORD_ERROR';\nexport const UPDATE_PASSWORD_PURGE = 'UPDATE_PASSWORD_PURGE';\n\nexport const PROMOTIONS_SUCCESS = 'PROMOTIONS_SUCCESS';\nexport const PROMOTIONS_ERROR = 'PROMOTIONS_ERROR';\nexport const PROMOTIONS_PURGE = 'PROMOTIONS_PURGE';\n\nexport const BUZON_QUEJAS_SUCCESS = 'BUZON_QUEJAS_SUCCESS';\nexport const BUZON_QUEJAS_ERROR = 'BUZON_QUEJAS_ERROR';\nexport const BUZON_QUEJAS_PURGE = 'BUZON_QUEJAS_PURGE';\n\nexport const BUZON_QUEJAS_DETAIL_SUCCESS = 'BUZON_QUEJAS_DETAIL_SUCCESS';\nexport const BUZON_QUEJAS_DETAIL_ERROR = 'BUZON_QUEJAS_DETAIL_ERROR';\nexport const BUZON_QUEJAS_DETAIL_PURGE = 'BUZON_QUEJAS_DETAIL_PURGE';\n\nexport const DELETE_COMPLAINT_SUCCESS = 'DELETE_COMPLAINT_SUCCESS';\nexport const DELETE_COMPLAINT_ERROR = 'DELETE_COMPLAINT_ERROR';\nexport const DELETE_COMPLAINT_PURGE = 'DELETE_COMPLAINT_PURGE';\n\nexport const CALENDAR_SUCCESS = 'CALENDAR_SUCCESS';\nexport const CALENDAR_ERROR = 'CALENDAR_ERROR';\nexport const CALENDAR_PURGE = 'CALENDAR_PURGE';\n\n\n\n//NUEVOS\n\n\nexport const CENTERS_CATALOG_SUCCESS = 'CENTERS_CATALOG_SUCCESS';\nexport const CENTERS_CATALOG_ERROR = 'CENTERS_CATALOG_ERROR';\nexport const CENTERS_CATALOG_PURGE = 'CENTERS_CATALOG_PURGE';\n\nexport const DEPTS_CATALOG_SUCCESS = 'DEPTS_CATALOG_SUCCESS';\nexport const DEPTS_CATALOG_ERROR = 'DEPTS_CATALOG_ERROR';\nexport const DEPTS_CATALOG_PURGE = 'DEPTS_CATALOG_PURGE';\n\nexport const EMPLOYER_RECORDS_SUCCESS = 'EMPLOYER_RECORDS_SUCCESS';\nexport const EMPLOYER_RECORDS_ERROR = 'EMPLOYER_RECORDS_ERROR';\nexport const EMPLOYER_RECORDS_PURGE = 'EMPLOYER_RECORDS_PURGE';\n\nexport const EMPLOYER_RECORDS_PERMITS_SUCCESS = 'EMPLOYER_RECORDS_PERMITS_SUCCESS';\nexport const EMPLOYER_RECORDS_PERMITS_ERROR = 'EMPLOYER_RECORDS_PERMITS_ERROR';\nexport const EMPLOYER_RECORDS_PERMITS_PURGE = 'EMPLOYER_RECORDS_PERMITS_PURGE';\n\nexport const DEPARTMENT_PERMITS_SUCCESS = 'DEPARTMENT_PERMITS_SUCCESS';\nexport const DEPARTMENT_PERMITS_ERROR = 'DEPARTMENT_PERMITS_ERROR';\nexport const DEPARTMENT_PERMITS_PURGE = 'DEPARTMENT_PERMITS_PURGE';\n\nexport const CENTERS_PERMITS_SUCCESS = 'CENTER_PERMITS_SUCCESS';\nexport const CENTERS_PERMITS_ERROR = 'CENTER_PERMITS_ERROR';\nexport const CENTERS_PERMITS_PURGE = 'CENTER_PERMITS_PURGE';\n\nexport const INSERT_DELETE_PERMIT_RP_SUCCESS = 'INSERT_DELETE_PERMIT_RP_SUCCESS';\nexport const INSERT_DELETE_PERMIT_RP_ERROR = 'INSERT_DELETE_PERMIT_RP_ERROR';\nexport const INSERT_DELETE_PERMIT_RP_PURGE = 'INSERT_DELETE_PERMIT_RP_PURGE';\n\nexport const INSERT_DELETE_PERMIT_CENTER_SUCCESS = 'INSERT_DELETE_PERMIT_CENTER_SUCCESS';\nexport const INSERT_DELETE_PERMIT_CENTER_ERROR = 'INSERT_DELETE_PERMIT_CENTER_ERROR';\nexport const INSERT_DELETE_PERMIT_CENTER_PURGE = 'INSERT_DELETE_PERMIT_CENTER_PURGE';\n\nexport const INSERT_DELETE_PERMIT_DEPTO_SUCCESS = 'INSERT_DELETE_PERMIT_DEPTO_SUCCESS';\nexport const INSERT_DELETE_PERMIT_DEPTO_ERROR = 'INSERT_DELETE_PERMIT_DEPTO_ERROR';\nexport const INSERT_DELETE_PERMIT_DEPTO_PURGE = 'INSERT_DELETE_PERMIT_DEPTO_PURGE';\n\nexport const CHANGE_PASSWORD_ADMIN_SUCCESS = 'CHANGE_PASSWORD_ADMIN_SUCCESS';\nexport const CHANGE_PASSWORD_ADMIN_ERROR = 'CHANGE_PASSWORD_ADMIN_ERROR';\nexport const CHANGE_PASSWORD_ADMIN_PURGE = 'CHANGE_PASSWORD_ADMIN_PURGE';\n\nexport const NEW_USER_SUCCESS = 'NEW_USER_SUCCESS';\nexport const NEW_USER_ERROR = 'NEW_USER_ERROR';\nexport const NEW_USER_PURGE = 'NEW_USER_PURGE';\n\nexport const RESTART_PASSWORD_SUCCESS = 'RESTART_PASSWORD_SUCCESS';\nexport const RESTART_PASSWORD_ERROR = 'RESTART_PASSWORD_ERROR';\nexport const RESTART_PASSWORD_PURGE = 'RESTART_PASSWORD_PURGE';\n\nexport const SEARCH_EMPLOYEE_SUCCESS = 'SEARCH_EMPLOYEE_SUCCESS';\nexport const SEARCH_EMPLOYEE_ERROR = 'SEARCH_EMPLOYEE_ERROR';\nexport const SEARCH_EMPLOYEE_PURGE = 'SEARCH_EMPLOYEE_PURGE';\n\nexport const CHANGE_PASSWORD_EMPLOYEE_SUCCESS = 'CHANGE_PASSWORD_EMPLOYEE_SUCCESS';\nexport const CHANGE_PASSWORD_EMPLOYEE_ERROR = 'CHANGE_PASSWORD_EMPLOYEE_ERROR';\nexport const CHANGE_PASSWORD_EMPLOYEE_PURGE = 'CHANGE_PASSWORD_EMPLOYEE_PURGE';\n\nexport const UNLOCK_EMPLOYEES_SUCCESS = 'UNLOCK_EMPLOYEES_SUCCESS';\nexport const UNLOCK_EMPLOYEES_ERROR = 'UNLOCK_EMPLOYEES_ERROR';\nexport const UNLOCK_EMPLOYEES_PURGE = 'UNLOCK_EMPLOYEES_PURGE';\n\nexport const ACCESS_METHOD_SUCCESS = 'ACCESS_METHOD_SUCCESS';\nexport const ACCESS_METHOD_ERROR = 'ACCESS_METHOD_ERROR';\nexport const ACCESS_METHOD_PURGE = 'ACCESS_METHOD_PURGE';\n\nexport const JOB_CATALOG_SUCCESS = 'JOB_CATALOG_SUCCESS';\nexport const JOB_CATALOG_ERROR = 'JOB_CATALOG_ERROR';\nexport const JOB_CATALOG_PURGE = 'JOB_CATALOG_PURGE';\n\nexport const PERMIT_POSITION_USER_SUCCESS = 'PERMIT_POSITION_USER_SUCCESS';\nexport const PERMIT_POSITION_USER_ERROR = 'PERMIT_POSITION_USER_ERROR';\nexport const PERMIT_POSITION_USER_PURGE = 'PERMIT_POSITION_USER_PURGE';\n\nexport const INSERT_DELETE_POS_SUCCESS = 'INSERT_DELETE_POS_SUCCESS';\nexport const INSERT_DELETE_POS_ERROR = 'INSERT_DELETE_POS_ERROR';\nexport const INSERT_DELETE_POS_PURGE = 'INSERT_DELETE_POS_PURGE';\n\nexport const COMPANIES_LIST_SUCCESS = 'COMPANIES_LIST_SUCCESS';\nexport const COMPANIES_LIST_ERROR = 'COMPANIES_LIST_ERROR';\nexport const COMPANIES_LIST_PURGE = 'COMPANIES_LIST_PURGE';\n\nexport const ADDITIONAL_FIELDS_SUCCESS = 'ADDITIONAL_FIELDS_SUCCESS';\nexport const ADDITIONAL_FIELDS_ERROR = 'ADDITIONAL_FIELDS_ERROR';\nexport const ADDITIONAL_FIELDS_PURGE = 'ADDITIONAL_FIELDS_PURGE';\n\nexport const DELETE_ADD_FIELDS_SUCCESS = 'DELETE_ADD_FIELDS_SUCCESS';\nexport const DELETE_ADD_FIELDS_ERROR = 'DELETE_ADD_FIELDS_ERROR';\nexport const DELETE_ADD_FIELDS_PURGE = 'DELETE_ADD_FIELDS_PURGE';\n\nexport const NEXT_INFO_USER_SUCCESS = 'NEXT_INFO_USER_SUCCESS';\nexport const NEXT_INFO_USER_ERROR = 'NEXT_INFO_USER_ERROR';\nexport const NEXT_INFO_USER_PURGE = 'NEXT_INFO_USER_PURGE';\n\nexport const SAVE_INFO_EXTRA_SUCCESS = 'SAVE_INFO_EXTRA_SUCCESS';\nexport const SAVE_INFO_EXTRA_ERROR = 'SAVE_INFO_EXTRA_ERROR';\nexport const SAVE_INFO_EXTRA_PURGE = 'SAVE_INFO_EXTRA_PURGE';\n\nexport const RECEIPT_GENERATION_EMPLOYEE_SUCCESS = 'RECEIPT_GENERATION_EMPLOYEE_SUCCESS';\nexport const RECEIPT_GENERATION_EMPLOYEE_ERROR = 'RECEIPT_GENERATION_EMPLOYEE_ERROR';\nexport const RECEIPT_GENERATION_EMPLOYEE_PURGE = 'RECEIPT_GENERATION_EMPLOYEE_PURGE';\n\nexport const BLOCK_USER_SUCCESS = 'BLOCK_USER_SUCCESS';\nexport const BLOCK_USER_ERROR = 'BLOCK_USER_ERROR';\nexport const BLOCK_USER_PURGE = 'BLOCK_USER_PURGE';\n\nexport const ALL_USERS_SUCCESS = 'ALL_USERS_SUCCESS';\nexport const ALL_USERS_ERROR = 'ALL_USERS_ERROR';\nexport const ALL_USERS_PURGE = 'ALL_USERS_PURGE';\n\nexport const WELCOME_MESSAGE_SUCCESS = 'WELCOME_MESSAGE_SUCCESS';\nexport const WELCOME_MESSAGE_ERROR = 'WELCOME_MESSAGE_ERROR';\nexport const WELCOME_MESSAGE_PURGE = 'WELCOME_MESSAGE_PURGE';\n\nexport const EDIT_WELCOME_MESSAGE_SUCCESS = 'EDIT_WELCOME_MESSAGE_SUCCESS';\nexport const EDIT_WELCOME_MESSAGE_ERROR = 'EDIT_WELCOME_MESSAGE_ERROR';\nexport const EDIT_WELCOME_MESSAGE_PURGE = 'EDIT_WELCOME_MESSAGE_PURGE';\n\nexport const SELECTED_ADDITIONAL_FIELDS_SUCCESS = 'SELECTED_ADDITIONAL_FIELDS_SUCCESS';\nexport const SELECTED_ADDITIONAL_FIELDS_ERROR = 'SELECTED_ADDITIONAL_FIELDS_ERROR';\nexport const SELECTED_ADDITIONAL_FIELDS_PURGE = 'SELECTED_ADDITIONAL_FIELDS_PURGE';\n\nexport const NEW_CORPORATIVE_MESSAGE_SUCCESS = 'NEW_CORPORATIVE_MESSAGE_SUCCESS';\nexport const NEW_CORPORATIVE_MESSAGE_ERROR = 'NEW_CORPORATIVE_MESSAGE_ERROR';\nexport const NEW_CORPORATIVE_MESSAGE_PURGE = 'NEW_CORPORATIVE_MESSAGE_PURGE';\n\nexport const EDIT_CORPORATIVE_MESSAGE_SUCCESS = 'EDIT_CORPORATIVE_MESSAGE_SUCCESS';\nexport const EDIT_CORPORATIVE_MESSAGE_ERROR = 'EDIT_CORPORATIVE_MESSAGE_ERROR';\nexport const EDIT_CORPORATIVE_MESSAGE_PURGE = 'EDIT_CORPORATIVE_MESSAGE_PURGE';\n\nexport const LIST_CORPORATIVE_MESSAGE_SUCCESS = 'LIST_CORPORATIVE_MESSAGE_SUCCESS';\nexport const LIST_CORPORATIVE_MESSAGE_ERROR = 'LIST_CORPORATIVE_MESSAGE_ERROR';\nexport const LIST_CORPORATIVE_MESSAGE_PURGE = 'LIST_CORPORATIVE_MESSAGE_PURGE';\n\nexport const DETAIL_CORPORATIVE_MESSAGE_SUCCESS = 'DETAIL_CORPORATIVE_MESSAGE_SUCCESS';\nexport const DETAIL_CORPORATIVE_MESSAGE_ERROR = 'DETAIL_CORPORATIVE_MESSAGE_ERROR';\nexport const DETAIL_CORPORATIVE_MESSAGE_PURGE = 'DETAIL_CORPORATIVE_MESSAGE_PURGE';\n\nexport const CONTROL_VACATIONS_SUCCESS = 'CONTROL_VACATIONS_SUCCESS';\nexport const CONTROL_VACATIONS_ERROR = 'CONTROL_VACATIONS_ERROR';\nexport const CONTROL_VACATIONS_PURGE = 'CONTROL_VACATIONS_PURGE';\n\n//EULEN\n\nexport const CANCEL_VACATIONS_EULEN_SUCCESS = 'CANCEL_VACATIONS_EULEN_SUCCESS';\nexport const CANCEL_VACATIONS_EULEN_ERROR = 'CANCEL_VACATIONS_EULEN_ERROR';\nexport const CANCEL_VACATIONS_EULEN_PURGE = 'CANCEL_VACATIONS_EULEN_PURGE';\n\nexport const AUTHORIZE_CANCEL_VACATIONS_SUCCESS = 'AUTHORIZE_CANCEL_VACATIONS_SUCCESS';\nexport const AUTHORIZE_CANCEL_VACATIONS_ERROR = 'AUTHORIZE_CANCEL_VACATIONS_ERROR';\nexport const AUTHORIZE_CANCEL_VACATIONS_PURGE = 'AUTHORIZE_CANCEL_VACATIONS_PURGE';\n\nexport const REJECT_CANCEL_VACATIONS_SUCCESS = 'REJECT_CANCEL_VACATIONS_SUCCESS';\nexport const REJECT_CANCEL_VACATIONS_ERROR = 'REJECT_CANCEL_VACATIONS_ERROR';\nexport const REJECT_CANCEL_VACATIONS_PURGE = 'REJECT_CANCEL_VACATIONS_PURGE';\n\nexport const VACATIONS_MASSIVE_SUCCESS = 'VACATIONS_MASSIVE_SUCCESS';\nexport const VACATIONS_MASSIVE_ERROR = 'VACATIONS_MASSIVE_ERROR';\nexport const VACATIONS_MASSIVE_PURGE = 'VACATIONS_MASSIVE_PURGE';\n\nexport const AUTHORIZE_VACATIONS_MASSIVE_SUCCESS = 'AUTHORIZE_VACATIONS_MASSIVE_SUCCESS';\nexport const AUTHORIZE_VACATIONS_MASSIVE_ERROR = 'AUTHORIZE_VACATIONS_MASSIVE_ERROR';\nexport const AUTHORIZE_VACATIONS_MASSIVE_PURGE = 'AUTHORIZE_VACATIONS_MASSIVE_PURGE';\n\nexport const REJECT_VACATIONS_MASSIVE_SUCCESS = 'REJECT_VACATIONS_MASSIVE_SUCCESS';\nexport const REJECT_VACATIONS_MASSIVE_ERROR = 'REJECT_VACATIONS_MASSIVE_ERROR';\nexport const REJECT_VACATIONS_MASSIVE_PURGE = 'REJECT_VACATIONS_MASSIVE_PURGE';\n\nexport const VACATIONS_RHVACATION_SUCCESS = 'VACATIONS_RHVACATION_SUCCESS';\nexport const VACATIONS_RHVACATION_ERROR = 'VACATIONS_RHVACATION_ERROR';\nexport const VACATIONS_RHVACATION_PURGE = 'VACATIONS_RHVACATION_PURGE';\n\nexport const LIST_COMPANIES_RPT_SUCCESS = 'LIST_COMPANIES_RPT_SUCCESS';\nexport const LIST_COMPANIES_RPT_ERROR = 'LIST_COMPANIES_RPT_ERROR';\nexport const LIST_COMPANIES_RPT_PURGE = 'LIST_COMPANIES_RPT_PURGE';\n\nexport const FILTER_CENTERS_SUCCESS = 'FILTER_CENTERS_SUCCESS';\nexport const FILTER_CENTERS_ERROR = 'FILTER_CENTERS_ERROR';\nexport const FILTER_CENTERS_PURGE = 'FILTER_CENTERS_PURGE';\n\nexport const FILTER_BOOS_SUCCESS = 'FILTER_BOOS_SUCCESS';\nexport const FILTER_BOOS_ERROR = 'FILTER_BOOS_ERROR';\nexport const FILTER_BOOS_PURGE = 'FILTER_BOOS_PURGE';\n\nexport const REPORT_RHVAC_SUCCESS = 'REPORT_RHVAC_SUCCESS';\nexport const REPORT_RHVAC_ERROR = 'REPORT_RHVAC_ERROR';\nexport const REPORT_RHVAC_PURGE = 'REPORT_RHVAC_PURGE';\n\nexport const ADMIN_MENU_SUCCESS = 'ADMIN_MENU_SUCCESS';\nexport const ADMIN_MENU_ERROR = 'ADMIN_MENU_ERROR';\nexport const ADMIN_MENU_PURGE = 'ADMIN_MENU_PURGE';\n\nexport const ADMIN_MENU_ACTIVATE_SUCCESS = 'ADMIN_MENU_ACTIVATE_SUCCESS';\nexport const ADMIN_MENU_ACTIVATE_ERROR = 'ADMIN_MENU_ACTIVATE_ERROR';\nexport const ADMIN_MENU_ACTIVATE_PURGE = 'ADMIN_MENU_ACTIVATE_PURGE';\n\n\nexport const VACATIONS_MASSIVE_DIRECT_SUCCESS = 'VACATIONS_MASSIVE_DIRECT_SUCCESS';\nexport const VACATIONS_MASSIVE_DIRECT_ERROR = 'VACATIONS_MASSIVE_DIRECT_ERROR';\nexport const VACATIONS_MASSIVE_DIRECT_PURGE = 'VACATIONS_MASSIVE_DIRECT_PURGE';\n\nexport const AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS = 'AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS';\nexport const AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR = 'AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR';\nexport const AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE = 'AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE';\n\nexport const REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS = 'REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS';\nexport const REJECT_VACATIONS_MASSIVE_DIRECT_ERROR = 'REJECT_VACATIONS_MASSIVE_DIRECT_ERROR';\nexport const REJECT_VACATIONS_MASSIVE_DIRECT_PURGE = 'REJECT_VACATIONS_MASSIVE_DIRECT_PURGE';\n\nexport const VACATIONS_DIRECT_SUCCESS = 'VACATIONS_DIRECT_SUCCESS';\nexport const VACATIONS_DIRECT_ERROR = 'VACATIONS_DIRECT_ERROR';\nexport const VACATIONS_DIRECT_PURGE = 'VACATIONS_DIRECT_PURGE';\n\nexport const REPORT_RHVAC_DIRECT_SUCCESS = 'REPORT_RHVAC_DIRECT_SUCCESS';\nexport const REPORT_RHVAC_DIRECT_ERROR = 'REPORT_RHVAC_DIRECT_ERROR';\nexport const REPORT_RHVAC_DIRECT_PURGE = 'REPORT_RHVAC_DIRECT_PURGE';\n\n//MERHAL\n\nexport const CAT_INCIDENTS_SUCCESS = 'CAT_INCIDENTS_SUCCESS';\nexport const CAT_INCIDENTS_ERROR = 'CAT_INCIDENTS_ERROR';\nexport const CAT_INCIDENTS_PURGE = 'CAT_INCIDENTS_PURGE';\n\nexport const INSERT_INCIDENTS_SUCCESS = 'INSERT_INCIDENTS_SUCCESS';\nexport const INSERT_INCIDENTS_ERROR = 'INSERT_INCIDENTS_ERROR';\nexport const INSERT_INCIDENTS_PURGE = 'INSERT_INCIDENTS_PURGE';\n\nexport const SKIP_WEEKEND_SUCCESS = 'SKIP_WEEKEND_SUCCESS';\nexport const SKIP_WEEKEND_ERROR = 'SKIP_WEEKEND_ERROR';\nexport const SKIP_WEEKEND_PURGE = 'SKIP_WEEKEND_PURGE';\n\nexport const AUTHORIZE_INCIDENT_SUCCESS = 'AUTHORIZE_INCIDENT_SUCCESS';\nexport const AUTHORIZE_INCIDENT_ERROR = 'AUTHORIZE_INCIDENT_ERROR';\nexport const AUTHORIZE_INCIDENT_PURGE = 'AUTHORIZE_INCIDENT_PURGE';\n\nexport const REJECT_INCIDENT_SUCCESS = 'REJECT_INCIDENT_SUCCESS';\nexport const REJECT_INCIDENT_ERROR = 'REJECT_INCIDENT_ERROR';\nexport const REJECT_INCIDENT_PURGE = 'REJECT_INCIDENT_PURGE';\n\n//KRONES PERDIEM\n\nexport const GET_PERDIEM_SUCCESS = 'GET_PERDIEM_SUCCESS';\nexport const GET_PERDIEM_ERROR = 'GET_PERDIEM_ERROR';\nexport const GET_PERDIEM_PURGE = 'GET_PERDIEM_PURGE';\n\nexport const CREATE_PERDIEM_SUCCESS = 'CREATE_PERDIEM_SUCCESS';\nexport const CREATE_PERDIEM_ERROR = 'CREATE_PERDIEM_ERROR';\nexport const CREATE_PERDIEM_PURGE = 'CREATE_PERDIEM_PURGE';\n\nexport const DELETE_PERDIEM_SUCCESS = 'DELETE_PERDIEM_SUCCESS';\nexport const DELETE_PERDIEM_ERROR = 'DELETE_PERDIEM_ERROR';\nexport const DELETE_PERDIEM_PURGE = 'DELETE_PERDIEM_PURGE';\n\nexport const EDIT_PERDIEM_SUCCESS = 'EDIT_PERDIEM_SUCCESS';\nexport const EDIT_PERDIEM_ERROR = 'EDIT_PERDIEM_ERROR';\nexport const EDIT_PERDIEM_PURGE = 'EDIT_PERDIEM_PURGE';\n\nexport const GENERATE_PERDIEM_SUCCESS = 'GENERATE_PERDIEM_SUCCESS';\nexport const GENERATE_PERDIEM_ERROR = 'GENERATE_PERDIEM_ERROR';\nexport const GENERATE_PERDIEM_PURGE = 'GENERATE_PERDIEM_PURGE';\n\nexport const ID_PERDIEM_SUCCESS = 'ID_PERDIEM_SUCCESS';\nexport const ID_PERDIEM_ERROR = 'ID_PERDIEM_ERROR';\nexport const ID_PERDIEM_PURGE = 'ID_PERDIEM_PURGE';\n\nexport const SIGN_PERDIEM_SUCCESS = 'SIGN_PERDIEM_SUCCESS';\nexport const SIGN_PERDIEM_ERROR = 'SIGN_PERDIEM_ERROR';\nexport const SIGN_PERDIEM_PURGE = 'SIGN_PERDIEM_PURGE';\n\nexport const DOWNLOAD_PERDIEM_SUCCESS = 'DOWNLOAD_PERDIEM_SUCCESS';\nexport const DOWNLOAD_PERDIEM_ERROR = 'DOWNLOAD_PERDIEM_ERROR';\nexport const DOWNLOAD_PERDIEM_PURGE = 'DOWNLOAD_PERDIEM_PURGE';\n\nexport const EMPLOYEE_VACATIONS_SUCCESS = 'EMPLOYEE_VACATIONS_SUCCESS';\nexport const EMPLOYEE_VACATIONS_ERROR = 'EMPLOYEE_VACATIONS_ERROR';\nexport const EMPLOYEE_VACATIONS_PURGE = 'EMPLOYEE_VACATIONS_PURGE';\n\nexport const COMMENT_REJECT_VACATIONS_SUCCESS = 'COMMENT_REJECT_VACATIONS_SUCCESS';\nexport const COMMENT_REJECT_VACATIONS_ERROR = 'COMMENT_REJECT_VACATIONS_ERROR';\nexport const COMMENT_REJECT_VACATIONS_PURGE = 'COMMENT_REJECT_VACATIONS_PURGE';\n\nexport const VACATIONS_EXPIRATION_SUCCESS = 'VACATIONS_EXPIRATION_SUCCESS';\nexport const VACATIONS_EXPIRATION_ERROR = 'VACATIONS_EXPIRATION_ERROR';\nexport const VACATIONS_EXPIRATION_PURGE = 'VACATIONS_EXPIRATION_PURGE';\n\nexport const CONSULTA_ROLES_SUCCESS = 'CONSULTA_ROLES_SUCCESS';\nexport const CONSULTA_ROLES_ERROR = 'CONSULTA_ROLES_ERROR';\nexport const CONSULTA_ROLES_PURGE = 'CONSULTA_ROLES_PURGE';\n\nexport const VACATIONS_CALENDAR_SUCCESS = 'VACATIONS_CALENDAR_SUCCESS';\nexport const VACATIONS_CALENDAR_ERROR = 'VACATIONS_CALENDAR_ERROR';\nexport const VACATIONS_CALENDAR_PURGE = 'VACATIONS_CALENDAR_PURGE';\n\nexport const INCIDENCIAS_KRONES_SUCCESS = 'INCIDENCIAS_KRONES_SUCCESS';\nexport const INCIDENCIAS_KRONES_ERROR = 'INCIDENCIAS_KRONES_ERROR';\nexport const INCIDENCIAS_KRONES_PURGE = 'INCIDENCIAS_KRONES_PURGE';\n\nexport const EMPLEADO_JORNADA_SUCCESS = 'EMPLEADO_JORNADA_SUCCESS';\nexport const EMPLEADO_JORNADA_ERROR = 'EMPLEADO_JORNADA_ERROR';\nexport const EMPLEADO_JORNADA_PURGE = 'EMPLEADO_JORNADA_PURGE';\n\nexport const DEPTOS_CENTER_SUCCESS = 'DEPTOS_CENTER_SUCCESS';\nexport const DEPTOS_CENTER_ERROR = 'DEPTOS_CENTER_ERROR';\nexport const DEPTOS_CENTER_PURGE = 'DEPTOS_CENTER_PURGE';\n\nexport const JEFES_PERDIEM_SUCCESS = 'JEFES_PERDIEM_SUCCESS';\nexport const JEFES_PERDIEM_ERROR = 'JEFES_PERDIEM_ERROR';\nexport const JEFES_PERDIEM_PURGE = 'JEFES_PERDIEM_PURGE';\n\nexport const EMPLEADOS_ALL_SUCCESS = 'EMPLEADOS_ALL_SUCCESS';\nexport const EMPLEADOS_ALL_ERROR = 'EMPLEADOS_ALL_ERROR';\nexport const EMPLEADOS_ALL_PURGE = 'EMPLEADOS_ALL_PURGE';\n\nexport const EMP_REPO_SUCCESS = 'EMP_REPO_SUCCESS';\nexport const EMP_REPO_ERROR = 'EMP_REPO_ERROR';\nexport const EMP_REPO_PURGE = 'EMP_REPO_PURGE';\n\nexport const EMPLEADOS_AL_MANDO_SUCCESS = 'EMPLEADOS_AL_MANDO_SUCCESS';\nexport const EMPLEADOS_AL_MANDO_ERROR = 'EMPLEADOS_AL_MANDO_ERROR';\nexport const EMPLEADOS_AL_MANDO_PURGE = 'EMPLEADOS_AL_MANDO_PURGE';\n\nexport const REJECT_CHIEF_SUCCESS = 'REJECT_CHIEF_SUCCESS';\nexport const REJECT_CHIEF_ERROR = 'REJECT_CHIEF_ERROR';\nexport const REJECT_CHIEF_PURGE = 'REJECT_CHIEF_PURGE';\n\nexport const AUTHORIZE_CHIEF_SUCCESS = 'AUTHORIZE_CHIEF_SUCCESS';\nexport const AUTHORIZE_CHIEF_ERROR = 'AUTHORIZE_CHIEF_ERROR';\nexport const AUTHORIZE_CHIEF_PURGE = 'AUTHORIZE_CHIEF_PURGE';\n\nexport const GET_PREVIEW_SUCCESS = 'GET_PREVIEW_SUCCESS';\nexport const GET_PREVIEW_ERROR = 'GET_PREVIEW_ERROR';\nexport const GET_PREVIEW_PURGE = 'GET_PREVIEW_PURGE';\n\nexport const AUTHORIZE_REJECT_SUCCESS = 'AUTHORIZE_REJECT_SUCCESS';\nexport const AUTHORIZE_REJECT_ERROR = 'AUTHORIZE_REJECT_ERROR';\nexport const AUTHORIZE_REJECT_PURGE = 'AUTHORIZE_REJECT_PURGE';\n\nexport const EMPLEADOS_PERDIEM_SUCCESS = 'EMPLEADOS_PERDIEM_SUCCESS';\nexport const EMPLEADOS_PERDIEM_ERROR = 'EMPLEADOS_PERDIEM_ERROR';\nexport const EMPLEADOS_PERDIEM_PURGE = 'EMPLEADOS_PERDIEM_PURGE';\n\nexport const GET_PREVIEW_CANCELED_SUCCESS = 'GET_PREVIEW_CANCELED_SUCCESS';\nexport const GET_PREVIEW_CANCELED_ERROR = 'GET_PREVIEW_CANCELED_ERROR';\nexport const GET_PREVIEW_CANCELED_PURGE = 'GET_PREVIEW_CANCELED_PURGE';\n\nexport const GET_PREVIEW_AUTHORIZED_SUCCESS = 'GET_PREVIEW_AUTHORIZED_SUCCESS';\nexport const GET_PREVIEW_AUTHORIZED_ERROR = 'GET_PREVIEW_AUTHORIZED_ERROR';\nexport const GET_PREVIEW_AUTHORIZED_PURGE = 'GET_PREVIEW_AUTHORIZED_PURGE';\n\nexport const REPORT_CONVERT_SUCCESS = 'REPORT_CONVERT_SUCCESS';\nexport const REPORT_CONVERT_ERROR = 'REPORT_CONVERT_ERROR';\nexport const REPORT_CONVERT_PURGE = 'REPORT_CONVERT_PURGE';\n\nexport const GET_XLS_PERDIEM_SUCCESS = 'GET_XLS_PERDIEM_SUCCESS';\nexport const GET_XLS_PERDIEM_ERROR = 'GET_XLS_PERDIEM_ERROR';\nexport const GET_XLS_PERDIEM_PURGE = 'GET_XLS_PERDIEM_PURGE';\n\n\nexport const AUTHORIZERS_SUCCESS = 'AUTHORIZERS_SUCCESS';\nexport const AUTHORIZERS_ERROR = 'AUTHORIZERS_ERROR';\nexport const AUTHORIZERS_PURGE = 'AUTHORIZERS_PURGE';\n\nexport const SEND_EMAILS_SUCCESS = 'SEND_EMAILS_SUCCESS';\nexport const SEND_EMAILS_ERROR = 'SEND_EMAILS_ERROR';\nexport const SEND_EMAILS_PURGE = 'SEND_EMAILS_PURGE';\n\nexport const SEND_DATA_CHIEF_SUCCESS = 'SEND_DATA_CHIEF_SUCCESS';\nexport const SEND_DATA_CHIEF_ERROR = 'SEND_DATA_CHIEF_ERROR';\nexport const SEND_DATA_CHIEF_PURGE = 'SEND_DATA_CHIEF_PURGE';\n\nexport const EMPLOYEE_MOV_NOM_SUCCESS = 'EMPLOYEE_MOV_NOM_SUCCESS';\nexport const EMPLOYEE_MOV_NOM_ERROR = 'EMPLOYEE_MOV_NOM_ERROR';\nexport const EMPLOYEE_MOV_NOM_PURGE = 'EMPLOYEE_MOV_NOM_PURGE';\n\nexport const CONCEPTS_SUCCESS = 'CONCEPTS_SUCCESS';\nexport const CONCEPTS_ERROR = 'CONCEPTS_ERROR';\nexport const CONCEPTS_PURGE = 'CONCEPTS_PURGE';\n\nexport const SERVCODE_PERDIEM_SUCCESS = \"SERVCODE_PERDIEM_SUCCESS\";\nexport const SERVCODE_PERDIEM_ERROR = \"SERVCODE_PERDIEM_ERROR\";\nexport const SERVCODE_PERDIEM_PURGE = \"SERVCODE_PERDIEM_PURGE\";\n\n//export const CONSULTA_ROLES_SUCCESS = 'CONSULTA_ROLES_SUCCESS';\n//export const CONSULTA_ROLES_ERROR = 'CONSULTA_ROLES_ERROR';\n//export const CONSULTA_ROLES_PURGE = 'CONSULTA_ROLES_PURGE';\n\n//RUI\n\nexport const URL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS = 'URL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS';\nexport const URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR = 'URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR';\nexport const URL_REPORTE_DOC_DEACARGADOS_EMP_PURGE = 'URL_REPORTE_DOC_DEACARGADOS_EMP_PURGE';\n\nexport const ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS = 'ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS';\nexport const ACTUALIZA_DOWNLOAD_REPORTS_ERROR = 'ACTUALIZA_DOWNLOAD_REPORTS_ERROR';\nexport const ACTUALIZA_DOWNLOAD_REPORTS_PURGE = 'ACTUALIZA_DOWNLOAD_REPORTS_PURGE';\n\nexport const INCIDENT_ALERT_SUCCESS = 'INCIDENT_ALERT_SUCCESS';\nexport const INCIDENT_ALERT_ERROR = 'INCIDENT_ALERT_ERROR';\nexport const INCIDENT_ALERT_PURGE = 'INCIDENT_ALERT_PURGE';\n\nexport const CONSULTA_EXT_SUCCESS = 'CONSULTA_EXT_SUCCESS';\nexport const CONSULTA_EXT_ERROR = 'CONSULTA_EXT_ERROR';\nexport const CONSULTA_EXT_PURGE = 'CONSULTA_EXT_PURGE';\n\nexport const CONSULTA_ARCHIVO_SUCCESS = 'CONSULTA_ARCHIVO_SUCCESS';\nexport const CONSULTA_ARCHIVO_ERROR = 'CONSULTA_ARCHIVO_ERROR';\nexport const CONSULTA_ARCHIVO_PURGE = 'CONSULTA_ARCHIVO_PURGE';\n\nexport const SAVE_ARCHIVO_SUCCESS = 'SAVE_ARCHIVO_SUCCESS';\nexport const SAVE_ARCHIVO_ERROR = 'SAVE_ARCHIVO_ERROR';\nexport const SAVE_ARCHIVO_PURGE = 'SAVE_ARCHIVO_PURGE';\n\nexport const DELETE_FILES_SUCCESS = 'DELETE_FILES_SUCCESS';\nexport const DELETE_FILES_ERROR = 'DELETE_FILES_ERROR';\nexport const DELETE_FILES_PURGE = 'DELETE_FILES_PURGE';\n\nexport const CONSULTA_VAR_FIR_SUCCESS = 'CONSULTA_VAR_FIR_SUCCESS';\nexport const CONSULTA_VAR_FIR_ERROR = 'CONSULTA_VAR_FIR_ERROR';\nexport const CONSULTA_VAR_FIR_PURGE = 'CONSULTA_VAR_FIR_PURGE';\n\nexport const CONSULTA_FIRMA_SUCCESS = 'CONSULTA_FIRMA_SUCCESS';\nexport const CONSULTA_FIRMA_ERROR = 'CONSULTA_FIRMA_ERROR';\nexport const CONSULTA_FIRMA_PURGE = 'CONSULTA_FIRMA_PURGE';\n\nexport const ACTUALIZA_FIRMA_SUCCESS = 'ACTUALIZA_FIRMA_SUCCESS';\nexport const ACTUALIZA_FIRMA_ERROR = 'ACTUALIZA_FIRMA_ERROR';\nexport const ACTUALIZA_FIRMA_PURGE = 'ACTUALIZA_FIRMA_PURGE';\n\nexport const VAR_SHOW_OPTIONS_SUCCESS = 'VAR_SHOW_OPTIONS_SUCCESS';\nexport const VAR_SHOW_OPTIONS_ERROR = 'VAR_SHOW_OPTIONS_ERROR';\nexport const VAR_SHOW_OPTIONS_PURGE = 'VAR_SHOW_OPTIONS_PURGE';\n\nexport const REPORT_VACATIONS_INCIDENTS_SUCCESS = 'REPORT_VACATIONS_INCIDENTS_SUCCESS';\nexport const REPORT_VACATIONS_INCIDENTS_ERROR = 'REPORT_VACATIONS_INCIDENTS_ERROR';\nexport const REPORT_VACATIONS_INCIDENTS_PURGE = 'REPORT_VACATIONS_INCIDENTS_PURGE';\n\n// NOM035\nexport const GET_TIPO_ENCUESTAS_SUCCESS = \"GET_TIPO_ENCUESTAS_SUCCESS\";\nexport const GET_TIPO_ENCUESTAS_ERROR = \"GET_TIPO_ENCUESTAS_ERROR\";\nexport const GET_TIPO_ENCUESTAS_PURGE = \"GET_TIPO_ENCUESTAS_PURGE\";\n\nexport const GET_EMPLEADOS_GUIA1_SUCCESS = \"GET_EMPLEADOS_GUIA1_SUCCESS\";\nexport const GET_EMPLEADOS_GUIA1_ERROR = \"GET_EMPLEADOS_GUIA1_ERROR\";\nexport const GET_EMPLEADOS_GUIA1_PURGE = \"GET_EMPLEADOS_GUIA1_PURGE\";\n\nexport const GET_UBICACIONES_CONTEO_SUCCESS = \"GET_UBICACIONES_CONTEO_SUCCESS\";\nexport const GET_UBICACIONES_CONTEO_ERROR = \"GET_UBICACIONES_CONTEO_ERROR\";\nexport const GET_UBICACIONES_CONTEO_PURGE = \"GET_UBICACIONES_CONTEO_PURGE\";\n\nexport const GET_SELECCION_EMP_UBI_SUCCESS = \"GET_SELECCION_EMP_UBI_SUCCESS\";\nexport const GET_SELECCION_EMP_UBI_ERROR = \"GET_SELECCION_EMP_UBI_ERROR\";\nexport const GET_SELECCION_EMP_UBI_PURGE = \"GET_SELECCION_EMP_UBI_PURGE\";\n\nexport const ENVIAR_ENCUESTA_GUIA1_SUCCESS = \"ENVIAR_ENCUESTA_GUIA1_SUCCESS\";\nexport const ENVIAR_ENCUESTA_GUIA1_ERROR = \"ENVIAR_ENCUESTA_GUIA1_ERROR\";\nexport const ENVIAR_ENCUESTA_GUIA1_PURGE = \"ENVIAR_ENCUESTA_GUIA1_PURGE\";\n\nexport const ENVIAR_ENCUESTA_GUIA23_SUCCESS = \"ENVIAR_ENCUESTA_GUIA23_SUCCESS\";\nexport const ENVIAR_ENCUESTA_GUIA23_ERROR = \"ENVIAR_ENCUESTA_GUIA23_ERROR\";\nexport const ENVIAR_ENCUESTA_GUIA23_PURGE = \"ENVIAR_ENCUESTA_GUIA23_PURGE\";\n\n// PEÑAFIEL\nexport const VACION_EMPLEADO_DATOS_SUCCESS = \"VACION_EMPLEADO_DATOS_SUCCESS\";\nexport const VACION_EMPLEADO_DATOS_ERROR = \"VACION_EMPLEADO_DATOS_ERROR\";\nexport const VACION_EMPLEADO_DATOS_PURGE = \"VACION_EMPLEADO_DATOS_PURGE\";\n\nexport const CTRL_VACION_EMPLEADO_SUCCESS = \"CTRL_VACION_EMPLEADO_SUCCESS\";\nexport const CTRL_VACION_EMPLEADO_ERROR = \"CTRL_VACION_EMPLEADO_ERROR\";\nexport const CTRL_VACION_EMPLEADO_PURGE = \"CTRL_VACION_EMPLEADO_PURGE\";\n\nexport const GET_DIAS_BLOQUEADOS_SUCCESS = \"GET_DIAS_BLOQUEADOS_SUCCESS\";\nexport const GET_DIAS_BLOQUEADOS_ERROR = \"GET_DIAS_BLOQUEADOS_ERROR\";\nexport const GET_DIAS_BLOQUEADOS_PURGE = \"GET_DIAS_BLOQUEADOS_PURGE\";\n\nexport const RECOVER_PWD_EMAIL_SUCCESS = \"RECOVER_PWD_EMAIL_SUCCESS\";\nexport const RECOVER_PWD_EMAIL_ERROR = \"RECOVER_PWD_EMAIL_ERROR\";\nexport const RECOVER_PWD_EMAIL_PURGE = \"RECOVER_PWD_EMAIL_PURGE\";\n\n// ASPEN-COMAU\n//GeneraReporte1detalladousuario\nexport const REPORTE_CTRLVAC_EMPLEADO_SUCCESS = \"REPORTE_CTRLVAC_EMPLEADO_SUCCESS\";\nexport const REPORTE_CTRLVAC_EMPLEADO_ERROR = \"REPORTE_CTRLVAC_EMPLEADO_ERROR\";\nexport const REPORTE_CTRLVAC_EMPLEADO_PURGE = \"REPORTE_CTRLVAC_EMPLEADO_PURGE\";\n\n//GeneraReporte2detalladousuarios\nexport const REPORTE_VACACIONES_SUCCESS = \"REPORTE_VACACIONES_SUCCESS\";\nexport const REPORTE_VACACIONES_ERROR = \"REPORTE_VACACIONES_ERROR\";\nexport const REPORTE_VACACIONES_PURGE = \"REPORTE_VACACIONES_PURGE\";\n\nexport const REPORTE_VACACIONES2_SUCCESS = \"REPORTE_VACACIONES2_SUCCESS\";\nexport const REPORTE_VACACIONES2_ERROR = \"REPORTE_VACACIONES2_ERROR\";\nexport const REPORTE_VACACIONES2_PURGE = \"REPORTE_VACACIONES2_PURGE\";\n\nexport const TYPE_EMPLOYEE_CATALOG_SUCCESS = \"TYPE_EMPLOYEE_CATALOG_SUCCESS\";\nexport const TYPE_EMPLOYEE_CATALOG_ERROR = \"TYPE_EMPLOYEE_CATALOG_ERROR\";\nexport const TYPE_EMPLOYEE_CATALOG_PURGE = \"TYPE_EMPLOYEE_CATALOG_PURGE\";\n\nexport const GET_INCIDENCIAS_ASPEN_SUCCESS = \"GET_INCIDENCIAS_ASPEN_SUCCESS\";\nexport const GET_INCIDENCIAS_ASPEN_ERROR = \"GET_INCIDENCIAS_ASPEN_ERROR\";\nexport const GET_INCIDENCIAS_ASPEN_PURGE = \"GET_INCIDENCIAS_ASPEN_PURGE\";\n\n// MARSH\nexport const RPTPDF_CTRLVAC_SUCCESS = \"RPTPDF_CTRLVAC_SUCCESS\";\nexport const RPTPDF_CTRLVAC_ERROR = \"RPTPDF_CTRLVAC_ERROR\";\nexport const RPTPDF_CTRLVAC_PURGE = \"RPTPDF_CTRLVAC_PURGE\";\n\n// GENERAL\nexport const GET_VALORESCONFIG_SUCCESS = \"GET_VALORESCONFIG_SUCCESS\";\nexport const GET_VALORESCONFIG_ERROR = \"GET_VALORESCONFIG_ERROR\";\nexport const GET_VALORESCONFIG_PURGE = \"GET_VALORESCONFIG_PURGE\";\n\nexport const UPDATEVALORCONFIG_SUCCESS=\"UPDATEVALORCONFIG_SUCCESS\";\nexport const UPDATEVALORCONFIG_ERROR=\"UPDATEVALORCONFIG_ERROR\";\nexport const UPDATEVALORCONFIG_PURGE=\"UPDATEVALORCONFIG_PURGE\";\n\nexport const GET_REPORTAEXTRANJEROS_SUCCESS = \"GET_REPORTAEXTRANJEROS_SUCCESS\";\nexport const GET_REPORTAEXTRANJEROS_ERROR = \"GET_REPORTAEXTRANJEROS_ERROR\";\nexport const GET_REPORTAEXTRANJEROS_PURGE = \"GET_REPORTAEXTRANJEROS_PURGE\";\n\n\n//FALTA TIPO EMPLEADO\nexport const GETTBTIPOEMPLEADO_SUCCESS=\"GETTBTIPOEMPLEADO_SUCCESS\";\nexport const GETTBTIPOEMPLEADO_ERROR=\"GETTBTIPOEMPLEADO_ERROR\";\nexport const GETTBTIPOEMPLEADO_PURGE=\"GETTBTIPOEMPLEADO_PURGE\";\n\nexport const UPDATETBTIPOEMPLEADO_SUCCESS=\"UPDATETBTIPOEMPLEADO_SUCCESS\";\nexport const UPDATETBTIPOEMPLEADO_ERROR=\"UPDATETBTIPOEMPLEADO_ERROR\";\nexport const UPDATETBTIPOEMPLEADO_PURGE=\"UPDATETBTIPOEMPLEADO_PURGE\";\n\nexport const GETFALTATIPOEMPLEADO_SUCCESS=\"GETFALTATIPOEMPLEADO_SUCCESS\";\nexport const GETFALTATIPOEMPLEADO_ERROR=\"GETFALTATIPOEMPLEADO_ERROR\";\nexport const GETFALTATIPOEMPLEADO_PURGE=\"GETFALTATIPOEMPLEADO_PURGE\";\n\nexport const INSERTFALTATIPOEMPLEADO_SUCCESS=\"INSERTFALTATIPOEMPLEADO_SUCCESS\";\nexport const INSERTFALTATIPOEMPLEADO_ERROR=\"INSERTFALTATIPOEMPLEADO_ERROR\";\nexport const INSERTFALTATIPOEMPLEADO_PURGE=\"INSERTFALTATIPOEMPLEADO_PURGE\";\n\nexport const DELETEFALTATIPOEMPLEADO_SUCCESS=\"DELETEFALTATIPOEMPLEADO_SUCCESS\";\nexport const DELETEFALTATIPOEMPLEADO_ERROR=\"DELETEFALTATIPOEMPLEADO_ERROR\";\nexport const DELETEFALTATIPOEMPLEADO_PURGE=\"DELETEFALTATIPOEMPLEADO_PURGE\";\n\nexport const UPDATEFALTATIPOEMPLEADO_SUCCESS=\"UPDATEFALTATIPOEMPLEADO_SUCCESS\";\nexport const UPDATEFALTATIPOEMPLEADO_ERROR=\"UPDATEFALTATIPOEMPLEADO_ERROR\";\nexport const UPDATEFALTATIPOEMPLEADO_PURGE=\"UPDATEFALTATIPOEMPLEADO_PURGE\";\n\n//CONF INCIDENCIAS\nexport const GETINCIDENCIASCONFIG_SUCCESS=\"GETINCIDENCIASCONFIG_SUCCESS\";\nexport const GETINCIDENCIASCONFIG_ERROR=\"GETINCIDENCIASCONFIG_ERROR\";\nexport const GETINCIDENCIASCONFIG_PURGE=\"GETINCIDENCIASCONFIG_PURGE\";\n\nexport const INICIAINCIDENCIACONFIGEVENTO_SUCCESS=\"INICIAINCIDENCIACONFIGEVENTO_SUCCESS\";\nexport const INICIAINCIDENCIACONFIGEVENTO_ERROR=\"INICIAINCIDENCIACONFIGEVENTO_ERROR\";\nexport const INICIAINCIDENCIACONFIGEVENTO_PURGE=\"INICIAINCIDENCIACONFIGEVENTO_PURGE\";\n\nexport const CANCELAINCIDENCIACONFIGEVENTO_SUCCESS=\"CANCELAINCIDENCIACONFIGEVENTO_SUCCESS\";\nexport const CANCELAINCIDENCIACONFIGEVENTO_ERROR=\"CANCELAINCIDENCIACONFIGEVENTO_ERROR\";\nexport const CANCELAINCIDENCIACONFIGEVENTO_PURGE=\"CANCELAINCIDENCIACONFIGEVENTO_PURGE\";\n\nexport const UPDATEINCIDENCIASCONFIG_SUCCESS=\"UPDATEINCIDENCIASCONFIG_SUCCESS\";\nexport const UPDATEINCIDENCIASCONFIG_ERROR=\"UPDATEINCIDENCIASCONFIG_ERROR\";\nexport const UPDATEINCIDENCIASCONFIG_PURGE=\"UPDATEINCIDENCIASCONFIG_PURGE\";\n\n//CONF INCIDENCIAS RAZONES\nexport const GETINCIDENCIASRAZONES_SUCCESS=\"GETINCIDENCIASRAZONES_SUCCESS\";\nexport const GETINCIDENCIASRAZONES_ERROR=\"GETINCIDENCIASRAZONES_ERROR\";\nexport const GETINCIDENCIASRAZONES_PURGE=\"GETINCIDENCIASRAZONES_PURGE\";\n\nexport const GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS=\"GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS\";\nexport const GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR=\"GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR\";\nexport const GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE=\"GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE\";\n\n//CONF TBFALTA\nexport const GETTBFALTA_SUCCESS=\"GETTBFALTA_SUCCESS\";\nexport const GETTBFALTA_ERROR=\"GETTBFALTA_ERROR\";\nexport const GETTBFALTA_PURGE=\"GETTBFALTA_PURGE\";\n\nexport const INSERTTBFALTA_SUCCESS=\"INSERTTBFALTA_SUCCESS\";\nexport const INSERTTBFALTA_ERROR=\"INSERTTBFALTA_ERROR\";\nexport const INSERTTBFALTA_PURGE=\"INSERTTBFALTA_PURGE\";\n\nexport const DELETETBFALTA_SUCCESS=\"DELETETBFALTA_SUCCESS\";\nexport const DELETETBFALTA_ERROR=\"DELETETBFALTA_ERROR\";\nexport const DELETETBFALTA_PURGE=\"DELETETBFALTA_PURGE\";\n\nexport const UPDATETBFALTA_SUCCESS=\"UPDATETBFALTA_SUCCESS\";\nexport const UPDATETBFALTA_ERROR=\"UPDATETBFALTA_ERROR\";\nexport const UPDATETBFALTA_PURGE=\"UPDATETBFALTA_PURGE\";\n\nexport const AFILINDIVIDUALIZADO_SUCCESS=\"AFILINDIVIDUALIZADO_SUCCESS\";\nexport const AFILINDIVIDUALIZADO_ERROR=\"AFILINDIVIDUALIZADO_ERROR\";\nexport const AFILINDIVIDUALIZADO_PURGE = \"AFILINDIVIDUALIZADO_PURGE\";\n\nexport const GETTBAUTORIZADORFIJO_SUCCESS = \"GETTBAUTORIZADORFIJO_SUCCESS\";\nexport const GETTBAUTORIZADORFIJO_ERROR = \"GETTBAUTORIZADORFIJO_ERROR\";\nexport const GETTBAUTORIZADORFIJO_PURGE = \"GETTBAUTORIZADORFIJO_PURGE\";\n\nexport const INSERTTBAUTORIZADORFIJO_SUCCESS = \"INSERTTBAUTORIZADORFIJO_SUCCESS\";\nexport const INSERTTBAUTORIZADORFIJO_ERROR = \"INSERTTBAUTORIZADORFIJO_ERROR\";\nexport const INSERTTBAUTORIZADORFIJO_PURGE = \"INSERTTBAUTORIZADORFIJO_PURGE\";\n\nexport const DELETETBAUTORIZADORFIJO_SUCCESS = \"DELETETBAUTORIZADORFIJO_SUCCESS\";\nexport const DELETETBAUTORIZADORFIJO_ERROR = \"DELETETBAUTORIZADORFIJO_ERROR\";\nexport const DELETETBAUTORIZADORFIJO_PURGE = \"DELETETBAUTORIZADORFIJO_PURGE\";\n\nexport const UPDATETBAUTORIZADORFIJO_SUCCESS = \"UPDATETBAUTORIZADORFIJO_SUCCESS\";\nexport const UPDATETBAUTORIZADORFIJO_ERROR = \"UPDATETBAUTORIZADORFIJO_ERROR\";\nexport const UPDATETBAUTORIZADORFIJO_PURGE = \"UPDATETBAUTORIZADORFIJO_PURGE\";\n// CARGA ARCHIVOS PERSONALES\n\nexport const DOCUMENT_TYPE_SUCCESS = 'DOCUMENT_TYPE_SUCCESS';\nexport const DOCUMENT_TYPE_ERROR = 'DOCUMENT_TYPE_ERROR';\nexport const DOCUMENT_TYPE_PURGE = 'DOCUMENT_TYPE_PURGE';\n\nexport const CONSULTA_ARCHIVOPERSO_SUCCESS = 'CONSULTA_ARCHIVOPERSO_SUCCESS';\nexport const CONSULTA_ARCHIVOPERSO_ERROR = 'CONSULTA_ARCHIVOPERSO_ERROR';\nexport const CONSULTA_ARCHIVOPERSO_PURGE = 'CONSULTA_ARCHIVOPERSO_PURGE';\n\nexport const SAVE_ARCHIVOPERSO_SUCCESS = 'SAVE_ARCHIVOPERSO_SUCCESS';\nexport const SAVE_ARCHIVOPERSO_ERROR = 'SAVE_ARCHIVOPERSO_ERROR';\nexport const SAVE_ARCHIVOPERSO_PURGE = 'SAVE_ARCHIVOPERSO_PURGE';\n\nexport const DELETE_PERSOFILES_SUCCESS = 'DELETE_PERSOFILES_SUCCESS';\nexport const DELETE_PERSOFILES_ERROR = 'DELETE_PERSOFILES_ERROR';\nexport const DELETE_PERSOFILES_PURGE = 'DELETE_PERSOFILES_PURGE';\n\n//REPORTE INCIDENCIAS\n\nexport const INCIDENTS_REPORT_SUCCESS = 'INCIDENTS_REPORT_SUCCESS';\nexport const INCIDENTS_REPORT_ERROR = 'INCIDENTS_REPORT_ERROR';\nexport const INCIDENTS_REPORT_PURGE = 'INCIDENTS_REPORT_PURGE';\n\nexport const ACTUALIZAUSUARIO_SUCCESS = \"ACTUALIZAUSUARIO_SUCCESS\";\nexport const ACTUALIZAUSUARIO_ERROR = \"ACTUALIZAUSUARIO_ERROR\";\nexport const ACTUALIZAUSUARIO_PURGE = \"ACTUALIZAUSUARIO_PURGE\";\n\nexport const ELIMINAUSUARIO_SUCCESS = \"ELIMINAUSUARIO_SUCCESS\";\nexport const ELIMINAUSUARIO_ERROR = \"ELIMINAUSUARIO_ERROR\";\nexport const ELIMINAUSUARIO_PURGE = \"ELIMINAUSUARIO_PURGE\";\n\n// RESPUESTA BUZON QUEJAS\n\nexport const QUEJA_RESPUESTA_SUCCESS = 'QUEJA_RESPUESTA_SUCCESS';\nexport const QUEJA_RESPUESTA_ERROR = 'QUEJA_RESPUESTA_ERROR';\nexport const QUEJA_RESPUESTA_PURGE = 'QUEJA_RESPUESTA_PURGE';\n\n\n// CANCELACION INCIDENCIAS\n\nexport const AUTHORIZE_CANCEL_INCIDENTS_SUCCESS = 'AUTHORIZE_CANCEL_INCIDENTS_SUCCESS';\nexport const AUTHORIZE_CANCEL_INCIDENTS_ERROR = 'AUTHORIZE_CANCEL_INCIDENTS_ERROR';\nexport const AUTHORIZE_CANCEL_INCIDENTS_PURGE = 'AUTHORIZE_CANCEL_INCIDENTS_PURGE';\n\n\nexport const REJECT_CANCEL_INCIDENTS_SUCCESS = 'REJECT_CANCEL_INCIDENTS_SUCCESS';\nexport const REJECT_CANCEL_INCIDENTS_ERROR = 'REJECT_CANCEL_INCIDENTS_ERROR';\nexport const REJECT_CANCEL_INCIDENTS_PURGE = 'REJECT_CANCEL_INCIDENTS_PURGE';\n\n// DESCARGA MASIVA RECIBOS\nexport const GENERATED_MASSIVE_RECEIPT_SUCCESS = 'GENERATED_MASSIVE_RECEIPT_SUCCESS';\nexport const GENERATED_MASSIVE_RECEIPT_ERROR = 'GENERATED_MASSIVE_RECEIPT_ERROR';\nexport const GENERATED_MASSIVE_RECEIPT_PURGE = 'GENERATED_MASSIVE_RECEIPT_PURGE';\n\n// FILTROS DESCARGA RECIBO\nexport const EMPLOYEE_CATALOG_SUCCESS = \"EMPLOYEE_CATALOG_SUCCESS\";\nexport const EMPLOYEE_CATALOG_ERROR = \"EMPLOYEE_CATALOG_ERROR\";\nexport const EMPLOYEE_CATALOG_PURGE = \"EMPLOYEE_CATALOG_PURGE\";\n\nexport const GET_FECHAS_VALIDAS_SUCESS = \"GET_FECHAS_VALIDAS_SUCESS\";\nexport const GET_FECHAS_VALIDAS_ERROR = \"GET_FECHAS_VALIDAS_ERROR\";\nexport const GET_FECHAS_VALIDAS_PURGE = \"GET_FECHAS_VALIDAS_PURGE\";","import { changeXml, dataUserResponse } from '../../endpoints';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DATA_USER_SUCCESS,\n DATA_USER_ERROR,\n DATA_USER_PURGE\n} from '../../types'\n\n\nexport const getDataUserAction = (data, server) => {\n let configJson = {\n 'tem:DatosPersonales': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DatosPersonales\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DATA_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n response = {\n isOK: true,\n DataUser: dataUserResponse(body)\n }\n\n Object.keys(response.DataUser).forEach((item, i) => {\n if (typeof (response.DataUser[item]) == 'object') {\n Object.keys(response.DataUser[item]).forEach((item2, j) => {\n Object.keys(response.DataUser[item][item2]).forEach((item3, k) => {\n if (item3 == 'i:nil') {\n const response = {\n isOK: false,\n error: 'Null items'\n }\n console.log('ERROR GET DATA_USER DATA: ', response);\n dispatch({ type: DATA_USER_ERROR, payload: response })\n }\n });\n });\n\n }\n });\n\n console.log('RESPONSE DATA_USER DATA: ', response);\n dispatch({ type: DATA_USER_SUCCESS, payload: response })\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DATA_USER DATA: ', response);\n dispatch({ type: DATA_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DATA_USER DATA: ', responseError);\n dispatch({ type: DATA_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","export const ValidationNoAuthorization = (value) => {\n console.log('VALIDATEEE', value)\n let have = false\n let data = JSON.stringify(value)\n let error = null\n let reset = false\n if (data.includes('Acceso no autorizado')) {\n reset = true\n have = true\n error = ['Acceso no autorizado']\n } \n else if (data.includes('a:ErrorMsg\":[{\"$\":{\"i:nil\":\"true\"}}]') || data.includes('\"a:ErrorMsg\":[\"\"]')) {\n error = ['NO ERRORS']\n } \n else if (data.includes('\"a:ErrorMsg\"')) {\n console.log('data', data);\n let firstStr = '\"a:ErrorMsg\"'\n let finalStr = '\"]'\n let indexStart = data.search(firstStr);\n let partStr = data.substr(indexStart + firstStr.length + 3);\n let errorStr = partStr.split(finalStr)[0];\n\n console.log('errorStr', errorStr);\n have = true\n error = [errorStr]\n if (error[0] === 'Acceso no autorizado') {\n reset = true\n }\n } \n else {\n error = ['NO ERRORS']\n }\n\n if (data.includes('s:Fault')) {\n reset = false\n have = true\n error = ['Fallo del servicio']\n if (value && 's:Fault' in value) {\n const fault = value['s:Fault'][0]\n if (fault && 'faultcode' in fault && fault['faultcode'].length > 0) {\n const faultstring = fault['faultstring'][0]\n if (faultstring && '_' in faultstring) {\n let messageFault = 'Fallo del servicio \\n\\n' + faultstring['_']\n error = [messageFault]\n console.log('VALIDATE FAULT', messageFault)\n }\n }\n }\n }\n\n\n let result = {\n haveError: have,\n error: error[0],\n reset: reset\n }\n console.log('VALIDATE', result)\n return result\n}\n","import { changeXml, loginResponse } from '../../endpoints';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n LOGIN_SUCCESS,\n LOGIN_ERROR,\n LOGIN_PURGE\n} from '../../types'\n\n\nexport const getLoginAction = (data, server) => {\n let configJson = {\n 'tem:LoginV2': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/LoginV2\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: LOGIN_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n console.log('XML', xml);\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n response = {\n isOK: true,\n Login: loginResponse(body)\n }\n\n console.log('RESPONSE LOGIN DATA: ', response);\n dispatch({ type: LOGIN_SUCCESS, payload: response })\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET LOGIN DATA: ', response);\n dispatch({ type: LOGIN_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET LOGIN DATA: ', responseError);\n dispatch({ type: LOGIN_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import CryptoJS from 'crypto-js';\n\nexport const getParams = () => {\n let params = sessionStorage.getItem('params');\n let others_params = sessionStorage.getItem('others_params');\n\n if (params == null) {\n // alert('Ha expirado la sesión. Por favor inicia sesión de nuevo.');\n return true;\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n others_params = CryptoJS.AES.decrypt(others_params, process.env.REACT_APP_HASH_SECRET);\n others_params = JSON.parse(others_params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n return {\n server: server,\n params: params,\n others_params: others_params\n };\n }\n};\n\nexport const getUserType = () => {\n let params = sessionStorage.getItem('userType');\n\n if (params == null) {\n return 0;\n }\n else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n if (params['typeUser']) {\n return params['typeUser'];\n }\n else {\n return 0;\n }\n } \n};\n\nexport const getEmployeeType = () => {\n let params = sessionStorage.getItem('employeeType');\n\n if (params == null) {\n return null;\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n return params;\n }\n};\n\nexport const getAuthorizerType = () => {\n let params = sessionStorage.getItem('authorizerType');\n\n if (params == null) {\n return null;\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n if (params == '1' || params == '2')\n return params;\n else\n return null;\n }\n};\n\nexport const getSesionStorage = (param) => {\n let params = sessionStorage.getItem(param);\n\n if (params == null) {\n return null;\n } \n else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n return params;\n }\n};\n\nexport const getInfoUserLogin = () => {\n let params = sessionStorage.getItem('InfoUserLogin');\n\n if (params == null) {\n return null;\n } \n else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n return params;\n }\n};\n\nexport const getDatesInRange = (start, end) => {\n if (end) {\n for (var arr = [], dt = new Date(start); dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n return arr;\n }\n return [];\n};\n\nexport const groupFieldOfArray = (array, field) => {\n let names = [];\n\n if ((array || []).length > 0) {\n array.map((item, i) => {\n if (!names.includes(item[field])) {\n names.push(item[field]);\n }\n });\n }\n\n return names;\n};\n\nexport const transformaUrl = (url) => {\n //let copy = localStorage.getItem(\"REACT_APP_CLIENT_SERVER\").toLowerCase();\n let copy = localStorage.getItem(\"REACT_APP_VACATIONS\").toLowerCase();\n copy = copy.replace(\"wcfkioscosicoss.svc\", \"\").replace(\"wcfkioscosicoss.svc?wsdl\", \"\");\n\n var arr = url.split(\"/\");\n if (arr.length > 0) {\n return copy + arr[arr.length - 1];\n }\n\n return url;\n};\n\nexport const openLink = (url) => {\n let arr = url.split(\"/\");\n let name = arr[arr.length - 1];\n let link = document.createElement(\"a\");\n link.setAttribute('target', '_blank');\n link.setAttribute('download', name);\n link.href = url;\n document.body.appendChild(link);\n link.click();\n link.remove();\n};","import React from 'react';\nimport swal from '@sweetalert/with-react';\n// import logo from '../../utils/images/logoSic.png';\n\nexport const alert = (msg, modeDetail = false) => {\n const logo = process.env.PUBLIC_URL + '/assets/images/logoSic.png';\n\n console.log('OIHB msg', modeDetail, msg);\n let details = <>;\n if (modeDetail) {\n details = <>\n {msg.description}\n {(msg.details || []).map(item => { return <>
{item} })}\n \n }\n\n let body = \n \n

{modeDetail ? details : msg}

\n
;\n\n return swal({\n content: body,\n button: 'OK'\n })\n}\n\nexport const confirm = (msg, buttons = null) => {\n\n let body = \n \n

{msg}

\n
;\n\n if (buttons == null){\n return swal({\n content: body,\n buttons: true,\n dangerMode: true,\n closeOnClickOutside: false,\n })\n }\n else\n {\n return swal({\n content: body,\n buttons: buttons,\n dangerMode: true,\n closeOnClickOutside: false,\n })\n }\n}","import React, { useEffect, useState, useRef } from \"react\";\nimport { connect } from \"react-redux\";\n//import logoIcon from '../../assets/images/logo-icon.png';\n//import logoLightIcon from '../../assets/images/logo-light-icon.png';\n//import logoText from '../../assets/images/logo-text.png';\n//import logoLightText from '../../assets/images/logo-light-text.png';\n//import defaultUser from '../../assets/images/users/1.jpg';\nimport { Link, withRouter } from \"react-router-dom\";\nimport { getDataUserAction } from \"../../api/actions/common/DataUserAction.js\";\nimport { getImageUserAction } from \"../../api/actions/common/ImageUserAction.js\";\nimport { sendImageAction } from \"../../api/actions/common/UploadImageResponse\";\nimport { getLoginAction } from \"../../api/actions/common/LoginAction.js\";\nimport CryptoJS from \"crypto-js\";\nimport Resizer from \"react-image-file-resizer\";\n\nimport { getParams } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\nimport { mdiAbTesting } from \"@mdi/js\";\n\nconst Topbar = (props) => {\n const logoIcon = process.env.PUBLIC_URL + '/assets/images/logo-icon.png';\n const logoLightIcon = process.env.PUBLIC_URL + '/assets/images/logo-light-icon.png';\n const logoText = process.env.PUBLIC_URL + '/assets/images/logo-text.png';\n const logoLightText = process.env.PUBLIC_URL + '/assets/images/logo-light-text.png';\n const defaultUser = process.env.PUBLIC_URL + '/assets/images/users/1.jpg';\n\n const [loading, setLoading] = useState(true);\n const [user, setUser] = useState(false);\n const [company, setCompany] = useState(null);\n const [image, setImage] = useState(null);\n const [isMenuCollapsed, setIsMenuCollapsed] = useState(false);\n const uploadFile = useRef();\n\n useEffect(() => {\n window.$(\".fix-header .topbar\").stick_in_parent({});\n \n let user = sessionStorage.getItem(\"userSaved\");\n let { params, server } = getParams();\n\n if (\n params != null &&\n params != undefined &&\n user != null &&\n user != undefined\n ) {\n setUser(JSON.parse(user));\n setCompany(params[\"tem:IdEmpresa\"]);\n\n if (props.init != undefined && props.init) {\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n if (props.typeUserSelected == 1 || props.typeUserSelected == 2)\n props.getDataUserAction(params, server);\n }\n\n if (!props.imageUserData || props.imageUserData.isOK !== true) {\n props.getImageUserAction(\"PURGE\", \"\");\n\n params = {\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n props.getImageUserAction(params, server);\n }\n }\n }, []);\n\n useEffect(() => {\n if (\n props.dataUserData != undefined &&\n props.imageUserData.ImageUser != undefined\n ) {\n if (\n props.imageUserData.ImageUser.image != \"\" &&\n props.imageUserData.ImageUser.image != null\n ) {\n setImage(\n \"data:image/png;base64,\" + props.imageUserData.ImageUser.image\n );\n }\n setLoading(false);\n }\n }, [\n props.dataUserData,\n props.dataUserError,\n props.imageUserData,\n props.imageUserError,\n ]);\n\n useEffect(() => {\n if (props.uploadImageData && props.uploadImageData.isOK === true) {\n props.getImageUserAction(\"PURGE\", \"\");\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n props.getImageUserAction(params, server);\n } else if (\n props.uploadImageError &&\n props.uploadImageError.isOK === false\n ) {\n alert(\"Parece que hubo un error. Intentalo de nuevo con otra imagen.\");\n props.sendImageAction(\"PURGE\", \"\");\n }\n }, [props.uploadImageData, props.uploadImageError]);\n\n const handleLogOut = () => {\n props.getLoginAction(\"PURGE\", \"\");\n sessionStorage.clear();\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n };\n\n const handleUploadFile = () => {\n uploadFile.current.click();\n };\n\n const handleChangeImage = async (e) => {\n props.sendImageAction(\"PURGE\", \"\");\n\n let file = e.target.files[0];\n\n Resizer.imageFileResizer(\n file,\n 200,\n 200,\n \"JPEG\",\n 100,\n 0,\n (uri) => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:foto\": uri.replace(\"data:image/jpeg;base64,\", \"\"),\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:trab_id\": params[\"tem:TrabID\"],\n };\n\n props.sendImageAction(params, server);\n },\n \"base64\",\n 25,\n 25\n );\n\n // let base64 = await toBase64(file);\n };\n\n const toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\n const _handleUserImage = () => {\n if (image == null) {\n return \"user\";\n } else {\n return \"user\";\n }\n };\n\n if (user == false) {\n return (\n \n \n \n );\n } else {\n return (\n
\n \n
\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n\n imageUserData: state.ImageUser.imageUserData,\n imageUserError: state.ImageUser.imageUserError,\n\n typeUserSelected: state.changeUserType.typeUserSelected,\n\n uploadImageData: state.uploadImage.uploadImageData,\n uploadImageError: state.uploadImage.uploadImageError,\n };\n};\n\nconst mapDispatchToProps = {\n getDataUserAction,\n getImageUserAction,\n getLoginAction,\n sendImageAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Topbar));\n","import { changeXml, imageResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n IMAGE_USER_SUCCESS,\n IMAGE_USER_ERROR,\n IMAGE_USER_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getImageUserAction = (data, server) => {\n let configJson = {\n 'tem:EmpleadoFoto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/EmpleadoFoto\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: IMAGE_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET IMAGE_USER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: IMAGE_USER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ImageUser: imageResponse(body)\n }\n\n console.log('RESPONSE IMAGE_USER DATA: ', response);\n dispatch({ type: IMAGE_USER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET IMAGE_USER DATA: ', response);\n dispatch({ type: IMAGE_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET IMAGE_USER DATA: ', responseError);\n dispatch({ type: IMAGE_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, UploadImageResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n UPLOAD_IMAGE_SUCCESS,\n UPLOAD_IMAGE_ERROR,\n UPLOAD_IMAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const sendImageAction = (data, server) => {\n\n let configJson = {\n 'tem:SubirFoto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SubirFoto\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: UPLOAD_IMAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET UPLOAD_IMAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: UPLOAD_IMAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ImageResponse: UploadImageResponse(body)\n }\n\n console.log('RESPONSE UPLOAD_IMAGE DATA: ', response);\n dispatch({ type: UPLOAD_IMAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET UPLOAD_IMAGE DATA: ', response);\n dispatch({ type: UPLOAD_IMAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET UPLOAD_IMAGE DATA: ', responseError);\n dispatch({ type: UPLOAD_IMAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from 'react';\n\n\nconst useScript = (src) => {\n\n src = process.env.PUBLIC_URL + src;\n\n let cachedScripts = [];\n // Keeping track of script loaded and error state\n const [state, setState] = useState({\n loaded: false,\n error: false\n });\n\n useEffect(\n () => {\n // If cachedScripts array already includes src that means another instance ...\n // ... of this hook already loaded this script, so no need to load again.\n if (cachedScripts.includes(src)) {\n setState({\n loaded: true,\n error: false\n });\n } else {\n cachedScripts.push(src);\n\n // Create script\n let script = document.createElement('script');\n script.src = src;\n script.async = true;\n\n // Script event listener callbacks for load and error\n const onScriptLoad = () => {\n setState({\n loaded: true,\n error: false\n });\n };\n\n const onScriptError = () => {\n // Remove from cachedScripts we can try loading again\n const index = cachedScripts.indexOf(src);\n if (index >= 0) cachedScripts.splice(index, 1);\n script.remove();\n\n setState({\n loaded: true,\n error: true\n });\n };\n\n script.addEventListener('load', onScriptLoad);\n script.addEventListener('error', onScriptError);\n\n // Add script to document body\n document.body.appendChild(script);\n\n // Remove event listeners on cleanup\n return () => {\n script.removeEventListener('load', onScriptLoad);\n script.removeEventListener('error', onScriptError);\n };\n }\n },\n [src] // Only re-run effect if script src changes\n );\n\n return [state.loaded, state.error];\n}\n\nexport default useScript;\n","import React from 'react';\nimport useScript from '../../hooks/useScript.js';\nimport { Link } from 'react-router-dom';\n\nconst Title = ({path=\"\", actual, icon=\"mdi mdi-chart-bar\", redirect=`${process.env.PUBLIC_URL}/`}) => {\n\n useScript('/assets/js/custom.js');\n \n\n return (\n
\n
\n

{ path == '' ? actual.toUpperCase() : path.toUpperCase() }

\n
\n
\n
    \n { path != null &&
  1. { path.charAt(0).toUpperCase() + path.slice(1) }
  2. }\n
  3. { actual.charAt(0).toUpperCase() + actual.slice(1) }
  4. \n
\n
\n
\n {(localStorage.getItem(\"REACT_APP_TEMA_COLOR_FIJO\") || \"\").toString().trim().length == 0 && \n \n }\n
\n
\n );\n};\n\nexport default Title;\n","import React, { useState, useEffect } from 'react';\nimport useScript from '../../hooks/useScript';\nimport { useIdleTimer } from 'react-idle-timer';\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\nimport { getVersionAction } from '../../api/endpoints';\n\nconst Footer = props => {\n \n const [versionWcf, setVersionWcf] = useState({ respuesta: '', version: '' });\n\n useEffect(() => {\n getVersionWcf();\n }, []);\n\n const getVersionWcf = async () => {\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n let request = await getVersionAction('', server);\n if (request && request.isOK) { \n setVersionWcf(request.GetVersion);\n }\n else {\n setVersionWcf({ respuesta: '', version: 'XXXX.XX.XX.XX' });\n }\n };\n\n useScript('/assets/plugins/styleswitcher/jQuery.style.switcher.js');\n\n return (\n <>\n
\n
\n
AJUSTES
\n
\n
    \n
  • Modo Regular
  • \n
  • 1
  • \n
  • 2
  • \n
  • 3
  • \n
  • 4
  • \n
  • 5
  • \n
  • 6
  • \n
  • 13
  • \n
  • Modo Oscuro
  • \n
  • 7
  • \n
  • 8
  • \n
  • 9
  • \n
  • 10
  • \n
  • 11
  • \n
  • 12
  • \n
\n
\n
\n
\n\n
\n
\n
\n © {new Date().getFullYear()} TODOS LOS DERECHOS RESERVADOS. SOFTWARE SICOSS® v{process.env.REACT_APP_VERSION_CODE}-{versionWcf.version}\n
\n
\n {/* DESARROLLADO POR: KIMO SOLUTIONS */}\n
\n
\n
\n \n );\n};\n\nexport default Footer;\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getUrlEncuestaAction } from '../../api/actions/common/UrlEncuestaAction';\nimport { validateEncuestaAction } from '../../api/actions/common/ValidateEncuestaAction';\n\nimport ReactIframeResizer from 'react-iframe-resizer-super';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Sibalance = props => {\n\n const iframeResizerOptions = { checkOrigin: false };\n\n const [loading, setLoading] = useState(true);\n const [url, setUrl] = useState(null);\n const [height, setHeight] = useState(0);\n\n useEffect(() => {\n\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let encuesta = props.survey;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Encuesta': {\n 'sic:Centro_ID': encuesta.Centro_ID,\n 'sic:Concluida': encuesta.Concluida,\n 'sic:Depto_ID': encuesta.Depto_ID,\n 'sic:Email': encuesta.Email,\n 'sic:Encuesta': encuesta.Encuesta,\n 'sic:EncuestaLink': encuesta.EncuestaLink,\n 'sic:Encuesta_ID': encuesta.Encuesta_ID,\n 'sic:FechaEnvio': encuesta.FechaEnvio,\n 'sic:Puesto_ID': encuesta.Puesto_ID,\n 'sic:Survey_ID': encuesta.Survey_ID,\n 'sic:Trab_ID': encuesta.Trab_ID,\n 'sic:Ubicacion_ID': encuesta.Ubicacion_ID\n }\n }\n\n props.getUrlEncuestaAction(params, server);\n\n }\n }, []);\n\n const redirectoToHome = () => {\n setTimeout(() => {\n document.location.href = `${process.env.PUBLIC_URL}/`;\n }, 1000);\n };\n\n const validateAnswers = () => {\n\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n\n let encuesta = props.survey;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Encuesta': {\n 'sic:Centro_ID': encuesta.Centro_ID,\n 'sic:Concluida': encuesta.Concluida,\n 'sic:Depto_ID': encuesta.Depto_ID,\n 'sic:Email': encuesta.Email,\n 'sic:Encuesta': encuesta.Encuesta,\n 'sic:EncuestaLink': encuesta.EncuestaLink,\n 'sic:Encuesta_ID': encuesta.Encuesta_ID,\n 'sic:FechaEnvio': encuesta.FechaEnvio,\n 'sic:Puesto_ID': encuesta.Puesto_ID,\n 'sic:Survey_ID': encuesta.Survey_ID,\n 'sic:Trab_ID': encuesta.Trab_ID,\n 'sic:Ubicacion_ID': encuesta.Ubicacion_ID\n }\n }\n\n props.validateEncuestaAction(params, server);\n\n }\n }\n\n useEffect(() => {\n if (props.urlEncuestaData && props.urlEncuestaData.isOK === true) {\n if (props.urlEncuestaData.UrlEncuesta.substr(0, 4) == 'http') {\n setUrl(props.urlEncuestaData.UrlEncuesta);\n setLoading(false);\n\n } else {\n alert('La URL de la encuesta no es valida. Por favor consulte a su administrador.');\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n return;\n }\n console.log('URL_ENCUESTA', props.urlEncuestaData.UrlEncuesta);\n }\n }, [props.urlEncuestaData]);\n\n useEffect(() => {\n if (props.validateEncuestaData && props.validateEncuestaData.isOK === true && props.validateEncuestaData.ValidateEncuestas) {\n setLoading(true);\n setUrl(null);\n redirectoToHome();\n } else if (props.validateEncuestaData.ValidateEncuestas == false || props.validateEncuestaData.isOK === false) {\n alert('Error 500. Oops! parace que ocurrio un error. Por favor intenta de nuevo más tarde.');\n props.validateEncuestaAction('PURGE', '');\n //setLoading(true);\n setUrl(null);\n }\n }, [props.validateEncuestaData]);\n\n const resize = () => {\n var the_height = 1200;\n setHeight(the_height + 100);\n }\n\n if (loading) {\n return (\n <>\n \n \n \n
\n \n
\n \n );\n } else {\n return (\n
\n \n
\n \n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n marginTop: -29 + 'px',\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0,\n overflowY: 'scroll'\n }}>\n <iframe title=\"Si-Balance\" src={url} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe> \n </div>\n <br />\n <div className=\"d-flex justify-content-center\">\n <button className=\"btn btn-success\" onClick={validateAnswers} style={{ color: 'white', zIndex: 1 }} >Ya he Contestado</button>\n </div>\n <br />\n <Footer />\n </div>\n </div>\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n siBalanceData: state.siBalance.siBalanceData,\n siBalanceError: state.siBalance.siBalanceError,\n\n urlEncuestaData: state.urlEncuesta.urlEncuestaData,\n urlEncuestaError: state.urlEncuesta.urlEncuestaError,\n\n validateEncuestaData: state.validateEncuesta.validateEncuestaData,\n validateEncuestaError: state.validateEncuesta.validateEncuestaError,\n };\n};\n\nconst mapDispatchToProps = {\n getUrlEncuestaAction,\n validateEncuestaAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Sibalance));\n","import { changeXmlSic, UrlEncuestaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n URL_ENCUESTA_SUCCESS,\n URL_ENCUESTA_ERROR,\n URL_ENCUESTA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\nexport const getUrlEncuestaAction = (data, server) => {\n let configJson = {\n 'tem:obtenerURLEncuestaApp': {\n ...data\n }\n }\n\n let obj = changeXmlSic(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/obtenerURLEncuestaApp\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: URL_ENCUESTA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET URL_ENCUESTA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: URL_ENCUESTA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n UrlEncuesta: UrlEncuestaResponse(body)\n }\n\n console.log('RESPONSE URL_ENCUESTA DATA: ', response);\n dispatch({ type: URL_ENCUESTA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET URL_ENCUESTA DATA: ', response);\n dispatch({ type: URL_ENCUESTA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET URL_ENCUESTA DATA: ', responseError);\n dispatch({ type: URL_ENCUESTA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXmlSic, ValidateEncuestaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VALIDATE_ENCUESTA_SUCCESS,\n VALIDATE_ENCUESTA_ERROR,\n VALIDATE_ENCUESTA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const validateEncuestaAction = (data, server) => {\n let configJson = {\n 'tem:acualizaContestadaAPP': {\n ...data\n }\n }\n\n let obj = changeXmlSic(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/acualizaContestadaAPP\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VALIDATE_ENCUESTA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET VALIDATE_ENCUESTA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VALIDATE_ENCUESTA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ValidateEncuestas: ValidateEncuestaResponse(body)\n }\n\n console.log('RESPONSE VALIDATE_ENCUESTA DATA: ', response);\n dispatch({ type: VALIDATE_ENCUESTA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VALIDATE_ENCUESTA DATA: ', response);\n dispatch({ type: VALIDATE_ENCUESTA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VALIDATE_ENCUESTA DATA: ', responseError);\n dispatch({ type: VALIDATE_ENCUESTA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, SiBalanceResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SI_BALANCE_SUCCESS,\n SI_BALANCE_ERROR,\n SI_BALANCE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getSiBalanceAction = (data, server) => {\n let configJson = {\n 'tem:ListadoEncuestasApp': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ListadoEncuestasApp\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SI_BALANCE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SI_BALANCE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SI_BALANCE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SiBalanceList: SiBalanceResponse(body)\n }\n\n console.log('RESPONSE SI_BALANCE DATA: ', response);\n dispatch({ type: SI_BALANCE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SI_BALANCE DATA: ', response);\n dispatch({ type: SI_BALANCE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SI_BALANCE DATA: ', responseError);\n dispatch({ type: SI_BALANCE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, periodosNomina } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NOMINA_SUCCESS,\n NOMINA_ERROR,\n NOMINA_PURGE,\n VALIDATE_ERROR\n} from '../../types'\nimport axios from 'axios';\n\nexport const getPeriodosNominaAction = (data, server) => {\n let configJson = {\n 'tem:PeriodosNomina2': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PeriodosNomina2\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NOMINA_PURGE, payload: 'PURGE' })\n } else {\n // data = {\n // \"tem:iteraciones\": \"1\"//25, 50 \n // }\n\n // configJson = {\n // 'tem:Yoyo': {\n // ...data\n // }\n // }\n\n // obj = changeXml(configJson);\n\n // config = {\n // method: 'POST',\n // body: obj,\n // headers: {\n // 'Content-Type': 'text/xml',\n // 'SOAPAction': \"http://tempuri.org/IService1/Yoyo\",\n // 'Access-Control-Allow-Origin': '*',\n // 'Server': \"http://app.gruposicoss.com.mx/TestCors/Service1.svc\"\n // },\n // };\n\n // server = \"http://app.gruposicoss.com.mx/TestCors/Service1.svc\"\n\n // console.log('OIHB SOAP XML', obj)\n // console.log('OIHB SOAP XML', config)\n\n // fetch(server, config)\n // .then(response => response.text())\n // .then((xml) => {\n // console.log('OIHB READY', xml)\n // const responseError = {\n // isOK: false,\n // error: \"NA\"\n // }\n // dispatch({ type: NOMINA_ERROR, payload: responseError })\n // })\n // .catch((error) => {\n // const responseError = {\n // isOK: false,\n // error: error\n // }\n // console.log('OIHB EXCEPTION: ', responseError);\n // dispatch({ type: NOMINA_ERROR, payload: responseError })\n // })\n\n console.log('SERVER IS', server)\n console.log('WEB API IS', localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"))\n console.log('PRE-SOAP XML', configJson)\n console.log('SOAP XML', obj)\n\n let raServer = (process.env.REACT_APP_OTHER_SERVER || \"\").trim()\n if (raServer.length > 0) \n {\n let svrAction = raServer + \"weatherforecast/PeriodosNomina2\"\n let objData = {\n urlServer: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"), \n token: data['tem:sToken'], \n trabID: data['tem:TrabID'], \n idEmpresa: data['tem:IdEmpresa']\n }\n console.log('objData', objData)\n \n axios.post(svrAction, null, { params: objData }).then(response => response)\n .then(data => {\n //console.log('OIHB EXITO', data)\n let response = {}\n if (data.data) {\n // console.log('OIHB DATA RESPONSE', data.data)\n // console.log('OIHB DATA RESPONSE', data.data.periodosNomina)\n\n response = {\n isOK: true,\n Nomina: data.data.periodosNomina.map((responseObj) => {\n return {\n ano: responseObj[\"ano\"] || \"\",\n diasTrabajados: responseObj[\"diasTrabajados\"] || \"\",\n fechaFinal: responseObj[\"fechaFinal\"] || \"\",\n fechaInicio: responseObj[\"fechaInicio\"] || \"\",\n leido: responseObj[\"leido\"] || \"\",\n nombrePeriodo: responseObj[\"nombrePeriodo\"] || \"\",\n numeroPeriodo: responseObj[\"numPeriodo\"] || \"\",\n periodoID: responseObj[\"periodoID\"] || \"\",\n sdi: responseObj[\"sdi\"] || \"\",\n salario: responseObj[\"salario\"] || \"\",\n tipoNomina: responseObj[\"tipoNomina\"] || \"\",\n tipoNominaID: responseObj[\"tipoNominaID\"] || \"\",\n total: responseObj[\"total\"] || \"\",\n totalDeduccion: responseObj[\"totalDeduccion\"] || \"\",\n totalPercepcion: responseObj[\"totalPercepcion\"] || \"\",\n trabId: responseObj[\"trabID\"] || \"\",\n }\n })\n }\n\n console.log('RESPONSE NOMINA DATA: ', response);\n dispatch({ type: NOMINA_SUCCESS, payload: response })\n }\n else {\n response = {\n isOK: false,\n error: 'Datos truncados'\n }\n console.log('ERROR GET NOMINA DATA: ', response);\n dispatch({ type: NOMINA_ERROR, payload: response })\n }\n }).catch(error => {\n console.log('ERROR', error)\n dispatch({ type: NOMINA_ERROR, payload: {isOK: false, error: error} })\n });\n }\n else \n {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Nomina: periodosNomina(body)\n }\n\n console.log('RESPONSE NOMINA DATA: ', response);\n dispatch({ type: NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NOMINA DATA: ', response);\n dispatch({ type: NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NOMINA DATA: ', responseError);\n dispatch({ type: NOMINA_ERROR, payload: responseError })\n })\n }\n }\n }\n\n // return (dispatch) => {\n\n // if (data === 'PURGE') {\n // dispatch({ type: NOMINA_PURGE, payload: 'PURGE' })\n // } else {\n // fetch(server, config)\n // .then(response => response.text())\n // .then((xml) => {\n // parseString(xml, { trim: true }, (err, resultJson) => {\n // if (resultJson) {\n // let response = {}\n // let body = {}\n // if ('s:Envelope' in resultJson) {\n // const envelope = resultJson['s:Envelope']\n // if ('s:Body' in envelope) {\n // body = envelope['s:Body'][0];\n // if ('s:Fault' in body) {\n // console.log('ERROR DE RESPUESTA')\n // }\n\n // } else {\n // response = {\n // isOK: false,\n // error: 'No data'\n // }\n // }\n // }\n\n // let valid = ValidationNoAuthorization(body)\n // if (valid.haveError) {\n // const response = {\n // isOK: false,\n // error: valid.error\n // }\n // dispatch({ type: VALIDATE_ERROR, payload: valid })\n // dispatch({ type: NOMINA_ERROR, payload: response })\n // } else {\n // response = {\n // isOK: true,\n // Nomina: periodosNomina(body)\n // }\n\n // console.log('RESPONSE NOMINA DATA: ', response);\n // dispatch({ type: NOMINA_SUCCESS, payload: response })\n // }\n\n // }\n\n // if (err) {\n // const response = {\n // isOK: false,\n // error: err\n // }\n // console.log('ERROR GET NOMINA DATA: ', response);\n // dispatch({ type: NOMINA_ERROR, payload: response })\n // }\n // })\n // })\n // .catch((error) => {\n // const responseError = {\n // isOK: false,\n // error: error\n // }\n // console.log('ERROR NOT RESPONSE GET NOMINA DATA: ', responseError);\n // dispatch({ type: NOMINA_ERROR, payload: responseError })\n // })\n\n // }\n // }\n\n};\n","import { changeXml, EmployeeVacationsResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMPLOYEE_VACATIONS_SUCCESS,\r\n EMPLOYEE_VACATIONS_ERROR,\r\n EMPLOYEE_VACATIONS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getEmployeeVacationsAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetEmpleadosVacacionePendientes': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc';\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/GetEmpleadosVacacionePendientes\",\r\n 'Server': directServer //'https://www.softwaresicoss.com.mx/wsSICONSULTA_DEV/wcfKioscoVacaciones.svc'//localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST_EMPLOYEE_VACATIONS:', data, config, obj);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMPLOYEE_VACATIONS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMPLOYEE_VACATIONS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMPLOYEE_VACATIONS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n EmployeeVacations: EmployeeVacationsResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMPLOYEE_VACATIONS DATA: ', response);\r\n dispatch({ type: EMPLOYEE_VACATIONS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMPLOYEE_VACATIONS DATA: ', response);\r\n dispatch({ type: EMPLOYEE_VACATIONS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMPLOYEE_VACATIONS DATA: ', responseError);\r\n dispatch({ type: EMPLOYEE_VACATIONS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, vacationExpirationResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VACATIONS_EXPIRATION_SUCCESS,\r\n VACATIONS_EXPIRATION_ERROR,\r\n VACATIONS_EXPIRATION_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getVacationExpirationAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetVacaciones_Por_VencerEmpleado': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc';\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/GetVacaciones_Por_VencerEmpleado\",\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: VACATIONS_EXPIRATION_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n console.log('VACATIONS_EXPIRATION', body)\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET VACATIONS_EXPIRATION_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: VACATIONS_EXPIRATION_ERROR, payload: response })\r\n } else {\r\n const response = {\r\n isOK: true,\r\n VacationExpiration: vacationExpirationResponse(body)\r\n }\r\n\r\n console.log('RESPONSE VACATIONS_EXPIRATION DATA: ', response);\r\n dispatch({ type: VACATIONS_EXPIRATION_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VACATIONS_EXPIRATION DATA: ', response);\r\n dispatch({ type: VACATIONS_EXPIRATION_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VACATIONS_EXPIRATION DATA: ', responseError);\r\n dispatch({ type: VACATIONS_EXPIRATION_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, IncidentVacDataResponse} from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n INCIDENTS_REPORT_SUCCESS,\r\n INCIDENTS_REPORT_ERROR,\r\n INCIDENTS_REPORT_PURGE,\r\n VALIDATE_ERROR,\r\n } from '../../types';\r\n\r\nexport const getNotificacionCorreo = (data, server) => {\r\n let configJson = {\r\n \"tem:NotificaCorreoVencimientoVacaciones\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/NotificaCorreoVencimientoVacaciones\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: INCIDENTS_REPORT_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n NotificaCorreo: IncidentVacDataResponse(body),\r\n };\r\n\r\n console.log(\"RESPONSE INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET INCIDENTS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React, { useEffect, useState } from 'react'\nimport { connect } from 'react-redux';\nimport { getQrAction } from '../../api/actions/QrAction';\nimport CryptoJS from 'crypto-js';\nimport { withRouter } from 'react-router-dom';\nimport { getParams } from '../../utils';\n\nimport Modal from 'react-bootstrap/Modal';\nimport Button from 'react-bootstrap/Button';\n\nconst QRCode = props => {\n\n const [ qr, setQr ] = useState(null);\n const [showModalQR, setShowModalQR] = useState(false);\n\n useEffect(() => {\n // if( props.qrData.isOK !== true ){\n // props.getQrAction('PURGE', '');\n\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n params = {\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID']\n }\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getQrAction(params, server);\n\n }\n // }\n\n }, []);\n\n useEffect(() => {\n if( props.qrData.QrImage != undefined ){\n setQr('data:image/png;base64,' + props.qrData.QrImage);\n }\n }, [ props.qrData, props.qrError ]);\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBCodigoQR') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div className=\"modal fade qr-code\" tabIndex=\"-1\" role=\"dialog\" aria-labelledby=\"myLargeModalLabel\" aria-hidden=\"true\" style={{display: 'none'}}>\n <div className=\"modal-dialog modal-md\">\n <div className=\"modal-content\">\n <div className=\"modal-body text-center\">\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0,\n overflowY: 'scroll'}}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n else {\n return (\n // <div className=\"modal fade qr-code\" tabIndex=\"-1\" role=\"dialog\" aria-labelledby=\"myLargeModalLabel\" aria-hidden=\"true\" style={{display: 'none'}}>\n // <div className=\"modal-dialog modal-md\">\n // <div className=\"modal-content\">\n // <div className=\"modal-header\">\n // <h4 className=\"modal-title\" id=\"myLargeModalLabel\">Código QR</h4>\n // <button type=\"button\" className=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">×</button>\n // </div>\n // <div className=\"modal-body text-center\">\n // <p>\n // -Escanea el código QR en tu aplicación móvil para consultar toda la información de tu perfil.\n // </p>\n // <img src={ qr } alt=\"qr-code\" style={{\n // width: '75%',\n // }} />\n // <br />\n // <br />\n // <p>\n // Busca la app en:\n // </p>\n // <hr style={{ width: '40%' }} />\n // <p>\n // <a href=\"https://kimosolutions.com\" target=\"_blank\" style={{ color: 'inherit' }}>\n // <i className=\"mdi mdi-apple mdi-36px\"></i>  \n // </a>\n // <a href=\"https://kimosolutions.com\" target=\"_blank\" style={{ color: 'inherit' }}>\n // <i className=\"mdi mdi-android mdi-36px\"></i>\n // </a>\n // </p>\n // </div>\n // <div className=\"modal-footer\">\n // <button type=\"button\" className=\"btn btn-danger waves-effect text-left\" data-dismiss=\"modal\">Cerrar</button>\n // </div>\n // </div>\n // </div>\n // </div>\n <Modal\n show={(props.showModalQR || false)}\n onHide={() => props.onClosed()}\n size='md'\n aria-labelledby='contained-modal-title-vcenter'\n centered>\n <Modal.Header closeButton>\n {/* <Modal.Title> */}\n <h4 className=\"modal-title\" id=\"myLargeModalLabel\">Código QR</h4>\n {/* </Modal.Title> */}\n </Modal.Header>\n <Modal.Body className=\"text-center\">\n <p>\n -Escanea el código QR en tu aplicación móvil para consultar toda la información de tu perfil.\n </p>\n <img src={ qr } alt=\"qr-code\" style={{ width: '75%', }} />\n <br />\n <br />\n <p>\n Busca la app en:\n </p>\n <hr style={{ width: '40%' }} />\n <p>\n <a href=\"https:kimosolutions.com\" target=\"_blank\" style={{ color: 'inherit' }}>\n <i className=\"mdi mdi-apple mdi-36px\"></i>  \n </a>\n <a href=\"https:kimosolutions.com\" target=\"_blank\" style={{ color: 'inherit' }}>\n <i className=\"mdi mdi-android mdi-36px\"></i>\n </a>\n </p>\n </Modal.Body>\n <Modal.Footer>\n <Button variant='danger' onClick={() => props.onClosed()}>\n Cerrar\n </Button>\n </Modal.Footer>\n </Modal>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n qrData: state.qr.qrData,\n qrError: state.qr.qrError,\n }\n};\n\nconst mapDispatchToProps = {\n getQrAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(QRCode));\n","import { changeXml, imageQr } from '../endpoints';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n QR_SUCCESS,\n QR_ERROR,\n QR_PURGE\n} from '../types'\n\n\nexport const getQrAction = (data, server) => {\n let configJson = {\n 'tem:QR': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/QR\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: QR_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n response = {\n isOK: true,\n QrImage: imageQr(body)\n }\n\n console.log('RESPONSE QR DATA: ', response);\n dispatch({ type: QR_SUCCESS, payload: response })\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET QR DATA: ', response);\n dispatch({ type: QR_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET QR DATA: ', responseError);\n dispatch({ type: QR_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\n//import logo from \"../../assets/images/Logo.png\";\r\nimport QR from \"../layout/QRCode.js\";\r\nimport { connect } from \"react-redux\";\r\nimport { getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from \"../../utils\";\r\n\r\nimport useScript from '../../hooks/useScript.js';\r\n\r\nconst Leftsidebar = (props) => {\r\n let pathScript = \"\";\r\n if (localStorage.getItem(\"REACT_APP_PANTALLAS_BLAZOR\") == \"1\") {\r\n pathScript = '/assets/js/custom.js';\r\n }\r\n useScript(pathScript);\r\n\r\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\r\n\r\n const [userType, setUserType] = useState(0);\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [authorizerType, setAuthorizerType] = useState(null);\r\n const [infoLogin, setInfoLogin] = useState(null);\r\n const [menuPorTipoNomina, setMenuPorTipoNomina] = useState([]);\r\n const [showModalQR, setShowModalQR] = useState(false);\r\n\r\n useEffect(() => {\r\n setUserType(getUserType());\r\n setEmployeeType(getEmployeeType());\r\n setAuthorizerType(getAuthorizerType());\r\n setInfoLogin(getInfoUserLogin());\r\n\r\n let Valor = sessionStorage.getItem(\"SICONSULTA_MenuPorTipoNomina\");\r\n let menu = formalizaMenuPorTipoNomina(Valor);\r\n setMenuPorTipoNomina(menu);\r\n console.log(\"OIHB PV chief\", Valor, menu, props.loginData);\r\n }, []);\r\n\r\n const formalizaMenuPorTipoNomina = (Valor) => {\r\n let list = [];\r\n Valor = (Valor || '').trim();\r\n\r\n Valor.split('|').forEach(m1 => {\r\n let obj = { MenuID: 0, PeriodosID: [] };\r\n\r\n let items = m1.trim().split('=');\r\n if (items.length == 2) {\r\n obj.MenuID = items[0];\r\n obj.PeriodosID = (items[1] || '').trim().split(',');\r\n list.push(obj);\r\n }\r\n });\r\n\r\n return list;\r\n };\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n let MenuID = '0';\r\n let permite = false;\r\n\r\n if (props.adminMenuData && props.adminMenuData.isOK && props.adminMenuData.AdminMenu) {\r\n let find = props.adminMenuData.AdminMenu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n //Menú por tipo de nómina\r\n if (localStorage.getItem(\"REACT_APP_MENU_POR_NOMINAS\") == \"1\" && infoLogin) {\r\n //let Login = props.loginData.Login;\r\n let find = menuPorTipoNomina.find(fn => fn.MenuID == MenuID && (fn.PeriodosID || []).length > 0);\r\n if (find) {\r\n permite = find.PeriodosID.some(sm => sm == infoLogin.periodo_ID);\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n const LeftsidebarTrabs = () => {\r\n let info = [];\r\n if ('NextInfoUser' in props.nextInfoUserData) {\r\n info = [...props.nextInfoUserData.NextInfoUser];\r\n }\r\n\r\n let incidenciasAut = \"incidencias\";\r\n if (props.adminMenuData && props.adminMenuData.isOK && props.adminMenuData.AdminMenu) {\r\n if (props.adminMenuData.AdminMenu.some(sm => sm.NombreMenu.toLowerCase().trim() == \"incidencias-autorizar\")) {\r\n incidenciasAut = \"incidencias-autorizar\";\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === \"1\" ? <QR showModalQR={showModalQR} onClosed={() => setShowModalQR(false)} /> : null}\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n <li className=\"nav-devider\"></li>\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n exact\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-chart-bar\"></i>\r\n <span className=\"hide-menu\">INICIO</span>\r\n </NavLink>\r\n </li>\r\n {permiteMenu(\"informacion-adicional\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n exact\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/informacion-adicional`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account\"></i>\r\n <span className=\"hide-menu\">INFORMACIÓN ADICIONAL</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"nominas\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/nominas`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-bank\"></i>\r\n <span className=\"hide-menu\">NÓMINA</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"imss\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/imss`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-heart\"></i>\r\n <span className=\"hide-menu\">IMSS</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"infonavit\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/infonavit`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-home-modern\"></i>\r\n <span className=\"hide-menu\">INFONAVIT</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"vacaciones\") &&\r\n employeeType != 1 && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/vacaciones`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-beach\"></i>\r\n <span className=\"hide-menu\">SOLICITUD VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"control-vacaciones\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/control-vacaciones`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-routes\"></i>\r\n <span className=\"hide-menu\">CONTROL DE VACACIONES </span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {props.typeUserSelected == 2 &&\r\n permiteMenu(\"vacaciones-autorizar\") &&\r\n employeeType != 1 && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/vacaciones-autorizar`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-briefcase-check\"></i>\r\n <span className=\"hide-menu\">AUTORIZAR VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n\r\n {localStorage.getItem(\"REACT_APP_AUT_VAC_MASIVAS\") == '1' && props.typeUserSelected == 2 &&\r\n permiteMenu(\"vacaciones-autorizar\") &&\r\n employeeType != 1 && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/vacaciones-autorizar-masivas`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-briefcase-check\"></i>\r\n <span className=\"hide-menu\">AUTORIZAR VACACIONES MASIVA</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {permiteMenu(\"solicitudes\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/solicitudes`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account-multiple\"></i>\r\n <span className=\"hide-menu\">{localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"RH TE ESCUCHA\" : \"SOLICITUDES\"}</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {permiteMenu(\"mensajes\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/mensajes`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-message-alert\"></i>\r\n <span className=\"hide-menu\">MENSAJES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {permiteMenu(\"quejas\") && (\r\n <li>\r\n {localStorage.getItem(\"REACT_APP_HISTORIAL_QUEJA_USER\") === '1' && props.typeUserSelected == 1 ? (\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/historial-quejas`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-message-bulleted-off\"></i>\r\n <span className=\"hide-menu\">{localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"BUZÓN DE QUEJAS\" : \"RH TE ESCUCHA\"}</span>\r\n </NavLink>\r\n ) : (\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/quejas`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-message-bulleted-off\"></i>\r\n <span className=\"hide-menu\">{localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"BUZÓN DE QUEJAS\" : \"RH TE ESCUCHA\"}</span>\r\n </NavLink>\r\n )}\r\n </li>\r\n )\r\n }\r\n\r\n {permiteMenu(\"Afil\") && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/afil-individualizado`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-medical-bag\"></i>\r\n <span className=\"hide-menu\">AFIL INDIVIDUALIZADO</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {authorizerType != null && <li className=\"nav-devider\"></li>}\r\n {authorizerType != null && (\r\n <li className=\"nav-small-cap\">Autorizador</li>\r\n )}\r\n {authorizerType != null && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/authorizer/vacations-requests`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account-multiple\"></i>\r\n <span className=\"hide-menu\">CONSULTA DE VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {authorizerType != null && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/authorizer/vacations-authorizations`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-beach\"></i>\r\n <span className=\"hide-menu\">AUTORIZACIÓN MASIVA</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n {authorizerType != null && (\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/authorizer/vacations-report`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-file\"></i>\r\n <span className=\"hide-menu\">REPORTE DE VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {permiteMenu(\"incidencias\") && (\r\n <li>\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/incidents`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-alert-circle-outline\"></i>\r\n <span className=\"hide-menu\">INCIDENCIAS</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n { }\r\n {permiteMenu(incidenciasAut) && props.typeUserSelected == 2 && employeeType != 1 && (\r\n <li>\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/incidentsauthorization`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account-alert\"></i>\r\n <span className=\"hide-menu\"> AUTORIZAR INCIDENCIAS</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\") == '1' &&\r\n props.typeUserSelected == 2 && employeeType != 1 && (\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/downloadPersonalDocs`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">DESCARGAR ARCHIVOS EMPLEADOS</span></NavLink>\r\n </li>\r\n )}\r\n\r\n {localStorage.getItem(\"REACT_APP_CARGA_ARCHIVOS_PERSONALES\") == '1' &&\r\n props.typeUserSelected == 1 && employeeType != 2 && (\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/upload`} aria-expanded=\"false\"><i className=\"mdi mdi-upload\"></i><span className=\"hide-menu\">CARGAR ARCHIVOS</span></NavLink>\r\n </li>\r\n )}\r\n\r\n\r\n {(process.env.REACT_APP_IS_KRONES == '1' && props.typeUserSelected == 2) &&\r\n <li>\r\n <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacation-calendar`} aria-expanded=\"false\"><i className=\"mdi mdi-calendar-text\"></i><span className=\"hide-menu\">CALENDARIO VACACIONES</span></NavLink>\r\n </li>\r\n }\r\n\r\n {((process.env.REACT_APP_IS_KRONES == '1' && process.env.REACT_APP_IS_KRONES_PERDIEM == '1') && props.typeUserSelected == 2 && employeeType != 1) && <li>\r\n <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-accounting`} aria-expanded=\"false\"><i className=\"mdi mdi-calculator\"></i><span className=\"hide-menu\">CONCENTRADO CONTABILIDAD</span></NavLink>\r\n </li>}\r\n\r\n {((process.env.REACT_APP_IS_KRONES == '1' && process.env.REACT_APP_IS_KRONES_PERDIEM == '1') && props.typeUserSelected == 2 && employeeType != 1) && <li>\r\n <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-services`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO REPORTES</span></NavLink>\r\n </li>}\r\n\r\n {((process.env.REACT_APP_IS_KRONES == '1' && process.env.REACT_APP_IS_KRONES_PERDIEM == '1') && props.typeUserSelected == 2 && employeeType != 1) && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/technical-services-concentrate`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO SERVICIOS TÉCNICOS</span></NavLink>\r\n </li>}\r\n\r\n {(process.env.REACT_APP_IS_KRONES == '1' && process.env.REACT_APP_IS_KRONES_PERDIEM == '1') && (employeeType == '0' || employeeType == '1' || employeeType == '2') ?\r\n <li>\r\n <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/reporte-tecnico`} aria-expanded=\"false\"><i className=\"mdi mdi-file\"></i><span className=\"hide-menu\">REPORTE SERVICIO TÉCNICO</span></NavLink>\r\n </li> : null}\r\n\r\n\r\n\r\n {(process.env.REACT_APP_IS_KRONES == '1' && process.env.REACT_APP_IS_KRONES_PERDIEM == '1') && (props.typeUserSelected == 2 || employeeType == '3' || employeeType == '4' || employeeType == '5' || employeeType == '6') ?\r\n <li>\r\n <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/reporte-users`} aria-expanded=\"false\"><i className=\"mdi mdi-account-alert\"></i><span className=\"hide-menu\"> CONTROL REPORTES DE SERVICIO</span></NavLink>\r\n </li> : null}\r\n\r\n {permiteMenu(\"documentos\") &&\r\n <li>\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/consult-documents`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account-alert\"></i>\r\n <span className=\"hide-menu\">CONSULTA DE DOCUMENTOS</span>\r\n </NavLink>\r\n </li>\r\n }\r\n\r\n {info.some(el => el.id.trim().toLowerCase() == 'fondoahorro' && (el.informacion == \"true\" || el.informacion == \"1\")) &&\r\n <li>\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/caja-ahorro`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-square-inc-cash\"></i>\r\n <span className=\"hide-menu\">CAJA DE AHORRO</span>\r\n </NavLink>\r\n </li>\r\n }\r\n\r\n <li className=\"nav-devider\"></li>\r\n\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === \"1\" ? (\r\n <li>\r\n {/* <a\r\n className=\"waves-effect waves-dark\"\r\n data-toggle=\"modal\"\r\n data-target=\".qr-code\"\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-qrcode\"></i>\r\n <span className=\"hide-menu\">VER CÓDIGO QR</span>\r\n </a> */}\r\n <a className=\"waves-effect waves-dark\" onClick={() => setShowModalQR(true)}><i className=\"mdi mdi-qrcode\"></i><span className=\"hide-menu\">VER CÓDIGO QR</span></a>\r\n </li>\r\n ) : null}\r\n\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img\r\n width=\"90\"\r\n src={logo}\r\n className=\"light-logo hide-menu\"\r\n alt=\"homepage\"\r\n style={{ paddingTop: 20 + \"px\" }}\r\n />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n }\r\n\r\n const LeftsidebarForeign = () => {\r\n return (\r\n <>\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n <li className=\"nav-devider\"></li>\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n exact\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-chart-bar\"></i>\r\n <span className=\"hide-menu\">INICIO</span>\r\n </NavLink>\r\n </li>\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/vacaciones-autorizar`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-briefcase-check\"></i>\r\n <span className=\"hide-menu\">AUTORIZAR VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n\r\n <li>\r\n {\" \"}\r\n <NavLink\r\n activeClassName=\"active\"\r\n className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/incidentsauthorization`}\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"mdi mdi-account-alert\"></i>\r\n <span className=\"hide-menu\"> AUTORIZAR INCIDENCIAS</span>\r\n </NavLink>\r\n </li>\r\n\r\n <li className=\"nav-devider\"></li>\r\n\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img\r\n width=\"90\"\r\n src={logo}\r\n className=\"light-logo hide-menu\"\r\n alt=\"homepage\"\r\n style={{ paddingTop: 20 + \"px\" }}\r\n />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n };\r\n\r\n return userType != '8' ? LeftsidebarTrabs() : LeftsidebarForeign();\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n typeUserSelected: state.changeUserType.typeUserSelected,\r\n\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n\r\n nextInfoUserData: state.nextInfoUser.nextInfoUserData,\r\n nextInfoUserError: state.nextInfoUser.nextInfoUserError,\r\n\r\n loginData: state.login.loginData,\r\n loginError: state.login.loginError,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(Leftsidebar);\r\n","import React from 'react';\nimport NumberFormat from 'react-number-format';\nimport moment from 'moment';\n\nconst Card = props => {\n\n if (props.type == 'money') {\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h2 className=\"m-b-0\"><i className={props.icon}></i></h2>\n <h3 className=\"\">\n <NumberFormat value={props.value} displayType={'text'} thousandSeparator={true} prefix={'$'} decimalScale={2} />\n </h3>\n <h6 className=\"card-subtitle\">{props.name}</h6></div>\n </div>\n </div>\n </div>\n );\n } else if (props.type == 'date') {\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h2 className=\"m-b-0\"><i className={props.icon}></i></h2>\n <h3 className=\"\">\n {moment(props.value).format('DD/MM/YYYY')}\n </h3>\n <h6 className=\"card-subtitle\">{props.name}</h6></div>\n </div>\n </div>\n </div>\n );\n } else if (props.type == 'numeric') {\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h2 className=\"m-b-0\"><i className={props.icon}></i></h2>\n <h3 className=\"\">\n <NumberFormat value={props.value} displayType={'text'} thousandSeparator={true} decimalScale={2} />\n </h3>\n <h6 className=\"card-subtitle\">{props.name}</h6></div>\n </div>\n </div>\n </div>\n );\n } else if (props.type == 'net') {\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"d-flex flex-wrap justify-content-center col-12\" style={{ alignItems: 'center', flexDirection: 'row' }}>\n <h2><b>{' NETO A PAGAR: '}</b></h2>\n <h2 className=\"text-primary\" style={{ marginLeft: 30 }}><b>\n <NumberFormat value={props.value} displayType={'text'} thousandSeparator={true} prefix={'$'} decimalScale={2} />\n </b></h2>\n </div>\n </div>\n </div>\n </div>\n );\n } \n else if (props.type == 'img'){\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h2 className=\"m-b-0\">\n <img className={props.classNameSrc} style={{ maxWidth: '40px', cursor: 'pointer' }} \n onClick={props.onClick} \n src={props.src} />\n </h2>\n <h3 className=\"\">\n {props.value}\n </h3>\n <h6 className=\"card-subtitle\">{props.name}</h6></div>\n </div>\n </div>\n </div>\n );\n }\n else {\n return (\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h2 className=\"m-b-0\"><i className={props.icon}></i></h2>\n <h3 className=\"\">\n {props.value}\n </h3>\n <h6 className=\"card-subtitle\">{props.name}</h6></div>\n </div>\n </div>\n </div>\n );\n }\n};\n\nexport default Card;\n","import { changeXml, WelcomeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n WELCOME_MESSAGE_SUCCESS,\n WELCOME_MESSAGE_ERROR,\n WELCOME_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getWelcomeMessageAction = (data, server) => {\n let configJson = {\n 'tem:MensajeBienvenida': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajeBienvenida\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: WELCOME_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET WELCOME_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: WELCOME_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n WelcomeMessage: WelcomeMessage(body)\n }\n\n console.log('RESPONSE WELCOME_MESSAGE DATA: ', response);\n dispatch({ type: WELCOME_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET WELCOME_MESSAGE DATA: ', response);\n dispatch({ type: WELCOME_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET WELCOME_MESSAGE DATA: ', responseError);\n dispatch({ type: WELCOME_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, VarShowOptionsResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VAR_SHOW_OPTIONS_SUCCESS,\r\n VAR_SHOW_OPTIONS_ERROR,\r\n VAR_SHOW_OPTIONS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getVarShowOptionsAction = (data, server) => {\r\n let configJson = {\r\n 'tem:VariablesMuestraOpciones': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/VariablesMuestraOpciones\",\r\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: VAR_SHOW_OPTIONS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET VAR_SHOW_OPTIONS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: VAR_SHOW_OPTIONS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n VarShowOptions: VarShowOptionsResponse(body)\r\n }\r\n console.log('======================================================================');\r\n console.log('DESDE VarShowOptionsAction', JSON.stringify(response));\r\n console.log('======================================================================');\r\n console.log('RESPONSE VARSHOW_OPTION DATA: ', response);\r\n dispatch({ type: VAR_SHOW_OPTIONS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VARSHOW_OPTIONS DATA: ', response);\r\n dispatch({ type: VAR_SHOW_OPTIONS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VARSHOW_OPTIONS DATA: ', responseError);\r\n dispatch({ type: VAR_SHOW_OPTIONS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import { changeXml, VacationsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VACATIONS_SUCCESS,\n VACATIONS_ERROR,\n VACATIONS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getVacationsAction = (data, server) => {\n let configJson = {\n 'tem:MisVacaciones': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MisVacaciones\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Vacations: VacationsResponse(body)\n }\n\n console.log('RESPONSE VACATIONS DATA: ', response);\n dispatch({ type: VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VACATIONS DATA: ', response);\n dispatch({ type: VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VACATIONS DATA: ', responseError);\n dispatch({ type: VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, messagesResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n MESSAGES_SUCCESS,\n MESSAGES_ERROR,\n MESSAGES_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getMessagesAction = (data, server) => {\n let configJson = {\n 'tem:MensajesAlPersonal': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajesAlPersonal\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: MESSAGES_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET MESSAGES_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: MESSAGES_ERROR, payload: response })\n } else {\n const response = {\n isOK: true,\n Messages: messagesResponse(body)\n }\n\n console.log('RESPONSE MESSAGES DATA: ', response);\n dispatch({ type: MESSAGES_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET MESSAGES DATA: ', response);\n dispatch({ type: MESSAGES_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET MESSAGES DATA: ', responseError);\n dispatch({ type: MESSAGES_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport SiBalance from './Sibalance';\r\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\r\nimport { getPeriodosNominaAction } from '../../api/actions/empleado/NominaAction.js';\r\nimport { getEmployeeVacationsAction } from '../../api/actions/jefe/EmployeeVactionsAction';\r\nimport { getVacationExpirationAction } from '../../api/actions/empleado/VacationsExpirationAction';\r\nimport { getNotificacionCorreo } from \"../../api/actions/empleado/NotificaciónCorreoVencAction\";\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport Card from '../../components/shared/Card.js';\r\n\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\r\nimport { getVarShowOptionsAction } from '../../api/actions/systemAdmin/VarShowOptionsAction';\r\nimport { getGetIncidenciasAlertaAction } from '../../api/actions/common/IncidentAlert';\r\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\r\nimport { getMessagesAction } from '../../api/actions/empleado/MessagesAction';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nimport { getParams, groupFieldOfArray } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\nimport Chart from 'chart.js';\r\nimport { MENSAJEA_RH_ERROR } from '../../api/types';\r\n\r\nconst Home = (props) => {\r\n\r\n const [loadGraph, setLoadGraph] = useState(false);\r\n const [noGraph, setNoGraph] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [data, setData] = useState({});\r\n const [pendingSurvey, setPendingSurvey] = useState(false);\r\n const [showModal, setShowModal] = useState(true);\r\n const [modalData, setModalData] = useState({});\r\n const [showned, setShowned] = useState({\r\n VacacionesVencer: false,\r\n MensajeAlPersonal: false\r\n });\r\n\r\n const [filterType, setFilterType] = useState('DEFAULT');\r\n const [chart, setChart] = useState(null);\r\n const [showModalVacations, setShowModalVacations] = useState(false);\r\n const [showModalExpiration, setShowModalExpiration] = useState(false);\r\n const [modalVacations, setModalVacations] = useState({})\r\n const [modalExpiration, setModalExpiration] = useState({})\r\n const [dataVSO, setDataVSO] = useState({ showEstadocivil: 'false', showFechaTermino: 'false', showGrafica: 'false' });\r\n const [dataAllNomina, setDataAllNomina] = useState([]);\r\n\r\n const changeShowned = (campo, valor) => {\r\n let _showned = { ...showned };\r\n _showned[campo] = valor;\r\n setShowned(_showned);\r\n return _showned;\r\n };\r\n\r\n const reglaMapNominas1 = (item, index) => {\r\n item.Mostrar = 'true';\r\n\r\n if (item.total <= 0 || item.totalPercepcion <= 0 || (item.totalPercepcion - item.totalDeduccion) <= 0) {\r\n item.Mostrar = 'false';\r\n }\r\n };\r\n const reglaFiltroNominas1 = (item) => {\r\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\r\n return item.Mostrar == 'true'\r\n && (item.ano == filterType.ano || filterType.ano == 'DEFAULT')\r\n && (item.numeroPeriodo == filterType.numeroPeriodo || filterType.numeroPeriodo == 'DEFAULT')\r\n && (item.tipoNomina == filterType.tipoNomina || filterType.tipoNomina == 'DEFAULT');\r\n }\r\n else {\r\n return item.Mostrar == 'true' && (item.tipoNomina == filterType || filterType == 'DEFAULT');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let { params, server, others_params } = getParams();\r\n\r\n props.getPeriodosNominaAction(params, server);\r\n\r\n validateSurveys();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n };\r\n\r\n props.getGetIncidenciasAlertaAction(params, server);\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.getWelcomeMessageAction(params, server);\r\n props.getVarShowOptionsAction(params, server);\r\n\r\n if ('valoresConfig' in others_params) {\r\n console.log('OIHB Data valoresConfig', others_params.valoresConfig);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.incidentAlertData && props.incidentAlertData.isOK === true) {\r\n alertIncidents();\r\n } else if (\r\n props.incidentAlertError &&\r\n props.incidentAlertError.isOK === false\r\n ) {\r\n props.getGetIncidenciasAlertaAction('PURGE', '');\r\n }\r\n }, [props.incidentAlertData, props.incidentAlertError]);\r\n\r\n let alertIncidents = () => {\r\n let data = props.incidentAlertData?.GetIncidenciasAlerta;\r\n\r\n if (data && data != '') {\r\n let tableTemplate = (\r\n <><p><strong class=\"ql-size-large\">Solicitud de Vacaciones o Incidencias </strong></p>\r\n <p>Se le han asignado días de vacaciones, las cuales se detallan a continuación.\r\n Por favor marcar la casilla de conformidad.\r\n Cualquier aclaración, ponte en contacto con Recursos Humanos. \r\n </p>\r\n <table className='table nowrap stylish-table-incident'>\r\n <thead>\r\n <tr>\r\n <th>DIA</th>\r\n <th>FECHA</th>\r\n <th>INCIDENCIA</th> \r\n </tr>\r\n </thead>\r\n {data.map((item) => (\r\n <tr>\r\n <td>{item.Dia}</td>\r\n <td>{moment(item.Fecha).format('DD-MM-YYYY')}</td>\r\n <td>{item.Incidencia}</td>\r\n </tr>\r\n ))}\r\n </table>\r\n <div>\r\n <label>\r\n <input type=\"checkbox\"/>\r\n Quedo entereado y conforme de los dias de vacaciones disfurtadas recogidas en este aviso.\r\n </label>\r\n </div>\r\n </> \r\n );\r\n\r\n alert(tableTemplate);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.incidentAlertData && props.incidentAlertData.isOK === true) {\r\n alertIncidents();\r\n } else if (\r\n props.incidentAlertError &&\r\n props.incidentAlertError.isOK === false\r\n ) {\r\n props.getGetIncidenciasAlertaAction('PURGE', '');\r\n }\r\n }, [props.incidentAlertData, props.incidentAlertError]);\r\n\r\n const validateSurveys = () => {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n props.getSiBalanceAction(params, server);\r\n //if (process.env.REACT_APP_IS_KRONES == '1') {\r\n // const dataSend = {\r\n // \"tem:sToken\": params['tem:sToken'],\r\n // \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n // \"tem:TrabID\": params['tem:TrabID']\r\n // }\r\n // props.getEmployeeVacationsAction(dataSend, server)\r\n // console.log('USER_DATA', params)\r\n //}\r\n const dataSend2 = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:TrabID\": params['tem:TrabID']\r\n };\r\n\r\n if (sessionStorage.getItem(\"SICONSULTA_ActivaAlertaVencimientos\") == '1') {\r\n props.getNotificacionCorreo(dataSend2, server);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n props.dataUserData &&\r\n props.dataUserData.isOK &&\r\n props.welcomeMessageData &&\r\n props.welcomeMessageData.isOK &&\r\n props.varShowOptionsData &&\r\n props.varShowOptionsData.isOK\r\n ) {\r\n if (props.siBalanceData && props.siBalanceData.isOK) {\r\n // SUCCESS SI BALANCE\r\n if (props.siBalanceData.SiBalanceList.length > 0) {\r\n // EXISTE ENCUESTA\r\n let survey = props.siBalanceData.SiBalanceList[0];\r\n setPendingSurvey(survey);\r\n setLoading(false);\r\n }\r\n else {\r\n // NO HAY ENCUESTAS\r\n setPendingSurvey(false);\r\n setData({\r\n ...props.dataUserData.DataUser,\r\n });\r\n setDataVSO({\r\n ...props.varShowOptionsData.VarShowOptions\r\n });\r\n procesarModalData();\r\n setLoading(false);\r\n }\r\n if (props.welcomeMessageData.WelcomeMessage.mensaje == '') {\r\n // MENSAJE VACIO\r\n setModalData({\r\n titulo: null,\r\n mensaje: null,\r\n });\r\n setShowModal(false);\r\n }\r\n }\r\n else if (props.siBalanceError && props.siBalanceError.isOK === false) {\r\n // ERROR SI BALANCE\r\n setPendingSurvey(false);\r\n\r\n if (props.welcomeMessageData.WelcomeMessage.mensaje == '') {\r\n // MENSAJE VACIO\r\n setModalData({\r\n titulo: null,\r\n mensaje: null,\r\n });\r\n setShowModal(false);\r\n } else {\r\n // MENSJAE CON INFO\r\n procesarModalData();\r\n }\r\n setData({\r\n ...props.dataUserData.DataUser,\r\n });\r\n setDataVSO({\r\n ...props.varShowOptionsData.VarShowOptions\r\n });\r\n setLoading(false);\r\n }\r\n }\r\n else if (\r\n (props.dataUserError && props.dataUserError.isOK === false) ||\r\n (props.welcomeMessageError && props.welcomeMessageError.isOK === false) ||\r\n (props.varShowOptionsError && props.varShowOptionsError.isOK === false)\r\n ) {\r\n // ERROR DATAUSER O MENSAJE\r\n if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\r\n // ERROR MENSAJE\r\n setModalData({\r\n titulo: null,\r\n mensaje: null,\r\n });\r\n setShowModal(false);\r\n setData({\r\n ...props.dataUserData.DataUser,\r\n });\r\n }\r\n else {\r\n procesarModalData();\r\n }\r\n if (props.dataUserError && props.dataUserError.isOK === false) {\r\n // ERROR DATAUSER\r\n setData({\r\n banco: null,\r\n clabe: null,\r\n curp: null,\r\n edoCivil: null,\r\n fechNac: null,\r\n nss: null,\r\n rfc: null,\r\n trabId: null,\r\n });\r\n }\r\n\r\n setDataVSO({ showEstadocivil: 'false', showFechaTermino: 'false', showGrafica: 'false' });\r\n setLoading(false);\r\n }\r\n }, [\r\n props.dataUserData,\r\n props.dataUserError,\r\n props.siBalanceData,\r\n props.siBalanceError,\r\n props.welcomeMessageData,\r\n props.welcomeMessageError,\r\n props.varShowOptionsData,\r\n props.varShowOptionsError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.vacationsExpirationData && props.vacationsExpirationData.isOK) {\r\n let expirations = [...props.vacationsExpirationData.VacationExpiration];\r\n props.getVacationExpirationAction('PURGE', '');\r\n if (expirations.length <= 0) {\r\n let _showned = { ...showned };\r\n _showned.VacacionesVencer = true;\r\n setShowned(_showned);\r\n cerrarModalData(_showned);\r\n return;\r\n }\r\n\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n let labelExpiration = expirations.map(item => { return `\"${item.Periodo}\"` }).join(', ');\r\n let data = {\r\n titulo: 'Aviso',\r\n mensaje: `Tienes vacaciones del periodo ${labelExpiration}, que estan proximas a vencer por lo que te recomendamos solicitarlas lo antes posible para que no sean eliminadas`\r\n };\r\n\r\n setShowModal(true);\r\n setModalData(data);\r\n let _showned = { ...showned };\r\n _showned.VacacionesVencer = true;\r\n setShowned(_showned);\r\n }\r\n else if (localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') {\r\n\r\n let total = 0;\r\n let mensajes = expirations.map(item => {\r\n let fa = moment(item.FechaAniversario);\r\n let fv = moment(item.Vencimiento);\r\n\r\n let strFa = `${fa.format('DD')} de ${fa.format('MMMM')}, ${fa.format('YYYY')}`;\r\n let strFv = `${fv.format('dddd DD')} de ${fv.format('MMMM')}, ${fv.format('YYYY')}`;\r\n\r\n total += parseInt(item.Dias_Pendientes);\r\n\r\n return `<p><strong class=\"ql-size-large\">De tu aniversario del \"${strFa}\"</strong><br/><strong style=\"color: #C10000;\" class=\"ql-size-large\">¡Tienes ${item.Dias_Pendientes} día(s) disponible(s) que vencerán dentro de ${item.DiasVencer} día(s)!<br/>Fecha vencimiento: \"${strFv}\".</strong></p>`\r\n }).join('<br/>');\r\n\r\n mensajes += `<br/><p><strong class=\"ql-size-large\">Total a vencer: <b style=\"color: #C10000;\">${total}</b>.</strong></p>`;\r\n\r\n let data = {\r\n titulo: '¡ATENCIÓN CON TUS VACACIONES!',\r\n mensaje: mensajes,\r\n };\r\n\r\n setShowModal(true);\r\n setModalData(data);\r\n let _showned = { ...showned };\r\n _showned.VacacionesVencer = true;\r\n setShowned(_showned);\r\n }\r\n }\r\n if (props.vacationsExpirationError && props.vacationsExpirationError.isOK === false) {\r\n props.getVacationExpirationAction('PURGE', '');\r\n }\r\n console.log('EMPLOYEE_VACATIONS_EXPIRATION', props.vacationsExpirationData);\r\n }, [props.vacationsExpirationData, props.vacationsExpirationError]);\r\n\r\n useEffect(() => {\r\n if (props.employeeVacationsData && props.employeeVacationsData.isOK) {\r\n if (props.employeeVacationsData?.EmployeeVacations.length > 0) {\r\n let data = {\r\n title: 'Aviso',\r\n message: 'Tienes incidencias o vacaciones pendientes por autorizar o rechazar, por lo que recomendamos que realices la autorización o rechazo lo antes posible.'\r\n }\r\n setShowModalVacations(true)\r\n setModalVacations(data)\r\n }\r\n }\r\n\r\n if (props.incidentsReportData && props.incidentsReportData.isOK) {\r\n if (props.incidentsReportData?.NotificaCorreo.length > 0 && (sessionStorage.getItem(\"SICONSULTA_ActivaAlertaVencimientos\") == '1')) {\r\n let data = {\r\n title: 'AVISO IMPORTANTE',\r\n message: 'Hay solicitudes de vacaciones/incidencias a vencer dentro de 3 meses, favor de autorizar o rechazar según sea el caso',\r\n };\r\n setShowModalVacations(true);\r\n setModalVacations(data);\r\n }\r\n\r\n }\r\n if (props.dataUserError && props.dataUserError.isOK === false) {\r\n props.getEmployeeVacationsAction('PURGE', {})\r\n }\r\n console.log('EMPLOYEE_VACATIONS', props.employeeVacationsData)\r\n }, [props.employeeVacationsData, props.employeeVacationsError]);\r\n\r\n useEffect(() => {\r\n if (!loading && props.nominaData && props.nominaData.isOK) {\r\n setDataAllNomina([]);\r\n\r\n let danArr = [...props.nominaData.Nomina];\r\n if (danArr.length > 0) {\r\n danArr.map(reglaMapNominas1);\r\n setDataAllNomina(danArr);\r\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\r\n let filters = {};\r\n filters.ano = danArr.sort((a, b) => { return b.ano - a.ano; })[0].ano;\r\n filters.numeroPeriodo = danArr.filter(f => f.ano == filters.ano).sort((a, b) => { return b.numeroPeriodo - a.numeroPeriodo; })[0].numeroPeriodo;\r\n filters.tipoNomina = 'DEFAULT';\r\n //console.log('OIHB Data', filters);\r\n setFilterType(filters);\r\n }\r\n setLoadGraph(true);\r\n }\r\n props.getPeriodosNominaAction('PURGE', '');\r\n }\r\n else if (!loading && props.nominaError && props.nominaError.isOK === false) {\r\n setDataAllNomina([]);\r\n setNoGraph(true);\r\n }\r\n }, [props.nominaData, props.nominaError]);\r\n\r\n useEffect(() => {\r\n let check = true;\r\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\r\n check = (filterType.ano && filterType.numeroPeriodo && filterType.tipoNomina);\r\n }\r\n\r\n if (loadGraph && (dataAllNomina || []).length > 0 && check) {\r\n if (chart) {\r\n chart.destroy();\r\n setChart(null);\r\n }\r\n let totalArray = dataAllNomina.map((item) => item.total)\r\n let min = Math.min(...totalArray) - 2000\r\n let max = Math.max(...totalArray) + 2000\r\n\r\n let ticksOptions = {\r\n min: Math.round(min / 1000) * 1000,\r\n max: Math.round(max / 1000) * 1000,\r\n stepSize: 1000,\r\n callback: function (value, index, values) {\r\n return value.toLocaleString(\"en-US\", { style: \"currency\", currency: \"USD\" });\r\n }\r\n }\r\n console.log('DATA_NOMINA', dataAllNomina)\r\n var ctx = 'myChart';\r\n var myChart = new Chart(ctx, {\r\n type: 'line',\r\n data: {\r\n labels: dataAllNomina.filter(reglaFiltroNominas1).map((item) => moment(item.fechaFinal).format('DD/MM/YYYY')),\r\n datasets: [{\r\n label: false,\r\n data: dataAllNomina.filter(reglaFiltroNominas1).map((item) => parseFloat(item.total).toFixed(2)),\r\n backgroundColor: 'rgba(12, 68, 119, 1)',\r\n borderColor: 'rgba(12, 68, 119, 1)',\r\n borderWidth: 3,\r\n fill: false,\r\n lineTension: 0,\r\n }],\r\n },\r\n options: {\r\n legend: {\r\n display: false\r\n },\r\n scales: {\r\n yAxes: [{\r\n suggestedMin: 0,\r\n ticks: {\r\n callback: function (value, index, values) {\r\n return value.toLocaleString('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n });\r\n },\r\n },\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n return (\r\n '$' +\r\n Number(tooltipItem.yLabel)\r\n .toFixed(2)\r\n .replace(/./g, function (c, i, a) {\r\n return i > 0 && c !== '.' && (a.length - i) % 3 === 0\r\n ? ',' + c\r\n : c;\r\n })\r\n );\r\n },\r\n },\r\n },\r\n },\r\n });\r\n\r\n setChart(myChart);\r\n\r\n }\r\n }, [loadGraph, filterType]);\r\n\r\n useEffect(() => {\r\n if (props.vacationsData && props.vacationsData.isOK) {\r\n let vacations = { ...props.vacationsData.Vacations };\r\n props.getVacationsAction('PURGE', '');\r\n\r\n if (vacations == undefined || vacations == null) return;\r\n\r\n if (localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') {\r\n if (vacations.diasDisponibles <= 0) return;\r\n\r\n let fechaHoy = new Date();\r\n let fechaIngreso = new Date(vacations.fechaIngreso);\r\n let fechaAniversario = new Date(fechaHoy.getFullYear(), fechaIngreso.getMonth(), fechaIngreso.getDate());\r\n let fechaVencimiento = new Date(fechaHoy.getFullYear(), fechaIngreso.getMonth(), fechaIngreso.getDate());\r\n if (fechaHoy >= fechaAniversario) {\r\n fechaVencimiento.setFullYear(fechaAniversario.getFullYear() + 1);\r\n }\r\n let difference = fechaVencimiento.getTime() - fechaHoy.getTime();\r\n let diasAviso = 90;\r\n let totalDays = Math.ceil(difference / (1000 * 3600 * 24));\r\n console.log('OIHB Data', ', dias restantes:', totalDays, ', Ingreso:', fechaIngreso, ', Aniversario:', fechaAniversario, ', Vencimiento', fechaVencimiento);\r\n\r\n if (!(totalDays <= diasAviso)) return;\r\n\r\n let fv = moment(fechaVencimiento);\r\n setModalData({\r\n titulo: '¡ATENCIÓN CON TUS VACACIONES!',\r\n mensaje: `<p><strong style=\"color: #C10000;\" class=\"ql-size-large\">¡Tienes ${vacations.diasDisponibles} día(s) disponible(s) que vencerán dentro de ${totalDays} día(s)!<br/><br/>Fecha vencimiento: ${fv.format('dddd DD')} de ${fv.format('MMMM')}, ${fv.format('YYYY')}.</strong></p>`,\r\n });\r\n setShowModal(true);\r\n }\r\n }\r\n else if (props.vacationsError && props.vacationsError.isOK) {\r\n props.getVacationsAction('PURGE', '');\r\n }\r\n }, [props.vacationsData, props.vacationsError,]);\r\n\r\n useEffect(() => {\r\n if (props.messagesData && props.messagesData.isOK) {\r\n let messages = [...props.messagesData.Messages];\r\n props.getMessagesAction('PURGE', '');\r\n\r\n if (messages.length <= 0) {\r\n let _showned = { ...showned };\r\n _showned.MensajeAlPersonal = true;\r\n setShowned(_showned);\r\n cerrarModalData(_showned);\r\n return;\r\n }\r\n\r\n //console.log('OIHB Data messages', messages);\r\n if (localStorage.getItem(\"REACT_APP_ALERTA_MSJ_PERSONAL\") == '1') {\r\n let nuevos = [...messages];\r\n nuevos = nuevos.filter(item => item.reciente == 'true');\r\n nuevos = nuevos.sort((a, b) => { return new Date(b.fecha) - new Date(a.fecha) });\r\n //console.log('OIHB Data nuevos', nuevos);\r\n\r\n if (nuevos.length > 0) {\r\n let items = nuevos.map(item => {\r\n return `<li>[${moment(item.fecha).format('DD-MM-YYYY')}] <u>${item.titulo}</u>: <i>${item.msgText}</i></li>`\r\n });\r\n let data = {\r\n titulo: `¡TIENES ${nuevos.length} NUEVO(S) MENSAJE(S)!`,\r\n mensaje: `<p><strong class=\"ql-size-large\"><ul style=\"list-style-type: circle\">${items.join('')}</ul></strong></p>`,\r\n };\r\n\r\n setModalData(data);\r\n setShowModal(true);\r\n let _showned = { ...showned };\r\n _showned.MensajeAlPersonal = true;\r\n setShowned(_showned);\r\n }\r\n }\r\n }\r\n else if (props.messagesError && props.messagesError.isOK === false) {\r\n props.getMessagesAction('PURGE', '');\r\n }\r\n }, [props.messagesData, props.messagesError]);\r\n\r\n const getYearsOptions = () => {\r\n let movimientos = [...dataAllNomina];\r\n if (movimientos.length <= 0) return [];\r\n\r\n let options = groupFieldOfArray(movimientos, 'ano').sort((a, b) => { return b - a; });\r\n options = options.map((ano, i1) => {\r\n return (\r\n <option value={ano} key={'opt' + i1 + '_' + ano}>\r\n {ano}\r\n </option>);\r\n });\r\n\r\n return options;\r\n };\r\n\r\n const getPeriodOptions = () => {\r\n let movimientos = [...dataAllNomina];\r\n if (movimientos.length <= 0) return [];\r\n if (!filterType.ano) return [];\r\n\r\n movimientos = movimientos.filter(mov =>\r\n (filterType.ano == mov.ano || filterType.ano == 'DEFAULT')\r\n ).sort((a, b) => { let fa = new Date(a.fechaInicio), fb = new Date(b.fechaInicio); return fb - fa; });\r\n if (movimientos.length <= 0) return [];\r\n\r\n let options = [];\r\n let exists = [];\r\n movimientos.map((opt, i1) => {\r\n if (!exists.some(s => s.ano == opt.ano && s.numeroPeriodo == opt.numeroPeriodo)) {\r\n exists.push({ ano: opt.ano, numeroPeriodo: opt.numeroPeriodo });\r\n options.push(\r\n <option value={opt.numeroPeriodo} key={'opt' + i1 + '_' + opt.numeroPeriodo}>\r\n {opt.numeroPeriodo.padStart(2, '0')}: {'Del ' + moment(opt.fechaInicio).format('DD/MM/YYYY') + ' al ' + moment(opt.fechaFinal).format('DD/MM/YYYY')}\r\n </option>);\r\n }\r\n });\r\n\r\n return options;\r\n };\r\n\r\n const getTiposNominaOptions = () => {\r\n let movimientos = [...dataAllNomina];\r\n if (movimientos.length <= 0) return [];\r\n if (!filterType.ano) return [];\r\n if (!filterType.numeroPeriodo) return [];\r\n\r\n movimientos = movimientos.filter(mov =>\r\n (filterType.ano == mov.ano || filterType.ano == 'DEFAULT')\r\n && (filterType.numeroPeriodo == mov.numeroPeriodo || filterType.numeroPeriodo == 'DEFAULT')\r\n ).sort((a, b) => { return a.ptr - b.ptr; });\r\n if (movimientos.length <= 0) return [];\r\n\r\n //console.log('OIHB Data TiposNomina', movimientos);\r\n\r\n let options = [];\r\n let exists = [];\r\n movimientos.map((opt, i1) => {\r\n if (!exists.includes(opt.tipoNominaID)) {\r\n exists.push(opt.tipoNominaID);\r\n options.push(\r\n <option value={opt.tipoNomina} key={'opt' + i1 + '_' + opt.tipoNomina}>\r\n {opt.tipoNominaID}: {opt.tipoNomina}\r\n </option>);\r\n }\r\n });\r\n\r\n return options;\r\n };\r\n\r\n const onChangeFilterType = (field, value) => {\r\n let filters = { ...filterType };\r\n filters[field] = value;\r\n setFilterType(filters);\r\n }\r\n\r\n const getTypeOptions = () => {\r\n\r\n let typeOptions = [];\r\n let movimientos = dataAllNomina//.filter(reglaFiltroNominas1);\r\n let names = [];\r\n\r\n if (!movimientos || movimientos.length <= 0) {\r\n }\r\n else {\r\n movimientos = movimientos.sort((a, b) => {\r\n return a.ptr - b.ptr;\r\n });\r\n\r\n movimientos.map((item, i) => {\r\n if (!names.includes(item.tipoNomina)) {\r\n names.push(item.tipoNomina);\r\n typeOptions.push(\r\n <option value={item.tipoNomina} key={item.tipoNomina}>\r\n {item.tipoNominaID}: {item.tipoNomina}\r\n </option>\r\n );\r\n }\r\n });\r\n }\r\n\r\n return typeOptions;\r\n };\r\n\r\n const getVacations = () => {\r\n let { params, server } = getParams();\r\n props.getVacationsAction(params, server);\r\n };\r\n\r\n const getVacationExpiration = () => {\r\n let { params, server } = getParams();\r\n const dataSendExpired = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:trabid\": params['tem:TrabID']\r\n }\r\n props.getVacationExpirationAction(dataSendExpired, server);\r\n };\r\n\r\n const getMessagesToPersonal = () => {\r\n let { params, server } = getParams();\r\n props.getMessagesAction(params, server);\r\n };\r\n\r\n const procesarModalData = () => {\r\n setModalData({\r\n ...props.welcomeMessageData.WelcomeMessage,\r\n });\r\n };\r\n\r\n const cerrarModalData = (shown = null) => {\r\n if (shown == null) shown = showned;\r\n\r\n setShowModal(false);\r\n setModalData({});\r\n\r\n if ((process.env.REACT_APP_IS_KRONES == '1' || localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') && !shown.VacacionesVencer) {\r\n //getVacations();\r\n //console.log('OIHB ESP', 'procesando expiración');\r\n getVacationExpiration();\r\n }\r\n else if (localStorage.getItem(\"REACT_APP_ALERTA_MSJ_PERSONAL\") == '1' && !shown.MensajeAlPersonal) {\r\n //console.log('OIHB ESP', 'procesando mensajes al personal');\r\n getMessagesToPersonal();\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className='circular' viewBox='25 25 50 50'>\r\n <circle\r\n className='path'\r\n cx='50'\r\n cy='50'\r\n r='20'\r\n fill='none'\r\n strokeWidth='2'\r\n strokeMiterlimit='10'\r\n />\r\n </svg>\r\n <div id='main-wrapper'>\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n }\r\n else if (pendingSurvey) {\r\n return (\r\n <>\r\n {/* <Leftsidebar /> */}\r\n <SiBalance survey={pendingSurvey} />\r\n </>\r\n );\r\n }\r\n else {\r\n const {\r\n banco,\r\n clabe,\r\n curp,\r\n edoCivil,\r\n fechNac,\r\n nss,\r\n rfc,\r\n trabId,\r\n centro,\r\n empresa,\r\n fechaIngreso,\r\n fechaTermino,\r\n puesto,\r\n registro,\r\n } = data;\r\n\r\n const { showEstadocivil, showFechaTermino, showGrafica } = dataVSO\r\n\r\n return (\r\n <div id='main-wrapper'>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className='page-wrapper'>\r\n <Modal\r\n show={showModal}\r\n onHide={() => cerrarModalData()}\r\n size='lg'\r\n aria-labelledby='contained-modal-title-vcenter'\r\n centered\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{modalData.titulo}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <div style={{ overflow: 'auto' }}>\r\n <ReactQuill\r\n theme='bubble'\r\n readOnly={true}\r\n value={modalData.mensaje}\r\n modules={{ toolbar: false }}\r\n />\r\n </div>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant='secondary' onClick={() => cerrarModalData()}>\r\n Cerrar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_ActivaAlertaVencimientos\") == '1') &&\r\n <Modal\r\n show={showModalVacations}\r\n onHide={() => setShowModalVacations(false)}\r\n size=\"lg\"\r\n aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{modalVacations.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <ReactQuill\r\n theme=\"bubble\"\r\n readOnly={true}\r\n value={modalVacations.message}\r\n modules={{ toolbar: false }}\r\n />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={() => setShowModalVacations(false)}>\r\n Cerrar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n }\r\n\r\n {/* {process.env.REACT_APP_IS_KRONES == '1' && \r\n <Modal show={showModalExpiration} onHide={() => setShowModalExpiration(false)} size=\"lg\" aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{modalExpiration.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <ReactQuill\r\n theme=\"bubble\"\r\n readOnly={true}\r\n value={modalExpiration.message}\r\n modules={{ toolbar: false }}\r\n />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={() => setShowModalExpiration(false)}>\r\n Cerrar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>} */}\r\n\r\n\r\n <Title actual='Inicio' icon='mdi mdi-chart-bar' />\r\n <div className='container-fluid'>\r\n <div className='card-group'>\r\n <Card\r\n icon='mdi mdi-briefcase-check text-info'\r\n value={trabId}\r\n name='ID DE EMPLEADO'\r\n />\r\n\r\n <Card\r\n icon='mdi mdi-adjust text-secondary'\r\n value={centro}\r\n name='CENTRO'\r\n />\r\n\r\n {sessionStorage.getItem(\"SICONSULTA_OcultarFechaNacimiento\") === \"1\"\r\n ? <Card />\r\n : <Card\r\n icon='mdi mdi-calendar text-success'\r\n value={fechNac}\r\n name='FECHA DE NACIMIENTO'\r\n type='date'\r\n />\r\n }\r\n\r\n\r\n {showEstadocivil == 'true' ?\r\n <Card\r\n icon='mdi mdi-account text-purple'\r\n value={edoCivil}\r\n name='ESTADO CIVIL'\r\n />\r\n : null}\r\n </div>\r\n\r\n <div className='card-group'>\r\n <Card\r\n icon='mdi mdi-city text-success'\r\n value={empresa}\r\n name='EMPRESA'\r\n />\r\n\r\n <Card\r\n icon='mdi mdi-calendar-check text-info'\r\n value={fechaIngreso}\r\n name='FECHA INGRESO'\r\n type='date'\r\n />\r\n\r\n {showFechaTermino == 'true' ?\r\n <Card\r\n icon='mdi mdi-calendar-remove text-danger'\r\n value={fechaTermino}\r\n name='FECHA TERMINO'\r\n type='date'\r\n /> : null}\r\n\r\n <Card\r\n icon='mdi mdi-account-card-details text-secondary'\r\n value={puesto}\r\n name='PUESTO'\r\n />\r\n </div>\r\n\r\n <div className='row'>\r\n {showGrafica == 'true' ? (\r\n <div className='col-md-12 col-lg-8 col-xlg-9 d-flex align-items-stretch'>\r\n <div className='card'>\r\n <div className='card-body'>\r\n <div className='row'>\r\n <div className='col-12'>\r\n <div className='d-flex flex-wrap justify-content-between'>\r\n <div>\r\n <h4 className='card-title'>\r\n ÚLTIMOS PERIODOS DE NÓMINA\r\n </h4>\r\n </div>\r\n {(localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') ?\r\n <>\r\n <div className='ml-auto mr-3 my-2'>\r\n <select\r\n className='form-control'\r\n value={filterType.ano}\r\n onChange={(e) => { onChangeFilterType('ano', e.target.value); }}>\r\n <option value='DEFAULT'>\r\n Filtrar por Año\r\n </option>\r\n {getYearsOptions()}\r\n </select>\r\n </div>\r\n <div className='ml-auto mr-3 my-2'>\r\n <select\r\n className='form-control'\r\n value={filterType.numeroPeriodo}\r\n onChange={(e) => { onChangeFilterType('numeroPeriodo', e.target.value); }}>\r\n <option value='DEFAULT'>\r\n Filtrar por Periodo\r\n </option>\r\n {getPeriodOptions()}\r\n </select>\r\n </div>\r\n <div className='ml-auto mr-3 my-2'>\r\n <select\r\n className='form-control'\r\n value={filterType.tipoNomina}\r\n onChange={(e) => { onChangeFilterType('tipoNomina', e.target.value); }}>\r\n <option value='DEFAULT'>\r\n Filtrar por Tipo de Nómina\r\n </option>\r\n {getTiposNominaOptions()}\r\n </select>\r\n </div>\r\n </>\r\n :\r\n <div className='ml-auto mr-3 my-2'>\r\n <select\r\n className='form-control'\r\n defaultValue={'DEFAULT'}\r\n onChange={(e) => {\r\n setFilterType(e.target.value);\r\n }}\r\n >\r\n <option value='DEFAULT'>\r\n Filtrar por Tipo de Nómina\r\n </option>\r\n {getTypeOptions()}\r\n </select>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div className='col-12'>\r\n {loadGraph ? (\r\n <canvas\r\n id='myChart'\r\n width='400'\r\n height='300'\r\n ></canvas>\r\n ) : noGraph ? (\r\n <div\r\n style={{ width: 400 + 'px', height: 400 + 'px' }}\r\n ></div>\r\n ) : (\r\n <div\r\n style={{ width: 400 + 'px', height: 400 + 'px' }}\r\n >\r\n <svg\r\n className='circular my-auto'\r\n viewBox='25 25 50 50'\r\n >\r\n <circle\r\n className='path'\r\n cx='50'\r\n cy='50'\r\n r='20'\r\n fill='none'\r\n strokeWidth='2'\r\n strokeMiterlimit='10'\r\n />\r\n </svg>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n <div className='col-sm-12 col-md-12 col-lg-4 col-xlg-3 d-flex align-items-stretch'>\r\n <div className='card'>\r\n <div className='card-body bg-info'>\r\n <h4 className='text-white card-title'>Datos Personales</h4>\r\n </div>\r\n <div className='card-body'>\r\n <div className='message-box contact-box'>\r\n <div className='message-widget contact-widget'>\r\n <a\r\n href='#'\r\n style={{ pointerEvents: 'none', cursor: 'default' }}\r\n >\r\n <div className='user-img'>\r\n {' '}\r\n <i\r\n style={{ fontSize: 40 + 'px' }}\r\n className='mdi mdi-account-location'\r\n ></i>{' '}\r\n </div>\r\n <div\r\n className='mail-contnet'\r\n style={{ paddingBottom: 20 + 'px' }}\r\n >\r\n <h5>CURP</h5>{' '}\r\n <span className='mail-desc'>{curp}</span>\r\n </div>\r\n </a>\r\n <a\r\n href='#'\r\n style={{ pointerEvents: 'none', cursor: 'default' }}\r\n >\r\n <div className='user-img'>\r\n {' '}\r\n <i\r\n style={{ fontSize: 40 + 'px' }}\r\n className='mdi mdi-briefcase'\r\n ></i>{' '}\r\n </div>\r\n <div\r\n className='mail-contnet'\r\n style={{ paddingBottom: 20 + 'px' }}\r\n >\r\n <h5>RFC</h5>{' '}\r\n <span className='mail-desc'>{rfc}</span>\r\n </div>\r\n </a>\r\n <a\r\n href='#'\r\n style={{ pointerEvents: 'none', cursor: 'default' }}\r\n >\r\n <div className='user-img'>\r\n {' '}\r\n <i\r\n style={{ fontSize: 40 + 'px' }}\r\n className='mdi mdi-store-24-hour'\r\n ></i>{' '}\r\n </div>\r\n <div\r\n className='mail-contnet'\r\n style={{ paddingBottom: 20 + 'px' }}\r\n >\r\n <h5>NSS</h5>{' '}\r\n <span className='mail-desc'>{nss}</span>\r\n </div>\r\n </a>\r\n {sessionStorage.getItem(\"SICONSULTA_OcultaClabeBancaria\") === \"1\"\r\n ? <section></section>\r\n : <a\r\n href='#'\r\n style={{ pointerEvents: 'none', cursor: 'default' }}\r\n >\r\n <div className='user-img'>\r\n {' '}\r\n <i\r\n style={{ fontSize: 40 + 'px' }}\r\n className='mdi mdi-bank'\r\n ></i>{' '}\r\n </div>\r\n <div\r\n className='mail-contnet'\r\n style={{ paddingBottom: 20 + 'px' }}\r\n >\r\n <h5>Cuenta Bancaria (CLABE)</h5>{' '}\r\n <span className='mail-desc'>{clabe}</span>\r\n <span className='mail-desc'>{banco}</span>\r\n </div>\r\n </a>\r\n }\r\n\r\n\r\n <a\r\n href='#'\r\n style={{ pointerEvents: 'none', cursor: 'default' }}\r\n >\r\n <div className='user-img'>\r\n {' '}\r\n <i\r\n style={{ fontSize: 40 + 'px' }}\r\n className='mdi mdi-lead-pencil'\r\n ></i>{' '}\r\n </div>\r\n <div\r\n className='mail-contnet'\r\n style={{ paddingBottom: 20 + 'px' }}\r\n >\r\n <h5>Registro Patronal</h5>\r\n <span className='mail-desc'>{registro}</span>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n nominaData: state.nomina.nominaData,\r\n nominaError: state.nomina.nominaError,\r\n\r\n siBalanceData: state.siBalance.siBalanceData,\r\n siBalanceError: state.siBalance.siBalanceError,\r\n\r\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\r\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\r\n\r\n employeeVacationsData: state.employeeVacations.employeeVacationsData,\r\n employeeVacationsError: state.employeeVacations.employeeVacationsError,\r\n\r\n vacationsExpirationData: state.vacationsExpiration.vacationsExpirationData,\r\n vacationsExpirationError: state.vacationsExpiration.vacationsExpirationError,\r\n\r\n varShowOptionsData: state.varShowOptions.varShowOptionsData,\r\n varShowOptionsError: state.varShowOptions.varShowOptionsError,\r\n\r\n incidentAlertData: state.incidentAlert.incidentAlertData,\r\n incidentAlertError: state.incidentAlert.incidentAlertError,\r\n\r\n vacationsData: state.vacations.vacationsData,\r\n vacationsError: state.vacations.vacationsError,\r\n\r\n messagesData: state.messages.messagesData,\r\n messagesError: state.messages.messagesError,\r\n incidentsReportData: state.incidentsReport.incidentsReportData,\r\n incidentsReportError: state.incidentsReport.incidentsReportError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n // getDataUserAction,\r\n getSiBalanceAction,\r\n getPeriodosNominaAction,\r\n getWelcomeMessageAction,\r\n\r\n getEmployeeVacationsAction,\r\n getVacationExpirationAction,\r\n getVarShowOptionsAction,\r\n getGetIncidenciasAlertaAction,\r\n\r\n getVacationsAction,\r\n getMessagesAction,\r\n getNotificacionCorreo,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));","import { changeXml, GetIncidenciasAlerta } from '../../endpoints';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INCIDENT_ALERT_SUCCESS,\n INCIDENT_ALERT_ERROR,\n INCIDENT_ALERT_PURGE,\n} from '../../types'\n\n\nexport const getGetIncidenciasAlertaAction = (data, server) => {\n let configJson = {\n 'tem:GetIncidenciasAlerta': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/GetIncidenciasAlerta\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INCIDENT_ALERT_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n console.log('XML', xml);\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n response = {\n isOK: true,\n GetIncidenciasAlerta: GetIncidenciasAlerta(body)\n }\n\n console.log('RESPONSE GetIncidenciasAlerta DATA: ', response);\n dispatch({ type: INCIDENT_ALERT_SUCCESS, payload: response })\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET GetIncidenciasAlerta DATA: ', response);\n dispatch({ type: INCIDENT_ALERT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET GetIncidenciasAlerta DATA: ', responseError);\n dispatch({ type: INCIDENT_ALERT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, NextInfoUser } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NEXT_INFO_USER_SUCCESS,\n NEXT_INFO_USER_ERROR,\n NEXT_INFO_USER_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getNextInfoUserAction = (data, server) => {\n let configJson = {\n 'tem:InfoExtra': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/InfoExtra\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NEXT_INFO_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET NEXT_INFO_USER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NEXT_INFO_USER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n NextInfoUser: NextInfoUser(body)\n }\n\n console.log('RESPONSE NEXT_INFO_USER DATA: ', response);\n dispatch({ type: NEXT_INFO_USER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NEXT_INFO_USER DATA: ', response);\n dispatch({ type: NEXT_INFO_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NEXT_INFO_USER DATA: ', responseError);\n dispatch({ type: NEXT_INFO_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getNextInfoUserAction } from '../../api/actions/systemAdmin/NextInfoUserAction';\nimport { getSaveInfoExtraAction } from '../../api/actions/systemAdmin/SaveInfoExtraAction';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Home = props => {\n\n const { params, server } = getParams();\n const [loading, setLoading] = useState(true);\n const [values, setValues] = useState({});\n const { addToast } = useToasts();\n const [hasError, setHasError] = useState(false);\n\n useEffect(() => {\n if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') != '1') {\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:OmitirCamposEsp': false,\n }\n\n props.getNextInfoUserAction(send, server);\n }\n else {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n if (props.nextInfoUserData && props.nextInfoUserData.isOK && props.nextInfoUserData.NextInfoUser) {\n setHasError(false);\n setLoading(false);\n } else if (props.nextInfoUserError && props.nextInfoUserError.isOK === false) {\n props.getNextInfoUserAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.nextInfoUserData, props.nextInfoUserError]);\n\n useEffect(() => {\n if (props.saveInfoExtraData && props.saveInfoExtraData.isOK) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n } else if (props.saveInfoExtraError && props.saveInfoExtraError.isOK === false) {\n props.getSaveInfoExtraAction('PURGE', '');\n } \n }, [props.saveInfoExtraData, props.saveInfoExtraError]);\n\n const form_inputs = () => {\n\n let inputs = [];\n let info = props.nextInfoUserData.NextInfoUser;\n\n if (info) {\n\n if (info.length <= 0) {\n inputs.push(\n <p key={'No data'}>No hay campos adicionales.</p>\n );\n } else {\n info = info.filter(item => item.id.trim().toLowerCase() != 'fondoahorro');\n\n info.map((item, i) => {\n inputs.push(\n <div key={item.id} className=\"col-sm-12 col-md-6 col-lg-4 mb-4\">\n <label>{item.campo}</label>\n <div className=\"input-group\">\n <input type=\"text\" className=\"form-control\" name={item.id} defaultValue={item.informacion} onChange={handleInputChange} />\n <span className=\"input-group-append\">\n <button className=\"btn btn-info form-control text-white\" onClick={(e) => handleChangeValue(e, item.id)}>\n <i className=\"mdi mdi-content-save\"></i>\n </button>\n </span>\n </div>\n </div>\n );\n\n });\n\n }\n } else {\n inputs.push(\n <p key={'No data'}>Nada que mostrar</p>\n );\n }\n\n return inputs;\n };\n\n const handleInputChange = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n }\n\n const handleChangeValue = (e, id) => {\n e.preventDefault();\n if (values.hasOwnProperty(id)) {\n\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Campo_ID': id,\n 'tem:Informacion': values[id],\n 'tem:TrabID': params['tem:TrabID'],\n }\n\n props.getSaveInfoExtraAction(send, server);\n }\n }\n\n const url = () => {\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBInfoAdicional = (sessionStorage.getItem('SICONSULTA_LigaPBInfoAdicional') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBInfoAdicional);\n\n return LigaPBInfoAdicional.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Información Adicional\" icon=\"mdi mdi-account\" />\n \n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n Información Adicional <br />\n <small>Actualiza cualquier campo dando click en el botón correspondiente.</small>\n </div>\n <div className=\"card-body\">\n <form>\n <div className=\"row form-group\">\n {!hasError && form_inputs()}\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n nextInfoUserData: state.nextInfoUser.nextInfoUserData,\n nextInfoUserError: state.nextInfoUser.nextInfoUserError,\n\n saveInfoExtraData: state.saveInfoExtra.saveInfoExtraData,\n saveInfoExtraError: state.saveInfoExtra.saveInfoExtraError,\n };\n};\n\nconst mapDispatchToProps = {\n getNextInfoUserAction,\n getSaveInfoExtraAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));\n","import { changeXml, SaveInfoExtra } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SAVE_INFO_EXTRA_SUCCESS,\n SAVE_INFO_EXTRA_ERROR,\n SAVE_INFO_EXTRA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getSaveInfoExtraAction = (data, server) => {\n let configJson = {\n 'tem:SaveInformacionExtra': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SaveInformacionExtra\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SAVE_INFO_EXTRA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SAVE_INFO_EXTRA DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SAVE_INFO_EXTRA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SaveInfoExtra: SaveInfoExtra(body)\n }\n\n console.log('RESPONSE SAVE_INFO_EXTRA DATA: ', response);\n dispatch({ type: SAVE_INFO_EXTRA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SAVE_INFO_EXTRA DATA: ', response);\n dispatch({ type: SAVE_INFO_EXTRA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SAVE_INFO_EXTRA DATA: ', responseError);\n dispatch({ type: SAVE_INFO_EXTRA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, detalleNomina } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DETALLE_NOMINA_SUCCESS,\n DETALLE_NOMINA_ERROR,\n DETALLE_NOMINA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getdetalleNominaAction = (data, server) => {\n let configJson = {\n 'tem:DetalleNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DetalleNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST DETALLE NOMINA:', server, data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DETALLE_NOMINA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n DetalleNomina: detalleNomina(body)\n }\n console.log('ERROR GET DETALLE_NOMINA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DETALLE_NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DetalleNomina: detalleNomina(body)\n }\n\n console.log('RESPONSE DETALLE_NOMINA DATA: ', response);\n dispatch({ type: DETALLE_NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DETALLE_NOMINA DATA: ', response);\n dispatch({ type: DETALLE_NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DETALLE_NOMINA DATA: ', responseError);\n dispatch({ type: DETALLE_NOMINA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport NumberFormat from \"react-number-format\";\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar.js\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { getdetalleNominaAction } from \"../../api/actions/empleado/DetalleNominaAction\";\nimport { getPeriodosNominaAction } from \"../../api/actions/empleado/NominaAction\";\n// import { getUrlPdfAction } from \"../../api/actions/empleado/UrlPdfAction\";\n// import { getUrlXmlAction } from \"../../api/actions/empleado/UrlXmlAction\";\nimport { getVarShowOptionsAction } from '../../api/actions/systemAdmin/VarShowOptionsAction';\n\nimport { getParams, groupFieldOfArray } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\nimport { mdiWindowShutter } from \"@mdi/js\";\nimport Chart from \"chart.js\";\n\nconst Payroll = (props) => {\n const [loading, setLoading] = useState(true);\n const [filterType, setFilterType] = useState(\"DEFAULT\");\n const [chart, setChart] = useState(null);\n const [dataVSO, setDataVSO] = useState({showEstadocivil: \"false\", showFechaTermino: \"false\", showGrafica: \"false\"});\n //const [tables, setTables] = useState({});\n const [dataAllNomina, setDataAllNomina] = useState([])\n\n //------------------------------------------------------------------------------\n const [paginador, setPaginador] = useState({\n paginaActual: 1, \n limitePagInferior: 1, \n limitePagSuperior: 1, \n registrosPagina: 20, \n registrosTotales: 0, \n\n bloqueActual: 1,\n limiteBloqueInferior: 1,\n limiteBloqueSuperior: 1,\n paginasBloque: 10,\n multiplosBloque: [],\n });\n\n const calculaPaginador = (_registrosTotales, _registrosPagina = -1) => {\n let _paginador = {...paginador};\n\n if (_registrosPagina == -1) {\n _registrosPagina = _paginador.registrosPagina;\n }\n\n _paginador.paginaActual = 1;\n _paginador.limitePagInferior = 1;\n _paginador.limitePagSuperior = (_registrosTotales / _registrosPagina);\n _paginador.registrosPagina = _registrosPagina;\n _paginador.registrosTotales = _registrosTotales;\n\n if (_paginador.limitePagSuperior % 1 != 0) {\n _paginador.limitePagSuperior = parseInt(_paginador.limitePagSuperior)+ 1;\n }\n else {\n _paginador.limitePagSuperior = parseInt(_paginador.limitePagSuperior);\n }\n \n\n _paginador.bloqueActual = 1;\n _paginador.limiteBloqueInferior = 1;\n _paginador.limiteBloqueSuperior = (_paginador.limitePagSuperior / _paginador.paginasBloque);\n\n if (_paginador.limiteBloqueSuperior % 1 != 0) {\n _paginador.limiteBloqueSuperior = parseInt(_paginador.limiteBloqueSuperior)+ 1;\n }\n else {\n _paginador.limiteBloqueSuperior = parseInt(_paginador.limiteBloqueSuperior);\n }\n\n _paginador.multiplosBloque = [];\n for(let i = 1, bloque = []; i <= _paginador.limitePagSuperior; i++) {\n bloque.push(i);\n if ((i % _paginador.paginasBloque) == 0 || _paginador.limitePagSuperior == i) {\n _paginador.multiplosBloque.push([...bloque]);\n bloque = [];\n }\n }\n\n console.log('OIHB DATA', _paginador);\n setPaginador(_paginador);\n };\n\n const siguientePagina = () => {\n let _paginador = {...paginador};\n\n if ((_paginador.paginaActual + 1) > _paginador.limitePagSuperior) return;\n\n _paginador.paginaActual += 1;\n\n let idxBloque = _paginador.multiplosBloque.findIndex(ml => ml.some(n => n == _paginador.paginaActual)) + 1;\n if (idxBloque > 0 && idxBloque != _paginador.bloqueActual) _paginador.bloqueActual = idxBloque;\n\n setPaginador(_paginador);\n };\n\n const anteriorPagina = () => {\n let _paginador = {...paginador};\n\n if (_paginador.limitePagInferior > (_paginador.paginaActual - 1)) return;\n\n _paginador.paginaActual -= 1;\n\n let idxBloque = _paginador.multiplosBloque.findIndex(ml => ml.some(n => n == _paginador.paginaActual)) + 1;\n if (idxBloque > 0 && idxBloque != _paginador.bloqueActual) _paginador.bloqueActual = idxBloque;\n\n setPaginador(_paginador);\n };\n\n const siguienteBloque = () => {\n let _paginador = {...paginador};\n\n if ((_paginador.bloqueActual + 1) > _paginador.limiteBloqueSuperior) return;\n\n _paginador.bloqueActual += 1;\n setPaginador(_paginador);\n };\n\n const anteriorBloque = () => {\n let _paginador = {...paginador};\n\n if (_paginador.limiteBloqueInferior > (_paginador.bloqueActual - 1)) return;\n\n _paginador.bloqueActual -= 1;\n setPaginador(_paginador);\n };\n\n const asignarPaginaActual = (pagina) => {\n let _paginador = {...paginador}; \n _paginador.paginaActual = pagina; \n setPaginador(_paginador);\n };\n\n const rowPaginador = () => {\n let buttons = [];\n let styleButtonsH = {minWidth: '45px', maxWidth: '45px'};\n let styleButtonsI = {minWidth: '45px', maxWidth: '45px'};\n // let multiplos = [];\n // for(let i = 1, bloque = []; i <= paginador.limitePagSuperior; i++) {\n // bloque.push(i);\n // if ((i % 5) == 0 || paginador.limitePagSuperior == i) {\n // multiplos.push([...bloque]);\n // bloque = [];\n // }\n // }\n\n //console.log('OIHB DATA', multiplos);\n \n // let find = multiplos.find(ml => ml.some(n => n == paginador.paginaActual)) || [];\n // find.forEach((i) => {\n // buttons.push(<button key={\"btn_\" + i} type=\"button\" className={\"btn \" + (paginador.paginaActual == i ? \"btn-info\" : \"btn-secondary\")} onClick={() => { asignarPaginaActual(i); }}>{i}</button>);\n // });\n\n let find = paginador.multiplosBloque[paginador.bloqueActual-1];\n find.forEach((i) => {\n buttons.push(<button key={\"btn_\" + i} type=\"button\" className={\"btn \" + (paginador.paginaActual == i ? \"btn-info\" : \"btn-secondary\")} style={styleButtonsI} onClick={() => { asignarPaginaActual(i); }}>{i}</button>);\n });\n\n return (\n <tr>\n <th colSpan={\"20\"}>\n <div className=\"row\">\n \n <div className=\"col-md-10\">\n <div className=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Grupo de navegador de páginas\">\n <div className=\"btn-group mr-2\" role=\"group\" aria-label=\"Navegador de páginas\">\n <button type=\"button\" className=\"btn btn-secondary\" style={styleButtonsH} onClick={() => { anteriorBloque(); } }>{\"<<\"}</button>\n <button type=\"button\" className=\"btn btn-secondary\" style={styleButtonsH} onClick={() => { anteriorPagina(); } }>{\"<\"}</button>\n <button type=\"button\" className=\"btn btn-secondary\" style={styleButtonsH} onClick={() => { siguientePagina(); } }>{\">\"}</button>\n <button type=\"button\" className=\"btn btn-secondary\" style={styleButtonsH} onClick={() => { siguienteBloque(); } }>{\">>\"}</button>\n     {buttons}\n </div>\n </div>\n </div>\n\n <div className=\"col-md-2\">\n <div style={{float: \"right\"}}>\n Filas:   \n <input type=\"number\" className={\"form-control\"}\n min=\"1\" max={100} \n pattern=\"^[0-9]+\" \n onKeyPress={(evt) => {\n if (evt.which != 8 && evt.which != 0 && evt.which < 48 || evt.which > 57) { evt.preventDefault(); }\n }} \n style={ {width: '72px'} } \n value={paginador.registrosPagina} \n onChange={(e) => { \n var number = parseInt(e.target.value);\n if (!(number >= 1 && number <= 100)) {\n e.preventDefault();\n return;\n }\n\n if (dataAllNomina.length > 0) {\n calculaPaginador(dataAllNomina.length, number);\n }\n\n console.log('OIHB DATA', number);\n }} \n />\n </div>\n </div>\n\n </div>\n </th>\n </tr>\n );\n };\n //------------------------------------------------------------------------------\n\n const reglaMapNominas1 = (item, index) => {\n item.Mostrar = \"true\";\n if (localStorage.getItem(\"REACT_APP_NOMINAS_CERO\") != '1') {\n if (item.total <= 0 || item.totalPercepcion <= 0 || (item.totalPercepcion - item.totalDeduccion) <= 0) { \n item.Mostrar = \"false\"; \n } \n }\n }\n const reglaFiltroNominas1 = (item) => {\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\n return (item.ano == filterType.ano || filterType.ano == 'DEFAULT') \n && (item.numeroPeriodo == filterType.numeroPeriodo || filterType.numeroPeriodo == 'DEFAULT') \n && (item.tipoNomina == filterType.tipoNomina || filterType.tipoNomina == 'DEFAULT');\n }\n else {\n return item.Mostrar == 'true' && (item.tipoNomina == filterType || filterType == 'DEFAULT');\n }\n };\n\n useEffect(() => {\n let { params, server } = getParams();\n props.getdetalleNominaAction(\"PURGE\", \"\");\n props.getVarShowOptionsAction(params, server);\n\n // let cargarNomina = false;\n // if (!(props.nominaData && props.nominaData.isOK === true)) cargarNomina = true;\n // else if ([...props.nominaData.Nomina].length == 0) cargarNomina = true;\n\n // if (cargarNomina) {\n props.getPeriodosNominaAction(params, server);\n // }\n }, []);\n\n useEffect(() => {\n if (props.nominaData && props.nominaData.isOK === true) {\n setDataAllNomina([]);\n\n let danArr = [...props.nominaData.Nomina];\n if (danArr.length > 0) {\n danArr.map(reglaMapNominas1);\n //setDataAllNomina(danArr);\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\n let filters = { };\n filters.ano = danArr.sort((a, b) => { return b.ano - a.ano; })[0].ano;\n filters.numeroPeriodo = danArr.filter(f => f.ano == filters.ano).sort((a, b) => { return b.numeroPeriodo - a.numeroPeriodo; })[0].numeroPeriodo;\n filters.tipoNomina = 'DEFAULT';\n setFilterType(filters);\n }\n \n //calculaPaginador(danArr.length);\n setDataAllNomina(danArr);\n setLoading(false);\n }\n props.getPeriodosNominaAction('PURGE', '');\n } \n else if (props.nominaError && props.nominaError.isOK === false) {\n setDataAllNomina([])\n props.getPeriodosNominaAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.nominaData, props.nominaError]);\n \n useEffect(() => {\n let check = true;\n if (localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') {\n check = (filterType.ano && filterType.numeroPeriodo && filterType.tipoNomina);\n }\n\n if (!loading && (dataAllNomina || []).length > 0 && check) {\n if (chart) {\n chart.destroy();\n setChart(null);\n }\n\n let danArr = dataAllNomina.filter(reglaFiltroNominas1);\n //calculaPaginador(danArr.length);\n\n var ctx = \"myChart\";\n var myChart = new Chart(ctx, {\n type: \"line\",\n data: {\n //labels: dataAllNomina.filter(reglaFiltroNominas1).map((item) => moment(item.fechaFinal).format(\"DD/MM/YYYY\")),\n labels: danArr.map((item) => moment(item.fechaFinal).format(\"DD/MM/YYYY\")),\n datasets: [\n {\n label: false,\n //data: dataAllNomina.filter(reglaFiltroNominas1).map((item) => parseFloat(item.total).toFixed(2)),\n data: danArr.map((item) => parseFloat(item.total).toFixed(2)),\n backgroundColor: \"rgba(12, 68, 119, 1)\",\n borderColor: \"rgba(12, 68, 119, 1)\",\n borderWidth: 3,\n fill: false,\n lineTension: 0,\n },\n ],\n },\n options: {\n legend: {\n display: false,\n },\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value, index, values) {\n return value.toLocaleString(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n });\n },\n },\n },\n ],\n },\n tooltips: {\n callbacks: {\n label: function (tooltipItem, data) {\n return (\n \"$\" +\n Number(tooltipItem.yLabel)\n .toFixed(2)\n .replace(/./g, function (c, i, a) {\n return i > 0 && c !== \".\" && (a.length - i) % 3 === 0\n ? \",\" + c\n : c;\n })\n );\n },\n },\n },\n },\n });\n\n setChart(myChart);\n }\n }, [loading, filterType, dataAllNomina]);\n\n\n useEffect(() => {\n if (props.varShowOptionsData && props.varShowOptionsData.isOK) {\n setDataVSO({\n ...props.varShowOptionsData.VarShowOptions\n });\n }\n else{\n setDataVSO({showEstadocivil: \"false\", showFechaTermino: \"false\", showGrafica: \"false\"});\n }\n }, [\n props.varShowOptionsData, props.varShowOptionsError\n ]);\n\n const payroll_table = () => {\n let table = [];\n let movimientos = [...dataAllNomina].filter(reglaFiltroNominas1);\n //console.log('OIHB Data', movimientos);\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"empty\">\n <td>No hay registros que mostar.</td>\n </tr>\n );\n } \n else {\n // movimientos = movimientos.sort((a, b) => {\n // return a.ptr - b.ptr;\n // });\n\n movimientos = movimientos.sort((a, b) => { return b.ano - a.ano || b.numeroPeriodo - a.numeroPeriodo; });\n \n // let desde = (paginador.paginaActual-1)*paginador.registrosPagina;\n // let hasta = desde + paginador.registrosPagina;\n // movimientos.slice(desde, hasta).map((item, i) => {\n movimientos.map((item, i) => {\n //if (filterType == \"DEFAULT\" || filterType == item.tipoNomina) {\n table.push(\n <tr\n key={i}\n onClick={(localStorage.getItem(\"REACT_APP_NOMINAS_CERO\") == '1' || item.total > 0) ? () => _handleRowClick(item) : () => {}}\n onClick={() => _handleRowClick(item)}\n style={{ cursor: \"pointer\" }}\n >\n <td>\n <h3>#{item.numeroPeriodo}</h3>\n </td>\n <td>{item.ano}</td>\n <td>{item.nombrePeriodo}</td>\n <td>{item.tipoNomina}</td>\n <td>{moment(item.fechaInicio).format(\"DD/MM/YYYY\")}</td>\n <td>{moment(item.fechaFinal).format(\"DD/MM/YYYY\")}</td>\n <td>\n <h3>\n <NumberFormat\n value={item.total}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </h3>\n </td>\n <td>\n {item.total != 0 && <i className=\"mdi mdi-chevron-right\"></i>}\n </td>\n </tr>\n );\n //}\n });\n }\n\n return table;\n };\n\n const _handleRowClick = (item) => {\n props.history.push(`${process.env.PUBLIC_URL}/nominas/detalle`, item);\n };\n\n const getYearsOptions = () => {\n let movimientos = [...dataAllNomina];\n if (movimientos.length <= 0) return [];\n\n let options = groupFieldOfArray(movimientos, 'ano').sort((a, b) => { return b - a; });\n options = options.map((ano, i1) => {\n return (\n <option value={ano} key={'opt' + i1 + '_' + ano}>\n {ano}\n </option>);\n });\n\n return options;\n };\n\n const getPeriodOptions = () => {\n let movimientos = [...dataAllNomina];\n if (movimientos.length <= 0) return [];\n if (!filterType.ano) return [];\n\n movimientos = movimientos.filter(mov => \n (filterType.ano == mov.ano || filterType.ano == 'DEFAULT')\n ).sort((a, b) => { let fa = new Date(a.fechaInicio), fb = new Date(b.fechaInicio); return fb - fa; });\n if (movimientos.length <= 0) return [];\n\n let options = [];\n let exists = [];\n movimientos.map((opt, i1) => {\n if (!exists.some(s => s.ano == opt.ano && s.numeroPeriodo == opt.numeroPeriodo)) {\n exists.push({ ano: opt.ano, numeroPeriodo: opt.numeroPeriodo });\n options.push(\n <option value={opt.numeroPeriodo} key={'opt' + i1 + '_' + opt.numeroPeriodo}>\n {opt.numeroPeriodo.padStart(2, '0')}: {'Del ' + moment(opt.fechaInicio).format('DD/MM/YYYY') + ' al ' + moment(opt.fechaFinal).format('DD/MM/YYYY')}\n </option>);\n }\n });\n\n return options;\n };\n\n // const getPeriodOptions2 = () => {\n // let movimientos = [...dataAllNomina];\n // if (movimientos.length <= 0) return [];\n // if (!filterType.ano) return [];\n\n // movimientos = movimientos.filter(mov => \n // (filterType.ano == mov.ano || filterType.ano == 'DEFAULT')\n // ).sort((a, b) => { let fa = new Date(a.fechaInicio), fb = new Date(b.fechaInicio); return fb - fa; });\n // if (movimientos.length <= 0) return [];\n\n // let options = [];\n // let exists = [];\n // movimientos.map((opt, i1) => {\n // if (!exists.some(s => s.ano == opt.ano && s.numeroPeriodo == opt.numeroPeriodo)) {\n // exists.push({ ano: opt.ano, numeroPeriodo: opt.numeroPeriodo });\n // options.push( { value: opt.numeroPeriodo, text: opt.numeroPeriodo.padStart(2, '0') + ': Del ' + moment(opt.fechaInicio).format('DD/MM/YYYY') + ' al ' + moment(opt.fechaFinal).format('DD/MM/YYYY') } );\n // }\n // });\n\n // return options;\n // };\n\n const getTiposNominaOptions = () => {\n let movimientos = [...dataAllNomina];\n if (movimientos.length <= 0) return [];\n if (!filterType.ano) return [];\n if (!filterType.numeroPeriodo) return [];\n\n movimientos = movimientos.filter(mov => \n (filterType.ano == mov.ano || filterType.ano == 'DEFAULT') \n && (filterType.numeroPeriodo == mov.numeroPeriodo || filterType.numeroPeriodo == 'DEFAULT')\n ).sort((a, b) => { return a.ptr - b.ptr; });\n if (movimientos.length <= 0) return [];\n\n //console.log('OIHB Data TiposNomina', movimientos);\n\n let options = [];\n let exists = [];\n movimientos.map((opt, i1) => {\n if (!exists.includes(opt.tipoNominaID)) {\n exists.push(opt.tipoNominaID);\n options.push(\n <option value={opt.tipoNomina} key={'opt' + i1 + '_' + opt.tipoNomina}>\n {opt.tipoNominaID}: {opt.tipoNomina}\n </option>);\n }\n });\n\n return options;\n };\n\n const onChangeFilterType = (field, value) => {\n let filters = {...filterType};\n filters[field] = value;\n setFilterType(filters);\n }\n\n const getTypeOptions = () => {\n let typeOptions = [];\n let movimientos = dataAllNomina//.filter(reglaFiltroNominas1);\n let names = [];\n\n if (!movimientos || movimientos.length <= 0) {\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n movimientos.map((item, i) => {\n if (!names.includes(item.tipoNomina)) {\n names.push(item.tipoNomina);\n typeOptions.push(\n <option value={item.tipoNomina} key={item.tipoNomina}>\n {item.tipoNominaID}: {item.tipoNomina}\n </option>\n );\n }\n });\n }\n\n return typeOptions;\n };\n\n // const [showModal, setShowModal] = useState(false);\n // const [optionsModal, setOptionsModal] = useState({ title: '', options: [], selected: [], search: '' });\n // const changeOptionsModal = (field, value = null) => {\n // let temp = {...optionsModal}; \n // if (field == 'options' || field == 'selected') {\n // if (field == 'options' && Array.isArray(value)) {\n // temp[field] = value; \n // }\n\n // if (field == 'selected' && Array.isArray(value)) {\n // temp[field] = value; \n // }\n // else {\n // let ix = temp[field].findIndex(s => s.value == value.value)\n // if (ix >= 0) {\n // temp[field].splice(ix, 1);\n // }\n // else {\n // temp[field].push(value);\n // }\n // }\n // }\n // else if (value != null) {\n // temp[field] = value; \n // }\n \n // setOptionsModal(temp); \n // };\n // const openOptionsModal = (titulo, options) => {\n // if (!Array.isArray(options)) return;\n\n // if (options.length > 0) {\n // let temp = {...optionsModal};\n // temp.title = titulo;\n // temp.options = options;\n // temp.selected = [];\n // temp.search = '';\n // setOptionsModal(temp);\n // setShowModal(true);\n // }\n // };\n // const closeOptionsModal = () => {\n // setShowModal(false);\n // let selected = optionsModal.selected.filter(f => f.value.includes(optionsModal.search) || f.text.includes(optionsModal.search));\n // alert(JSON.stringify(selected));\n // };\n // const checkAllOptionsModal = () => {\n // let temp = {...optionsModal};\n // let options = temp.options.filter(f => f.value.includes(temp.search) || f.text.includes(temp.search));\n // if (options.length <= 0) return; \n\n // let selected = temp.selected.filter(f => f.value.includes(temp.search) || f.text.includes(temp.search));\n // if (options.length != selected.length) {\n // temp.selected = [];\n // temp.selected = [...options]\n // }\n // else {\n // temp.selected = [];\n // }\n // setOptionsModal(temp);\n // };\n\n // const printModal = () => {\n // if (!showModal) return[];\n\n // let info = {...optionsModal};\n // let options = info.options.filter(f => f.value.includes(info.search) || f.text.includes(info.search) );\n // let selected = info.selected.filter(f => f.value.includes(info.search) || f.text.includes(info.search) );\n // let allChecked = options.length == selected.length;\n\n // return (\n // <Modal\n // show={showModal} \n // onHide={() => closeOptionsModal()} \n // aria-labelledby='contained-modal-title-vcenter'\n // centered>\n // <Modal.Header closeButton>\n // <Modal.Title>{info.title}</Modal.Title>\n // </Modal.Header>\n // <Modal.Body>\n // <div className=\"row\">\n // <div className=\"col-md-12\">\n // <input \n // style={{maxWidth: '80%'}}\n // className=\"form-control\" type=\"text\" required=\"\" placeholder=\"Buscar...\" value={info.search} \n // onChange={(e) => { changeOptionsModal('search', e.target.value); }}/>\n // </div>\n // <div className=\"col-md-12\"> </div>\n // <div className=\"col-md-12\" style={{maxHeight: '200px', overflow: 'auto'}}>\n // <div className=\"form-group\" hidden={options.length <= 0}>\n // <label key={'lbl_all'}>\n // <input key={'chk_all'} type=\"checkbox\" \n // checked={allChecked}\n // onChange={() => { checkAllOptionsModal(); }} /> { allChecked ? 'Desmarcar' : 'Marcar'} todos\n // </label>\n // {options.map((item, ix) => {\n // return (\n // <label key={'lbl' + ix + '_' + item.value }>\n // <input \n // key={'chk' + ix + '_' + item.value } type=\"checkbox\" \n // checked={info.selected.some(s => s.value == item.value)}\n // onChange={() => { changeOptionsModal('selected', item); }} /> {item.text}\n // </label>);\n // })}\n // </div>\n // </div>\n // </div>\n // </Modal.Body>\n // <Modal.Footer>\n // <Button variant='secondary' onClick={() => closeOptionsModal()}>{'Cerrar'}</Button>\n // </Modal.Footer>\n // </Modal>\n // );\n // };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBNominas') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n const { showGrafica } = dataVSO\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n {/* {printModal()} */}\n <Title actual=\"Nóminas\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n {showGrafica === \"true\" ? (\n <div className=\"col-lg-12 col-xlg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div>\n <h4 className=\"card-title\">\n ÚLTIMOS PERIODOS DE NÓMINA\n </h4>\n </div>\n {(localStorage.getItem(\"REACT_APP_FILTROS_NOMINA\") == '1') ? \n <>\n <div className='ml-auto mr-3 my-2'>\n <select\n className='form-control'\n value={filterType.ano}\n onChange={(e) => { onChangeFilterType('ano', e.target.value); }}>\n <option value='DEFAULT'>\n Filtrar por Año\n </option>\n {getYearsOptions()}\n </select>\n </div>\n <div className='ml-auto mr-3 my-2'>\n <select\n style={ { maxHeight: '60px' } }\n className='form-control'\n value={filterType.numeroPeriodo}\n onChange={(e) => { onChangeFilterType('numeroPeriodo', e.target.value); }}>\n <option value='DEFAULT'>\n Filtrar por Periodo\n </option>\n {getPeriodOptions()}\n </select>\n </div>\n <div className='ml-auto mr-3 my-2'>\n <select\n className='form-control'\n value={filterType.tipoNomina}\n onChange={(e) => { onChangeFilterType('tipoNomina', e.target.value); }}>\n <option value='DEFAULT'>\n Filtrar por Tipo de Nómina\n </option>\n {getTiposNominaOptions()}\n </select>\n </div>\n </>\n :\n <div className='ml-auto mr-3 my-2'>\n <select\n className='form-control'\n defaultValue={'DEFAULT'}\n onChange={(e) => {\n setFilterType(e.target.value);\n }}\n >\n <option value='DEFAULT'>\n Filtrar por Tipo de Nómina\n </option>\n {getTypeOptions()}\n </select>\n </div>\n }\n </div>\n </div>\n <div className=\"col-12\">\n <canvas\n id=\"myChart\"\n width=\"400\"\n height=\"100\"\n ></canvas>\n </div>\n </div>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n <h4 className=\"card-title\">LISTADO DE PERIODOS</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n {/* {rowPaginador()} */}\n <tr>\n <th>Periodo</th>\n <th>Año</th>\n <th>Periodicidad</th>\n <th>Tipo</th>\n <th>Fecha Inicio</th>\n <th>Fecha Final</th>\n <th>Total Pagado</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {(dataAllNomina || []).length > 0 && \n payroll_table()}\n </tbody>\n {/* <tfoot>\n {rowPaginador()}\n </tfoot> */}\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n dataUserData: state.dataUser.dataUserData,\n\n nominaData: state.nomina.nominaData,\n nominaError: state.nomina.nominaError,\n\n varShowOptionsData: state.varShowOptions.varShowOptionsData,\n varShowOptionsError: state.varShowOptions.varShowOptionsError,\n\n detalleNominaData: state.detalleNomina.detalleNominaData,\n detalleNominaError: state.detalleNomina.detalleNominaError,\n };\n};\n\nconst mapDispatchToProps = {\n getPeriodosNominaAction,\n // getUrlPdfAction,\n // getUrlXmlAction,\n getdetalleNominaAction,\n getVarShowOptionsAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(Payroll)\n);\n","import { changeXml, UrlPdfResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n URL_PDF_SUCCESS,\n URL_PDF_ERROR,\n URL_PDF_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getUrlPdfAction = (data, server) => {\n let configJson = {\n 'tem:ReciboNomPDF': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ReciboNomPDF\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: URL_PDF_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET URL_PDF_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: URL_PDF_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n UrlPdf: UrlPdfResponse(body)\n }\n\n console.log('RESPONSE URL_PDF DATA: ', response);\n dispatch({ type: URL_PDF_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET URL_PDF DATA: ', response);\n dispatch({ type: URL_PDF_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET URL_PDF DATA: ', responseError);\n dispatch({ type: URL_PDF_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, UrlXmlResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n URL_XML_SUCCESS,\n URL_XML_ERROR,\n URL_XML_PURGE,\n VALIDATE_ERROR,\n} from '../../types';\n\nexport const getUrlXmlAction = (data, server) => {\n let configJson = {\n 'tem:ReciboNomXml': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ReciboNomXml\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: URL_XML_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET URL_XML_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: URL_XML_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n UrlXml: UrlXmlResponse(body)\n }\n\n console.log('RESPONSE URL_XML DATA: ', response);\n dispatch({ type: URL_XML_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET URL_XML DATA: ', response);\n dispatch({ type: URL_XML_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET URL_XML DATA: ', responseError);\n dispatch({ type: URL_XML_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, GetValoresConfigResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\nimport {\r\n GET_VALORESCONFIG_SUCCESS,\r\n GET_VALORESCONFIG_ERROR,\r\n GET_VALORESCONFIG_PURGE,\r\n\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\nexport const GetValoresConfigAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetValoresConfig';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/\" + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_VALORESCONFIG_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n ValoresConfig: GetValoresConfigResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GET_VALORESCONFIG DATA: ', response);\r\n dispatch({ type: GET_VALORESCONFIG_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GET_VALORESCONFIG DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GET_VALORESCONFIG_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n ValoresConfig: GetValoresConfigResponse(body)\r\n };\r\n console.log('RESPONSE GET_VALORESCONFIG DATA: ', response);\r\n dispatch({ type: GET_VALORESCONFIG_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GET_VALORESCONFIG DATA: ', response);\r\n dispatch({ type: GET_VALORESCONFIG_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GET_VALORESCONFIG DATA: ', responseError);\r\n dispatch({ type: GET_VALORESCONFIG_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React from 'react';\n\nconst Table = props => (\n <div className=\"col-lg-6\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n <h4 className=\"card-title\">{ props.title }</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <tbody>\n { props.table }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n);\n\nexport default Table;\n","import React, { useState, useEffect } from \"react\";\n\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport NumberFormat from \"react-number-format\";\n\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar.js\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\n\nimport { getdetalleNominaAction } from \"../../api/actions/empleado/DetalleNominaAction\";\nimport { getUrlPdfAction } from \"../../api/actions/empleado/UrlPdfAction\";\nimport { getUrlXmlAction } from \"../../api/actions/empleado/UrlXmlAction\";\nimport { getConsultaVarFirmaAction } from \"../../api/actions/empleado/ConsultaVarFirmaAction\";\nimport { getConsultaFirmaAction } from \"../../api/actions/empleado/ConsultaFirmaAction\";\nimport { getActualizaFirmaAction } from \"../../api/actions/empleado/ActualizaFirmaAction\";\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\n\nimport TableSum from \"../../components/payroll/Table.js\";\nimport Card from \"../../components/shared/Card.js\";\n\nimport pdfImage from \"../../assets/payroll/pdf.png\";\nimport xmlImage from \"../../assets/payroll/xml.png\";\n\nimport { getParams, transformaUrl, openLink } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\nimport download from \"downloadjs\";\n\nString.prototype.IsNullOrWhiteSpace = function () {\n let str = \"\";\n if (this == null) return true;\n if (typeof this != typeof str) return true;\n if (this.trim().length == 0) return true;\n\n return false;\n};\n\nconst PayrollDetail = (props) => {\n const [loading, setLoading] = useState(true);\n const [details, setDetails] = useState({});\n const [tables, setTables] = useState({});\n const [xml, setXml] = useState(null);\n const [pdf, setPdf] = useState({ CFDI: null, Especial: null});\n const [msgXml, setMsgXml] = useState(\"\");\n const [msgPdf, setMsgPdf] = useState(\"\");\n const [totalPerceptions, setTotalPerceptions] = useState(0);\n const [totalDeductions, setTotalDeductions] = useState(0);\n const [isSigned, setIsSigned] = useState(null);\n const [showCptsVirtuales, setShowCptsVirtuales] = useState(false);\n const [etiquetaRecibo, setEtiquetaRecibo] = useState({ ReciboPDF1: \"Recibo PDF\", ReciboPDF2: \"Recibo Especial\" });\n const { params, server } = getParams();\n\n useEffect(() => {\n console.log(props);\n // props.getUrlPdfAction('PURGE');\n // props.getUrlXmlAction('PURGE');\n setDetails(props.location.state);\n }, []);\n\n useEffect(() => {\n if (details == undefined || details == null) return;\n if ((details.trabId || \"\").length == 0) return;\n\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:Seccion\": \"SICONSULTA\", \n \"tem:Variable\": \"CambiaEtiquetaRecibo\",\n };\n props.GetValoresConfigAction(data, server);\n\n getdetalleNomina();\n console.log('OIHB Nomina', details);\n }, [details]);\n\n useEffect(() => {\n if (props.detalleNominaData && props.detalleNominaData.isOK) {\n setTables({ ...props.detalleNominaData.DetalleNomina, });\n getConsultaVarFirma();\n getUrlXml();\n props.getdetalleNominaAction(\"PURGE\", \"\");\n } \n else if (props.detalleNominaError && props.detalleNominaError.isOK === false) {\n setTables({ ...props.detalleNominaError.DetalleNomina, });\n setLoading(false);\n props.getdetalleNominaAction(\"PURGE\", \"\");\n }\n }, [props.detalleNominaData, props.detalleNominaError]);\n\n useEffect(() => {\n if (props.consultaVarFirmaData && props.consultaVarFirmaData.isOK === true) {\n if (props.consultaVarFirmaData.ConsultaVarFirma) {\n getConsultaFirma();\n }\n } \n else if (props.consultaVarFirmaError && props.consultaVarFirmaError.isOK === false) {\n props.getConsultaVarFirmaAction(\"PURGE\", \"\");\n }\n }, [props.consultaVarFirmaData, props.consultaVarFirmaError]);\n\n useEffect(() => {\n if (props.urlXmlData && props.urlXmlData.isOK) {\n let UrlXml = (props.urlXmlData.UrlXml || \"\").trim();\n if (UrlXml.length > 0) {\n setXml(UrlXml);\n }\n\n setMsgXml((UrlXml.length == 0) ? \"No se logró obtener el XML\" : \"\");\n \n setLoading(false);\n props.getUrlXmlAction(\"PURGE\", \"\");\n getUrlPdf();\n }\n else if (props.urlXmlError && props.urlXmlError.isOK == false) {\n setMsgXml(\"Ocurrio un error al obtener el XML.\");\n setLoading(false);\n props.getUrlXmlAction(\"PURGE\", \"\");\n }\n }, [props.urlXmlData, props.urlXmlError]);\n\n useEffect(() => {\n if (props.urlPdfData && props.urlPdfData.isOK) {\n let UrlPdf = props.urlPdfData.UrlPdf || { CFDI: null, Especial: null};\n UrlPdf.CFDI = (UrlPdf.CFDI || \"\").trim();\n UrlPdf.Especial = (UrlPdf.Especial || \"\").trim();\n\n if (pdf.CFDI == null && pdf.Especial == null) {\n setPdf({ ...UrlPdf });\n }\n\n // let sinPDF = [];\n // if (UrlPdf.CFDI.length == 0) sinPDF.push(etiquetaRecibo.ReciboPDF1);\n // if (UrlPdf.Especial.length == 0) sinPDF.push(etiquetaRecibo.ReciboPDF2);\n setMsgPdf((UrlPdf.CFDI.length == 0 && UrlPdf.Especial.length == 0) ? \"No se logró obtener el PDF\" : \"\");\n \n //setLoading(false);\n props.getUrlPdfAction(\"PURGE\", \"\");\n } \n else if (props.urlPdfError && props.urlPdfError.isOK === false) {\n setMsgPdf(\"Ocurrio un error al obtener el PDF.\");\n setPdf({ CFDI: null, Especial: null});\n //setLoading(false);\n props.getUrlPdfAction(\"PURGE\", \"\");\n }\n }, [props.urlPdfData, props.urlPdfError]);\n\n useEffect(() => {\n if (props.consultaFirmaData && props.consultaFirmaData.isOK === true) {\n let value = props.consultaFirmaData.ConsultaFirma == \"true\" ? true : false;\n setIsSigned(value);\n } \n else if (props.consultaFirmaError && props.consultaFirmaError.isOK === false) {\n setIsSigned(\"error\");\n props.getConsultaFirmaAction(\"PURGE\", \"\");\n }\n }, [props.consultaFirmaData, props.consultaFirmaError]);\n\n useEffect(() => {\n if (props.actualizaFirmaData && props.actualizaFirmaData.isOK === true) {\n let value = props.actualizaFirmaData.ActualizaFirma;\n setIsSigned(value);\n } \n else if (props.actualizaFirmaError && props.actualizaFirmaError.isOK === false) {\n setIsSigned(\"error\");\n props.getActualizaFirmaAction(\"PURGE\", \"\");\n }\n }, [props.actualizaFirmaData, props.actualizaFirmaError]);\n\n useEffect(() => {\n let dato = { ReciboPDF1: \"Recibo PDF\", ReciboPDF2: \"Recibo Especial\" };\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = props.getValoresConfigData.ValoresConfig.Configuraciones;\n if (configuraciones.length > 0) {\n let split = configuraciones[0].Valor.split(',');\n if (split.length == 1) {\n dato.ReciboPDF1 = split[0];\n }\n else if (split.length == 2) {\n dato.ReciboPDF1 = split[0];\n dato.ReciboPDF2 = split[1];\n }\n }\n \n setEtiquetaRecibo(dato);\n } \n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setEtiquetaRecibo(dato);\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n\n const getdetalleNomina = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:Ano\": props.location.state.ano,\n \"tem:PeriodoID\": props.location.state.periodoID,\n \"tem:NumPeriodo\": props.location.state.numeroPeriodo,\n \"tem:TipoNominaID\": props.location.state.tipoNominaID,\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getdetalleNominaAction(data, server);\n };\n\n const getConsultaVarFirma = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getConsultaVarFirmaAction(data, server);\n };\n\n const getUrlXml = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:Ano\": props.location.state.ano,\n \"tem:PeriodoID\": props.location.state.periodoID,\n \"tem:NumPeriodo\": props.location.state.numeroPeriodo,\n \"tem:TipoNominaID\": props.location.state.tipoNominaID,\n \"tem:FechaInicio\": props.location.state.fechaInicio,\n \"tem:FechaFinal\": props.location.state.fechaFinal,\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getUrlXmlAction(data, server);\n setMsgXml(\"Obteniendo XML...\");\n };\n\n const getUrlPdf = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:Ano\": props.location.state.ano,\n \"tem:PeriodoID\": props.location.state.periodoID,\n \"tem:NumPeriodo\": props.location.state.numeroPeriodo,\n \"tem:TipoNominaID\": props.location.state.tipoNominaID,\n \"tem:FechaInicio\": props.location.state.fechaInicio,\n \"tem:FechaFinal\": props.location.state.fechaFinal,\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getUrlPdfAction(data, server);\n setMsgPdf(\"Obteniendo PDF...\");\n };\n\n const getConsultaFirma = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:Ano\": props.location.state.ano,\n \"tem:PeriodoID\": props.location.state.periodoID,\n \"tem:NumPeriodo\": props.location.state.numeroPeriodo,\n \"tem:TipoNominaID\": props.location.state.tipoNominaID,\n };\n\n props.getConsultaFirmaAction(data, server);\n };\n\n const perceptions_table = () => {\n let table = [];\n let movimientos = tables.persepciones?.clsConceptoNomina;\n let deductions = tables.deducciones?.clsConceptoNomina;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"error\">\n <td>No hay movimientos para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n let total = 0;\n\n movimientos.map((item, i) => {\n total += parseFloat(item.importe);\n table.push(\n <tr key={item.conceptoId}>\n <td>\n <h3>{item.nombreConcepto}:</h3>\n </td>\n <td className=\"text-success\">\n <NumberFormat\n value={item.importe}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </td>\n </tr>\n );\n });\n\n if (deductions.length > movimientos.length) {\n let diff = deductions.length - movimientos.length;\n for (let i = 0; i < diff; i++) {\n table.push(\n <tr key={i}>\n <td>\n <h3>-</h3>\n </td>\n <td> </td>\n </tr>\n );\n }\n }\n\n table.push(\n <tr key={\"total\"}>\n <td>\n <h3>\n <b>TOTAL:</b>\n </h3>\n </td>\n <td>\n <h3 className=\"text-success\">\n <b>\n <NumberFormat\n value={total}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </b>\n </h3>\n </td>\n </tr>\n );\n }\n\n return table;\n };\n\n const deductions_table = () => {\n let table = [];\n let movimientos = tables.deducciones?.clsConceptoNomina;\n let perceptions = tables.persepciones?.clsConceptoNomina;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"error\">\n <td>No hay movimientos para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n let total = 0;\n\n movimientos.map((item, i) => {\n total += parseFloat(item.importe);\n table.push(\n <tr key={item.conceptoId}>\n <td>\n <h3>{item.nombreConcepto}:</h3>\n </td>\n <td className=\"text-danger\">\n <NumberFormat\n value={item.importe}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </td>\n </tr>\n );\n });\n\n if (perceptions.length > movimientos.length) {\n let diff = perceptions.length - movimientos.length;\n for (let i = 0; i < diff; i++) {\n table.push(\n <tr key={\"diff\"+i}>\n <td>\n <h3>-</h3>\n </td>\n <td> </td>\n </tr>\n );\n }\n }\n\n table.push(\n <tr key={\"total\"}>\n <td>\n <h3>\n <b>TOTAL:</b>\n </h3>\n </td>\n <td>\n <h3 className=\"text-danger\">\n <b>\n <NumberFormat\n value={total}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </b>\n </h3>\n </td>\n </tr>\n );\n }\n\n return table;\n };\n\n const virtualPercepcion_table = () => {\n let table = [];\n let movimientos = tables.virtualesPercepcion?.clsConceptoNomina;\n let deductions = tables.virtualesDeduccion?.clsConceptoNomina;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"error\">\n <td>No hay movimientos para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n let total = 0;\n\n movimientos.map((item, i) => {\n total += parseFloat(item.importe);\n table.push(\n <tr key={item.conceptoId}>\n <td>\n <h3>{item.nombreConcepto}:</h3>\n </td>\n <td className=\"text-success\">\n <NumberFormat\n value={item.importe}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </td>\n </tr>\n );\n });\n\n if (deductions.length > movimientos.length) {\n let diff = deductions.length - movimientos.length;\n for (let i = 0; i < diff; i++) {\n table.push(\n <tr key={i}>\n <td>\n <h3>-</h3>\n </td>\n <td> </td>\n </tr>\n );\n }\n }\n\n table.push(\n <tr key={\"total\"}>\n <td>\n <h3>\n <b>TOTAL:</b>\n </h3>\n </td>\n <td>\n <h3 className=\"text-success\">\n <b>\n <NumberFormat\n value={total}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </b>\n </h3>\n </td>\n </tr>\n );\n }\n\n return table;\n };\n\n const virtualDeduccion_table = () => {\n let table = [];\n let movimientos = tables.virtualesDeduccion?.clsConceptoNomina;\n let perceptions = tables.virtualesPercepcion?.clsConceptoNomina;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"error\">\n <td>No hay movimientos para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n let total = 0;\n\n movimientos.map((item, i) => {\n total += parseFloat(item.importe);\n table.push(\n <tr key={item.conceptoId}>\n <td>\n <h3>{item.nombreConcepto}:</h3>\n </td>\n <td className=\"text-danger\">\n <NumberFormat\n value={item.importe}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </td>\n </tr>\n );\n });\n\n if (perceptions.length > movimientos.length) {\n let diff = perceptions.length - movimientos.length;\n for (let i = 0; i < diff; i++) {\n table.push(\n <tr>\n <td>\n <h3>-</h3>\n </td>\n <td> </td>\n </tr>\n );\n }\n }\n\n table.push(\n <tr key={\"total\"}>\n <td>\n <h3>\n <b>TOTAL:</b>\n </h3>\n </td>\n <td>\n <h3 className=\"text-danger\">\n <b>\n <NumberFormat\n value={total}\n displayType={\"text\"}\n thousandSeparator={true}\n prefix={\"$\"}\n decimalScale={2}\n />\n </b>\n </h3>\n </td>\n </tr>\n );\n }\n\n return table;\n };\n\n const handleAuthorizeDownload = () => {\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n \"tem:Ano\": props.location.state.ano,\n \"tem:PeriodoID\": props.location.state.periodoID,\n \"tem:NumPeriodo\": props.location.state.numeroPeriodo,\n \"tem:TipoNominaID\": props.location.state.tipoNominaID,\n \"tem:Aceptado\": \"true\",\n };\n\n props.getActualizaFirmaAction(data, server);\n };\n\n const downloadXml = async (url) => {\n //url = transformaUrl(url);\n\n let res = null;\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\n\n const config = {\n method: \"POST\",\n body: JSON.stringify({ url: url }),\n };\n res = await fetch(server, config);\n } \n else {\n // res = await fetch(url);\n openLink(url);\n return;\n }\n\n const blob = await res.blob();\n let arr = url.split(\"/\");\n let name = arr[arr.length - 1];\n\n download(blob, name);\n };\n \n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else {\n let showCheckCptsVir = ((tables.virtualesDeduccion?.clsConceptoNomina || []).length > 0 || \n (tables.virtualesPercepcion?.clsConceptoNomina || []).length > 0)\n \n let showRecibos = (pdf.CFDI != null || pdf.Especial != null || xml != null) \n \n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title\n path=\"Nóminas\"\n redirect=\"/nominas\"\n actual={details.numeroPeriodo + ''}\n icon=\"mdi mdi-bank\"\n />\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-cash-usd text-info\"\n value={details.total}\n name=\"TOTAL PAGADO\"\n type=\"money\"\n />\n\n <Card\n icon=\"mdi mdi-calendar text-success\"\n value={details.fechaInicio}\n name=\"FECHA DE INICIO\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-calendar text-purple\"\n value={details.fechaFinal}\n name=\"FECHA FINAL\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-file-chart text-secondary\"\n value={details.tipoNomina}\n name=\"TIPO DE NÓMINA\"\n />\n </div>\n <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-calendar-multiple text-info\"\n value={details.diasTrabajados}\n name=\"DÍAS TRABAJADOS\"\n />\n\n {(process.env.REACT_APP_INHABILITA_SDI == \"0\" && localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\") ? (\n <Card\n icon=\"mdi mdi-cash-multiple text-success\"\n value={details.salario}\n name=\"SALARIO DIARIO\"\n type=\"money\"\n />\n ) : null}\n\n {(process.env.REACT_APP_INHABILITA_SDI == \"0\" && localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\") ? (\n <Card\n icon=\"mdi mdi-cash-multiple text-purple\"\n value={details.sdi}\n name=\"SALARIO DIARIO INTEGRADO\"\n type=\"money\"\n />\n ) : null}\n </div>\n {localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\" && \n <div className=\"row\">\n <TableSum title=\"PERCEPCIONES\" table={perceptions_table()} />\n <TableSum title=\"DEDUCCIONES\" table={deductions_table()} />\n </div>}\n {(localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\" && showCheckCptsVir) && \n (<div style={ !showCptsVirtuales ? { marginBottom: '15px' } : {} }>\n <input\n name=\"cptsVirtuales\"\n type=\"checkbox\"\n onClick={() => setShowCptsVirtuales(!showCptsVirtuales)}\n className=\"with-gap\"\n id=\"cptsVirtuales\"\n checked={showCptsVirtuales}\n />\n <label htmlFor=\"cptsVirtuales\">\n Mostrar conceptos virtuales\n </label>\n </div>)\n }\n {(localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\" && showCptsVirtuales) && \n (<div className=\"row\">\n <TableSum title=\"PERCEPCIONES (VIRTUAL)\" table={virtualPercepcion_table()} />\n <TableSum title=\"DEDUCCIONES (VIRTUAL)\" table={virtualDeduccion_table()} />\n </div>) \n }\n {localStorage.getItem(\"REACT_APP_INHABILITA_DETALLE_NOM\") == \"0\" && \n <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-cash-usd text-success\"\n value={details.total}\n name=\"SALARIO NETO\"\n type=\"net\"\n />\n </div>}\n {showRecibos && \n (<>\n <div>\n <input\n name=\"autorizacion\"\n type=\"checkbox\"\n onClick={() => handleAuthorizeDownload()}\n className=\"with-gap\"\n id=\"autorizacion\"\n disabled={isSigned}\n checked={isSigned}\n />\n <label htmlFor=\"autorizacion\">\n Autorizo la consulta y descarga de mi recibo de nómina a través\n de este medio\n </label>\n </div>\n <div>\n <div className=\"card-group\" style={{ marginBottom: '0px' }}>\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h4><i className=\"fa fa-paperclip m-r-10 m-b-10\"></i> Recibos de Nómina </h4>\n </div>\n </div>\n </div>\n </div>\n </div>\n {isSigned && \n <div className=\"card-group\">\n {(xml || \"\").length > 0 && (msgXml || \"\").trim().length == 0 && \n <Card\n src={xmlImage}\n classNameSrc=\"mdi\"\n value=\"\"\n name=\"Recibo XML\"\n onClick={() => downloadXml(xml)}\n type=\"img\"\n />\n }\n {(msgXml || \"\").trim().length > 0 && \n <Card\n icon='mdi'\n value={msgXml}\n name=''\n type='none'\n />\n }\n {(pdf.CFDI || \"\").length > 0 && (msgPdf || \"\").trim().length == 0 && \n <Card\n src={pdfImage}\n classNameSrc=\"mdi\"\n value=\"\"\n name={etiquetaRecibo.ReciboPDF1}\n onClick={() => downloadXml(pdf.CFDI)}\n type=\"img\"\n />\n }\n {(pdf.Especial || \"\").length > 0 && (msgPdf || \"\").trim().length == 0 &&\n <Card\n src={pdfImage}\n classNameSrc=\"mdi\"\n value=\"\"\n name={etiquetaRecibo.ReciboPDF2}\n onClick={() => downloadXml(pdf.Especial)}\n type=\"img\"\n />\n }\n {(msgPdf || \"\").trim().length > 0 && \n <Card\n icon='mdi'\n value={msgPdf}\n name=''\n type='none'\n />\n }\n </div>\n }\n </div>\n </>)\n }\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n detalleNominaData: state.detalleNomina.detalleNominaData,\n detalleNominaError: state.detalleNomina.detalleNominaError,\n\n urlPdfData: state.urlPdf.urlPdfData,\n urlPdfError: state.urlPdf.urlPdfError,\n\n urlXmlData: state.urlXml.urlXmlData,\n urlXmlError: state.urlXml.urlXmlError,\n\n consultaVarFirmaData: state.consultaVarFirma.consultaVarFirmaData,\n consultaVarFirmaError: state.consultaVarFirma.consultaVarFirmaError,\n\n consultaFirmaData: state.consultaFirma.consultaFirmaData,\n consultaFirmaError: state.consultaFirma.consultaFirmaError,\n\n actualizaFirmaData: state.actualizaFirma.actualizaFirmaData,\n actualizaFirmaError: state.actualizaFirma.actualizaFirmaError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n getdetalleNominaAction,\n getUrlPdfAction,\n getUrlXmlAction,\n getConsultaVarFirmaAction,\n getConsultaFirmaAction,\n getActualizaFirmaAction,\n GetValoresConfigAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(PayrollDetail)\n);\n","import { changeXml, ConsultaVarFirma } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n VALIDATE_ERROR,\n CONSULTA_VAR_FIR_SUCCESS,\n CONSULTA_VAR_FIR_ERROR,\n CONSULTA_VAR_FIR_PURGE,\n} from \"../../types\";\n\nexport const getConsultaVarFirmaAction = (data, server) => {\n let configJson = {\n \"tem:ConsultaVarFirma\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaVarFirma\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: CONSULTA_VAR_FIR_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_VAR_FIRMA_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: CONSULTA_VAR_FIR_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ConsultaVarFirma: ConsultaVarFirma(body),\n };\n\n console.log(\"RESPONSE CONSULTA_VAR_FIRMA DATA: \", response);\n dispatch({ type: CONSULTA_VAR_FIR_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_VAR_FIRMA DATA: \", response);\n dispatch({ type: CONSULTA_VAR_FIR_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_VAR_FIRMA DATA: \",\n responseError\n );\n dispatch({ type: CONSULTA_VAR_FIR_ERROR, payload: responseError });\n });\n }\n };\n};\n","import { changeXml, ConsultaFirma } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n VALIDATE_ERROR,\n CONSULTA_FIRMA_SUCCESS,\n CONSULTA_FIRMA_ERROR,\n CONSULTA_FIRMA_PURGE\n} from \"../../types\";\n\nexport const getConsultaFirmaAction = (data, server) => {\n let configJson = {\n \"tem:ConsultaFirma\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaFirma\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: CONSULTA_FIRMA_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_FIRMA_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: CONSULTA_FIRMA_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ConsultaFirma: ConsultaFirma(body),\n };\n\n console.log(\"RESPONSE CONSULTA_FIRMA DATA: \", response);\n dispatch({ type: CONSULTA_FIRMA_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_FIRMA DATA: \", response);\n dispatch({ type: CONSULTA_FIRMA_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_FIRMA DATA: \",\n responseError\n );\n dispatch({ type: CONSULTA_FIRMA_ERROR, payload: responseError });\n });\n }\n };\n};","import { changeXml, ActualizaFirma } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n VALIDATE_ERROR,\n ACTUALIZA_FIRMA_PURGE,\n ACTUALIZA_FIRMA_SUCCESS,\n ACTUALIZA_FIRMA_ERROR,\n} from \"../../types\";\n\nexport const getActualizaFirmaAction = (data, server) => {\n let configJson = {\n \"tem:ActualizaFirma\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ActualizaFirma\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: ACTUALIZA_FIRMA_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_ROLES_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: ACTUALIZA_FIRMA_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ActualizaFirma: ActualizaFirma(body),\n };\n\n console.log(\"RESPONSE CONSULTA_ROLES DATA: \", response);\n dispatch({ type: ACTUALIZA_FIRMA_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_ROLES DATA: \", response);\n dispatch({ type: ACTUALIZA_FIRMA_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_ROLES DATA: \",\n responseError\n );\n dispatch({ type: ACTUALIZA_FIRMA_ERROR, payload: responseError });\n });\n }\n };\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getMovimientosImssAction } from '../../api/actions/empleado/MovimientosImssAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst Imss = props => {\n \n\n const { params, server } = getParams();\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') != '1') {\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getMovimientosImssAction(send, server);\n }\n else {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n if (props.movimientosImssData && props.movimientosImssData.isOK) {\n setLoading(false);\n } else if (props.movimientosImssError && props.movimientosImssError.isOK === false) {\n props.getMovimientosImssAction('PURGE', '');\n setLoading(false);\n }\n }, [props.movimientosImssData, props.movimientosImssError])\n\n const imss_table = () => {\n\n let table = [];\n let movimientos = props.movimientosImssData.Imss;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key={'no-data'}>\n <td>No hay datos para mostrar</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return b.ptr - a.ptr;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.ptr} onClick={() => _handleRowClick(item.ptr)} style={{ cursor: 'pointer' }}>\n <td>{item.ptr}</td>\n <td>{item.movimiento}</td>\n <td>{moment(item.fechMov).format('DD/MM/YYYY')}</td>\n <td><i className=\"mdi mdi-chevron-right\" ></i></td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClick = id => {\n props.history.push(`${process.env.PUBLIC_URL}/imss/${id}`);\n };\n\n const url = () => {\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBIMSS') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') { \n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"IMSS\" icon=\"mdi mdi-heart\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n <h4 className=\"card-title\">LISTADO DE MOVIMIENTOS</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Movimiento</th>\n <th>Fecha</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {imss_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n movimientosImssData: state.movimientosImss.movimientosImssData,\n movimientosImssError: state.movimientosImss.movimientosImssError,\n }\n};\n\nconst mapDispatchToProps = {\n getMovimientosImssAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Imss));\n","import { changeXml, movimientosImssResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n MOVIMIENTOS_IMSS_SUCCESS,\n MOVIMIENTOS_IMSS_ERROR,\n MOVIMIENTOS_IMSS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getMovimientosImssAction = (data, server) => {\n let configJson = {\n 'tem:MovimientosIMSS': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MovimientosIMSS\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: MOVIMIENTOS_IMSS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET MOVIMIENTOS_IMSS DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: MOVIMIENTOS_IMSS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Imss: movimientosImssResponse(body)\n }\n\n console.log('RESPONSE MOVIMIENTOS_IMSS DATA: ', response);\n dispatch({ type: MOVIMIENTOS_IMSS_SUCCESS, payload: response })\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET MOVIMIENTOS_IMSS DATA: ', response);\n dispatch({ type: MOVIMIENTOS_IMSS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET MOVIMIENTOS_IMSS DATA: ', responseError);\n dispatch({ type: MOVIMIENTOS_IMSS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter, useParams } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDetalleImssAction } from '../../api/actions/empleado/DetalleImssAction.js';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst ImssDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({});\n const { id } = useParams();\n\n useEffect(() => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Ptr': id,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getDetalleImssAction(params, server);\n }, [])\n\n useEffect(() => {\n if (props.detalleImssData && props.detalleImssData.isOK) {\n setData({\n ...props.detalleImssData.DetalleImss\n });\n setLoading(false);\n } else if (props.detalleImssError && props.detalleImssError.isOK === false) {\n props.getDetalleImssAction('PURGE', '');\n setData({\n contrato: null,\n fechaMov: null,\n motivo: null,\n movimiento: null,\n ptr: null,\n puesto: null,\n salario: null,\n sdi: null\n })\n setLoading(false);\n }\n }, [props.detalleImssData, props.detalleImssError])\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n const { contrato, fechaMov, motivo, movimiento, ptr, puesto, salario, sdi } = data;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"IMSS\" redirect=\"/imss\" actual={props.match.params.id} icon=\"mdi mdi-heart\" />\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n\n <Card\n icon=\"mdi mdi-calendar text-info\"\n value={fechaMov}\n name=\"FECHA\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-help-circle-outline text-success\"\n value={movimiento}\n name=\"MOVIMIENTO\"\n />\n\n <Card\n icon=\"mdi mdi-file-document-box text-purple\"\n value={motivo}\n name=\"MOTIVO\"\n />\n\n <Card\n icon=\"mdi mdi-account-edit text-secondary\"\n value={puesto}\n name=\"PUESTO\"\n />\n\n </div>\n <div className=\"card-group\">\n\n <Card\n icon=\"mdi mdi-file-document text-info\"\n value={contrato}\n name=\"CONTRATO\"\n />\n\n {process.env.REACT_APP_INHABILITA_SDI == '0' ? <Card\n icon=\"mdi mdi-cash-multiple text-success\"\n value={salario}\n name=\"SALARIO DIARIO\"\n type=\"money\"\n /> : null}\n\n {process.env.REACT_APP_INHABILITA_SDI == '0' ? <Card\n icon=\"mdi mdi-cash-multiple text-purple\"\n value={sdi}\n name={sessionStorage.getItem(\"SICONSULTA_CambiarEtiquedaSDIImss\") === \"1\"? \"SALARIO BASE COTIZACION\":\"SALARIO DIARIO INTEGRADO\"}\n type=\"money\"\n /> : null}\n\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n color: state.changeColor.color,\n\n detalleImssData: state.detalleImss.detalleImssData,\n detalleImssError: state.detalleImss.detalleImssError,\n };\n};\n\nconst mapDispatchToProps = {\n getDetalleImssAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ImssDetail));\n","import { changeXml, detalleImssResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DETALLE_IMSS_SUCCESS,\n DETALLE_IMSS_ERROR,\n DETALLE_IMSS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDetalleImssAction = (data, server) => {\n let configJson = {\n 'tem:DetalleMovimientoIMSS': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DetalleMovimientoIMSS\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DETALLE_IMSS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n console.log('RESP DATA', resultJson)\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DETALLE_IMSS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DETALLE_IMSS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DetalleImss: detalleImssResponse(body)\n }\n\n console.log('RESPONSE DETALLE_IMSS DATA: ', response);\n dispatch({ type: DETALLE_IMSS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DETALLE_IMSS DATA: ', response);\n dispatch({ type: DETALLE_IMSS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DETALLE_IMSS DATA: ', responseError);\n dispatch({ type: DETALLE_IMSS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getMovimientosInfonavitAction } from '../../api/actions/empleado/MovimientosInfonavitAction';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Infonavit = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let { params, server } = getParams();\n props.getMovimientosInfonavitAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.infonavitData && props.infonavitData.isOK) {\n setLoading(false);\n } else if (props.infonavitError && props.infonavitError.isOK === false) {\n props.getMovimientosInfonavitAction('PURGE', '');\n setLoading(false);\n }\n }, [props.infonavitData, props.infonavitError])\n\n const infonavit_table = () => {\n\n let table = [];\n let movimientos = props.infonavitData.MovInfonavit;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key={'no-data'}>\n <td>No hay datos para mostrar</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return b.ptr - a.ptr;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.ptr} onClick={() => _handleRowClick(item.ptr)} style={{ cursor: 'pointer' }}>\n <td>{item.ptr}</td>\n <td>{item.Movimiento}</td>\n <td>{moment(item.fecha).format('DD/MM/YYYY')}</td>\n <td><i className=\"mdi mdi-chevron-right\" ></i></td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClick = id => {\n props.history.push(`${process.env.PUBLIC_URL}/infonavit/${id}`);\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBInfonavit') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Infonavit\" icon=\"mdi mdi-home-modern\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n <h4 className=\"card-title\">LISTADO DE MOVIMIENTOS</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Movimiento</th>\n <th>Fecha</th>\n <th></th>\n\n </tr>\n </thead>\n <tbody>\n {infonavit_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n infonavitData: state.movimientosInfonavit.infonavitData,\n infonavitError: state.movimientosInfonavit.infonavitError,\n }\n};\n\nconst mapDispatchToProps = {\n getMovimientosInfonavitAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Infonavit));\n","import { changeXml, movimientosInfonavitResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INFONAVIT_SUCCESS,\n INFONAVIT_ERROR,\n INFONAVIT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getMovimientosInfonavitAction = (data, server) => {\n let configJson = {\n 'tem:MovimientosINFONAVIT': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MovimientosINFONAVIT\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INFONAVIT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INFONAVIT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n MovInfonavit: movimientosInfonavitResponse(body)\n }\n\n console.log('RESPONSE INFONAVIT DATA: ', response);\n dispatch({ type: INFONAVIT_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INFONAVIT DATA: ', response);\n dispatch({ type: INFONAVIT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INFONAVIT DATA: ', responseError);\n dispatch({ type: INFONAVIT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter, useParams } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDetalleInfonavitAction } from '../../api/actions/empleado/DetalleInfonavitAction';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst InfonavitDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({});\n const { id } = useParams();\n\n useEffect(() => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Ptr': id,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getDetalleInfonavitAction(params, server);\n }, [])\n\n useEffect(() => {\n if (props.detalleInfonavitData && props.detalleInfonavitData.isOK) {\n setData({\n ...props.detalleInfonavitData.DetalleInfonavit\n });\n setLoading(false);\n } else if (props.detalleInfonavitError && props.detalleInfonavitError.isOK === false) {\n props.getDetalleInfonavitAction('PURGE', '');\n setData({\n tipoDescuento: null,\n fecha: null,\n movimiento: null,\n ptr: null,\n numCredito: null,\n valor: null\n });\n setLoading(false);\n }\n }, [props.detalleInfonavitData, props.detalleInfonavitError])\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n const { tipoDescuento, fecha, movimiento, ptr, numCredito, valor } = data;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Infonavit\" redirect=\"/infonavit\" actual={props.match.params.id} icon=\"mdi mdi-home-modern\" />\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n\n <Card\n icon=\"mdi mdi-calendar text-info\"\n value={fecha}\n name=\"FECHA\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-help-circle-outline text-success\"\n value={movimiento}\n name=\"MOVIMIENTO\"\n />\n\n <Card\n icon=\"mdi mdi-account-edit text-secondary\"\n value={numCredito}\n name=\"NÚMERO DE CREDITO\"\n />\n\n </div>\n <div className=\"card-group\">\n\n <Card\n icon=\"mdi mdi-file-document text-info\"\n value={tipoDescuento}\n name=\"TIPO DE DESCUENTO\"\n />\n\n <Card\n icon=\"mdi mdi-cash-multiple text-purple\"\n value={valor}\n name=\"VALOR\"\n type=\"money\"\n />\n\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n color: state.changeColor.color,\n\n detalleInfonavitData: state.detalleInfonavit.detalleInfonavitData,\n detalleInfonavitError: state.detalleInfonavit.detalleInfonavitError,\n };\n};\n\nconst mapDispatchToProps = {\n getDetalleInfonavitAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(InfonavitDetail));\n","import { changeXml, detalleInfonavitResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DETALLE_INFONAVIT_SUCCESS,\n DETALLE_INFONAVIT_ERROR,\n DETALLE_INFONAVIT_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDetalleInfonavitAction = (data, server) => {\n let configJson = {\n 'tem:DetalleMovimientoINFONAVIT': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DetalleMovimientoINFONAVIT\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DETALLE_INFONAVIT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n console.log('RESP DATA', resultJson)\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DETALLE_INFONAVIT_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DETALLE_INFONAVIT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DetalleInfonavit: detalleInfonavitResponse(body)\n }\n\n console.log('RESPONSE DETALLE_INFONAVIT DATA: ', response);\n dispatch({ type: DETALLE_INFONAVIT_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DETALLE_INFONAVIT DATA: ', response);\n dispatch({ type: DETALLE_INFONAVIT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DETALLE_INFONAVIT DATA: ', responseError);\n dispatch({ type: DETALLE_INFONAVIT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getMessagesAction } from '../../api/actions/empleado/MessagesAction';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Messages = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n props.getMessagesAction('PURGE', '');\n \n let { params, server } = getParams();\n props.getMessagesAction(params, server);\n }, [])\n\n useEffect(() => {\n if (props.messagesData && props.messagesData.isOK) {\n setLoading(false);\n } \n else if (props.messagesError && props.messagesError.isOK === false) {\n props.getMessagesAction('PURGE', '');\n setLoading(false);\n }\n }, [props.messagesData, props.messagesError])\n\n const messages_table = () => {\n\n let table = [];\n let movimientos = props.messagesData.Messages;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.idMensaje - b.idMensaje;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.idMensaje} onClick={() => _handleRowClick(item.idMensaje, item.titulo, item.msgText, item.fecha)} className=\"\" style={{ cursor: 'pointer' }}>\n <td height=\"100\" style={{ width: 40 + 'px' }} className=\"hidden-xs-down\"></td>\n <td className=\"hidden-xs-down\"><b>{item.titulo}</b></td>\n <td className=\"max-texts\"> {item.msgText}</td>\n <td className=\"text-right\"> {moment(item.fecha).format('DD/MM/YYYY')} </td>\n <td style={{ width: 80 + 'px' }} className=\"hidden-xs-down\"><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleRowClick = (id, title, msg, date) => {\n props.history.push(`${process.env.PUBLIC_URL}/mensajes/${id}`, { 'id': id, 'title': title, 'msg': msg, 'date': date });\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBMensajes') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Mensajes\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"card-body p-t-0\">\n <div className=\"card b-all shadow-none\">\n <div className=\"inbox-center table-responsive\">\n <table className=\"table table-hover no-wrap\">\n <tbody>\n {messages_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n color: state.changeColor.color,\n\n messagesData: state.messages.messagesData,\n messagesError: state.messages.messagesError,\n };\n};\n\nconst mapDispatchToProps = {\n getMessagesAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Messages));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getMessagesDetailAction } from '../../api/actions/empleado/MessagesDetailAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst MessagesDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({});\n\n const customTransform = (text) => {\n var regEx = /(https?:\\/\\/[^\\s]+)/g;\n let newText = text.replace(regEx, function(txt) { \n return '<a href=\"' + txt + '\" target=\"_blank\">' + txt + '</a>';\n });\n\n regEx = /\\r?\\n|\\r/;\n newText = newText.replace(regEx, function(txt) { \n return '<br />';\n });\n\n regEx = /\\r?\\n|\\r/g;\n newText = newText.replace(regEx, function(url) { \n return '<br />';\n });\n\n return newText;\n };\n\n useEffect(() => {\n\n const { id } = props.location.state;\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:MensajeID': id,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getMessagesDetailAction(params, server);\n\n }, []);\n\n useEffect(() => {\n if (props.messagesDetailData && props.messagesDetailData.isOK) {\n const { fecha, titulo, mensaje } = props.messagesDetailData.MessagesDetail;\n setData({\n title: titulo,\n date: fecha,\n msg: mensaje\n });\n setLoading(false);\n\n } else if (props.messagesDetailError && props.messagesDetailError.isOK === false) {\n setData({\n title: '',\n date: '',\n msg: ''\n });\n setLoading(false);\n }\n }, [props.messagesDetailData, props.messagesDetailError]);\n\n const { id } = props.location.state;\n const { date, title, msg } = data;\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/mensajes\" actual={id} icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3>{title}</h3>\n <ReactQuill\n theme=\"bubble\"\n readOnly={true}\n value={msg}\n modules={{ toolbar: false }}\n />\n <hr />\n <small className=\"text-muted\">{moment(date).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n messagesDetailData: state.messagesDetail.messagesDetailData,\n messagesDetailError: state.messagesDetail.messagesDetailError,\n };\n};\n\nconst mapDispatchToProps = {\n getMessagesDetailAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MessagesDetail));\n","import { changeXml, messagesDetail } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n MESSAGES_DETAIL_SUCCESS,\n MESSAGES_DETAIL_ERROR,\n MESSAGES_DETAIL_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getMessagesDetailAction = (data, server) => {\n let configJson = {\n 'tem:MensajesAlPersonalDetalle': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajesAlPersonalDetalle\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: MESSAGES_DETAIL_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET MESSAGES_DETAIL_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: MESSAGES_DETAIL_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n MessagesDetail: messagesDetail(body)\n }\n\n console.log('RESPONSE MESSAGES_DETAIL DATA: ', response);\n dispatch({ type: MESSAGES_DETAIL_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET MESSAGES_DETAIL DATA: ', response);\n dispatch({ type: MESSAGES_DETAIL_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET MESSAGES_DETAIL DATA: ', responseError);\n dispatch({ type: MESSAGES_DETAIL_ERROR, payload: responseError })\n })\n\n }\n }\n\n}","import { changeXml, MyMessagesARHResponce } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js';\nimport {\n MY_MESSAGES_RH_SUCCESS,\n MY_MESSAGES_RH_ERROR,\n MY_MESSAGES_RH_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\nexport const getMyMessagesARHAction = (data, server) => {\n let configJson = {\n 'tem:MisMensajesARH': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MisMensajesARH\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: MY_MESSAGES_RH_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET MY_MESSAGES_RH_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: MY_MESSAGES_RH_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n MyMessagesARh: MyMessagesARHResponce(body)\n }\n\n console.log('RESPONSE MY_MESSAGES_RH DATA: ', response);\n dispatch({ type: MY_MESSAGES_RH_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET MY_MESSAGES_RH DATA: ', response);\n dispatch({ type: MY_MESSAGES_RH_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET MY_MESSAGES_RH DATA: ', responseError);\n dispatch({ type: MY_MESSAGES_RH_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getMyMessagesARHAction } from '../../api/actions/empleado/MyMessagesRhAction';\n\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport moment from 'moment';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Requests = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Queja': false,\n }\n props.getMyMessagesARHAction(params, server);\n }, []);\n\n\n useEffect(() => {\n if (props.myMessagesRhData && props.myMessagesRhData.isOK) {\n setLoading(false);\n } else if (props.myMessagesRhError && props.myMessagesRhError.isOK === false) {\n props.getMyMessagesARHAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.myMessagesRhData, props.myMessagesRhError]);\n\n const requests_table = () => {\n\n let table = [];\n let movimientos = props.myMessagesRhData.MyMessagesARh;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay solicitudes para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return b.Id - a.Id;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.Id} onClick={() => _handleRowClick(item.Id, item.Titulo, item.Mensaje, item.FechaCap)} className=\"\" style={{ cursor: 'pointer' }}>\n <td><h3>#{item.Id}</h3></td>\n <td>{item.Titulo}</td>\n <td>{moment(item.FechaCap).format('DD/MM/YYYY')}</td>\n <td><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr className=\"unread\">\n <td>No hay solicitudes para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n }\n\n\n return table;\n };\n\n const _handleRowClick = (id, title, msg, date) => {\n props.history.push(`${process.env.PUBLIC_URL}/solicitudes/${id}`, { 'title': title, 'msg': msg, 'date': date, 'id': id });\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBSolicitudes') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual={localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"RH Te Escucha\" : \"Solicitudes\"} icon=\"mdi mdi-account-multiple\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">LISTADO DE SOLICITUDES A RH</h4>\n </div>\n <div className=\"col-6\">\n <Link to={`${process.env.PUBLIC_URL}/solicitudes/nueva`}>\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\">Nueva Solicitud</button>\n </Link>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Solicitud</th>\n <th>Fecha</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {requests_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n myMessagesRhData: state.myMessagesRh.myMessagesRhData,\n myMessagesRhError: state.myMessagesRh.myMessagesRhError\n };\n};\n\nconst mapDispatchToProps = {\n getMyMessagesARHAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Requests));\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { messageARHAction } from '../../api/actions/empleado/MessageaRHAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst RequestsCreate = props => {\n\n const [loading, setLoading] = useState(false);\n const [form, setValues] = useState({});\n\n const _handleInput = event => {\n\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Titulo': form.title,\n 'tem:Mensaje': form.message,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.messageARHAction(params, server);\n };\n\n useEffect(() => {\n if (props.mesageaRhData && props.mesageaRhData.isOK) {\n if (props.mesageaRhData.MessageARH) {\n props.messageARHAction('PURGE', '');\n alert('Su solicitud se ha enviado exitosamente.')\n props.history.push(`${process.env.PUBLIC_URL}/solicitudes`);\n } else {\n props.messageARHAction('PURGE', '');\n alert('Ocurrio un error. Intentelo de nuevo más tarde o consulte a su administrador.')\n props.history.push(`${process.env.PUBLIC_URL}/solicitudes`);\n }\n\n } else if (props.mesageaRhError && props.mesageaRhError.isOK === false) {\n props.messageARHAction('PURGE', '');\n props.history.push(`${process.env.PUBLIC_URL}/solicitudes`);\n }\n setLoading(false);\n\n }, [props.mesageaRhData, props.mesageaRhError]);\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Nueva Solicitud a RH\" icon=\"mdi mdi-account-multiple\" />\n {loading ?\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n :\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <form className=\"form-material\" onSubmit={_handleSubmit}>\n <div className=\"form-group\">\n <label>Título de Solicitud</label>\n <input\n type=\"text\"\n name=\"title\"\n className=\"form-control\"\n placeholder=\"\"\n onChange={_handleInput}\n />\n </div>\n <div className=\"form-group\">\n <label>Mensaje</label>\n <textarea\n name=\"message\"\n className=\"form-control\"\n rows=\"5\"\n onChange={_handleInput}\n >\n </textarea>\n </div>\n <div className=\"col-lg-3 col-md-4 pull-right\">\n <button type=\"submit\" className=\"btn waves-effect waves-light btn-block btn-info\" >Enviar Solicitud</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n\n <Footer />\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n mesageaRhData: state.messageaRH.mesageaRhData,\n mesageaRhError: state.messageaRH.mesageaRhError,\n }\n};\n\nconst mapDispatchToProps = {\n messageARHAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(RequestsCreate));\n","import { changeXml, MessageaRhResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n MENSAJEA_RH_SUCCESS,\n MENSAJEA_RH_ERROR,\n MENSAJEA_RH_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const messageARHAction = (data, server) => {\n let configJson = {\n 'tem:BuzonRRHH': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BuzonRRHH\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: MENSAJEA_RH_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET MENSAJEA_RH_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: MENSAJEA_RH_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n MessageARH: MessageaRhResponse(body)\n }\n\n console.log('RESPONSE MENSAJEA_RH DATA: ', response);\n dispatch({ type: MENSAJEA_RH_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET MENSAJEA_RH DATA: ', response);\n dispatch({ type: MENSAJEA_RH_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET MENSAJEA_RH DATA: ', responseError);\n dispatch({ type: MENSAJEA_RH_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst RequestsDetail = props => {\n\n const customTransform = (text) => {\n var regEx = /(https?:\\/\\/[^\\s]+)/g;\n let newText = text.replace(regEx, function(txt) { \n return '<a href=\"' + txt + '\" target=\"_blank\">' + txt + '</a>';\n });\n\n regEx = /\\r?\\n|\\r/;\n newText = newText.replace(regEx, function(txt) { \n return '<br />';\n });\n\n regEx = /\\r?\\n|\\r/g;\n newText = newText.replace(regEx, function(url) { \n return '<br />';\n });\n\n return newText;\n };\n\n return (\n <div id=\"main-wrapper\">\n <Topbar/>\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path={localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"RH Te Escucha\" : \"Solicitudes\"} redirect=\"/solicitudes\" actual={ props.location.state.id } icon=\"mdi mdi-account-multiple\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <form className=\"form-material m-t-40\">\n <div className=\"form-group\">\n <label>Título de la Solicitud</label>\n <input type=\"text\" className=\"form-control\" value={ props.location.state.title } readOnly />\n </div>\n <div className=\"form-group\">\n <label>Detalle de la Solicitud</label>\n {localStorage.getItem(\"REACT_APP_ENLACES_RH_ESCUCHA\") == '1' ? \n <div dangerouslySetInnerHTML={{ __html: customTransform(props.location.state.msg || '') }} style={ {width: '100%', height: '100px', overflow: 'auto'} }>\n </div>\n : \n <textarea className=\"form-control\" rows=\"3\" value={ props.location.state.msg } readOnly />\n }\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nexport default withRouter(connect(null, null)(RequestsDetail));\n","import { changeXml, CancelVacationsEulen } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CANCEL_VACATIONS_EULEN_SUCCESS,\n CANCEL_VACATIONS_EULEN_ERROR,\n CANCEL_VACATIONS_EULEN_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCancelVacationsEulenAction = (data, server) => {\n let configJson = {\n 'tem:InsertaCancelacion': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/InsertaCancelacion\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n console.log('REQUEST: getCancelVacationsEulenAction', 'DATA', data, config, String(obj));\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CANCEL_VACATIONS_EULEN_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CANCEL_VACATIONS_EULEN_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CANCEL_VACATIONS_EULEN_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CancelVacationsEulen: CancelVacationsEulen(body)\n }\n\n console.log('RESPONSE CANCEL_VACATIONS_EULEN DATA: ', response);\n dispatch({ type: CANCEL_VACATIONS_EULEN_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CANCEL_VACATIONS_EULEN DATA: ', response);\n dispatch({ type: CANCEL_VACATIONS_EULEN_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CANCEL_VACATIONS_EULEN DATA: ', responseError);\n dispatch({ type: CANCEL_VACATIONS_EULEN_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, AuthorizeCancelVacationsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AUTHORIZE_CANCEL_VACATIONS_SUCCESS,\n AUTHORIZE_CANCEL_VACATIONS_ERROR,\n AUTHORIZE_CANCEL_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getAuthorizeCancelVacationsAction = (data, server) => {\n let configJson = {\n 'tem:AutorizacionCancelacion': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/AutorizacionCancelacion\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n }\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n console.log('REQUEST getAuthorizeCancelVacationsAction:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AUTHORIZE_CANCEL_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET AUTHORIZE_CANCEL_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AUTHORIZE_CANCEL_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AuthorizeCancelVacations: AuthorizeCancelVacationsResponse(body)\n }\n\n console.log('RESPONSE AUTHORIZE_CANCEL_VACATIONS DATA: ', response);\n dispatch({ type: AUTHORIZE_CANCEL_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AUTHORIZE_CANCEL_VACATIONS DATA: ', response);\n dispatch({ type: AUTHORIZE_CANCEL_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_CANCEL_VACATIONS DATA: ', responseError);\n dispatch({ type: AUTHORIZE_CANCEL_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\r\nimport { getCancelVacationsEulenAction } from '../../api/actions/systemAdmin/CancelVacationsEulenAction';\r\nimport { generaRptPDFCtrlVacacionesAction } from '../../api/actions/reportes/GeneraRptPDFCtrlVacacionesAction';\r\nimport { getVacationExpirationAction } from '../../api/actions/empleado/VacationsExpirationAction';\r\nimport { getAuthorizeCancelVacationsAction } from '../../api/actions/jefe/AuthorizeCancelVacationsAction';\r\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\r\n\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport Card from '../../components/shared/Card.js';\r\nimport moment from 'moment';\r\nimport download from \"downloadjs\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert, confirm } from '../../utils/common/alert';\r\n\r\nconst Vacations = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [showTable, setShowTable] = useState('1');\r\n const [data, setData] = useState({});\r\n\r\n const [vacationExpiration, setVacationExpiration] = useState([]);\r\n const [valoresConfig, setValoresConfig] = useState([]);\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n const [dataModal, setDataModal] = useState({});\r\n const [motivo, setMotivo] = useState('');\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n props.getVacationsAction(params, server);\r\n if (process.env.REACT_APP_IS_KRONES == '1' || localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') {\r\n getVacationExpiration();\r\n }\r\n GetValoresConfig('SICONSULTA');\r\n //console.log('juan', props.dataUserData) \r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.vacationsData && props.vacationsData.isOK) {\r\n setData({\r\n ...props.vacationsData.Vacations\r\n });\r\n setLoading(false);\r\n } else if (props.vacationsError && props.vacationsError.isOK === false) {\r\n setData({\r\n antiguedad: null,\r\n diasDisfrutados: null,\r\n diasDisponibles: null,\r\n diasTomados: null,\r\n fechaIngreso: null,\r\n totalDiasVacacionales: null,\r\n vacacionesProporcionales: null,\r\n diasDisponiblesProporcionales: null\r\n });\r\n props.getVacationsAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsData, props.vacationsError]);\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n if (props.cancelVacationsEulenData && props.cancelVacationsEulenData.isOK) {\r\n alert('Su solicitud de cancelación ha sido enviada.');\r\n props.getVacationsAction('PURGE', '');\r\n props.getCancelVacationsEulenAction('PURGE', '');\r\n props.getVacationsAction(params, server);\r\n setLoading(false);\r\n }\r\n else if (props.cancelVacationsEulenError && props.cancelVacationsEulenError.isOK === false) {\r\n props.getCancelVacationsEulenAction('PURGE', '');\r\n props.getVacationsAction('PURGE', '');\r\n props.getVacationsAction(params, server);\r\n setLoading(false);\r\n }\r\n }, [props.cancelVacationsEulenData, props.cancelVacationsEulenError])\r\n\r\n useEffect(() => {\r\n if (props.generaRptPDFCtrlVacacionesData && props.generaRptPDFCtrlVacacionesData.isOK) {\r\n downloadUrl(props.generaRptPDFCtrlVacacionesData.UrlReport);\r\n props.generaRptPDFCtrlVacacionesAction('PURGE', '');\r\n }\r\n else if (props.generaRptPDFCtrlVacacionesError && props.generaRptPDFCtrlVacacionesError.isOK === false) {\r\n props.generaRptPDFCtrlVacacionesAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.generaRptPDFCtrlVacacionesData, props.generaRptPDFCtrlVacacionesError]);\r\n\r\n useEffect(() => {\r\n if (props.vacationsExpirationData && props.vacationsExpirationData.isOK) {\r\n let expirations = [...props.vacationsExpirationData.VacationExpiration];\r\n console.log(\"Vacation Exp:\", expirations)\r\n props.getVacationExpirationAction('PURGE', '');\r\n if (expirations.length <= 0) return;\r\n\r\n setVacationExpiration(expirations);\r\n }\r\n if (props.vacationsExpirationError && props.vacationsExpirationError.isOK === false) {\r\n props.getVacationExpirationAction('PURGE', '');\r\n }\r\n console.log('EMPLOYEE_VACATIONS_EXPIRATION', props.vacationsExpirationData);\r\n }, [props.vacationsExpirationData, props.vacationsExpirationError]);\r\n\r\n useEffect(() => {\r\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\r\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\r\n if (configuraciones.length > 0) {\r\n setValoresConfig(configuraciones);\r\n }\r\n else {\r\n setValoresConfig([]);\r\n }\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\r\n setValoresConfig([]);\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getValoresConfigData, props.getValoresConfigError]);\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n if (props.authorizeCancelVacationsData && props.authorizeCancelVacationsData.isOK === true) {\r\n console.log('OIHB Reject - OK')\r\n alert('Su solicitud de cancelación ha sido enviada.');\r\n props.getAuthorizeCancelVacationsAction('PURGE', '');\r\n props.getVacationsAction(params, server);\r\n setLoading(true);\r\n } else if (props.authorizeCancelVacationsError && props.authorizeCancelVacationsError.isOK === false) {\r\n props.getAuthorizeCancelVacationsAction('PURGE', '');\r\n console.log('OIHB Reject - NO OK')\r\n props.getVacationsAction(params, server);\r\n setLoading(true);\r\n }\r\n }, [props.authorizeCancelVacationsData, props.authorizeCancelVacationsError]);\r\n\r\n const getVacationExpiration = () => {\r\n let { params, server } = getParams();\r\n const dataSendExpired = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:trabid\": params['tem:TrabID']\r\n }\r\n props.getVacationExpirationAction(dataSendExpired, server);\r\n };\r\n\r\n const GetValoresConfig = (seccion, variable = '') => {\r\n let { params, server } = getParams();\r\n\r\n let send = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion,\r\n \"tem:Variable\": variable,\r\n };\r\n\r\n props.GetValoresConfigAction(send, server);\r\n };\r\n\r\n const downloadReport = () => {\r\n if (localStorage.getItem(\"REACT_APP_REPORTE_HIST_VAC\") == '1') {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:TrabID\": params[\"tem:TrabID\"],\r\n };\r\n props.generaRptPDFCtrlVacacionesAction(params, server);\r\n }\r\n };\r\n\r\n const downloadUrl = async (url) => {\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n }\r\n else {\r\n res = await fetch(url, { method: 'GET' });\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n setLoading(false);\r\n download(blob, name);\r\n };\r\n\r\n const handleCancelRequest = id => {\r\n confirm('¿Estás seguro que deseas cancelar esta solicitud de vacación?').then(res => {\r\n if (res) {\r\n\r\n let { params, server } = getParams();\r\n console.log('PARAMS', params)\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:SolicitudID': id,\r\n 'tem:TrabIDEmp': params['tem:TrabID'],\r\n }\r\n setLoading(true);\r\n props.getCancelVacationsEulenAction(params, server);\r\n }\r\n });\r\n };\r\n\r\n const vacations_table = () => {\r\n\r\n let table = [];\r\n let solicitudes = data.solicitudes;\r\n console.log('SOLICITUD DE VACACIONES DIAS DIAS DIAS DIAS DIAS ', solicitudes)\r\n let cancelaciones = props.vacationsData?.Vacations?.solCancelacion;\r\n console.log('CANCELACION DE VACACIONES DIAS DIAS DIAS DIAS DIAS ', cancelaciones)\r\n\r\n if (solicitudes && solicitudes.length > 0) {\r\n\r\n solicitudes.map((item, i) => {\r\n let canCancel = false;\r\n let color;\r\n let itemFechaVacacion = (item.FechaInicio == undefined || item.FechaInicio == null || item.FechaInicio === '') ? item.FechaVacacion : item.FechaInicio\r\n\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n case 'Vencida':\r\n color = '#8B0000';\r\n break;\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n let d = new Date(item.FechaVacacion.split('/')[1] + '/' + item.FechaVacacion.split('/')[0] + '/' + item.FechaVacacion.split('/')[2]);\r\n if (cancelaciones && cancelaciones.length > 0 && item.Status == 'Aprobado') {\r\n\r\n let exists = [];\r\n if (item.RangoFechas === 'true') {\r\n exists = cancelaciones.filter(cancelacion => (\r\n cancelacion.RangoFechas === item.RangoFechas &&\r\n cancelacion.Dia === item.Dia &&\r\n (\r\n moment(cancelacion.FechaInicio).format('DD-MM-YYYY') === moment(item.FechaInicio).format('DD-MM-YYYY') &&\r\n moment(cancelacion.FechaFin).format('DD-MM-YYYY') === moment(item.FechaFin).format('DD-MM-YYYY')\r\n )\r\n ));\r\n //console.log('OIHB', item.FechaInicio + '; Es de rango');\r\n }\r\n else {\r\n exists = cancelaciones.filter(cancelacion => (\r\n cancelacion.Dia === item.Dia &&\r\n moment(((cancelacion.FechaInicio == undefined || cancelacion.FechaInicio == null || cancelacion.FechaInicio === '') ? cancelacion.FechaVacacion : cancelacion.FechaInicio)).format('DD-MM-YYYY') === moment(itemFechaVacacion).format('DD-MM-YYYY')\r\n ));\r\n //console.log('OIHB', itemFechaVacacion + '; Es única');\r\n }\r\n\r\n if (exists.length <= 0) {\r\n canCancel = true;\r\n }\r\n } else if (sessionStorage.getItem(\"SICONSULTA_CancelaSolicitado\") == '1' && (item.Status === 'Aprobado' || item.Status === 'Solicitado')) {\r\n canCancel = true;\r\n } else if (item.Status === 'Aprobado') {\r\n canCancel = true;\r\n }\r\n console.log('ITEM_FECHAS', item.FechaInicio, item.RangoFechas)\r\n //let validateDates = item.FechaInicio === '' ? item.FechaVacacion : item.FechaInicio\r\n table.push(\r\n <tr key={item.SolicitudID}>\r\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\r\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\r\n <div>\r\n {item.Dia}\r\n </div>\r\n </td>\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(itemFechaVacacion).format('DD-MM-YYYY')}</td>\r\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\r\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\r\n <td>{item.Comentario} </td>}\r\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\r\n {canCancel ?\r\n <td onClick={() => _handleRowClick(item.SolicitudID, item.Status)}><i className=\"mdi mdi-close\"></i></td>\r\n :\r\n <td></td>}\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const cancelations_table = () => {\r\n\r\n let table = [];\r\n let solicitudes = props.vacationsData.Vacations.solCancelacion;\r\n\r\n if (solicitudes.length > 0) {\r\n if (solicitudes[0]['error']) {\r\n table.push(\r\n <tr>\r\n <td>{solicitudes[0]['error']}</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n solicitudes.map((item, i) => {\r\n let color;\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Rechazada':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Vencida':\r\n color = '#8B0000';\r\n break;\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n console.log('ITEM_FECHAS', item.FechaInicio)\r\n let validateDates = (item.FechaInicio == undefined || item.FechaInicio == null || (item.FechaInicio == undefined || item.FechaInicio == null || item.FechaInicio === '')) ? item.FechaVacacion : item.FechaInicio\r\n table.push(\r\n <tr key={item.SolicitudID}>\r\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\r\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\r\n <div>\r\n {item.Dia}\r\n </div>\r\n </td>\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}</td>\r\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\r\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\r\n <td>{item.Comentario} </td>}\r\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\r\n <td></td>\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const handleDropdown = e => {\r\n setShowTable(e.target.value);\r\n }\r\n\r\n //const _handleConfirmModal = (id) => {\r\n // let { params, server } = getParams();\r\n // console.log('PARAMS', params)\r\n // params = {\r\n // 'tem:sToken': params['tem:sToken'],\r\n // 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n // 'tem:SolicitudID': id,\r\n // 'tem:TrabIDEmp': params['tem:TrabID'],\r\n // 'tem:Motivo': motivo\r\n // }\r\n // setLoading(true);\r\n // props.getCancelVacationsEulenAction(params, server);\r\n\r\n // setShowModal(false);\r\n // setMotivo('');\r\n // setDataModal({});\r\n //};\r\n\r\n //que pueda usar estatus solicitado(accion autorizar cancelacion) y aprobado\r\n const _handleConfirmModal = (id, status) => {\r\n console.log(\"Función _handleConfirmModal \");\r\n\r\n let params, server;\r\n switch (status) {\r\n case \"Solicitado\":\r\n console.log(\"Caso Solicitado\");\r\n ({ params, server } = getParams());\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabIDJefe': props.dataUserData.DataUser.Reporta_ID,\r\n 'tem:SolicitudID': id,\r\n 'tem:TrabIDEmp': params['tem:TrabID'],\r\n 'tem:Autoriza': '1',\r\n 'tem:mensaje': motivo,\r\n 'tem:data': 'PURGE',\r\n };\r\n props.getAuthorizeCancelVacationsAction(params, server);\r\n break;\r\n case \"Aprobado\":\r\n console.log(\"Caso Aprobado\");\r\n ({ params, server } = getParams());\r\n console.log('PARAMS', params)\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:SolicitudID': id,\r\n 'tem:TrabIDEmp': params['tem:TrabID'],\r\n 'tem:Motivo': motivo\r\n }\r\n setLoading(true);\r\n props.getCancelVacationsEulenAction(params, server);\r\n break;\r\n default:\r\n console.log(\"Caso predeterminado\", status);\r\n\r\n }\r\n setShowModal(false);\r\n setMotivo('');\r\n setDataModal({});\r\n };\r\n\r\n const _handleRowClick = (id, status) => {\r\n setDataModal({\r\n title: 'Cancelación de Vacación',\r\n body: `¿Estás seguro que deseas cancelar esta solicitud de vacación?.`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n data: id,\r\n type: 'vacacion',\r\n haveComment: (localStorage.getItem(\"REACT_APP_ESCRIBE_MOTIVO\") == \"1\"),\r\n status: status\r\n });\r\n setShowModal(true);\r\n };\r\n\r\n const _handleCloseModal = () => {\r\n setShowModal(false);\r\n setMotivo('');\r\n };\r\n\r\n const handleInput = event => {\r\n var value = event.target.value;\r\n setMotivo(value);\r\n };\r\n\r\n const url = () => {\r\n let { params, server } = getParams();\r\n let sToken = params['tem:sToken'] || '';\r\n let IdEmpresa = params['tem:IdEmpresa'] || '';\r\n let TrabID = params['tem:TrabID'] || '';\r\n\r\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBVacaciones') || 'localhost').trim();\r\n\r\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\r\n\r\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n }\r\n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <div className=\"container-fluid\" style={{ padding: '0', margin: '0' }}>\r\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\r\n WebkitOverflowScrolling: 'touch',\r\n paddingBottom: 0\r\n }}>\r\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n }\r\n else {\r\n\r\n const {\r\n antiguedad,\r\n diasDisfrutados,\r\n diasDisponibles,\r\n diasTomados,\r\n fechaIngreso,\r\n totalDiasVacacionales,\r\n // proporcionales,\r\n // vacacionesPendientesConsolide,\r\n // totalVacacionesConsolide,\r\n vacacionesProporcionales,\r\n diasDisponiblesProporcionales\r\n } = data;\r\n let permitirSolicitar = (diasDisponibles > 0);\r\n if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\r\n permitirSolicitar = (data.totalVacacionesConsolide > 0);\r\n }\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n\r\n <Modal show={showModal} onHide={_handleCloseModal}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModal.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <p>{dataModal.body}</p>\r\n {dataModal.haveComment ? <input\r\n className=\"form-control\"\r\n name=\"company\"\r\n type=\"textarea\"\r\n required=\"\"\r\n placeholder=\"Motivo\"\r\n value={motivo}\r\n onChange={handleInput}\r\n autoFocus\r\n /> : null}\r\n\r\n </Modal.Body>\r\n <Modal.Footer>\r\n {dataModal.confirmButton &&\r\n <Button variant=\"primary\" onClick={() => _handleConfirmModal(dataModal.data, dataModal.status)}>\r\n Si\r\n </Button>\r\n }\r\n {dataModal.rejectButton &&\r\n <Button variant=\"danger\" onClick={() => _handleCloseModal()}>\r\n No\r\n </Button>\r\n }\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Solicitud de Vacaciones\" icon=\"mdi mdi-beach\" />\r\n <div className=\"container-fluid\">\r\n {localStorage.getItem(\"REACT_APP_REPORTE_HIST_VAC\") == '1' &&\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <button\r\n type=\"button\"\r\n style={{ float: 'right' }}\r\n className=\"btn btn-info m-l-5\"\r\n onClick={() => downloadReport()}>Histórico Vacaciones<i className=\"mdi mdi-download\"></i>\r\n </button>\r\n <br /><br />\r\n </div>\r\n </div>\r\n }\r\n <div className=\"card-group\">\r\n\r\n <Card\r\n icon=\"mdi mdi-calendar text-info\"\r\n value={fechaIngreso}\r\n name=\"FECHA DE INGRESO\"\r\n type=\"date\"\r\n />\r\n\r\n <Card\r\n icon=\"mdi mdi-calendar-check text-success\"\r\n value={antiguedad}\r\n name=\"ANTIGÜEDAD\"\r\n />\r\n\r\n </div>\r\n {\r\n localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") != '1' ?\r\n <div className=\"card-group\">\r\n {localStorage.getItem(\"REACT_APP_IGNORA_DIASLEY_SOLVAC\") != \"1\" &&\r\n <Card\r\n icon=\"mdi mdi-calendar text-info\"\r\n value={sessionStorage.getItem('SICONSULTA_VacacionProporcional') === '1' ? vacacionesProporcionales : totalDiasVacacionales}\r\n name=\"DÍAS CORRESPONDIENTES DEL AÑO\"\r\n />}\r\n {localStorage.getItem(\"REACT_APP_IGNORA_DIASLEY_SOLVAC\") != \"1\" &&\r\n <Card\r\n icon=\"mdi mdi-airplane-landing text-success\"\r\n value={diasTomados}\r\n name=\"DÍAS DISFRUTADOS\"\r\n />}\r\n <Card\r\n icon=\"mdi mdi-airplane-takeoff text-purple\"\r\n value={sessionStorage.getItem('SICONSULTA_VacacionProporcional') === '1' ? diasDisponiblesProporcionales : diasDisponibles}\r\n name=\"DÍAS DISPONIBLES\"\r\n />\r\n {(process.env.REACT_APP_IS_KRONES == '1' || localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') &&\r\n <Card\r\n icon=\"mdi mdi-airplane-landing text-danger\"\r\n value={vacationExpiration.map(item => { return parseInt(item.Dias_Pendientes); }).reduce((a, b) => a + b, 0)}\r\n name=\"DÍAS PRÓXIMOS A VENCER\"\r\n />\r\n }\r\n </div>\r\n :\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-calendar text-info\"\r\n value={data.vacacionesPendientesConsolide}\r\n name=\"TOTAL DE VACACIONES DEVENGADAS\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-airplane-landing text-success\"\r\n value={data.proporcionales}\r\n name=\"VACACIONES PROPORCIONALES\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-airplane-takeoff text-purple\"\r\n value={data.totalVacacionesConsolide}\r\n name=\"TOTAL DE VACACIONES\"\r\n />\r\n </div>\r\n }\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n\r\n <div className=\"card-header\">\r\n <div className=\"d-flex\">\r\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\r\n <select className=\"form-control p-2 col-3\" onChange={handleDropdown}>\r\n <option value=\"1\">VACACIONES</option>\r\n <option value=\"2\">CANCELACIONES</option>\r\n </select>\r\n {permitirSolicitar &&\r\n <Link to={`${process.env.PUBLIC_URL}/vacaciones/solicitud`} className=\"ml-auto p-2\">\r\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light\">Solicitar Vacación</button>\r\n </Link>}\r\n </div>\r\n </div>\r\n\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n {/*<th>Solicitud</th>*/}\r\n <th>Día</th>\r\n <th>Fecha Vacación</th>\r\n <th>Fecha de Solicitud</th>\r\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\r\n <th>Comentario </th>}\r\n <th>Estatus</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {showTable === '1' ? vacations_table() : cancelations_table()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n vacationsData: state.vacations.vacationsData,\r\n vacationsError: state.vacations.vacationsError,\r\n\r\n cancelVacationsEulenData: state.cancelVacationsEulen.cancelVacationsEulenData,\r\n cancelVacationsEulenError: state.cancelVacationsEulen.cancelVacationsEulenError,\r\n\r\n generaRptPDFCtrlVacacionesData: state.generaRptPDFCtrlVacaciones.generaRptPDFCtrlVacacionesData,\r\n generaRptPDFCtrlVacacionesError: state.generaRptPDFCtrlVacaciones.generaRptPDFCtrlVacacionesError,\r\n\r\n vacationsExpirationData: state.vacationsExpiration.vacationsExpirationData,\r\n vacationsExpirationError: state.vacationsExpiration.vacationsExpirationError,\r\n\r\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n authorizeCancelVacationsData: state.authorizeCancelVacations.authorizeCancelVacationsData,\r\n authorizeCancelVacationsError: state.authorizeCancelVacations.authorizeCancelVacationsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getVacationsAction,\r\n getCancelVacationsEulenAction,\r\n generaRptPDFCtrlVacacionesAction,\r\n getVacationExpirationAction,\r\n GetValoresConfigAction,\r\n getAuthorizeCancelVacationsAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Vacations));","import { changeXml, GeneraRptPDFCtrlVacacionesResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js';\r\nimport {\r\n RPTPDF_CTRLVAC_SUCCESS,\r\n RPTPDF_CTRLVAC_ERROR,\r\n RPTPDF_CTRLVAC_PURGE,\r\n\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\n\r\nexport const generaRptPDFCtrlVacacionesAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GeneraRptPDFControlVacaciones': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoReportes.svc';\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoReportes/GeneraRptPDFControlVacaciones\",\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: RPTPDF_CTRLVAC_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET RPTPDF_CTRLVAC DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: RPTPDF_CTRLVAC_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlReport: GeneraRptPDFCtrlVacacionesResponse(body)\r\n };\r\n console.log('RESPONSE RPTPDF_CTRLVAC DATA: ', response);\r\n dispatch({ type: RPTPDF_CTRLVAC_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET RPTPDF_CTRLVAC DATA: ', response);\r\n dispatch({ type: RPTPDF_CTRLVAC_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET RPTPDF_CTRLVAC DATA: ', responseError);\r\n dispatch({ type: RPTPDF_CTRLVAC_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import { changeXml, GetDiasBloqueadosResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_DIAS_BLOQUEADOS_SUCCESS,\r\n GET_DIAS_BLOQUEADOS_ERROR,\r\n GET_DIAS_BLOQUEADOS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\nexport const getDiasBloqueadosAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoEmpleado';\r\n let action = 'GetDiasBloqueados';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/\" + action,\r\n 'Server': directServer\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n console.log('TEST REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n let notFound = false\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n notFound = true;\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetDiasBloqueados: GetDiasBloqueadosResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GET_DIAS_BLOQUEADOS DATA: ', response);\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_SUCCESS, payload: response });\r\n return;\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_DIAS_BLOQUEADOS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n GetDiasBloqueados: GetDiasBloqueadosResponse(body)\r\n }\r\n\r\n console.log('RESPONSE DIAS_BLOQUEADOS DATA: ', response);\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET DIAS_BLOQUEADOS DATA: ', response);\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET DIAS_BLOQUEADOS DATA: ', responseError);\r\n dispatch({ type: GET_DIAS_BLOQUEADOS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n};","import { changeXml, skipWeekendResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SKIP_WEEKEND_SUCCESS,\n SKIP_WEEKEND_ERROR,\n SKIP_WEEKEND_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getSkipWeekendAction = (data, server) => {\n let configJson = {\n 'tem:OmiteFinSemana': {\n ...data\n }\n }\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n //'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/OmiteFinSemana\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n console.log('REQUEST getCatIncidentsAction:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SKIP_WEEKEND_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SKIP_WEEKEND_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SKIP_WEEKEND_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n skipWeekend: skipWeekendResponse(body)\n }\n\n console.log('RESPONSE SKIP_WEEKEND DATA: ', response);\n dispatch({ type: SKIP_WEEKEND_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SKIP_WEEKEND DATA: ', response);\n dispatch({ type: SKIP_WEEKEND_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SKIP_WEEKEND DATA: ', responseError);\n dispatch({ type: SKIP_WEEKEND_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, CatIncidentsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CAT_INCIDENTS_SUCCESS,\n CAT_INCIDENTS_ERROR,\n CAT_INCIDENTS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getCatIncidentsAction = (data, server) => {\n\n let action = \"CatIncidencias\";\n let configJson = {\n 'tem:CatIncidencias': {\n ...data\n }\n }\n\n if (sessionStorage.getItem(\"SICONSULTA_ValidaDiasKrones\") == \"1\"){\n action = \"CatIncidenciasKrones\";\n configJson = {\n 'tem:CatIncidenciasKrones': {\n ...data\n }\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n // 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatIncidencias\",\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/\" + action,\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST getCatIncidentsAction:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CAT_INCIDENTS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CAT_INCIDENTS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CAT_INCIDENTS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CatIncidents: CatIncidentsResponse(body)\n }\n\n console.log('RESPONSE CAT_INCIDENTS DATA: ', response);\n dispatch({ type: CAT_INCIDENTS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CAT_INCIDENTS DATA: ', response);\n dispatch({ type: CAT_INCIDENTS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CAT_INCIDENTS DATA: ', responseError);\n dispatch({ type: CAT_INCIDENTS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, ValidaFechaResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_FECHAS_VALIDAS_SUCESS,\r\n GET_FECHAS_VALIDAS_ERROR,\r\n GET_FECHAS_VALIDAS_PURGE,\r\n VALIDATE_ERROR\r\n} from '../../types'\r\n\r\n\r\nexport const getValidaFechasAction = (data, server) => {\r\n let configJson = {\r\n 'tem:VerificaVacaciones': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/VerificaVacaciones\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('REQUEST:', data, config);\r\n\r\n return async (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_FECHAS_VALIDAS_PURGE, payload: 'PURGE' })\r\n } else {\r\n await fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_FECHAS_VALIDAS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_FECHAS_VALIDAS_ERROR, payload: response })\r\n } else { \r\n response = {\r\n isOK: true,\r\n FechasValidas: ValidaFechaResponse(body)\r\n }\r\n console.log('RESPONSE VACATIONS DATA: ', response);\r\n dispatch({ type: GET_FECHAS_VALIDAS_SUCESS, payload: response })\r\n }\r\n }\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VACATIONS DATA: ', response);\r\n dispatch({ type: GET_FECHAS_VALIDAS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VACATIONS DATA: ', responseError);\r\n dispatch({ type: GET_FECHAS_VALIDAS_ERROR, payload: responseError })\r\n })\r\n }\r\n }\r\n};","import {\nRESET_STORE\n} from \"../../types\";\n\nexport const resetStore = () => {\n return {\n type: RESET_STORE\n }\n}","import { VALIDATE_ERROR } from '../../types'\n\nexport const changeValidateError = (data) => {\n return (dispatch) => {\n dispatch({ type: VALIDATE_ERROR, payload: data })\n }\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport CryptoJS from 'crypto-js';\nimport { validDateIncidentAction } from '../../api/endpoints';\nimport { getDiasBloqueadosAspenAction } from '../../api/endpoints';\nimport DayPicker, { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport moment from 'moment';\nimport { connect } from \"react-redux\";\nimport { resetStore } from '../../api/actions/common/ResetAllStoreAction';\nimport { changeValidateError } from '../../api/actions/common/ValidateErrorsAction'\nimport { alert } from '../../utils/common/alert';\n\nconst DatePickerSelector = props => {\n\n const [selectedDays, setSelectedDays] = useState(props.selected)\n const [disabledDays, setDisabledDays] = useState(props.ivalid)\n const [selectedMonth, setSelectedMonth] = useState(new Date());\n const [lockedDays, setLockedDays] = useState(null);\n\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa']\n\n const MONTHS = [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre',\n ]\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n ]\n\n useEffect(() => {\n setDisabledDays(props.ivalid)\n }, [props.ivalid])\n\n useEffect(() => {\n setSelectedDays(props.selected)\n }, [props.selected])\n\n useEffect(() => {\n if (selectedMonth) {\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n getDiasBloqueados(selectedMonth);\n }\n }\n }, [selectedMonth]);\n\n const getDiasBloqueados = async (selectedMonth) => {\n let params = sessionStorage.getItem('params');\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': selectedMonth.getUTCFullYear(),\n 'tem:mes': selectedMonth.getMonth() + 1,\n };\n\n let request2 = await getDiasBloqueadosAspenAction(dataUser, server);\n if (request2 && request2.isOK) { \n // console.log('OIHB', request2.DiasBloqueados.map(item => item.Fecha));\n setLockedDays(request2.DiasBloqueados.map(item => item.Fecha));\n }\n };\n\n const handleDayClick = (day, { selected }) => {\n const selDays = selectedDays.concat();\n let disabled = disabledDays.concat();\n\n\n if (selected) {\n const selectedIndex = selDays.findIndex(selectedDay =>\n DateUtils.isSameDay(selectedDay, day)\n );\n selDays.splice(selectedIndex, 1);\n setSelectedDays(selDays);\n props.selectedDays(selDays)\n setDisabledDays(disabled)\n props.selectedDisabled(disabled)\n\n } else {\n validateDay(day).then((validated) => {\n if (validated) {\n selDays.push(day);\n } else {\n const selectedDisableIndexs = disabled.findIndex(selectedDays =>\n DateUtils.isSameDay(selectedDays, day)\n );\n if (selectedDisableIndexs === -1) {\n disabled.push(day)\n } else {\n disabled.splice(selectedDisableIndexs, 2);\n }\n }\n props.selectedDays(selDays)\n props.selectedDisabled(disabled)\n setSelectedDays(selDays);\n setDisabledDays(disabled)\n })\n }\n }\n\n const _resetApp = () => {\n props.history.push(`${process.env.PUBLIC_URL}/login`)\n }\n\n const validateDay = async (date) => {\n if (date) {\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let formatedDate = moment(date).format('YYYY-MM-DD') + 'T00:00:00';\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fecha': formatedDate,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n let myDate = new Date(date);\n return await validDateIncidentAction(dataUser, server).then(valid => {\n console.log('validDateIncidentAction', formatedDate, valid);\n\n if (valid !== false && valid !== true) {\n //alert(valid)\n sessionStorage.clear();\n props.changeValidateError({})\n props.resetStore();\n _resetApp();\n return false;\n }\n\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n let valid2 = !lockedDays.some(day => moment(day).format('DD-MM-YYYY') == moment(date).format('DD-MM-YYYY'));\n console.log('getDiasBloqueadosAspenAction', formatedDate, valid2);\n valid = (valid && valid2);\n }\n \n return valid;\n })\n }\n }\n }\n\n const today = new Date();\n const modifiers = {\n disabledDayss: disabledDays,\n };\n\n return (\n <div>\n <style>{`\n .DayPicker-Day--disabledDayss {\n background-color: #be2b71;\n color: white;\n }\n \n .DayPicker-Day--disabled {\n outline: none;\n pointer-events: none;\n }\n `}</style>\n <DayPicker\n months={MONTHS}\n weekdaysShort={WEEKDAYS_SHORT}\n selectedDays={selectedDays}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onMonthChange={(month) => { setSelectedMonth(month) }}\n />\n </div>\n );\n\n}\nconst mapStateToProps = (state) => {\n return {\n store: state,\n validateErrorData: state.validateError.validateErrorData,\n }\n};\n\nconst mapDispatchToProps = {\n changeValidateError,\n resetStore\n};\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(DatePickerSelector));","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport CryptoJS from 'crypto-js';\nimport { validDateIncidentAction } from '../../api/endpoints';\nimport { getDiasBloqueadosAspenAction } from '../../api/endpoints';\nimport DayPicker, { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport moment from 'moment';\nimport { connect } from \"react-redux\";\nimport { resetStore } from '../../api/actions/common/ResetAllStoreAction';\nimport { changeValidateError } from '../../api/actions/common/ValidateErrorsAction'\nimport { alert } from '../../utils/common/alert';\n\nconst DatePickerMultiSelector = props => {\n\n const [rangeSelected, setRangeSelected] = useState({ from: undefined, to: undefined })\n const [disabledDays, setDisabledDays] = useState([])\n const [enabledDays, setEnabledDays] = useState([])\n const [selectedMonth, setSelectedMonth] = useState(new Date());\n const [lockedDays, setLockedDays] = useState(null);\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa']\n\n const MONTHS = [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre',\n ]\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n ]\n \n useEffect(() => {\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n getDiasBloqueados(selectedMonth || new Date());\n }\n }, [selectedMonth]);\n\n useEffect(() => {\n _resetDates();\n //_handleReset();\n }, [props.resetDates]);\n\n const getDiasBloqueados = async (selectedMonth) => {\n let params = sessionStorage.getItem('params');\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': selectedMonth.getUTCFullYear(),\n 'tem:mes': selectedMonth.getMonth() + 1,\n };\n\n let request2 = await getDiasBloqueadosAspenAction(dataUser, server);\n if (request2 && request2.isOK) { \n // console.log('OIHB', request2.DiasBloqueados.map(item => item.Fecha));\n setLockedDays(request2.DiasBloqueados.map(item => item.Fecha));\n }\n };\n \n const handleDayClick = async (day) => {\n const range = DateUtils.addDayToRange(day, rangeSelected);\n let start = range.from;\n let end = range.to || '';\n let arrDays = getDaysArray(start, end);\n setRangeSelected(range)\n let disabled = []\n let enabled = []\n if (arrDays.length > 0) {\n for(var i = 0; i < arrDays.length; i++) {\n let day = arrDays[i];\n let validated = await validateDay(day);\n if (!validated) {\n disabled.push(day);\n }\n else {\n enabled.push(day);\n }\n }\n\n // if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\n // disabled = []\n // disabled.push(range.from)\n // disabled.push(range.to)\n // }\n\n // if (disabled.length > 0) {\n // _handleReset();\n // }\n\n setDisabledDays(disabled);\n setEnabledDays(enabled);\n }\n\n if (enabled.length == 0) {\n return;\n }\n\n console.log('FEHCAS_', start, end, disabled, enabled)\n\n // if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\n // _handleReset()\n // } \n // else {\n if ((localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") && equalDate(start, end)) {\n setDisabledDays([])\n _handleReset()\n } \n else {\n props.setInitialDate(start)\n props.setFinalDate(end)\n }\n // }\n }\n\n const compareIfWeekend = (range) => {\n let from = range.from\n let to = range.to\n if (from != undefined && to != undefined) {\n if (!(new Date(from).getDay() % 6) && !(new Date(to).getDay() % 6)) {\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n }\n\n const equalDate = (start, end) => {\n\n let dayStart = start.getDate()\n let monthStart = start.getMonth()\n if (end != '') {\n let monthEnd = end.getMonth()\n let dayEnd = end.getDate()\n if (monthStart === monthEnd && dayStart === dayEnd) {\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n }\n\n const getDaysArray = (start, end) => {\n if (end) {\n for (var arr = [], dt = new Date(start); dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n return arr;\n }\n return []\n };\n\n const _resetDates = () => {\n setRangeSelected({\n from: undefined,\n to: undefined,\n });\n props.setInitialDate('');\n props.setFinalDate('');\n };\n\n const _handleReset = () => {\n if (localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") {\n _resetDates();\n }\n }\n\n const _resetApp = () => {\n props.history.push(`${process.env.PUBLIC_URL}/login`)\n }\n\n const validateDay = async (date) => {\n if (date) {\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL} /login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n let formatedDate = moment(date).format('YYYY-MM-DD') + 'T00:00:00';\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fecha': formatedDate,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n\n return await validDateIncidentAction(dataUser, server).then(valid => {\n console.log('validDateIncidentAction', formatedDate, valid);\n\n if (valid !== false && valid !== true) {\n //alert(valid);\n sessionStorage.clear();\n props.changeValidateError({})\n props.resetStore();\n _resetApp();\n return false;\n } \n\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n let valid2 = !lockedDays.some(day => moment(day).format('DD-MM-YYYY') == moment(date).format('DD-MM-YYYY'));\n console.log('getDiasBloqueadosAspenAction', formatedDate, valid2);\n valid = (valid && valid2);\n }\n \n let myDate = new Date(date);\n // if (props.skipWeekends == true && (myDate.getDay() % 6) == 0) {\n // return false;\n // }\n // else {\n return valid;\n // }\n })\n }\n }\n }\n\n const { from, to } = rangeSelected;\n const modifiers = {\n disabledDayss: disabledDays,\n start: from, end: to\n };\n return (\n <div>\n <div>\n <style>{`\n .Selectable .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):not(.DayPicker-Day--disabledDayss) {\n background-color: #EEFFE0 !important;\n color: #93c03f !important;\n }\n .Selectable .DayPicker-Day {\n border-radius: 0 !important;\n }\n .Selectable .DayPicker-Day--start {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n background-color: #93c03f !important;\n color: #fff;\n }\n .Selectable .DayPicker-Day--end {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n background-color: #93c03f !important;\n color: #fff;\n }\n .Selectable .DayPicker-Day--disabledDayss {\n background-color: #be2b71 !important;\n color: #fff !important;\n }\n .Selectable .DayPicker-Day--disabled {\n outline: none;\n pointer-events: none;\n }\n` }</style>\n <DayPicker\n months={MONTHS}\n weekdaysShort={WEEKDAYS_SHORT}\n className=\"Selectable\"\n selectedDays={[from, { from, to }]}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onMonthChange={(month) => { setSelectedMonth(month) }}\n // disabledDays={{ before: new Date() }}\n />\n </div>\n <div>\n <button\n type=\"button\"\n onClick={() => {\n setRangeSelected({\n from: undefined,\n to: undefined,\n });\n props.setInitialDate('')\n props.setFinalDate('')\n setDisabledDays([])\n }}\n className=\"btn btn-info waves-effect waves-light\"\n >\n Restaurar\n </button>\n </div>\n\n\n </div>\n );\n\n}\nconst mapStateToProps = (state) => {\n return {\n store: state,\n validateErrorData: state.validateError.validateErrorData,\n skipWeekendData: state.skipWeekend.skipWeekendData,\n skipWeekendError: state.skipWeekend.skipWeekendError,\n }\n};\n\nconst mapDispatchToProps = {\n changeValidateError,\n resetStore\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(DatePickerMultiSelector));","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport CryptoJS from 'crypto-js';\r\nimport { validDateIncidentAction } from '../../api/endpoints';\r\nimport DayPicker, { DateUtils } from 'react-day-picker';\r\nimport 'react-day-picker/lib/style.css';\r\nimport moment from 'moment';\r\nimport { any } from 'prop-types';\r\n\r\nconst DatePickerAvaibleSelector = props => {\r\n const [selectedDays, setSelectedDays] = useState(props.selected || []);\r\n\r\n const [vacationDays, setVacationDays] = useState([]);\r\n const [incidentsDays, setIncidentsDays] = useState([]);\r\n const [pendingAuthDays, setPendingAuthDays] = useState([]);\r\n const [disabledDays, setDisabledDays] = useState([]);\r\n\r\n const [selectedMonth, setSelectedMonth] = useState(new Date());\r\n const [vacationsData, setVacationsData] = useState([]);\r\n\r\n const [showTooltip, setShowTooltip] = useState({});\r\n const [tooltipDates, setTooltipDates] = useState([]);\r\n\r\n const MONTHS = [\r\n 'Enero',\r\n 'Febrero',\r\n 'Marzo',\r\n 'Abril',\r\n 'Mayo',\r\n 'Junio',\r\n 'Julio',\r\n 'Agosto',\r\n 'Septiembre',\r\n 'Octubre',\r\n 'Noviembre',\r\n 'Diciembre',\r\n ];\r\n\r\n const WEEKDAYS_LONG = [\r\n 'Domingo',\r\n 'Lunes',\r\n 'Martes',\r\n 'Miercoles',\r\n 'Jueves',\r\n 'Viernes',\r\n 'Sabado',\r\n ];\r\n\r\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'];\r\n\r\n useEffect(() => {\r\n setSelectedDays(props.selected)\r\n }, [props.selected]);\r\n\r\n useEffect(() => {\r\n let vacaciones = props.vacationsData;\r\n if (!vacaciones) return;\r\n\r\n //console.log('OIHB Data vaca', vacaciones);\r\n let days = [];\r\n let solicitudes = vacaciones.solicitudes || [];\r\n let cancelaciones = vacaciones.solCancelacion || [];\r\n let incidencias = vacaciones.incidencias || [];\r\n \r\n if (solicitudes.length == 0 && incidencias.length == 0) return;\r\n \r\n if (solicitudes && solicitudes.length > 0) {\r\n solicitudes.map((item) => {\r\n if (item.RangoFechas == 'true') {\r\n let exists = cancelaciones.some(cancelacion => \r\n (\r\n cancelacion.Status == item.Status && cancelacion.RangoFechas === item.RangoFechas && cancelacion.Dia === item.Dia && \r\n (equalDates(cancelacion.FechaInicio, item.FechaInicio) && equalDates(cancelacion.FechaFin, item.FechaFin))\r\n ));\r\n \r\n if (exists) return;\r\n \r\n let inicio = new Date(item.FechaInicio);\r\n let fin = new Date(item.FechaFin);\r\n while(inicio <= fin) {\r\n days.push({\r\n Tipo: 'V',\r\n Fecha: new Date(Date.parse(inicio)),\r\n Estatus: item.Status\r\n });\r\n inicio.setDate(inicio.getDate() + 1);\r\n }\r\n }\r\n else {\r\n let exists = cancelaciones.some(cancelacion => \r\n (\r\n cancelacion.Status == item.Status && cancelacion.RangoFechas === item.RangoFechas && cancelacion.Dia === item.Dia &&\r\n equalDates(cancelacion.FechaInicio, item.FechaInicio)\r\n ));\r\n \r\n if (exists) return;\r\n \r\n days.push({\r\n Tipo: 'V',\r\n Fecha: new Date(item.FechaInicio),\r\n Estatus: item.Status\r\n });\r\n }\r\n });\r\n }\r\n \r\n if (incidencias && incidencias.length > 0) {\r\n incidencias.map((item) => {\r\n if (item.RangoFechas == 'true') {\r\n let inicio = new Date(item.FechaInicio);\r\n let fin = new Date(item.FechaFin);\r\n while(inicio <= fin) {\r\n days.push({\r\n Tipo: 'I',\r\n Fecha: new Date(Date.parse(inicio)),\r\n Estatus: item.Status\r\n });\r\n inicio.setDate(inicio.getDate() + 1);\r\n }\r\n }\r\n else {\r\n days.push({\r\n Tipo: 'I',\r\n Fecha: new Date(item.FechaInicio),\r\n Estatus: item.Status\r\n });\r\n }\r\n });\r\n }\r\n \r\n if (days.length > 0) {\r\n days = days.sort((a, b) => (a.Fecha-b.Fecha));\r\n setVacationsData(days);\r\n }\r\n //console.log('OIHB Data days', days);\r\n }, [props.vacationsData]);\r\n\r\n useEffect(() => {\r\n setDays2();\r\n }, [props.selectedDisabled]);\r\n\r\n useEffect(() => {\r\n setDays2();\r\n }, [props.skipWeekends]);\r\n\r\n useEffect(() => {\r\n setDays1();\r\n }, [vacationsData]);\r\n\r\n useEffect(() => {\r\n setDays1();\r\n\r\n if (selectedMonth) {\r\n props.onSelectedMonth(selectedMonth);\r\n }\r\n }, [selectedMonth]);\r\n\r\n useEffect(() => {\r\n if ((props.tooltipDates || []).length > 0) {\r\n //console.log('OIHB Data tool', props.tooltipDates);\r\n setTooltipDates(props.tooltipDates);\r\n }\r\n }, [props.tooltipDates]);\r\n\r\n const setDays1 = () => {\r\n if (selectedMonth && (vacationsData || []).length > 0) {\r\n\r\n let filterMonth = vacationsData.filter(day => day.Fecha.getFullYear() == selectedMonth.getFullYear() && day.Fecha.getMonth() == selectedMonth.getMonth());\r\n \r\n if (filterMonth.length === 0) return; \r\n\r\n let arrEstatus = ['Solicitado', 'Rechazado'];\r\n let vacation = filterMonth.filter(day => day.Tipo == 'V' && !arrEstatus.some(item => item == day.Estatus));\r\n let incidents = filterMonth.filter(day => day.Tipo == 'I' && !arrEstatus.some(item => item == day.Estatus));\r\n // let vacation = filterMonth.filter(day => day.Tipo == 'V' && day.Estatus != 'Solicitado');\r\n // let incidents = filterMonth.filter(day => day.Tipo == 'I' && day.Estatus != 'Solicitado');\r\n let pendingAuth = filterMonth.filter(day => day.Estatus == 'Solicitado');\r\n\r\n //console.log('OIHB Data', incidents);\r\n //console.log('OIHB Data', pendingAuth);\r\n if (vacation.length > 0) setVacationDays(vacation.map(m => { return m.Fecha }));\r\n if (incidents.length > 0) setIncidentsDays(incidents.map(m => { return m.Fecha }));\r\n if (pendingAuth.length > 0) setPendingAuthDays(pendingAuth.map(m => { return m.Fecha }));\r\n }\r\n\r\n setDisabledDays();\r\n };\r\n\r\n const setDays2 = () => {\r\n let days = [];\r\n //console.log('OIHB Skip', props.skipWeekends);\r\n if (selectedMonth && props.skipWeekends) {\r\n let date = new Date(selectedMonth.getFullYear(), selectedMonth.getMonth(), 1);\r\n while (date.getMonth() === selectedMonth.getMonth()) {\r\n if (!(date.getDay() % 6)) {\r\n //console.log('OIHB Skip', date, new Date(date));\r\n days.push(new Date(date));\r\n }\r\n date.setDate(date.getDate() + 1);\r\n }\r\n }\r\n\r\n if (selectedMonth && (props.selectedDisabled || []).length > 0) {\r\n props.selectedDisabled.filter(day => !days.some(d => equalDates(d, day))).map(day => {\r\n days.push(day);\r\n });\r\n }\r\n\r\n if (days.length > 0) {\r\n setDisabledDays(days);\r\n }\r\n };\r\n\r\n const formatDate = (date, leftDay = true) => {\r\n //console.log('OIHB Data', date);\r\n if (date == undefined || date == null || (date + '').trim().length == 0) return '';\r\n if (!DateUtils.isDate(date)) date = new Date(date);\r\n \r\n let DD = date.getDate().toString().padStart(2, '0');\r\n let MM = (date.getMonth() + 1).toString().padStart(2, '0');\r\n let YYYY = (date.getFullYear()).toString();\r\n return (leftDay ? (DD + '-' + MM + '-' + YYYY) : (YYYY + '-' + MM + '-' + DD));\r\n };\r\n\r\n const equalDates = (date1, date2) => {\r\n return (formatDate(date1) === formatDate(date2));\r\n };\r\n\r\n const allDisabledDays = () => {\r\n return [].concat(vacationDays).concat(incidentsDays).concat(pendingAuthDays).concat(disabledDays);\r\n };\r\n\r\n const handleDayClick = (day, { selected }) => {\r\n // props.onDayClick(day);\r\n let _disabledDays = allDisabledDays();\r\n if (_disabledDays.some(disabled => equalDates(disabled, day))) return;\r\n \r\n const selDays = selectedDays.concat();\r\n //console.log('OIHB Data', day);\r\n\r\n if (selected) {\r\n const selectedIndex = selDays.findIndex(selectedDay => DateUtils.isSameDay(selectedDay, day));\r\n if (selectedIndex >= 0) {\r\n selDays.splice(selectedIndex, 1);\r\n setSelectedDays(selDays);\r\n props.onSelectedDays(selDays);\r\n }\r\n } \r\n else {\r\n selDays.push(day);\r\n props.onSelectedDays(selDays);\r\n setSelectedDays(selDays);\r\n }\r\n };\r\n\r\n const renderTooltip = (date, assign) => {\r\n let show = {...showTooltip};\r\n show[date] = assign;\r\n setShowTooltip(show);\r\n };\r\n\r\n const renderContainerTooltip = (tooltipDay, tooltip = '') => {\r\n return (\r\n <div \r\n style={{position: 'relative',display: 'inline-block', pointerEvents: (tooltip.length > 0 ? 'auto' : 'none') }} \r\n onMouseOver={ () => { renderTooltip(tooltipDay, true); } }\r\n onMouseLeave={ () => { renderTooltip(tooltipDay, false); } }>\r\n {tooltipDay}\r\n {tooltip.length > 0 && \r\n <span style={{\r\n visibility: showTooltip[tooltipDay] ? 'visible' : 'hidden',\r\n width: '120px',\r\n backgroundColor: 'black',\r\n color: '#fff',\r\n textAlign: 'center',\r\n borderRadius: '6px',\r\n padding: '5px 0',\r\n position: 'absolute',\r\n zIndex: '1',\r\n }}>\r\n {tooltip}\r\n </span>\r\n }\r\n </div>\r\n );\r\n };\r\n\r\n const renderDay = (day, mod) => {\r\n const date = day.getDate();\r\n const format = formatDate(day);\r\n\r\n let tooltip = '';\r\n if (tooltipDates.length > 0) {\r\n let item = tooltipDates.find(item => formatDate(item.Date) == format);\r\n if (item != null) tooltip = item.Tooltip;\r\n }\r\n\r\n return renderContainerTooltip(date, tooltip);\r\n };\r\n \r\n const modifiers = {\r\n vacationDays: vacationDays,\r\n incidentsDays: incidentsDays,\r\n pendingAuthDays: pendingAuthDays,\r\n disabledDayss: disabledDays,\r\n disabledDays: allDisabledDays(),\r\n };\r\n\r\n const rowForBox = { display: 'block', marginBottom: '2px' };\r\n const boxStyle = { border: '1px solid black', width: '30px', display: 'inline-block' };\r\n\r\n return (\r\n <div style={ { display: 'block' } }>\r\n <div style={ { float: 'left' } }>\r\n <style>{`\r\n .DayPicker-Day {\r\n border-radius: 0 !important;\r\n }\r\n .DayPicker-Day--vacationDays {\r\n background-color: #c30000;\r\n color: white;\r\n }\r\n .DayPicker-Day--incidentsDays {\r\n background-color: #c30000;\r\n color: white;\r\n }\r\n .DayPicker-Day--pendingAuthDays {\r\n background-color: #ffbb57;\r\n color: white;\r\n }\r\n .DayPicker-Day--disabledDayss {\r\n background-color: gray !important;\r\n color: #fff !important;\r\n }\r\n .DayPicker-Day--selected {\r\n background-color: #93c03f !important;\r\n color: white;\r\n }\r\n .DayPicker-Day--disabled {\r\n outline: none;\r\n pointer-events: none;\r\n }\r\n\r\n .tooltip {\r\n position: relative;\r\n display: inline-block;\r\n border-bottom: 1px dotted black;\r\n }\r\n \r\n .tooltip .tooltiptext {\r\n visibility: hidden;\r\n width: 120px;\r\n background-color: black;\r\n color: #fff;\r\n text-align: center;\r\n border-radius: 6px;\r\n padding: 5px 0;\r\n \r\n /* Position the tooltip */\r\n position: absolute;\r\n z-index: 1;\r\n }\r\n \r\n .tooltip:hover .tooltiptext {\r\n visibility: visible;\r\n }\r\n `}</style>\r\n <DayPicker\r\n months={MONTHS}\r\n weekdaysLong={WEEKDAYS_LONG}\r\n weekdaysShort={WEEKDAYS_SHORT}\r\n selectedDays={selectedDays}\r\n onDayClick={handleDayClick}\r\n onMonthChange={(date) => setSelectedMonth(date) }\r\n modifiers={modifiers}\r\n disabledDays={allDisabledDays()}\r\n renderDay={renderDay}\r\n />\r\n </div>\r\n <div style={ { float: 'left', fontSize: '10pt', margin: '60px 5px 0 5px' } }>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: 'white', ...boxStyle } }> </div> Día habilitado para selección.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#93c03f', ...boxStyle} }> </div> Día seleccionado.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: 'gray', ...boxStyle} }> </div> Día no habilitado.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#c30000', ...boxStyle} }> </div> Día con incidencia/vacación.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#ffbb57', ...boxStyle} }> </div> Día pendiente de autorización.\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default withRouter(DatePickerAvaibleSelector);","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n//import CryptoJS from 'crypto-js';\r\n//import { validDateIncidentAction } from '../../api/endpoints';\r\nimport DayPicker, { DateUtils } from 'react-day-picker';\r\nimport 'react-day-picker/lib/style.css';\r\nimport moment from 'moment';\r\n\r\nconst DatePickerAvaibleMultiSelector = props => {\r\n const [rangeSelected, setRangeSelected] = useState({ from: undefined, to: undefined });\r\n \r\n const [vacationDays, setVacationDays] = useState([]);\r\n const [incidentsDays, setIncidentsDays] = useState([]);\r\n const [pendingAuthDays, setPendingAuthDays] = useState([]);\r\n const [disabledDays, setDisabledDays] = useState([]);\r\n\r\n const [selectedMonth, setSelectedMonth] = useState(new Date());\r\n const [vacationsData, setVacationsData] = useState([]);\r\n const [isKrones, setIsKrones] = useState(false);\r\n\r\n const [showTooltip, setShowTooltip] = useState({});\r\n const [tooltipDates, setTooltipDates] = useState([]);\r\n\r\n const { from, to } = rangeSelected;\r\n\r\n const MONTHS = [\r\n 'Enero',\r\n 'Febrero',\r\n 'Marzo',\r\n 'Abril',\r\n 'Mayo',\r\n 'Junio',\r\n 'Julio',\r\n 'Agosto',\r\n 'Septiembre',\r\n 'Octubre',\r\n 'Noviembre',\r\n 'Diciembre',\r\n ];\r\n \r\n const WEEKDAYS_LONG = [\r\n 'Domingo',\r\n 'Lunes',\r\n 'Martes',\r\n 'Miercoles',\r\n 'Jueves',\r\n 'Viernes',\r\n 'Sabado',\r\n ];\r\n \r\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'];\r\n\r\n useEffect(() => {\r\n _handleReset(true);\r\n }, [props.resetDates]);\r\n\r\n useEffect(() => {\r\n if (props.isKrones == false || props.isKrones == true) {\r\n setIsKrones(props.isKrones);\r\n }\r\n else {\r\n setIsKrones(process.env.REACT_APP_IS_KRONES == '1');\r\n }\r\n }, [props.isKrones]);\r\n\r\n useEffect(() => {\r\n let vacaciones = props.vacationsData;\r\n if (!vacaciones) return;\r\n\r\n //console.log('OIHB Data vaca', vacaciones);\r\n let days = [];\r\n let solicitudes = vacaciones.solicitudes || [];\r\n let cancelaciones = vacaciones.solCancelacion || [];\r\n let incidencias = vacaciones.incidencias || [];\r\n \r\n if (solicitudes.length == 0 && incidencias.length == 0) return;\r\n \r\n if (solicitudes && solicitudes.length > 0) {\r\n solicitudes.map((item) => {\r\n if (item.RangoFechas == 'true') {\r\n let exists = cancelaciones.some(cancelacion => \r\n (\r\n cancelacion.Status == item.Status && cancelacion.RangoFechas === item.RangoFechas && cancelacion.Dia === item.Dia && \r\n (equalDates(cancelacion.FechaInicio, item.FechaInicio) && equalDates(cancelacion.FechaFin, item.FechaFin))\r\n ));\r\n \r\n if (exists) return;\r\n \r\n let inicio = new Date(item.FechaInicio);\r\n let fin = new Date(item.FechaFin);\r\n while(inicio <= fin) {\r\n days.push({\r\n Tipo: 'V',\r\n Fecha: new Date(Date.parse(inicio)),\r\n Estatus: item.Status\r\n });\r\n inicio.setDate(inicio.getDate() + 1);\r\n }\r\n }\r\n else {\r\n let exists = cancelaciones.some(cancelacion => \r\n (\r\n cancelacion.Status == item.Status && cancelacion.RangoFechas === item.RangoFechas && cancelacion.Dia === item.Dia &&\r\n equalDates(cancelacion.FechaInicio, item.FechaInicio)\r\n ));\r\n \r\n if (exists) return;\r\n \r\n days.push({\r\n Tipo: 'V',\r\n Fecha: new Date(item.FechaInicio),\r\n Estatus: item.Status\r\n });\r\n }\r\n });\r\n }\r\n \r\n if (incidencias && incidencias.length > 0) {\r\n incidencias.map((item) => {\r\n if (item.RangoFechas == 'true') {\r\n let inicio = new Date(item.FechaInicio);\r\n let fin = new Date(item.FechaFin);\r\n while(inicio <= fin) {\r\n days.push({\r\n Tipo: 'I',\r\n Fecha: new Date(Date.parse(inicio)),\r\n Estatus: item.Status\r\n });\r\n inicio.setDate(inicio.getDate() + 1);\r\n }\r\n }\r\n else {\r\n days.push({\r\n Tipo: 'I',\r\n Fecha: new Date(item.FechaInicio),\r\n Estatus: item.Status\r\n });\r\n }\r\n });\r\n }\r\n\r\n //console.log('OIHB Data days', days);\r\n if (days.length > 0) {\r\n days = days.sort((a, b) => (a.Fecha-b.Fecha));\r\n setVacationsData(days);\r\n }\r\n }, [props.vacationsData]);\r\n\r\n useEffect(() => {\r\n setDays2();\r\n }, [props.selectedDisabled]);\r\n\r\n useEffect(() => {\r\n setDays2();\r\n }, [props.skipWeekends]);\r\n\r\n useEffect(() => {\r\n setDays1();\r\n }, [vacationsData]);\r\n\r\n useEffect(() => {\r\n setDays1();\r\n\r\n if (selectedMonth) {\r\n props.onSelectedMonth(selectedMonth);\r\n }\r\n }, [selectedMonth]);\r\n\r\n useEffect(() => {\r\n if ((props.tooltipDates || []).length > 0) {\r\n //console.log('OIHB Data tool', props.tooltipDates);\r\n setTooltipDates(props.tooltipDates);\r\n }\r\n }, [props.tooltipDates]);\r\n\r\n const setDays1 = () => {\r\n if (selectedMonth && (vacationsData || []).length > 0) {\r\n\r\n let filterMonth = vacationsData.filter(day => day.Fecha.getFullYear() == selectedMonth.getFullYear() && day.Fecha.getMonth() == selectedMonth.getMonth());\r\n \r\n if (filterMonth.length === 0) return; \r\n \r\n let arrEstatus = ['Solicitado', 'Rechazado'];\r\n let vacation = filterMonth.filter(day => day.Tipo == 'V' && !arrEstatus.some(item => item == day.Estatus));\r\n let incidents = filterMonth.filter(day => day.Tipo == 'I' && !arrEstatus.some(item => item == day.Estatus));\r\n // let vacation = filterMonth.filter(day => day.Tipo == 'V' && day.Estatus != 'Solicitado');\r\n // let incidents = filterMonth.filter(day => day.Tipo == 'I' && day.Estatus != 'Solicitado');\r\n let pendingAuth = filterMonth.filter(day => day.Estatus == 'Solicitado');\r\n\r\n //console.log('OIHB Data', incidents);\r\n //console.log('OIHB Data', pendingAuth);\r\n if (vacation.length > 0) setVacationDays(vacation.map(m => { return m.Fecha }));\r\n if (incidents.length > 0) setIncidentsDays(incidents.map(m => { return m.Fecha }));\r\n if (pendingAuth.length > 0) setPendingAuthDays(pendingAuth.map(m => { return m.Fecha }));\r\n }\r\n\r\n setDisabledDays();\r\n };\r\n\r\n const setDays2 = () => {\r\n let days = [];\r\n\r\n if (selectedMonth && props.skipWeekends) {\r\n let date = new Date(selectedMonth.getFullYear(), selectedMonth.getMonth(), 1);\r\n while (date.getMonth() === selectedMonth.getMonth()) {\r\n if (!(date.getDay() % 6)) {\r\n days.push(new Date(date));\r\n }\r\n date.setDate(date.getDate() + 1);\r\n }\r\n }\r\n\r\n if (selectedMonth && (props.selectedDisabled || []).length > 0) {\r\n props.selectedDisabled.filter(day => !days.some(d => equalDates(d, day))).map(day => {\r\n days.push(day);\r\n });\r\n }\r\n\r\n if (days.length > 0) {\r\n setDisabledDays(days);\r\n }\r\n };\r\n\r\n const formatDate = (date, leftDay = true) => {\r\n if (date == undefined || date == null || (date + '').trim().length == 0) return '';\r\n if (!DateUtils.isDate(date)) date = new Date(date);\r\n \r\n let DD = date.getDate().toString().padStart(2, '0');\r\n let MM = (date.getMonth() + 1).toString().padStart(2, '0');\r\n let YYYY = (date.getFullYear()).toString();\r\n return (leftDay ? (DD + '-' + MM + '-' + YYYY) : (YYYY + '-' + MM + '-' + DD));\r\n };\r\n\r\n const equalDates = (date1, date2) => {\r\n //return (moment(date1).format('DD-MM-YYYY') === moment(date2).format('DD-MM-YYYY'));\r\n return (formatDate(date1) === formatDate(date2));\r\n };\r\n\r\n const allDisabledDays = () => {\r\n return [].concat(vacationDays).concat(incidentsDays).concat(pendingAuthDays).concat(disabledDays);\r\n };\r\n\r\n const handleDayClick = (day) => {\r\n // props.onDayClick(day);\r\n let _disabledDays = allDisabledDays();\r\n if (_disabledDays.some(disabled => equalDates(disabled, day))) return;\r\n\r\n //console.log('OIHB Data', _disabledDays);\r\n const range = DateUtils.addDayToRange(day, rangeSelected);\r\n let start = (range.from);\r\n let end = (range.to) || '';\r\n\r\n let arrDays = getDaysArray(start, end);\r\n setRangeSelected(range);\r\n let disabled = [];\r\n if (arrDays.length > 0) {\r\n arrDays.map((day, i) => {\r\n if (_disabledDays.some(d => equalDates(d, day))) {\r\n //console.log('OIHB gogo', 'disabled day');\r\n disabled.push(day);\r\n }\r\n if (!(day.getDay() % 6) && props.skipWeekends == true) {\r\n //console.log('OIHB gogo', 'skip weekends');\r\n disabled.push(day);\r\n }\r\n });\r\n\r\n if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\r\n //disabled = [];\r\n disabled.push(range.from);\r\n disabled.push(range.to);\r\n }\r\n }\r\n\r\n if (disabled.length > 0 && localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") {\r\n _handleReset();\r\n return ;\r\n }\r\n\r\n //console.log('FEHCAS_', start, end);\r\n if (isKrones) {\r\n if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\r\n _handleReset();\r\n } \r\n else {\r\n props.onSelectedInitialDate(start);\r\n props.onSelectedFinalDate(end);\r\n }\r\n }\r\n else {\r\n if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\r\n _handleReset();\r\n } \r\n else {\r\n if (equalDates(start, end)) {\r\n _handleReset();\r\n } \r\n else {\r\n props.onSelectedInitialDate(start);\r\n props.onSelectedFinalDate(end);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getDaysArray = (start, end) => {\r\n if (end) {\r\n for (var arr = [], dt = new Date(start); dt <= end; dt.setDate(dt.getDate() + 1)) {\r\n arr.push(new Date(dt));\r\n }\r\n return arr;\r\n }\r\n return [];\r\n };\r\n\r\n const compareIfWeekend = (range) => {\r\n let from = range.from;\r\n let to = range.to;\r\n if (from != undefined && to != undefined) {\r\n if (!(new Date(from).getDay() % 6) && !(new Date(to).getDay() % 6)) {\r\n return true;\r\n } \r\n else {\r\n return false;\r\n }\r\n } \r\n else {\r\n return false;\r\n }\r\n };\r\n\r\n const _handleReset = (forceReset = false) => {\r\n if (forceReset || localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") {\r\n setRangeSelected({\r\n from: undefined,\r\n to: undefined,\r\n });\r\n props.onSelectedInitialDate('');\r\n props.onSelectedFinalDate('');\r\n }\r\n };\r\n\r\n const renderTooltip = (date, assign) => {\r\n let show = {...showTooltip};\r\n show[date] = assign;\r\n setShowTooltip(show);\r\n };\r\n \r\n const renderContainerTooltip = (tooltipDay, tooltip = '') => {\r\n return (\r\n <div \r\n style={{position: 'relative',display: 'inline-block', pointerEvents: (tooltip.length > 0 ? 'auto' : 'none') }} \r\n onMouseOver={ () => { renderTooltip(tooltipDay, true); } }\r\n onMouseLeave={ () => { renderTooltip(tooltipDay, false); } }>\r\n {tooltipDay}\r\n {tooltip.length > 0 && \r\n <span style={{\r\n visibility: showTooltip[tooltipDay] ? 'visible' : 'hidden',\r\n width: '120px',\r\n backgroundColor: 'black',\r\n color: '#fff',\r\n textAlign: 'center',\r\n borderRadius: '6px',\r\n padding: '5px 0',\r\n position: 'absolute',\r\n zIndex: '1',\r\n }}>\r\n {tooltip}\r\n </span>\r\n }\r\n </div>\r\n );\r\n };\r\n\r\n const renderDay = (day, mod) => {\r\n const date = day.getDate();\r\n const format = formatDate(day);\r\n\r\n let tooltip = '';\r\n if (tooltipDates.length > 0) {\r\n let item = tooltipDates.find(item => formatDate(item.Date) == format);\r\n if (item != null) tooltip = item.Tooltip;\r\n }\r\n\r\n return renderContainerTooltip(date, tooltip);\r\n };\r\n\r\n const modifiers = {\r\n start: from, end: to,\r\n\r\n vacationDays: vacationDays,\r\n incidentsDays: incidentsDays,\r\n pendingAuthDays: pendingAuthDays,\r\n disabledDayss: disabledDays,\r\n disabledDays: allDisabledDays(),\r\n };\r\n\r\n const rowForBox = { display: 'block', marginBottom: '2px' };\r\n const boxStyle = { border: '1px solid black', width: '30px', display: 'inline-block' };\r\n\r\n return (\r\n <div style={ { display: 'block' } }>\r\n <div style={ { float: 'left' } }>\r\n <style>{`\r\n.DayPicker-Day--vacationDays {\r\n background-color: #c30000;\r\n color: white;\r\n}\r\n.DayPicker-Day--incidentsDays {\r\n background-color: #c30000;\r\n color: white;\r\n}\r\n.DayPicker-Day--pendingAuthDays {\r\n background-color: #ffbb57;\r\n color: white;\r\n}\r\n.Selectable .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):not(.DayPicker-Day--disabled):not(.DayPicker-Day--disabledDayss):not(.DayPicker-Day--vacationDays):not(.DayPicker-Day--incidentsDays):not(.DayPicker-Day--pendingAuthDays) {\r\n background-color: #EEFFE0 !important;\r\n color: #93c03f;\r\n}\r\n.Selectable .DayPicker-Day {\r\n border-radius: 0 !important;\r\n}\r\n.Selectable .DayPicker-Day--start {\r\n border-top-left-radius: 50% !important;\r\n border-bottom-left-radius: 50% !important;\r\n background-color: #93c03f !important;\r\n color: #fff;\r\n}\r\n.Selectable .DayPicker-Day--end {\r\n border-top-right-radius: 50% !important;\r\n border-bottom-right-radius: 50% !important;\r\n background-color: #93c03f !important;\r\n color: #fff;\r\n}\r\n.Selectable .DayPicker-Day--disabledDayss {\r\n background-color: gray !important;\r\n color: #fff !important;\r\n}\r\n.Selectable .DayPicker-Day--disabled {\r\n outline: none;\r\n pointer-events: none;\r\n}\r\n `}</style>\r\n <DayPicker\r\n months={MONTHS}\r\n weekdaysLong={WEEKDAYS_LONG}\r\n weekdaysShort={WEEKDAYS_SHORT}\r\n className=\"Selectable\"\r\n selectedDays={[from, { from, to }]}\r\n onDayClick={handleDayClick}\r\n onMonthChange={(date) => setSelectedMonth(date) }\r\n modifiers={modifiers}\r\n disabledDays={allDisabledDays()}\r\n // disabledDays={{ before: new Date() }}\r\n renderDay={renderDay}\r\n />\r\n </div>\r\n <div style={ { float: 'left', fontSize: '10pt', margin: '60px 5px 0 5px' } }>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: 'white', ...boxStyle } }> </div> Día habilitado para selección.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#93c03f', ...boxStyle} }> </div> Día seleccionado.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: 'gray', ...boxStyle} }> </div> Día no habilitado.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#c30000', ...boxStyle} }> </div> Día con incidencia/vacación.\r\n </div>\r\n <div style={ rowForBox }>\r\n <div style={ {backgroundColor: '#ffbb57', ...boxStyle} }> </div> Día pendiente de autorización.\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default withRouter(DatePickerAvaibleMultiSelector);","import React, { useState, useEffect, useCallback } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { insertVacationsAction } from '../../api/actions/empleado/InsertVacationsAction';\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\nimport { getDiasBloqueadosAction } from '../../api/actions/systemAdmin/GetDiasBloqueadosAction';\nimport { getSkipWeekendAction } from '../../api/actions/empleado/SkipWeekendAction';\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\nimport { getValidaFechasAction } from '../../api/actions/empleado/ValidaFechasAction';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport moment from 'moment';\nimport DatePickerSelector from '../../components/dateSelectors/DatePickerSelector';\nimport DatePickerMultiSelector from '../../components/dateSelectors/DatePickerMultiSelector';\nimport DatePickerAvaibleSelector from '../../components/incident/DatePickerAvaibleSelector';\nimport DatePickerAvaibleMultiSelector from '../../components/incident/DatePickerAvaibleMultiSelector';\n\nimport { getParams, getDatesInRange } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst VacationsRequest = props => {\n\n const [loading, setLoading] = useState(false);\n const [dates, setDates] = useState([{ date: null, status: null }]);\n\n const [vacation, setVacation] = useState('-');\n const [vacationTypeDate, setVacationTypeDate] = useState('0');\n\n const [selectedDays, setSelectedDays] = useState([]);\n const [selectedDisabled, setSelectedDisabled] = useState([]);\n const [validateDays, setValidateDays] = useState([]);\n const [aux, setAux] = useState(' ');\n\n const [initialDate, setInitialDate] = useState('');\n const [finalDate, setFinalDate] = useState('');\n const [skipWeekends, setSkipWeekends] = useState(false);\n const [motivo, setMotivo] = useState(' ');\n\n const [selectedMonth, setSelectedMonth] = useState(null);\n const [vacaciones, setVacaciones] = useState({});\n const [resetDates, setResetDates] = useState(null);\n const [tooltipDates, setTooltipDates] = useState([]);\n\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({title: '', selectedDays: [], buttons: [], });\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n];\n const [incidents, setIncidents] = useState([]);\n const [incident, setIncident] = useState('-');\n\n useEffect(() => {\n //if (process.env.REACT_APP_IS_KRONES == '1') {\n //setSkipWeekends(true)\n //}\n\n getVacaciones();\n\n if (localStorage.getItem(\"REACT_APP_OTRAS_VACACIONES\") == \"1\") {\n getCatIncidents();\n }\n }, []);\n\n useEffect(() => {\n if (props.insertInsertVacationsData && props.insertInsertVacationsData.isOK) {\n //alert('Tu solicitud de vacación(es) ha sido enviada.');\n let InsertVacations = props.insertInsertVacationsData.InsertVacations;\n let msg = {\n description: 'Tu solicitud de vacación ha sido enviada.',\n details: []\n };\n\n if (InsertVacations.Details.length > 0) {\n msg.details.push('');\n msg.details.push('Detalles:');\n msg.details = msg.details.concat(InsertVacations.Details);\n }\n\n alert(msg, true);\n\n props.insertVacationsAction('PURGE', '');\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n props.history.push(`${process.env.PUBLIC_URL}/vacaciones`);\n } \n else if (props.insertInsertVacationsError && props.insertInsertVacationsError.isOK === false) {\n props.insertVacationsAction('PURGE', '');\n setLoading(false);\n props.history.push(`${process.env.PUBLIC_URL}/vacaciones`);\n }\n }, [props.insertInsertVacationsData, props.insertInsertVacationsError]);\n\n useEffect(() => {\n if (process.env.REACT_APP_IS_KRONES == '1' && vacationTypeDate != '2') {\n setSkipWeekends(false);\n setLoading(false);\n return;\n }\n\n if (props.skipWeekendData && props.skipWeekendData.isOK) {\n setSkipWeekends(props.skipWeekendData.skipWeekend || false);\n setLoading(false);\n } \n else if (props.skipWeekendError && props.skipWeekendError.isOK === false) {\n setSkipWeekends(false);\n props.getSkipWeekendAction('PURGE', '');\n setLoading(false);\n }\n }, [props.skipWeekendData, props.skipWeekendError]);\n\n useEffect(() => {\n console.log(\"ValidateDays \", validateDays);\n }, [validateDays]);\n\n\n useEffect(() => {\n const asyncFetch = async() => {\n if (props.validaFechasData && props.validaFechasData.isOK) {\n setValidateDays([]);\n let diasValidos = [...props.validaFechasData.FechasValidas];\n console.log(\"DIAS_VALIDOS \", diasValidos);\n if (diasValidos.length > 0) {\n diasValidos = diasValidos.map(item => new Date(item));\n\n await setValidateDays(diasValidos);\n //console.log(\"ValidateDays \", validateDays);\n }\n setLoading(false);\n } \n else if (props.validaFechasError && props.validaFechasError.isOK === false) {\n props.getValidaFechasAction('PURGE', '');\n setLoading(false);\n }\n }\n asyncFetch();\n },[props.validaFechasData, props.validaFechasError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK) {\n setSelectedDisabled([]);\n setVacaciones({...props.vacationsData.Vacations});\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n } \n else if (props.vacationsError && props.vacationsError.isOK === false) {\n setSelectedDisabled([]);\n setVacaciones({});\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n }\n }, [props.vacationsData, props.vacationsError]);\n\n useEffect(() => {\n if (props.getDiasBloqueadosData && props.getDiasBloqueadosData.isOK) {\n setSelectedDisabled([]);\n setTooltipDates([]);\n let diasBloqueados = [...props.getDiasBloqueadosData.GetDiasBloqueados];\n //console.log('OIHB Esp', diasBloqueados);\n if (diasBloqueados.length > 0) {\n diasBloqueados = diasBloqueados.filter(item => !item.PermiteSolicitar).map(item => new Date(item.Fecha));\n setSelectedDisabled(diasBloqueados);\n \n let tooltips = [...props.getDiasBloqueadosData.GetDiasBloqueados].filter(item => item.EsFestivo);\n if (tooltips.length > 0) {\n tooltips = tooltips.map(item => { return { Date: new Date(item.Fecha), Tooltip: item.Descripcion } });\n setTooltipDates(tooltips);\n }\n }\n \n setLoading(false);\n } \n else if (props.getDiasBloqueadosError && props.getDiasBloqueadosError.isOK === false) {\n setSelectedDisabled([]);\n setTooltipDates([]);\n props.getDiasBloqueadosAction('PURGE', '');\n setLoading(false);\n }\n }, [props.getDiasBloqueadosData, props.getDiasBloqueadosError]);\n\n useEffect(() => {\n if (selectedMonth) {\n getSkipWeekend();\n getDiasBloqueados(selectedMonth);\n }\n }, [selectedMonth]);\n\n useEffect(() => {\n if (props.catIncidentsData && props.catIncidentsData.isOK) {\n let cat = [...props.catIncidentsData.CatIncidents];\n setIncidents(cat);\n setLoading(false);\n } \n else if (props.catIncidentsError && props.catIncidentsError.isOK === false) {\n setIncidents([]);\n setLoading(false);\n props.getCatIncidentsAction('PURGE', '');\n }\n }, [props.catIncidentsData, props.catIncidentsError]);\n\n const getVacaciones = () => {\n setLoading(true);\n let { params, server } = getParams();\n props.getVacationsAction(params, server);\n };\n\n const getSkipWeekend = () => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n //ESTABA DEFINIDO PARA KRONES\n props.getSkipWeekendAction(_params, server); \n };\n\n const getDiasBloqueados = (month) => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': month.getFullYear(),\n 'tem:mes': month.getMonth() + 1,\n };\n //console.log(_params);\n props.getDiasBloqueadosAction(_params, server);\n };\n\n const _handleSubmitDates = () => {\n if (localStorage.getItem(\"REACT_APP_BLOQ_SOLVAC_PENDIENTES\") == '1') { \n let solicitudes = [...vacaciones.solicitudes];\n if (solicitudes.some(item => item.Status.trim().toLowerCase() == 'solicitado')) {\n alert('No es posible solicitar vacaciones si hay pendientes por autorizar.')\n return\n }\n }\n if (localStorage.getItem(\"REACT_APP_OTRAS_VACACIONES\") == \"1\") {\n if (incident == '-') {\n alert('Selecciona un tipo de vacación.');\n return;\n }\n }\n if (selectedDays.length == 0 && vacationTypeDate === '1') {\n alert('Debes indicar por lo menos una fecha ha solicitar.')\n return\n }\n if (finalDate.length === 0 && vacationTypeDate === '2') {\n alert('Debes indicar un rango de fechas valido.')\n return\n }\n if (process.env.REACT_APP_IS_KRONES == '1') {\n if (!(motivo && motivo.length > 1)) {\n alert('Indique el motivo de las vacaciones');\n return;\n }\n }\n \n let requests = selectedDays\n\n requests = requests.sort((a, b) => {\n return new Date(a) - new Date(b);\n })\n\n let { params, server } = getParams();\n\n let dates_params = '';\n let saved_times = [];\n\n requests.map((day, i) => {\n if (requests.length === i + 1) {\n dates_params += moment(day).format('DD/MM/YYYY');\n } else {\n dates_params += moment(day).format('DD/MM/YYYY') + '|';\n }\n\n })\n console.log('DAYS TO SEND', dates_params)\n\n let dataUser = {}\n if (vacationTypeDate === '1') {\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fechas': dates_params,\n 'tem:rangoFechas': '0',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n }\n if (vacationTypeDate === '2') {\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fechas': '',\n \"tem:FechaInicio\": moment(initialDate).format('YYYY-MM-DD') + 'T00:00:00',\n \"tem:FechaFinal\": moment(finalDate).format('YYYY-MM-DD') + 'T00:00:00',\n 'tem:rangoFechas': '1',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n }\n\n //if (process.env.REACT_APP_IS_KRONES == '1') {\n dataUser['tem:MotivoVacacion'] = motivo;\n //}\n if (localStorage.getItem(\"REACT_APP_OTRAS_VACACIONES\") == \"1\") {\n dataUser['tem:Falta_ID'] = incident.id;\n }\n\n console.log('SEND_VACATIONS', dataUser)\n // if (process.env.REACT_APP_IS_KRONES == '1') {\n // if (motivo && motivo.length > 1) {\n // setLoading(true);\n // props.insertVacationsAction(dataUser, server);\n // } else {\n // alert('Indique el motivo de las vacaciones')\n // }\n // }\n // else {\n // setLoading(true);\n // props.insertVacationsAction(dataUser, server);\n // }\n setLoading(true);\n props.insertVacationsAction(dataUser, server);\n }\n\n /*\n const _handleOpenModal = async () => {\n if (selectedDays.length == 0 && vacationTypeDate === '1') {\n alert('Debes indicar por lo menos una fecha ha solicitar.')\n return\n }\n\n if (finalDate.length === 0 && vacationTypeDate === '2') {\n alert('Debes indicar un rango de fechas valido.')\n return\n }\n\n if (process.env.REACT_APP_IS_KRONES == '1' && !(motivo && motivo.length > 1) ) {\n alert('Indique el motivo de las vacaciones');\n return;\n }\n let _selectedDays = [];\n\n if (vacationTypeDate === '1') {\n _selectedDays = [...selectedDays];\n }\n if (vacationTypeDate === '2') {\n _selectedDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\n }\n _selectedDays = _selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\n\n setDataModal({\n title: 'Solicitud de Vacaciones',\n selectedDays: _selectedDays,\n haveComment: false,\n buttons: [\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\n ]\n });\n setShowModal(true);\n };*/\n\n const _handleOpenModal = async () => {\n if (selectedDays.length == 0 && vacationTypeDate === '1') {\n alert('Debes indicar por lo menos una fecha ha solicitar.')\n return\n }\n\n if (finalDate.length === 0 && vacationTypeDate === '2') {\n alert('Debes indicar un rango de fechas valido.')\n return\n }\n\n if (process.env.REACT_APP_IS_KRONES == '1' && !(motivo && motivo.length > 1) ) {\n alert('Indique el motivo de las vacaciones');\n return;\n }\n let { params, server } = getParams();\n let dataUser = {}\n let _selectedDays = [];\n\n /*Valida las fechas del modal */\n \n if(sessionStorage.getItem(\"SICONSULTA_VerificaVacModal\") == \"1\"){\n \n if (vacationTypeDate === '1') {\n let cadenafechas = \"\";\n _selectedDays = [...selectedDays];\n _selectedDays = _selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\n _selectedDays.map((day, i) => {\n if (_selectedDays.length === i + 1) {\n cadenafechas += moment(day).format('DD/MM/YYYY');\n } else {\n cadenafechas += moment(day).format('DD/MM/YYYY') + '|';\n }\n \n })\n\n //console.log(\"cadenaFechas\",cadenafechas);\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fechas': cadenafechas,\n 'tem:rangoFechas': '0',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n }\n if (vacationTypeDate === '2') {\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fechas': '',\n \"tem:FechaInicio\": moment(initialDate).format('YYYY-MM-DD') + 'T00:00:00',\n \"tem:FechaFinal\": moment(finalDate).format('YYYY-MM-DD') + 'T00:00:00',\n 'tem:rangoFechas': '1',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n }\n await props.getValidaFechasAction(dataUser,server);\n //await props.getValidaFechasAction(dataUser,server);\n console.log(\"ValidateDays 1\", validateDays);\n _selectedDays = [...validateDays];\n\n setDataModal({\n title: 'Solicitud de Vacaciones',\n selectedDays: _selectedDays,\n haveComment: false,\n buttons: [\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\n ]\n });\n } else {\n if (vacationTypeDate === '1') {\n _selectedDays = [...selectedDays];\n }\n if (vacationTypeDate === '2') {\n _selectedDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\n }\n _selectedDays = _selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\n\n setDataModal({\n title: 'Solicitud de Vacaciones',\n selectedDays: _selectedDays,\n haveComment: false,\n buttons: [\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\n ]\n });\n }\n \n setShowModal(true);\n };\n\n const _handleCloseModal = () => {\n setShowModal(false);\n setDataModal({title: '', selectedDays: [], buttons: [], });\n };\n\n const handleDropdownData = (e) => {\n setSelectedDays([]);\n console.log('SELECTED', e.target.value);\n setVacationTypeDate(e.target.value);\n \n getSkipWeekend();\n\n if (process.env.REACT_APP_IS_KRONES == '1') { \n setMotivo(' ');\n }\n };\n\n const renderMotivos = () => {\n if (localStorage.getItem(\"REACT_APP_ESCRIBE_MOTIVO\") == \"1\" && ((selectedDays.length > 0) || (finalDate != '' > 0))) {\n return (\n <div>\n <h4 className=\"card-title p-2 col-12\">Motivo de las vacaciones</h4>\n <div className=\"col-6 p-2\">\n <input\n className=\"form-control\"\n name=\"company\"\n type=\"text\"\n required=\"\"\n placeholder=\"Motivo\"\n value={motivo}\n onChange={(value) => { setMotivo(value.target.value) }}\n autoFocus\n />\n </div>\n </div>\n );\n }\n\n return <></>;\n };\n\n const getCatIncidents = () => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:SoloVacaciones': true,\n };\n \n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1') {\n _params['tem:TrabID'] = params['tem:TrabID'];\n }\n \n props.getCatIncidentsAction(_params, server);\n };\n\n const handleDropdown = e => {\n let typesIncident = incidents;\n console.log('OIHB value', e.target.value, 'OIHB type', typesIncident);\n setIncident(typesIncident[e.target.value]);\n // if (formularioIncidencia) {\n // setMotivo('')\n // setFechaReposi('')\n // setFecha('')\n // setHoraEstimada('0')\n // setHoraReal('0')\n // setHoraSalida('0')\n // setFile('')\n // }\n };\n\n const _renderOptions = () => {\n let opt = incidents;\n console.log('OIHB Options', opt);\n if (opt && opt.length > 0) {\n return opt.map((opti, i) => {\n return (\n <option key={'incidentIdx' + i} value={i}>{opti.descripcion.toUpperCase()}</option>\n )\n })\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else {\n return (\n <div id=\"main-wrapper\">\n\n <Modal show={showModal} onHide={_handleCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {/* {dataModal.body} */}\n {/* {dataModal.haveComment ? <input\n className=\"form-control\"\n name=\"company\"\n type=\"textarea\"\n required=\"\"\n placeholder=\"Comentario\"\n value={comment}\n onChange={handleInput}\n autoFocus\n /> : null} */}\n <label>Se solicitaron los siguientes días de vacaciones.</label>\n {sessionStorage.getItem(\"SICONSULTA_VerificaVacModal\") === \"1\" &&\n <table className=\"table nowrap table-border\" >\n \n <thead>\n <tr>\n <th>Día</th>\n <th>Fecha</th>\n <th>Incidencia</th>\n </tr>\n </thead>\n <tbody>\n {/* {dataModal.selectedDays.map((item, idx) => {\n return (<tr key={'tr' + idx}>\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\n <td>{moment(item).format('DD-MM-YYYY')}</td>\n <td>Vacación</td>\n </tr>);\n })} */}\n {validateDays.map((item, idx) => {\n return (<tr key={'tr' + idx}>\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\n <td>{moment(item).format('DD-MM-YYYY')}</td>\n <td>Vacación</td>\n </tr>);\n })}\n </tbody>\n </table>}\n {sessionStorage.getItem(\"SICONSULTA_VerificaVacModal\") === \"0\" &&\n <table className=\"table nowrap table-border\" >\n \n <thead>\n <tr>\n <th>Día</th>\n <th>Fecha</th>\n <th>Incidencia</th>\n </tr>\n </thead>\n <tbody>\n {/* {dataModal.selectedDays.map((item, idx) => {\n return (<tr key={'tr' + idx}>\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\n <td>{moment(item).format('DD-MM-YYYY')}</td>\n <td>Vacación</td>\n </tr>);\n })} */}\n {selectedDays.map((item, idx) => {\n return (<tr key={'tr' + idx}>\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\n <td>{moment(item).format('DD-MM-YYYY')}</td>\n <td>Vacación</td>\n </tr>);\n })}\n </tbody>\n </table>}\n <br/>\n <label>Total de Días: {sessionStorage.getItem(\"SICONSULTA_VerificaVacModal\") === \"0\" ? dataModal.selectedDays.length : validateDays.length}</label><br/>\n <label>¿Desea seguir con la solicitud de vacaciones?</label><br/>\n\n </Modal.Body>\n <Modal.Footer>\n {dataModal.buttons.map((item, idx) => {\n return (\n <Button key={'btnModal' + idx} variant={item.variant} onClick={item.onClick}>\n {item.title}\n </Button>\n );\n })}\n </Modal.Footer>\n </Modal>\n\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Solicitud de Vacaciones\" icon=\"mdi mdi-beach\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n {localStorage.getItem(\"REACT_APP_OTRAS_VACACIONES\") != \"1\" ? \n <div class=\"d-flex flex-wrap justify-content-between col-12\">\n <h4 class=\"card-title\">Envía tu solicitud de Vacaciones</h4>\n <h4 className=\"card-title p-2\">TEMPORALIDAD</h4>\n <select className=\"form-control p-2 col-6\" onChange={handleDropdownData}>\n <option value='0'>{'SELECCIONE'}</option>\n <option value='1'>{'FECHAS ÚNICAS'}</option>\n <option value='2'>{'RANGO DE FECHAS'}</option>\n </select>\n </div>\n :\n <div className=\" col-md-6 col-12\">\n <h4 className=\"card-title\">Envía tu solicitud de Vacaciones</h4>\n <div className=\"d-flex flex-wrap justify-content-between col-12\">\n <h4 className=\"card-title p-2\">TIPO</h4>\n <select className=\"form-control p-2 col-6\" onChange={handleDropdown} defaultValue={incident}>\n <option value='-'>{'SELECCIONE'}</option>\n {_renderOptions()}\n </select>\n <h4 className=\"card-title p-2\">TEMPORALIDAD</h4>\n <select className=\"form-control p-2 col-6\" onChange={handleDropdownData}>\n <option value='0'>{'SELECCIONE'}</option>\n <option value='1'>{'FECHAS ÚNICAS'}</option>\n <option value='2'>{'RANGO DE FECHAS'}</option>\n </select>\n \n </div>\n </div>\n }\n </div>\n </div>\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") !== '1' && vacationTypeDate === '1' ?\n <div className=\"card-body\">\n <br />\n <h4 className=\"card-title p-2\">Seleccione la(s) fecha(s) de sus vacaciones</h4>\n <div className=\"col-12 row\">\n\n <div>\n <DatePickerSelector\n selected={selectedDays}\n ivalid={selectedDisabled}\n selectedDays={(selectedDays) => { setSelectedDays(selectedDays) }}\n selectedDisabled={(disabled) => { setSelectedDisabled(disabled) }}\n />\n </div>\n\n {selectedDays.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días válidos</h4>\n {selectedDays.map((day) => {\n let formatedDate = moment(day).format('DD-MM-YYYY')\n return (<h4 className=\"card-title p-1\" style={{ color: '#93c03f' }}>{formatedDate}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDays([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n\n {selectedDisabled.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días no válidos</h4>\n {selectedDisabled.map((day) => {\n let formatedDate = moment(day).format('DD-MM-YYYY')\n return (<h4 className=\"card-title p-1\" style={{ color: '#be2b71' }}>{formatedDate}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDisabled([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") !== '1' && vacationTypeDate === '2' ?\n <div className=\"card-body\">\n <div className=\"col-8\" >\n <h4 className=\"card-title p-2\">Seleccione el rango de fechas de sus vacaciones</h4>\n <div className=\"row col-12\">\n <DatePickerMultiSelector\n setInitialDate={(initial) => { setInitialDate(initial) }}\n setFinalDate={(end) => { setFinalDate(end) }}\n skipWeekends={skipWeekends}\n />\n {finalDate != '' ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Rango válido seleccionado</h4>\n <div className='row'>\n <h4 className=\"card-title p-2\">DE</h4>\n <h4 className=\"card-title p-2\">{moment(initialDate).format('DD-MM-YYYY')}</h4>\n <h4 className=\"card-title p-2\">A</h4>\n <h4 className=\"card-title p-2\">{moment(finalDate).format('DD-MM-YYYY')}</h4>\n </div>\n </div>\n : null}\n\n\n </div>\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") === '1' && vacationTypeDate === '1' ?\n <div className=\"card-body\">\n <h4 className=\"card-title p-2\">Seleccione la(s) fecha(s) de su incidencia</h4>\n <div className=\"col-12 row\">\n <div>\n <DatePickerAvaibleSelector\n onSelectedDays={(selectedDays) => { setSelectedDays(selectedDays) }}\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\n selected={selectedDays} \n selectedDisabled={selectedDisabled}\n skipWeekends={skipWeekends}\n vacationsData={vacaciones}\n tooltipDates={tooltipDates}\n />\n </div>\n\n {selectedDays.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días válidos</h4>\n {selectedDays.map((day, idx) => {\n return (<h4 key={'V2_'+idx} className=\"card-title p-1\" style={{ color: '#93c03f' }}>{moment(day).format('DD-MM-YYYY')}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDays([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n \n {/* {(process.env.REACT_APP_IS_KRONES == '1' && selectedDays && selectedDays.length) > 0 ? renderMotivos() : null} */}\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") === '1' && vacationTypeDate === '2' ?\n <div className=\"card-body\">\n <h4 className=\"card-title p-2\">Seleccione el rango de fechas de su incidencia</h4>\n <div className=\"col-12 row\">\n <div>\n <DatePickerAvaibleMultiSelector\n onSelectedInitialDate={(initial) => { setInitialDate(initial) }}\n onSelectedFinalDate={(end) => { setFinalDate(end) }}\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\n selectedDisabled={selectedDisabled}\n skipWeekends={skipWeekends}\n vacationsData={vacaciones}\n tooltipDates={tooltipDates}\n resetDates={resetDates}\n />\n </div>\n\n {finalDate != '' ?\n <div className={process.env.REACT_APP_IS_KRONES == '1' ? 'col-md-3 col-sm-3 col-lg-3' : ''}>\n <h4 className=\"card-title p-2 col-12\">Rango válido seleccionado</h4>\n <h4 className=\"card-title p-1\" style={{ color: '#93c03f' }}>{\"DE \" + moment(initialDate).format('DD-MM-YYYY') + \" A \" + moment(finalDate).format('DD-MM-YYYY')}</h4>\n <button type=\"button\" onClick={() => setResetDates(new Date())} className=\"btn btn-info waves-effect waves-light\">Restaurar</button>\n </div>\n : null}\n \n {/* {(process.env.REACT_APP_IS_KRONES == '1' && initialDate != '') ? renderMotivos() : null} */}\n </div>\n </div>\n : null}\n\n { renderMotivos() }\n\n {vacationTypeDate != '0' ?\n <div className=\"card-footer\">\n <button type=\"button\" onClick={(localStorage.getItem(\"REACT_APP_CONFIRMA_SOLICITUDES\") != '1' ? _handleSubmitDates : _handleOpenModal)} className=\"btn btn-info waves-effect waves-light pull-right\" >Enviar Solicitud de Vacaciones</button>\n </div>\n : null}\n\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n insertInsertVacationsData: state.insertVacations.insertInsertVacationsData,\n insertInsertVacationsError: state.insertVacations.insertInsertVacationsError,\n\n skipWeekendData: state.skipWeekend.skipWeekendData,\n skipWeekendError: state.skipWeekend.skipWeekendError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n\n getDiasBloqueadosData: state.getDiasBloqueados.getDiasBloqueadosData,\n getDiasBloqueadosError: state.getDiasBloqueados.getDiasBloqueadosError,\n\n catIncidentsData: state.catIncidents.catIncidentsData,\n catIncidentsError: state.catIncidents.catIncidentsError,\n\n validaFechasData: state.validaFechas.validaFechasData,\n validaFechasError: state.validaFechas.validaFechasError,\n };\n};\n\nconst mapDispatchToProps = {\n insertVacationsAction,\n getValidaFechasAction,\n getVacationsAction,\n getSkipWeekendAction,\n getDiasBloqueadosAction,\n getCatIncidentsAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationsRequest));\n","import { changeXml, InserVacationsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_VACATIONS_SUCCESS,\n INSERT_VACATIONS_ERROR,\n INSERT_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const insertVacationsAction = (data, server) => {\n let configJson = {\n 'tem:InsertaVacacionesV2': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/InsertaVacacionesV2\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n console.log('REQUEST SEND VACATIONS:', data, config, obj, newSever);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n InsertVacations: InserVacationsResponse(body)\n }\n\n console.log('RESPONSE INSERT_VACATIONS DATA: ', response);\n dispatch({ type: INSERT_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_VACATIONS DATA: ', response);\n dispatch({ type: INSERT_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_VACATIONS DATA: ', responseError);\n dispatch({ type: INSERT_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, ControlVacations } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CONTROL_VACATIONS_SUCCESS,\n CONTROL_VACATIONS_ERROR,\n CONTROL_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getControlVacationsAction = (data, server, isV2 = null) => {\n if (isV2 == null) {\n isV2 = (process.env.REACT_APP_IS_KRONES == '1');\n }\n\n let configJson = {\n 'tem:ControlVacacionesEmpleado': {\n ...data\n }\n }\n\n if (isV2) {\n configJson = {\n 'tem:ControlVacacionesEmpleadov2': {\n ...data\n }\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/\" + (isV2 ? \"ControlVacacionesEmpleadov2\" : \"ControlVacacionesEmpleado\"),\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CONTROL_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CONTROL_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CONTROL_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ControlVacations: ControlVacations(body, isV2)\n }\n\n console.log('RESPONSE CONTROL_VACATIONS DATA: ', response);\n dispatch({ type: CONTROL_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CONTROL_VACATIONS DATA: ', response);\n dispatch({ type: CONTROL_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CONTROL_VACATIONS DATA: ', responseError);\n dispatch({ type: CONTROL_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getControlVacationsAction } from '../../api/actions/systemAdmin/ControlVacationsAction';\nimport { generaReporteCtrlVac1Action } from '../../api/actions/reportes/GeneraReporteCtrlVacacionesAction';\n\nimport { getParams, transformaUrl, openLink } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\nimport download from \"downloadjs\";\n\nconst VacationsControl = props => {\n const { params, server } = getParams();\n const [ loading, setLoading ] = useState(true);\n const [ isCtrlVacEmplV2, setIsCtrlVacEmp2 ] = useState(false);\n const [ controlVacations, setControlVacations ] = useState([]);\n\n useEffect(() => {\n getControlVacations();\n }, []);\n\n useEffect(() => {\n if (props.controlVacationsData && props.controlVacationsData.isOK) {\n setLoading(false);\n console.log('CONTROL VACATIONS', props.controlVacationsData);\n if ('ControlVacations' in props.controlVacationsData) {\n let ctrlVacs = [...props.controlVacationsData.ControlVacations];\n setControlVacations(ctrlVacs);\n \n if (ctrlVacs.length == 0 && !isCtrlVacEmplV2) {\n setIsCtrlVacEmp2(true);\n getControlVacations(true);\n }\n }\n } \n else if (props.controlVacationsError && props.controlVacationsError.isOK === false) {\n setControlVacations([]);\n props.getControlVacationsAction('PURGE', '');\n setLoading(false);\n }\n }, [props.controlVacationsData, props.controlVacationsError])\n\n useEffect(() => {\n if (props.generaReporteCtrlVac1Data && props.generaReporteCtrlVac1Data.isOK) {\n downloadUrl(props.generaReporteCtrlVac1Data.UrlReport);\n props.generaReporteCtrlVac1Action('PURGE', '');\n } \n else if (props.generaReporteCtrlVac1Error && props.generaReporteCtrlVac1Error.isOK === false) {\n props.generaReporteCtrlVac1Action('PURGE', '');\n setLoading(false);\n }\n }, [props.generaReporteCtrlVac1Data, props.generaReporteCtrlVac1Error]);\n\n const getControlVacations = (isV2 = false) => {\n setLoading(true);\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_id': params['tem:TrabID'],\n };\n \n if (!isV2) {\n props.getControlVacationsAction(send, server);\n }\n else {\n props.getControlVacationsAction(send, server, isV2);\n }\n };\n\n const downloadReport = () => {\n setLoading(true);\n let send = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": params[\"tem:TrabID\"],\n \"tem:empresas\": params[\"tem:IdEmpresa\"],\n };\n\n props.generaReporteCtrlVac1Action(send, server);\n setLoading(false);\n };\n\n const downloadUrl = async (url) => {\n url = transformaUrl(url);\n\n let res = null;\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\n\n const config = {\n method: \"POST\",\n body: JSON.stringify({ url: url }),\n };\n res = await fetch(server, config);\n } \n else {\n //res = await fetch(url);\n openLink(url);\n return;\n }\n\n const blob = await res.blob();\n let arr = url.split(\"/\");\n let name = arr[arr.length - 1];\n\n setLoading(false);\n download(blob, name);\n };\n\n const showColumns = (ctrlVacs = []) => {\n let show = {\n PERIODO: false,\n ANTIGUEDAD: true,\n ANIVERSARIO: false,\n DIAS_OTORGADOS: true,\n DIAS_PROPORCIONALES: false,\n DIAS_DISFRUTADOS: false,\n DIAS_PENDIENTES: true,\n VENCIMIENTO: true,\n DIAS_PERDIDOS: false,\n };\n if (process.env.REACT_APP_IS_KRONES == '1') {\n show.PERIODO = [...ctrlVacs].some(item => item.IdVersion === '2');\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = true;\n show.DIAS_PERDIDOS = true;\n }\n else if (isCtrlVacEmplV2) {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_DISFRUTADOS\") == '1';\n show.DIAS_PERDIDOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1';\n }\n else if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_PROPORCIONALES = true;\n show.DIAS_DISFRUTADOS = true;\n show.DIAS_PERDIDOS = true;\n }\n else {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_DISFRUTADOS\") == '1';\n show.DIAS_PERDIDOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1';\n }\n if(sessionStorage.getItem('SICONSULTA_CtrlProporcionales')){\n show.DIAS_PROPORCIONALES = true;\n show.DIAS_DISFRUTADOS = true;\n }\n return show;\n };\n\n const data = () => {\n let table = [];\n let movimientos = controlVacations;\n\n if (!controlVacations || controlVacations.length <= 0) {\n table.push(\n <tr key=\"empty\">\n <td>No hay registros que mostar.</td>\n </tr>\n );\n\n return table;\n } \n \n //movimientos = movimientos.sort((a, b) => { return a.ptr - b.ptr; });\n console.log('MOVIMIENTOS', controlVacations);\n\n let show = showColumns(controlVacations);\n controlVacations.map((item, i) => {\n table.push(\n <tr key={i} style={{ cursor: 'pointer' }}>\n {show.PERIODO && <td>{item.Periodo}</td>}\n {show.ANTIGUEDAD && <td>{item.Antiguedad}</td>}\n {show.ANIVERSARIO && <td>{moment(item.FechaAniversario).format('DD/MM/YYYY')}</td>}\n {show.DIAS_OTORGADOS && <td>{item.VcacionesOtorgadas}</td>}\n {show.DIAS_PROPORCIONALES && <td>{item.Proporcionales}</td>}\n {show.DIAS_DISFRUTADOS && <td>{item.VacacionesGozadas}</td>}\n {show.DIAS_PENDIENTES && <td>{item.VacacionesPendientes}</td>}\n {show.VENCIMIENTO && <td>{moment(item.FechaVencimiento).format('DD/MM/YYYY')}</td>}\n {show.DIAS_PERDIDOS && <td>{item.VacacionesPerdidas}</td>}\n </tr>\n );\n });\n \n return table;\n };\n\n const head = () => {\n let show = showColumns(controlVacations);\n return (\n <tr>\n {show.PERIODO && <th>PERIODO</th>}\n {show.ANTIGUEDAD && <th>ANTIGUEDAD</th>}\n {show.ANIVERSARIO && <th>ANIVERSARIO</th>}\n {show.DIAS_OTORGADOS && <th>DÍAS OTORGADOS</th>}\n {show.DIAS_PROPORCIONALES && <th>DÍAS PROPORCIONALES</th>}\n {show.DIAS_DISFRUTADOS && <th>DÍAS DISFRUTADOS</th>}\n {show.DIAS_PENDIENTES && <th>DÍAS PENDIENTES</th>}\n {show.VENCIMIENTO && <th>VENCIMIENTO</th>}\n {show.DIAS_PERDIDOS && <th>DÍAS PERDIDOS</th>}\n </tr>\n );\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBCtrlVac') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Control de Vacaciones\" icon=\"mdi mdi-routes\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n {head()}\n </thead>\n <tbody>\n {data()}\n </tbody>\n </table>\n </div>\n </div>\n {localStorage.getItem(\"REACT_APP_REPORTE_CTRL_VAC\") == '1' && \n <div className=\"card-body\">\n <button\n type=\"button\"\n style={ { float: 'right'} }\n className=\"btn btn-info m-l-5\"\n onClick={() => downloadReport()}>\n Descargar Reporte\n <i className=\"mdi mdi-download\"></i>\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n controlVacationsData: state.controlVacations.controlVacationsData,\n controlVacationsError: state.controlVacations.controlVacationsError,\n \n generaReporteCtrlVac1Data: state.generaReporteCtrlVac1.generaReporteCtrlVac1Data,\n generaReporteCtrlVac1Error: state.generaReporteCtrlVac1.generaReporteCtrlVac1Error,\n };\n};\n\nconst mapDispatchToProps = {\n getControlVacationsAction,\n generaReporteCtrlVac1Action,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationsControl));\n","import { changeXml, GeneraReporteCtrlVac1Response, GeneraReporteCtrlVac2Response, GeneraReporteCtrlVac3Response, GeneraReporteCtrlVac4Response } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js';\r\nimport {\r\n //GeneraReporte1detalladousuario\r\n REPORTE_CTRLVAC_EMPLEADO_SUCCESS,\r\n REPORTE_CTRLVAC_EMPLEADO_ERROR,\r\n REPORTE_CTRLVAC_EMPLEADO_PURGE,\r\n\r\n //GeneraReporte2detalladousuarios\r\n REPORTE_VACACIONES_SUCCESS,\r\n REPORTE_VACACIONES_ERROR,\r\n REPORTE_VACACIONES_PURGE,\r\n\r\n REPORTE_VACACIONES2_SUCCESS,\r\n REPORTE_VACACIONES2_ERROR,\r\n REPORTE_VACACIONES2_PURGE,\r\n\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\n\r\nexport const generaReporteCtrlVac1Action = (data, server) => {\r\n let nameService = 'wcfKioscoReportes';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:GeneraReporte1detalladousuario': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': `http://tempuri.org/I${nameService}/GeneraReporte1detalladousuario`, \r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORTE_CTRLVAC_EMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET REPORTE_CTRLVAC_EMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: REPORTE_CTRLVAC_EMPLEADO_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlReport: GeneraReporteCtrlVac1Response(body)\r\n };\r\n console.log('RESPONSE REPORTE_CTRLVAC_EMPLEADO DATA: ', response);\r\n dispatch({ type: REPORTE_CTRLVAC_EMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET REPORTE_CTRLVAC_EMPLEADO DATA: ', response);\r\n dispatch({ type: REPORTE_CTRLVAC_EMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET REPORTE_CTRLVAC_EMPLEADO DATA: ', responseError);\r\n dispatch({ type: REPORTE_CTRLVAC_EMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const generaReporteCtrlVac2Action = (data, server) => {\r\n let nameService = 'wcfKioscoReportes';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:GeneraReporte2detalladousuarios': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': `http://tempuri.org/I${nameService}/GeneraReporte2detalladousuarios`,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORTE_VACACIONES_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: REPORTE_VACACIONES_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlReport: GeneraReporteCtrlVac2Response(body)\r\n };\r\n console.log('RESPONSE REPORTE_VACACIONES DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES_SUCCESS, payload: response });\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET REPORTE_VACACIONES DATA: ', responseError);\r\n dispatch({ type: REPORTE_VACACIONES_ERROR, payload: responseError });\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const generaReporteCtrlVac3Action = (data, server) => {\r\n let nameService = 'wcfKioscoReportes';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:GeneraReporte4': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n \r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': `http://tempuri.org/I${nameService}/GeneraReporte4`,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORTE_VACACIONES2_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlReport: GeneraReporteCtrlVac3Response(body)\r\n };\r\n console.log('RESPONSE REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES2_SUCCESS, payload: response });\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET REPORTE_VACACIONES2 DATA: ', responseError);\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: responseError });\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const generaReporteCtrlVac4Action = (data, server) => {\r\n let nameService = 'wcfKioscoReportes';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:GeneraReporte5': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n \r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': `http://tempuri.org/I${nameService}/GeneraReporte5`,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORTE_VACACIONES2_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlReport: GeneraReporteCtrlVac4Response(body)\r\n };\r\n console.log('RESPONSE REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES2_SUCCESS, payload: response });\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET REPORTE_VACACIONES2 DATA: ', response);\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET REPORTE_VACACIONES2 DATA: ', responseError);\r\n dispatch({ type: REPORTE_VACACIONES2_ERROR, payload: responseError });\r\n });\r\n }\r\n }\r\n};","import { changeXml, CtrlVacionEmpleadoDatosResponse, CtrlVacacionesEmpleadoV4Response } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VACION_EMPLEADO_DATOS_SUCCESS,\r\n VACION_EMPLEADO_DATOS_ERROR,\r\n VACION_EMPLEADO_DATOS_PURGE,\r\n \r\n CTRL_VACION_EMPLEADO_SUCCESS,\r\n CTRL_VACION_EMPLEADO_ERROR,\r\n CTRL_VACION_EMPLEADO_PURGE,\r\n\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\nexport const CtrlVacionEmpleadoDatosAction = (data, server) => {\r\n let nameService = 'wcfKioscoVacaciones';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:ctrlVacionEmpleadoDatos': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/ctrlVacionEmpleadoDatos\",\r\n 'Server': directServer, //localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n //let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: VACION_EMPLEADO_DATOS_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET VACION_EMPLEADO_DATOS DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: VACION_EMPLEADO_DATOS_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n CtrlVacionEmpleadoDatos: CtrlVacionEmpleadoDatosResponse(body)\r\n }\r\n console.log('RESPONSE VACION_EMPLEADO_DATOS DATA: ', response);\r\n dispatch({ type: VACION_EMPLEADO_DATOS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VACION_EMPLEADO_DATOS DATA: ', response);\r\n dispatch({ type: VACION_EMPLEADO_DATOS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VACION_EMPLEADO_DATOS DATA: ', responseError);\r\n dispatch({ type: VACION_EMPLEADO_DATOS_ERROR, payload: responseError })\r\n })\r\n }\r\n }\r\n};\r\n\r\nexport const CtrlVacacionesEmpleadoV4Action = (data, server) => {\r\n let nameService = 'wcfKioscoVacaciones';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:ControlVacacionesEmpleadoV4': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n console.log('OIHB', obj)\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/ControlVacacionesEmpleadoV4\",\r\n 'Server': directServer, //localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n //let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: CTRL_VACION_EMPLEADO_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET CTRL_VACION_EMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: CTRL_VACION_EMPLEADO_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n CtrlVacacionesEmpleadoV4: CtrlVacacionesEmpleadoV4Response(body)\r\n }\r\n console.log('RESPONSE CTRL_VACION_EMPLEADO DATA: ', response);\r\n dispatch({ type: CTRL_VACION_EMPLEADO_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET CTRL_VACION_EMPLEADO DATA: ', response);\r\n dispatch({ type: CTRL_VACION_EMPLEADO_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET CTRL_VACION_EMPLEADO DATA: ', responseError);\r\n dispatch({ type: CTRL_VACION_EMPLEADO_ERROR, payload: responseError })\r\n })\r\n }\r\n }\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { CtrlVacionEmpleadoDatosAction, CtrlVacacionesEmpleadoV4Action } from '../../api/actions/empleado/ControlVacacionesEmpleadoAction';\r\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport Card from '../../components/shared/Card.js';\r\n\r\nconst VacationsControlV2 = props => {\r\n const [ loading, setLoading ] = useState(true);\r\n const [ vacacionDatos, setVacacionDatos ] = useState({});\r\n const [ ctrlVacacion, setCtrlVacacion ] = useState([]);\r\n const [valoresConfig, setValoresConfig] = useState([]);\r\n const [mostrarColumna, setMostrarColumna] = useState({ EsDiasVencidosSindicato: true });\r\n\r\n function delay(time) {\r\n return new Promise(resolve => setTimeout(resolve, time));\r\n }\r\n\r\n useEffect(() =>{\r\n (async () => {\r\n getDatosVacacion();\r\n setLoading(true);\r\n await delay(1000);\r\n GetValoresConfig('SICONSULTA');\r\n })();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.ctrlVacionEmpleadoDatosData && props.ctrlVacionEmpleadoDatosData.isOK) {\r\n \r\n setVacacionDatos(props.ctrlVacionEmpleadoDatosData.CtrlVacionEmpleadoDatos);\r\n getCtrlVacacion();\r\n } \r\n else if (props.ctrlVacionEmpleadoDatosError && props.ctrlVacionEmpleadoDatosError.isOK === false) {\r\n props.CtrlVacionEmpleadoDatosAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.ctrlVacionEmpleadoDatosData, props.ctrlVacionEmpleadoDatosError]);\r\n\r\n useEffect(() => {\r\n if (props.ctrlVacacionesEmpleadoV4Data && props.ctrlVacacionesEmpleadoV4Data.isOK) {\r\n setCtrlVacacion(props.ctrlVacacionesEmpleadoV4Data.CtrlVacacionesEmpleadoV4);\r\n setLoading(false);\r\n } \r\n else if (props.ctrlVacacionesEmpleadoV4Error && props.ctrlVacacionesEmpleadoV4Error.isOK === false) {\r\n props.CtrlVacacionesEmpleadoV4Action('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.ctrlVacacionesEmpleadoV4Data, props.ctrlVacacionesEmpleadoV4Error]);\r\n\r\n useEffect(() => {\r\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\r\n let _mostrarColumna = {...mostrarColumna};\r\n\r\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\r\n if (configuraciones.length > 0) {\r\n setValoresConfig(configuraciones);\r\n\r\n let objDVS = [...configuraciones].find(f => f.Seccion='SICONSULTA' && f.Variable == 'DiasVencidosSindicato');\r\n _mostrarColumna.EsDiasVencidosSindicato = !((objDVS || {}).Valor || '').split(',').some(s => s == vacacionDatos.Sindicato_ID);\r\n setMostrarColumna(_mostrarColumna);\r\n }\r\n else {\r\n setValoresConfig([]);\r\n\r\n _mostrarColumna.EsDiasVencidosSindicato = true;\r\n setMostrarColumna(_mostrarColumna);\r\n }\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n } \r\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\r\n setValoresConfig([]);\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getValoresConfigData, props.getValoresConfigError]);\r\n\r\n const getDatosVacacion = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_id': params['tem:TrabID'],\r\n }\r\n\r\n props.CtrlVacionEmpleadoDatosAction(params, server);\r\n };\r\n\r\n const getCtrlVacacion = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_id': params['tem:TrabID'],\r\n }\r\n\r\n props.CtrlVacacionesEmpleadoV4Action(params, server);\r\n };\r\n\r\n const GetValoresConfig = (seccion, variable = '') => {\r\n let { params, server } = getParams();\r\n\r\n let send = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion, \r\n \"tem:Variable\": variable,\r\n };\r\n \r\n props.GetValoresConfigAction(send, server);\r\n };\r\n\r\n const data = () => {\r\n let table = [];\r\n let movimientos = ctrlVacacion;\r\n\r\n if (!movimientos || movimientos.length <= 0) {\r\n table.push(\r\n <tr key=\"empty\">\r\n <td>No hay registros que mostar.</td>\r\n </tr>\r\n );\r\n } \r\n else {\r\n movimientos = movimientos.sort((a, b) => {\r\n return a.ptr - b.ptr;\r\n });\r\n\r\n console.log('MOVIMIENTOS', movimientos)\r\n\r\n movimientos.map((item, i) => {\r\n table.push(\r\n <tr key={i} style={{ cursor: 'pointer' }}>\r\n {/* <td>{ item.Año }</td>\r\n <td>{ moment(item.FechaDisponibilidad).format('DD/MM/YYYY') }</td>\r\n <td>{ moment(item.FechaVencimiento).format('DD/MM/YYYY') }</td>\r\n <td>{ item.DiasOtorgados }</td>\r\n <td>{ item.VacacionesGozadasDelAno }</td>\r\n {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") != '1' && <td>{item.VacacionesPerdidasDelAno}</td>} */}\r\n <td>{ item.Año }</td>\r\n <td>{ item.AnosDeAntiguedad }</td>\r\n <td>{ item.DiasOtorgados }</td>\r\n <td>{ item.VacacionesGozadasDelAno }</td>\r\n <td>{ item.VacacionesPendientesDelAño }</td>\r\n <td>{ moment(item.FechaVencimiento).format('DD/MM/YYYY') }</td>\r\n {mostrarColumna.EsDiasVencidosSindicato && <td>{item.VacacionesPerdidasDelAno}</td>}\r\n </tr>\r\n );\r\n });\r\n }\r\n\r\n return table;\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Control de Vacaciones\" icon=\"mdi mdi-routes\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Trab_ID}\r\n name=\"EMPLEADO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Nombre}\r\n name=\"NOMBRE\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-help-circle-outline text-success\" \r\n value={vacacionDatos.FechaIngreso} \r\n name=\"INGRESO\"\r\n type=\"date\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-briefcase text-success\"\r\n value={vacacionDatos.RFC}\r\n name=\"RFC\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-store-24-hour text-success\"\r\n value={vacacionDatos.IMSS}\r\n name=\"IMSS\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-account-location text-success\" \r\n value={vacacionDatos.CURP} \r\n name=\"CURP\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Puesto}\r\n name=\"PUESTO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Depto}\r\n name=\"DEPARTAMENTO\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-calendar text-purple\" \r\n value={vacacionDatos.Vacaciones} \r\n name=\"TOTAL DÍAS DE VACACIONES\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-calendar-check text-success\"\r\n value={vacacionDatos.Años + (!isNaN(vacacionDatos.Años) ? ' Años' : '')}\r\n name=\"ANTIGÜEDAD\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n {/* <th>Periodo Vacaciones</th>\r\n <th>Fecha Disponibilidad</th>\r\n <th>Fecha Vencimiento</th>\r\n <th>Días Ganados</th>\r\n <th>Días Disfrutados</th>\r\n {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") != '1' && <th>Días Perdidods</th>} */}\r\n <th>PERIODO</th>\r\n <th>ANTIGÜEDAD</th>\r\n <th>DÍAS OTORGADOS LEY</th>\r\n <th>DÍAS DISFRUTADOS</th>\r\n <th>DÍAS PENDIENTES</th>\r\n <th>VENCIMIENTO</th>\r\n {mostrarColumna.EsDiasVencidosSindicato && <th>DÍAS VENCIDOS</th>}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n ctrlVacionEmpleadoDatosData: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosData,\r\n ctrlVacionEmpleadoDatosError: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosError,\r\n\r\n ctrlVacacionesEmpleadoV4Data: state.ctrlVacacionesEmpleadoV4.ctrlVacacionesEmpleadoV4Data,\r\n ctrlVacacionesEmpleadoV4Error: state.ctrlVacacionesEmpleadoV4.ctrlVacacionesEmpleadoV4Error,\r\n\r\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n CtrlVacionEmpleadoDatosAction,\r\n CtrlVacacionesEmpleadoV4Action,\r\n GetValoresConfigAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationsControlV2));","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { sendQuejaMessageAction } from '../../api/actions/empleado/QuejaMessageAction';\n\nimport { getParams,getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst Complaints = props => {\n\n const [loading, setLoading] = useState(false);\n const [form, setValues] = useState({});\n\n const _handleInput = event => {\n\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:tituloMsj': form.title,\n 'tem:ContenidoMsj': form.message,\n 'tem:TrabID': params['tem:TrabID'],\n }\n\n props.sendQuejaMessageAction(params, server);\n };\n\n useEffect(() => {\n if (props.quejaData && props.quejaData.isOK) {\n let storage = getSesionStorage('userType');\n const localStorageValue = localStorage.getItem(\"REACT_APP_HISTORIAL_QUEJA_USER\");\n\n alert('Su queja ha sido enviada.')\n props.sendQuejaMessageAction('PURGE', '');\n if (storage.typeUser === 1 && localStorageValue === \"1\") {\n props.history.push(`${process.env.PUBLIC_URL}/historial-quejas`);\n }\n setLoading(false);\n } else if (props.quejaError && props.quejaError.isOK === false) {\n let storage = getSesionStorage('userType');\n const localStorageValue = localStorage.getItem(\"REACT_APP_HISTORIAL_QUEJA_USER\");\n props.sendQuejaMessageAction('PURGE', '');\n alert('Ocurrio un error. Intentelo de nuevo más tarde o consulte a su administrador.')\n if (storage.typeUser === 1 && localStorageValue === \"1\") {\n props.history.push(`${process.env.PUBLIC_URL}/historial-quejas`);\n }\n setLoading(false);\n }\n\n }, [props.quejaData, props.quejaError]);\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBQuejas') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual={localStorage.getItem(\"REACT_APP_TITULOS_HOVOMEX\") != \"1\" ? \"Buzón de Quejas\" : \"RH Te Escucha\"} icon=\"mdi mdi-message-bulleted-off\" />\n {loading ?\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n :\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <h4 className=\"card-title\">Buzón Secreto de Quejas</h4>\n <h6 className=\"card-subtitle\">Bienvenido al buzón secreto de quejas, en esta sección, podrás enviar una queja de forma 100% anónima.</h6>\n <form className=\"form-material m-t-40\" onSubmit={_handleSubmit}>\n <div className=\"form-group\">\n <label>Título de la Queja</label>\n <input\n type=\"text\"\n name=\"title\"\n className=\"form-control\"\n placeholder=\"\"\n onChange={_handleInput}\n />\n </div>\n <div className=\"form-group\">\n <label>Detalle de la Queja</label>\n <textarea\n name=\"message\"\n className=\"form-control\"\n rows=\"5\"\n onChange={_handleInput}\n >\n </textarea>\n </div>\n <div className=\"col-lg-2 col-md-4\">\n <button type=\"submit\" className=\"btn waves-effect waves-light btn-block btn-info\" >Enviar Queja</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n quejaData: state.quejaMessage.quejaData,\n quejaError: state.quejaMessage.quejaError,\n };\n};\n\nconst mapDispatchToProps = {\n sendQuejaMessageAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Complaints));\n","import { changeXml, QuejaMessajeResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n QUEJA_SUCCESS,\n QUEJA_ERROR,\n QUEJA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const sendQuejaMessageAction = (data, server) => {\n let configJson = {\n 'tem:BuzonQueja': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BuzonQueja\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: QUEJA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET QUEJA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: QUEJA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n QuejaResponse: QuejaMessajeResponse(body)\n }\n\n console.log('RESPONSE QUEJA DATA: ', response);\n dispatch({ type: QUEJA_SUCCESS, payload: response })\n }\n }\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET QUEJA DATA: ', response);\n dispatch({ type: QUEJA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET QUEJA DATA: ', responseError);\n dispatch({ type: QUEJA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, EmpleadosAlMandoResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMPLEADOS_AL_MANDO_SUCCESS,\r\n EMPLEADOS_AL_MANDO_ERROR,\r\n EMPLEADOS_AL_MANDO_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getEmpleadosAlMandoAction = (data, server) => {\r\n let configJson = {\r\n 'tem:EmpleadosAlMando': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/EmpleadosAlMando\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST EmpeladosAll:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMPLEADOS_AL_MANDO_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMPLEADOS_AL_MANDO_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMPLEADOS_AL_MANDO_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n EmpleadosAlMando: EmpleadosAlMandoResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMPLEADOS_AL_MANDO DATA: ', response);\r\n dispatch({ type: EMPLEADOS_AL_MANDO_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMPLEADOS_AL_MANDO DATA: ', response);\r\n dispatch({ type: EMPLEADOS_AL_MANDO_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMPLEADOS_AL_MANDO DATA: ', responseError);\r\n dispatch({ type: EMPLEADOS_AL_MANDO_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, AuthorizersResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n AUTHORIZERS_SUCCESS,\r\n AUTHORIZERS_ERROR,\r\n AUTHORIZERS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const AuthorizersAction = (data, server) => {\r\n let configJson = {\r\n 'tem:Autorizadores': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/Autorizadores\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: AUTHORIZERS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET AUTHORIZERS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: AUTHORIZERS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n Authorizers: AuthorizersResponse(body)\r\n }\r\n\r\n console.log('RESPONSE AUTHORIZERS DATA: ', response);\r\n dispatch({ type: AUTHORIZERS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET AUTHORIZERS DATA: ', response);\r\n dispatch({ type: AUTHORIZERS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET AUTHORIZERS DATA: ', responseError);\r\n dispatch({ type: AUTHORIZERS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import {\r\n SEND_EMAILS_SUCCESS,\r\n SEND_EMAILS_ERROR,\r\n SEND_EMAILS_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const SendEmailsAction = (data) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/authorizers/emails'\r\n\r\n console.log(' SEND_EMAILS RECUEST:', url, config, data);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: SEND_EMAILS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then((json) => {\r\n console.log('FIRST', json.Response)\r\n return json.json()\r\n })\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n SendEmails: responseJson\r\n }\r\n console.log('RESPONSE SEND_EMAILS DATA: ', response);\r\n dispatch({ type: SEND_EMAILS_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR SEND_EMAILS DATA: ', response);\r\n dispatch({ type: SEND_EMAILS_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR SEND_EMAILS DATA: ', responseError);\r\n dispatch({ type: SEND_EMAILS_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../../layout/Topbar.js';\r\nimport Leftsidebar from '../../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../../layout/Title.js';\r\nimport Footer from '../../layout/Footer.js';\r\nimport { EmpleadosPerdiemAction } from '../../../api/actions/perdiem/EmpleadosPerdiemAction'\r\nimport { getEmpleadosAlMandoAction } from '../../../api/actions/perdiem/EmpleadosAlMandoAction'\r\nimport { AuthorizersAction } from '../../../api/actions/perdiem/AuthorizersAction';\r\nimport { SendEmailsAction } from '../../../api/actions/perdiem/SendEmailsAction';\r\nimport { getParams } from '../../../utils';\r\nimport { alert } from '../../../utils/common/alert';\r\n\r\nconst ReportControl = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [empleados, setEmpleados] = useState([]);\r\n\r\n const consultaNivelAutorizante = () => {\r\n let { params, server } = getParams();\r\n let nivelesTrab = [\r\n {TrabID: \"1005312\", type: \"3\"},//RIGOBALDO\r\n {TrabID: \"1008867\", type: \"4\"},//BREANDA\r\n {TrabID: \"1004377\", type: \"5\"},//DELIA\r\n {TrabID: \"1000680\", type: \"6\"},//JORGE\r\n ];\r\n let type = \"2\";\r\n let obj = nivelesTrab.find(f => f.TrabID == params['tem:TrabID']);\r\n if (obj) type = obj.type;\r\n return type;\r\n };\r\n\r\n useEffect(() => {\r\n\r\n let { params, server } = getParams();\r\n let employeeType = consultaNivelAutorizante();//sessionStorage.getItem('EMPLOYEE_TYPE')\r\n console.log('EMPLOYEE=>', employeeType)\r\n if (employeeType == '3' || employeeType == '4' || employeeType == '5' || employeeType == '6') {\r\n props.EmpleadosPerdiemAction(employeeType, params['tem:IdEmpresa'])\r\n } else {\r\n let paramss = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n }\r\n props.getEmpleadosAlMandoAction(paramss, server);\r\n\r\n }\r\n let paramsAuthorizers = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n }\r\n\r\n props.AuthorizersAction(paramsAuthorizers, server)\r\n\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.empleadosAlMandoData && props.empleadosAlMandoData.isOK) {\r\n setEmpleados(props.empleadosAlMandoData.EmpleadosAlMando)\r\n\r\n setLoading(false);\r\n } else if (props.empleadosAlMandoError && props.empleadosAlMandoError.isOK === false) {\r\n props.getEmpleadosAlMandoAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.empleadosAlMandoData, props.empleadosAlMandoError]);\r\n\r\n useEffect(() => {\r\n if (props.empleadosPerdiemData && props.empleadosPerdiemData.isOK) {\r\n setEmpleados(props.empleadosPerdiemData.EmpleadosPerdiem.results)\r\n setLoading(false);\r\n } else if (props.empleadosPerdiemError && props.empleadosPerdiemError.isOK === false) {\r\n props.EmpleadosPerdiemAction('PURGE');\r\n setLoading(false);\r\n }\r\n }, [props.empleadosPerdiemData, props.empleadosPerdiemError]);\r\n\r\n\r\n useEffect(() => {\r\n if (props.authorizersData && props.authorizersData.isOK) {\r\n let data = { data: props.authorizersData.Authorizers };\r\n let { params, server } = getParams();\r\n let newData = {\r\n ...data,\r\n company: params['tem:IdEmpresa']\r\n }\r\n console.log('SEND_EMAILS', newData)\r\n props.SendEmailsAction(newData)\r\n\r\n } else if (props.authorizersError && props.authorizersError.isOK === false) {\r\n props.AuthorizersAction('PURGE');\r\n }\r\n }, [props.authorizersData, props.authorizersError]);\r\n\r\n const vacations_table = () => {\r\n\r\n let table = [];\r\n let solicitudes = empleados;\r\n\r\n if (solicitudes && solicitudes.length > 0) {\r\n if (solicitudes[0]['error']) {\r\n table.push(\r\n <tr key={'error'}>\r\n <td>No hay información para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n solicitudes.map((item, i) => {\r\n table.push(\r\n <tr key={i + '_' + (item.Trab_ID || item.id)}>\r\n <td style={{ cursor: 'pointer' }}>{item.Trab_ID || item.id}</td>\r\n <td style={{ cursor: 'pointer' }}>{item.NombreCompleto || item.name}</td>\r\n <td className=\"text-center\">\r\n <a type=\"button\" className=\"btn btn-rounded btn-secondary ml-2\"\r\n onClick={() => _handleEmployeeHistroy(item)}\r\n ><i className=\"mdi mdi-arrow-expand-all\"></i> Ver Detalle</a>\r\n </td>\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n } else {\r\n table.push(\r\n <tr key=\"0\">\r\n <td>No hay fechas solicitadas</td>\r\n <td></td>\r\n </tr>\r\n );\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const _handleEmployeeHistroy = (item) => {\r\n let data = item?.id\r\n let name = item?.name\r\n if (item?.Trab_ID) {\r\n data = item?.Trab_ID\r\n name = item?.NombreCompleto\r\n }\r\n\r\n props.history.push(`${process.env.PUBLIC_URL}/reporte-users/reporte-tecnico`, { 'Trab_ID': data, centerId: item.Centro_ID, centroDescripcion: item.CentroDescripcion, NAME: item.NombreCompleto || item.name });\r\n };\r\n\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONTROL REPORTES SERVICIO\" icon=\"mdi mdi-briefcase-check\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <h4 className=\"card-title\">Listado de Empleados</h4>\r\n <h6 className=\"card-subtitle\">A continuación podrás encontrar todos los empleados a su cargo</h6>\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th># ID</th>\r\n <th>Nombre</th>\r\n <th className=\"text-center\">Acciones</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {vacations_table()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n empleadosAlMandoData: state.empleadosAlMando.empleadosAlMandoData,\r\n empleadosAlMandoError: state.empleadosAlMando.empleadosAlMandoError,\r\n\r\n empleadosPerdiemData: state.empleadosPerdiem.empleadosPerdiemData,\r\n empleadosPerdiemError: state.empleadosPerdiem.empleadosPerdiemError,\r\n\r\n authorizersData: state.authorizers.authorizersData,\r\n authorizersError: state.authorizers.authorizersError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getEmpleadosAlMandoAction,\r\n EmpleadosPerdiemAction,\r\n AuthorizersAction,\r\n SendEmailsAction\r\n};\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ReportControl));\r\n","import {\r\n EMPLEADOS_PERDIEM_SUCCESS,\r\n EMPLEADOS_PERDIEM_ERROR,\r\n EMPLEADOS_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const EmpleadosPerdiemAction = (id, company) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/employees/${company}/${id}`\r\n\r\n console.log(' EMPLEADOS_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (id === 'PURGE') {\r\n dispatch({ type: EMPLEADOS_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n EmpleadosPerdiem: responseJson\r\n }\r\n console.log('RESPONSE EMPLEADOS_PERDIEM DATA: ', response);\r\n dispatch({ type: EMPLEADOS_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR EMPLEADOS_PERDIEM DATA: ', response);\r\n dispatch({ type: EMPLEADOS_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR EMPLEADOS_PERDIEM DATA: ', responseError);\r\n dispatch({ type: EMPLEADOS_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n GET_PERDIEM_SUCCESS,\r\n GET_PERDIEM_ERROR,\r\n GET_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const GetPerdiemAction = (data, company) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n console.log('COMPANY + DATAAAAAAAAAAAAAAAAAAAAAAAAAAA', data, company)\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") +'perdiems/requests/show-by-employee/'+ company + '/' + data\r\n\r\n console.log(' GET_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n GetPerdiem: responseJson\r\n }\r\n console.log('RESPONSE GET_PERDIEM DATA: ', response);\r\n dispatch({ type: GET_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR GET_PERDIEM DATA: ', response);\r\n dispatch({ type: GET_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR GET_PERDIEM DATA: ', responseError);\r\n dispatch({ type: GET_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n GET_PREVIEW_SUCCESS,\r\n GET_PREVIEW_ERROR,\r\n GET_PREVIEW_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const GetPreviewAction = (company, employeeId, tipoEmpleado, fecha) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(message),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n \r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/preview/view/${company}/${employeeId}/${tipoEmpleado}/${fecha}`\r\n\r\n console.log(' GET_PREVIEW RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (company === 'PURGE') {\r\n dispatch({ type: GET_PREVIEW_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n GetPreview: responseJson\r\n }\r\n console.log('RESPONSE GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', responseError);\r\n dispatch({ type: GET_PREVIEW_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n AUTHORIZE_REJECT_SUCCESS,\r\n AUTHORIZE_REJECT_ERROR,\r\n AUTHORIZE_REJECT_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const AuthorizeRejectAction = (data, company, id) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n \"Accept\" : \"application/json\",\r\n 'Access-Control-Allow-Origin': '*', \r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/preview/authorize/${company}/${id}`\r\n\r\n console.log(' AUTHORIZE_REJECT RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: AUTHORIZE_REJECT_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n AuthorizeReject: responseJson\r\n }\r\n console.log('RESPONSE AUTHORIZE_REJECT DATA: ', response);\r\n dispatch({ type: AUTHORIZE_REJECT_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR AUTHORIZE_REJECT DATA: ', response);\r\n dispatch({ type: AUTHORIZE_REJECT_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR AUTHORIZE_REJECT DATA: ', responseError);\r\n dispatch({ type: AUTHORIZE_REJECT_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n EDIT_PERDIEM_SUCCESS,\r\n EDIT_PERDIEM_ERROR,\r\n EDIT_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const EditPerdiemAction = (data, id) => {\r\n\r\n const config = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/' + id + '/update'\r\n\r\n console.log(' EDIT_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EDIT_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n EditPerdiem: responseJson\r\n }\r\n console.log('RESPONSE EDIT_PERDIEM DATA: ', response);\r\n dispatch({ type: EDIT_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR EDIT_PERDIEM DATA: ', response);\r\n dispatch({ type: EDIT_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR EDIT_PERDIEM DATA: ', responseError);\r\n dispatch({ type: EDIT_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import React from 'react';\r\nimport useScript from '../../hooks/useScript.js';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst TitleReport = ({ action}) => {\r\n\r\n useScript('/assets/js/custom.js');\r\n\r\n return (\r\n <div className=\"row page-titles\">\r\n <div className=\"col-md-10 align-self-center\">\r\n <h3 className=\"text-themecolor\"><i className=\"mdi mdi-clipboard-check\"></i> REPORTES</h3>\r\n </div>\r\n <div className=\"col-md-2 align-self-center\">\r\n <button className=\"btn btn-info\"\r\n onClick={() => {\r\n action()\r\n }}\r\n ><i className=\"fa fa-plus\"></i> NUEVO REPORTE</button>\r\n\r\n </div>\r\n\r\n </div>\r\n );\r\n};\r\n\r\nexport default TitleReport;\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { withRouter, Link } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { GetPerdiemAction } from \"../../../api/actions/perdiem/GetPerdiemAction\";\r\nimport { RejectChiefAction } from \"../../../api/actions/perdiem/RejectChiefAction\";\r\nimport { AuthorizeChiefAction } from \"../../../api/actions/perdiem/AuthorizeChiefAction\";\r\nimport { GetPreviewAction } from \"../../../api/actions/perdiem/GetPreviewAction\";\r\nimport { AuthorizeRejectAction } from \"../../../api/actions/perdiem/AuthorizeRejectAction\";\r\nimport { GetPreviewCanceledAction } from \"../../../api/actions/perdiem/GetPreviewCanceledAction\";\r\nimport { GetPreviewAuthorizedAction } from \"../../../api/actions/perdiem/GetPreviewAuthorizedAction\";\r\nimport { employeeMovNomAction } from \"../../../api/actions/perdiem/EmployeeMovNomAction\";\r\n\r\nimport { EditPerdiemAction } from '../../../api/actions/perdiem/EditPerdiemAction';\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\n\r\nimport CryptoJS from \"crypto-js\";\r\nimport Topbar from \"../../layout/Topbar.js\";\r\nimport Leftsidebar from \"../../layout/EmployeeLeftsidebar.js\";\r\nimport Title from \"../../layout/Title.js\";\r\nimport TitleReport from \"../../layout/TitleReport.js\";\r\nimport Footer from \"../../layout/Footer.js\";\r\nimport moment from \"moment\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { getParams } from \"../../../utils\";\r\nimport { alert } from \"../../../utils/common/alert\";\r\n\r\nconst ReportServiceEmpleado = (props) => {\r\n let thisYear = new Date().getFullYear();\r\n let month = new Date().getMonth();\r\n const [loading, setLoading] = useState(false);\r\n const [reportsService, setReportsService] = useState([]);\r\n const [showModal, setShowModal] = useState(false);\r\n const [dataModal, setDataModal] = useState({});\r\n const [messageReject, setMessageReject] = useState(\"\");\r\n const [tab, setTab] = useState(0);\r\n const [monthSelected, setMonthSelected] = useState(month);\r\n const [dataPreview, setDataPreview] = useState([]);\r\n const [showServices, setShowServices] = useState(true);\r\n const [messagePreview, setMessagePreview] = useState([]);\r\n const [modifyOS, setModifyOS] = useState([]);\r\n const [backupDataPreview, setBackupDataPreview] = useState([]);\r\n\r\n const [showModalPreview, setShowModalPreview] = useState(false);\r\n const [dataModalPreview, setDataModalPreview] = useState({});\r\n\r\n const [showTabCanceled, setShowTabCanceled] = useState(false);\r\n const [dataPreviewCanceled, setDataPreviewCanceled] = useState({});\r\n\r\n const [showTabAuthorized, setShowTabAuthorized] = useState(false);\r\n const [dataPreviewAuthorized, setDataPreviewAuthorized] = useState({});\r\n\r\n const [showModalAuthorize, setShowModalAuthorize] = useState(false);\r\n const [dataModalAuthorize, setDataModalAuthorize] = useState({});\r\n const [authorizeOne, setAuthorizeOne] = useState(false);\r\n const [authorizeTwo, setAuthorizeTwo] = useState(false);\r\n\r\n //YYYY-MM-DD\r\n let DatePreview = [\r\n { mes: `ENERO ${thisYear}`, date: `${thisYear}-01-01` },\r\n { mes: `FEBRERO ${thisYear}`, date: `${thisYear}-02-01` },\r\n { mes: `MARZO ${thisYear}`, date: `${thisYear}-03-01` },\r\n { mes: `ABRIL ${thisYear}`, date: `${thisYear}-04-01` },\r\n { mes: `MAYO ${thisYear}`, date: `${thisYear}-05-01` },\r\n { mes: `JUNIO ${thisYear}`, date: `${thisYear}-06-01` },\r\n { mes: `JULIO ${thisYear}`, date: `${thisYear}-07-01` },\r\n { mes: `AGOSTO ${thisYear}`, date: `${thisYear}-08-01` },\r\n { mes: `SEPTIEMBRE ${thisYear}`, date: `${thisYear}-09-01` },\r\n { mes: `OCTUBRE ${thisYear}`, date: `${thisYear}-10-01` },\r\n { mes: `NOVIEMBRE ${thisYear}`, date: `${thisYear}-11-01` },\r\n { mes: `DICIEMBRE ${thisYear}`, date: `${thisYear}-12-01` },\r\n ];\r\n\r\n const consultaNivelAutorizante = () => {\r\n let { params, server } = getParams();\r\n let nivelesTrab = [\r\n {TrabID: \"1005312\", type: \"3\"},//RIGOBALDO\r\n {TrabID: \"1008867\", type: \"4\"},//BREANDA\r\n {TrabID: \"1004377\", type: \"5\"},//DELIA\r\n {TrabID: \"1000680\", type: \"6\"},//JORGE\r\n ];\r\n let type = \"2\";\r\n let obj = nivelesTrab.find(f => f.TrabID == params['tem:TrabID']);\r\n if (obj) type = obj.type;\r\n return type;\r\n };\r\n\r\n useEffect(() => {\r\n let employeeType = consultaNivelAutorizante();//sessionStorage.getItem(\"EMPLOYEE_TYPE\");\r\n if (\r\n employeeType == \"3\" ||\r\n employeeType == \"4\" ||\r\n employeeType == \"5\" ||\r\n employeeType == \"6\"\r\n ) {\r\n setTab(1);\r\n }\r\n getPreview(month);\r\n getList();\r\n }, []);\r\n\r\n //employeeId, tipoEmpleado, fecha\r\n const nextMonth = () => {\r\n let monthNumber = monthSelected + 1;\r\n console.log(\"MONTH\", monthNumber);\r\n if (monthNumber > 11) {\r\n monthNumber = 0;\r\n }\r\n setMonthSelected(monthNumber);\r\n getPreview(monthNumber);\r\n };\r\n\r\n const backMonth = () => {\r\n let monthNumber = monthSelected - 1;\r\n if (monthNumber < 0) {\r\n monthNumber = 11;\r\n }\r\n setMonthSelected(monthNumber);\r\n getPreview(monthNumber);\r\n };\r\n\r\n const getPreview = (monthSel) => {\r\n let employeeType = consultaNivelAutorizante();//sessionStorage.getItem(\"EMPLOYEE_TYPE\");\r\n let { params, server } = getParams();\r\n if (employeeType === \"0\") {\r\n employeeType = \"2\";\r\n }\r\n if (employeeType == \"3\" || employeeType == \"5\" || employeeType == \"6\") {\r\n setShowServices(false);\r\n }\r\n if (employeeType == \"4\") {\r\n setShowServices(false);\r\n setShowTabCanceled(true);\r\n props.GetPreviewCanceledAction(\r\n params[\"tem:IdEmpresa\"],\r\n props.location.state.Trab_ID,\r\n \"7\",\r\n DatePreview[monthSel].date\r\n );\r\n }\r\n\r\n if (employeeType == \"5\") {\r\n setShowServices(false);\r\n setShowTabAuthorized(true);\r\n\r\n props.GetPreviewAuthorizedAction(\r\n params[\"tem:IdEmpresa\"],\r\n props.location.state.Trab_ID,\r\n \"8\",\r\n DatePreview[monthSel].date\r\n );\r\n }\r\n props.GetPreviewAction(\r\n params[\"tem:IdEmpresa\"],\r\n props.location.state.Trab_ID,\r\n employeeType,\r\n DatePreview[monthSel].date\r\n );\r\n };\r\n\r\n const getList = () => {\r\n let { params, server } = getParams();\r\n\r\n setLoading(true);\r\n props.GetPerdiemAction(\r\n props.location.state.Trab_ID,\r\n params[\"tem:IdEmpresa\"]\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (props.getPerdiemData && props.getPerdiemData.isOK === true) {\r\n console.log(\"PERDIEMS\", props.getPerdiemData.GetPerdiem);\r\n if (props?.getPerdiemData?.GetPerdiem?.results.length > 0) {\r\n setReportsService(props?.getPerdiemData?.GetPerdiem?.results);\r\n }\r\n setLoading(false);\r\n } else if (props.getPerdiemError && props.getPerdiemError.isOK === false) {\r\n props.GetPerdiemAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.getPerdiemData, props.getPerdiemError]);\r\n\r\n useEffect(() => {\r\n if (props.rejectChiefData && props.rejectChiefData.isOK === true) {\r\n console.log(\"REJECT\", props.rejectChiefData.RejectChief);\r\n alert(\"El reporte se rechazo con exito\");\r\n setMessageReject(\"\");\r\n setLoading(false);\r\n } else if (\r\n props.rejectChiefError &&\r\n props.rejectChiefError.isOK === false\r\n ) {\r\n props.RejectChiefAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n let { params } = getParams();\r\n props.GetPerdiemAction(\r\n props.location.state.Trab_ID,\r\n params[\"tem:IdEmpresa\"]\r\n );\r\n }, [props.rejectChiefData, props.rejectChiefError]);\r\n\r\n useEffect(() => {\r\n if (props.authorizeChiefData && props.authorizeChiefData.isOK === true) {\r\n console.log(\"AUTHORIZE\", props.authorizeChiefData.AuthorizeChief);\r\n if (props?.authorizeChiefData?.AuthorizeChief.message) {\r\n alert(props?.authorizeChiefData?.AuthorizeChief.message);\r\n } else {\r\n alert(\"Se autorizó con éxito\");\r\n }\r\n\r\n setLoading(false);\r\n } else if (\r\n props.authorizeChiefError &&\r\n props.authorizeChiefError.isOK === false\r\n ) {\r\n props.RejectChiefAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n let { params } = getParams();\r\n props.GetPerdiemAction(\r\n props.location.state.Trab_ID,\r\n params[\"tem:IdEmpresa\"]\r\n );\r\n }, [props.authorizeChiefData, props.authorizeChiefError]);\r\n\r\n useEffect(() => {\r\n if (props.getPreviewData && props.getPreviewData.isOK === true) {\r\n console.log(\"PREVIEW\", props.getPreviewData.GetPreview.results);\r\n setDataPreview({ preview: props.getPreviewData.GetPreview.results });\r\n /* let messagesss = props.getPreviewData.GetPreview.preview;\r\n if (messagesss && messagesss.length > 0) {\r\n let messa = []\r\n messagesss.map((prev) => {\r\n let mess = {\r\n id: prev.id,\r\n message: ''\r\n }\r\n messa.push(mess)\r\n })\r\n setMessagePreview(messa)\r\n }\r\n */\r\n setLoading(false);\r\n } else if (props.getPreviewError && props.getPreviewError.isOK === false) {\r\n props.GetPreviewAction(\"PURGE\", \"\", \"\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.getPreviewData, props.getPreviewError]);\r\n\r\n useEffect(() => {\r\n if (props.authorizeRejectData && props.authorizeRejectData.isOK === true) {\r\n console.log(\r\n \"REJECT_AUTHORIZE PREVIEW\",\r\n props.authorizeRejectData.AuthorizeReject\r\n );\r\n getPreview(month);\r\n setLoading(false);\r\n props.AuthorizeRejectAction(\"PURGE\", \"\");\r\n } else if (\r\n props.authorizeRejectError &&\r\n props.authorizeRejectError.isOK === false\r\n ) {\r\n props.AuthorizeRejectAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.authorizeRejectData, props.authorizeRejectError]);\r\n\r\n useEffect(() => {\r\n if (\r\n props.getPreviewCanceledData &&\r\n props.getPreviewCanceledData.isOK === true\r\n ) {\r\n console.log(\r\n \"PREVIEW_CANCELED\",\r\n props.getPreviewCanceledData.GetPreviewCanceled.results\r\n );\r\n setDataPreviewCanceled({\r\n preview: props.getPreviewCanceledData.GetPreviewCanceled.results,\r\n });\r\n setLoading(false);\r\n } else if (\r\n props.getPreviewCanceledError &&\r\n props.getPreviewCanceledError.isOK === false\r\n ) {\r\n props.GetPreviewCanceledAction(\"PURGE\", \"\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.getPreviewCanceledData, props.getPreviewCanceledError]);\r\n\r\n useEffect(() => {\r\n if (\r\n props.getPreviewAuthorizedData &&\r\n props.getPreviewAuthorizedData.isOK === true\r\n ) {\r\n console.log(\r\n \"PREVIEW_AUTHORIZED\",\r\n props.getPreviewAuthorizedData.GetPreviewAuthorized\r\n );\r\n setDataPreviewAuthorized({\r\n preview: props.getPreviewAuthorizedData.GetPreviewAuthorized.results,\r\n });\r\n setLoading(false);\r\n } else if (\r\n props.getPreviewAuthorizedError &&\r\n props.getPreviewAuthorizedError.isOK === false\r\n ) {\r\n props.GetPreviewAuthorizedAction(\"PURGE\", \"\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.getPreviewAuthorizedData, props.getPreviewAuthorizedError]);\r\n\r\n useEffect(() => {\r\n if (props.employeeMovNomData && props.employeeMovNomData.isOK === true) {\r\n console.log(\"NOMINA_MOV\", props.employeeMovNomData?.EmployeeMovNom);\r\n if (\r\n props.employeeMovNomData?.EmployeeMovNom &&\r\n props.employeeMovNomData?.EmployeeMovNom === true\r\n ) {\r\n let dataAuthorize = {\r\n messages: messagePreview,\r\n authorize: true,\r\n role: \"8\",\r\n date: DatePreview[monthSelected].date,\r\n };\r\n\r\n let { params } = getParams();\r\n\r\n props.AuthorizeRejectAction(\r\n dataAuthorize,\r\n params[\"tem:IdEmpresa\"],\r\n props.location.state.Trab_ID\r\n );\r\n alert(\"El reporte se envio a nomina\");\r\n } else {\r\n alert(\r\n \"No se pudo enviar a nómina, por favor revisalo con tu administrador\"\r\n );\r\n }\r\n props.employeeMovNomAction(\"PURGE\", \"\");\r\n } else if (\r\n props.employeeMovNomError &&\r\n props.employeeMovNomError.isOK === false\r\n ) {\r\n alert(\r\n \"No se pudo enviar a nómina, por favor revisalo con tu administrador\"\r\n );\r\n props.employeeMovNomAction(\"PURGE\", \"\");\r\n }\r\n }, [props.employeeMovNomData, props.employeeMovNomError]);\r\n\r\n const authorizePreview = (authorize) => {\r\n let employeeType = consultaNivelAutorizante();//sessionStorage.getItem(\"EMPLOYEE_TYPE\");\r\n if (employeeType === \"0\") {\r\n employeeType = \"2\";\r\n }\r\n if (\r\n employeeType == \"3\" ||\r\n employeeType == \"4\" ||\r\n employeeType == \"5\" ||\r\n employeeType == \"6\" ||\r\n employeeType == \"8\"\r\n ) {\r\n modalDataAuthorize(employeeType, authorize);\r\n } else {\r\n getPreviewData(employeeType, authorize);\r\n }\r\n };\r\n\r\n const getPreviewData = (employeeType, authorize) => {\r\n let dataAuthorize = {\r\n messages: messagePreview,\r\n authorize: authorize,\r\n role: employeeType,\r\n date: DatePreview[monthSelected].date,\r\n };\r\n setShowModalPreview(false);\r\n console.log(\"SENDSEND\", dataAuthorize, props.location.state.Trab_ID);\r\n let { params, server } = getParams();\r\n if (employeeType === \"8\") {\r\n const dataSend = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:TrabID\": props.location.state.Trab_ID,\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n \"tem:Importe\":\r\n props.getPreviewAuthorizedData.GetPreviewAuthorized.total,\r\n };\r\n console.log(\"SENDSEND\", dataSend);\r\n props.employeeMovNomAction(dataSend, server);\r\n } else {\r\n props.AuthorizeRejectAction(\r\n dataAuthorize,\r\n params[\"tem:IdEmpresa\"],\r\n props.location.state.Trab_ID\r\n );\r\n }\r\n };\r\n\r\n const modalDataAuthorize = (employeeType, authorize) => {\r\n setDataModalPreview({\r\n title: authorize\r\n ? employeeType == \"6\"\r\n ? \"Este reporte será enviado a Nómina para pago\"\r\n : \"Se autorizará la vista previa\"\r\n : \"Se rechazara la vista previa\",\r\n body: `Ingrese sus comentarios`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n authorize: authorize,\r\n employeeType: employeeType,\r\n });\r\n setShowModalPreview(true);\r\n };\r\n\r\n const modalNomina = (employeeType, authorize) => {\r\n setDataModalPreview({\r\n title: \"Estas seguro de que quieres enviar para pago a Nómina\",\r\n body: `Ingrese sus comentarios`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n authorize: authorize,\r\n employeeType: employeeType,\r\n });\r\n setShowModalPreview(true);\r\n };\r\n\r\n const handleReject = (item) => {\r\n setDataModal({\r\n title: \"Se rechazara el reporte\",\r\n body: `Indica el motivo del rechazo`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n itemId: item.id,\r\n type: 2,\r\n });\r\n setShowModal(true);\r\n };\r\n\r\n const validateAuthorize = (id) => {\r\n setDataModalAuthorize({\r\n title: \"Estas seguro de Autorizar el reporte\",\r\n body: `He validado que el número de orden de servicio es correcto`,\r\n bodyTwo: `He validado que todos los campos están llenos adecuadamente`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n id: id,\r\n type: 2,\r\n });\r\n setShowModalAuthorize(true);\r\n };\r\n\r\n const rejectPerdiem = (id) => {\r\n let user = sessionStorage.getItem(\"userSaved\");\r\n let useNew = JSON.parse(user);\r\n let { params } = getParams();\r\n let dataMessage = {\r\n message: messageReject,\r\n company: params[\"tem:IdEmpresa\"],\r\n id: props?.dataUserData?.DataUser?.trabId,\r\n name: useNew.nombre + \" \" + useNew.paterno + \" \" + useNew.materno,\r\n email: props?.dataUserData?.DataUser?.correo,\r\n };\r\n props.RejectChiefAction(id, dataMessage);\r\n setShowModal(false);\r\n };\r\n\r\n const authorizePerdiem = (id) => {\r\n console.log(id);\r\n let { params } = getParams();\r\n let user = sessionStorage.getItem(\"userSaved\");\r\n let useNew = JSON.parse(user);\r\n let data = {\r\n center: props.location.state.centroDescripcion,\r\n company: params[\"tem:IdEmpresa\"],\r\n id: props?.dataUserData?.DataUser?.trabId,\r\n name: useNew.nombre + \" \" + useNew.paterno + \" \" + useNew.materno,\r\n email: props?.dataUserData?.DataUser?.correo,\r\n };\r\n\r\n setShowModalAuthorize(false);\r\n setAuthorizeOne(false);\r\n setAuthorizeTwo(false);\r\n props.AuthorizeChiefAction(data, id);\r\n };\r\n\r\n const seeReport = (item) => {\r\n props.history.push(\r\n `${process.env.PUBLIC_URL}/reporte-tecnico/show-detalle-reporte`,\r\n { report: item, type: \"firma\" }\r\n );\r\n };\r\n\r\n const renderStatus = (status, item) => {\r\n console.log(\"PERDIEM\", item);\r\n switch (status) {\r\n case 0:\r\n return (\r\n <>\r\n <th>\r\n <span class=\"badge badge-info\">Borrador</span>\r\n </th>\r\n <td class=\"text-center\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Ver Reporte\"\r\n onClick={() => {\r\n seeReport(item);\r\n }}\r\n >\r\n <i class=\"mdi mdi-eye-outline\"></i>\r\n </button>\r\n </td>\r\n </>\r\n );\r\n break;\r\n\r\n case 1:\r\n return (\r\n <>\r\n <th>\r\n <span class=\"badge badge-primary\">Generado</span>\r\n </th>\r\n <td class=\"text-center\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Ver reporte\"\r\n onClick={() => {\r\n seeReport(item);\r\n }}\r\n >\r\n <i class=\"mdi mdi-eye-outline\"></i>\r\n </button>\r\n </td>\r\n </>\r\n );\r\n break;\r\n case 2:\r\n return (\r\n <>\r\n <th>\r\n <span className=\"badge badge-success\">Firmado</span>\r\n </th>\r\n <td className=\"text-center\">\r\n <a\r\n type=\"button\"\r\n className=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Descargar Reporte\"\r\n href={`${localStorage.getItem(\"REACT_APP_PERDIEM\")}perdiems/requests/download-pdf/${item.id}`}\r\n >\r\n <i className=\"mdi mdi-download\"></i>\r\n </a>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Rechzaar\"\r\n onClick={() => {\r\n handleReject(item);\r\n }}\r\n >\r\n <i className=\"mdi mdi-close\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Autorizar\"\r\n onClick={() => {\r\n validateAuthorize(item.id);\r\n }}\r\n >\r\n <i className=\"mdi mdi-check\"></i>\r\n </button>\r\n </td>\r\n </>\r\n );\r\n break;\r\n case 3:\r\n return (\r\n <>\r\n <th>\r\n <span className=\"badge badge-danger\">Cancelado</span>\r\n </th>\r\n <td className=\"text-center\">\r\n {/* <button type=\"button\" class=\"btn btn-rounded btn-secondary ml-2\" title=\"Ver reporte\" onClick={() => { seeReport(item) }}><i class=\"mdi mdi-eye-outline\"></i></button>\r\n */}\r\n </td>\r\n </>\r\n );\r\n break;\r\n case 4:\r\n return (\r\n <>\r\n <th>\r\n <span\r\n className=\"badge badge-danger\"\r\n style={{ backgroundColor: \"green\" }}\r\n >\r\n Autorizado\r\n </span>\r\n </th>\r\n <td className=\"text-center\">\r\n <a\r\n type=\"button\"\r\n className=\"btn btn-rounded btn-secondary ml-2\"\r\n title=\"Descargar Reporte\"\r\n href={`${localStorage.getItem(\"REACT_APP_PERDIEM\")}perdiems/requests/download-pdf/${item.id}`}\r\n >\r\n <i className=\"mdi mdi-download\"></i>\r\n </a>\r\n </td>\r\n </>\r\n );\r\n break;\r\n }\r\n };\r\n\r\n const requests_table = () => {\r\n let table = [];\r\n let reports = reportsService; //props.myMessagesRhData.MyMessagesARh;\r\n if (reports && reports.length >= 0) {\r\n if (reports.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay solicitudes para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n reports.map((item, i) => {\r\n table.push(\r\n <tr key={i} className=\"\" style={{ cursor: \"pointer\" }}>\r\n <td>#{item.data.orderNo}</td>\r\n <td>{item.data.technicalName}</td>\r\n <td>{item.data.clientName}</td>\r\n <td>{item.data.cityClient}</td>\r\n <td>{moment(item.created_at).format(\"DD/MM/YYYY\")}</td>\r\n <td>{moment(item.updated_at).format(\"DD/MM/YYYY\")}</td>\r\n <td>{item.status != 3 ? \"N/A\" : item?.rejectMessage}</td>\r\n {renderStatus(item.status, item)}\r\n </tr>\r\n );\r\n });\r\n }\r\n } else {\r\n table.push(\r\n <tr className=\"unread\">\r\n <td>No hay Reportes para mostrar.</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n );\r\n }\r\n return table;\r\n };\r\n\r\n const prepareMessages = (id, message, i) => {\r\n let messagesss = messagePreview;\r\n messagesss[i] = {\r\n id: id,\r\n message: message,\r\n };\r\n\r\n setMessagePreview(messagesss);\r\n };\r\n\r\n const renderTablePreview = (dataToTable, activeInputs) => {\r\n let employeeType = consultaNivelAutorizante();//sessionStorage.getItem(\"EMPLOYEE_TYPE\");\r\n console.log(\"EMPLOYEE_TYPE\", employeeType);\r\n let table = [];\r\n let reports = dataToTable;\r\n if (reports?.preview && reports.preview.length >= 0) {\r\n if (reports.preview.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay vista previa</td>\r\n </tr>\r\n );\r\n } else {\r\n reports.preview.map((item, i) => {\r\n console.log(\"DATES___\", item, new Date(item.date));\r\n // let newDate = item.date.split('T')\r\n table.push(\r\n <tr key={i} className=\"\" style={{ cursor: \"pointer\" }}>\r\n <td>{moment(item.data.date).format(\"L\")}</td>\r\n <td>{item.data.concept}</td>\r\n <td>{item.data.client}</td>\r\n <td>{item.data.city}</td>\r\n <td>{item.data.rs}</td>\r\n <td style={ {minWidth:'150px'} }>\r\n {item.data.os == null ? \"-\" : \r\n <input\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control form-control-danger\" \r\n style={ {textAlign: 'center'} }\r\n value={item.data.os}\r\n onChange={(val) => {\r\n handleInputOS(item.perdiem_request_id, val.target.value);\r\n }}/>\r\n }\r\n </td>\r\n <td>{item.data.osPrevious || '-'}</td>\r\n\r\n <td>{item.data.authorized ? item.data.authorized : \"0\"}</td>\r\n <td>{item.data.cumulative ? item.data.cumulative : \"0\"}</td>\r\n\r\n <td>\r\n <input\r\n disabled={employeeType === \"3\" ? false : true}\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control form-control-danger\"\r\n value={item?.data.messageRole3 || null}\r\n onChange={(val) => {\r\n prepareMessages(item.id, val.target.value, i);\r\n }}\r\n />\r\n </td>\r\n <td>\r\n <input\r\n disabled={employeeType === \"4\" && activeInputs ? false : true}\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control form-control-danger\"\r\n value={item?.data.messageRole4 || null}\r\n onChange={(val) => {\r\n prepareMessages(item.id, val.target.value, i);\r\n }}\r\n />\r\n </td>\r\n <td>\r\n <input\r\n disabled={employeeType === \"5\" && activeInputs ? false : true}\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control form-control-danger\"\r\n value={item?.data.messageRole5 || null}\r\n onChange={(val) => {\r\n prepareMessages(item.id, val.target.value, i);\r\n }}\r\n />\r\n </td>\r\n <td>\r\n <input\r\n disabled={employeeType === \"6\" && activeInputs ? false : true}\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control form-control-danger\"\r\n value={item?.data.messageRole6 || null}\r\n onChange={(val) => {\r\n prepareMessages(item.id, val.target.value, i);\r\n }}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n });\r\n }\r\n } else {\r\n table.push(\r\n <tr className=\"unread\">\r\n <td>No hay vista previa</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n );\r\n }\r\n return table;\r\n };\r\n\r\n console.log(\"DATA_PREVIEW\", dataPreview);\r\n\r\n // const handleInputOS = (perdiem_request_id, newOS) => {\r\n // let newDataPreview = { ...dataPreview };\r\n // newDataPreview.preview.map((prev) => {\r\n // if (prev.perdiem_request_id == perdiem_request_id && prev.data.client != null) { \r\n // prev.data.os = newOS; \r\n // }\r\n // });\r\n // setDataPreview(newDataPreview);\r\n \r\n // let newModifyOS = [ ...modifyOS ];\r\n // let obj = newModifyOS.find(mod => mod.perdiem_request_id == perdiem_request_id)\r\n // if (obj == null) {\r\n // newModifyOS.push({perdiem_request_id: perdiem_request_id, newOS: newOS, sended: false });\r\n // }\r\n // else {\r\n // obj.newOS = newOS;\r\n // }\r\n // setModifyOS(newModifyOS);\r\n // };\r\n\r\n const handleInputOS = (perdiem_request_id, newOS) => {\r\n let bdp = backupDataPreview;\r\n if (bdp.length == 0) { \r\n dataPreview.preview.map(m => { \r\n let item = { ...m };\r\n item.data = { ...item.data };\r\n bdp.push(item);\r\n });\r\n setBackupDataPreview(bdp);\r\n }\r\n\r\n let newDataPreview = { ...dataPreview };\r\n newDataPreview.preview.map((prev) => {\r\n if (prev.perdiem_request_id == perdiem_request_id && prev.data.client != null) { \r\n prev.data.os = newOS; \r\n }\r\n });\r\n setDataPreview(newDataPreview);\r\n\r\n let newModifyOS = [ ...modifyOS ];\r\n //console.log('OIHB', bdp.find(f => f.perdiem_request_id == perdiem_request_id && f.data.client != null));\r\n //console.log('OIHB', perdiem_request_id, newOS);\r\n if (bdp.some(s => s.perdiem_request_id == perdiem_request_id && s.data.os == newOS)) {\r\n let idx = newModifyOS.findIndex(mo => mo.perdiem_request_id == perdiem_request_id);\r\n if (idx > -1) newModifyOS.splice(idx, 1); \r\n }\r\n else {\r\n let obj = newModifyOS.find(mod => mod.perdiem_request_id == perdiem_request_id)\r\n if (obj == null) {\r\n newModifyOS.push({perdiem_request_id: perdiem_request_id, newOS: newOS, sended: false });\r\n }\r\n else {\r\n obj.newOS = newOS;\r\n }\r\n }\r\n setModifyOS(newModifyOS);\r\n //console.log('OIHB', newModifyOS);\r\n };\r\n\r\n const endEditionOS = () => {\r\n setLoading(true);\r\n\r\n let newModifyOS = [...modifyOS];\r\n let mod = newModifyOS.find(f => f.sended == false);\r\n if (mod) {\r\n mod.sended = true;\r\n setModifyOS(newModifyOS);\r\n editPerdiemRequest(mod.perdiem_request_id, mod.newOS);\r\n }\r\n //modifyOS.map(mod => {\r\n // editPerdiemRequest(mod.perdiem_request_id, mod.newOS);\r\n //});\r\n //setModifyOS([]);\r\n };\r\n\r\n const editPerdiemRequest = (perdiem_request_id, newOS) => {\r\n //let { params, server } = getParams();\r\n let dataSend = {\r\n dataPreview: {\r\n osModified: newOS,\r\n osModifiedBy: 'OSCAR',\r\n osModifiedDate: moment(new Date()).format(\"YYYY-MM-DD hh:mm:ss\"),\r\n }\r\n };\r\n props.EditPerdiemAction(dataSend, perdiem_request_id);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.editPerdiemData && props.editPerdiemData.isOK == true) {\r\n setLoading(false);\r\n if (modifyOS.some(f => f.sended == false)) {\r\n endEditionOS();\r\n }\r\n else {\r\n setModifyOS([]);\r\n props.EditPerdiemAction(\"PURGE\");\r\n getPreview(monthSelected);\r\n getList();\r\n }\r\n } \r\n else if (props.editPerdiemError && props.editPerdiemError.isOK === false) {\r\n props.EditPerdiemAction(\"PURGE\");\r\n setLoading(false);\r\n }\r\n }, [props.editPerdiemData, props.editPerdiemError]);\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal\r\n show={showModal}\r\n onHide={() => {\r\n setShowModal(false);\r\n }}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModal.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {dataModal.body}\r\n <input\r\n type=\"text\"\r\n id=\"lastName\"\r\n className=\"form-control\"\r\n onChange={(val) => {\r\n setMessageReject(val.target.value);\r\n }}\r\n />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n {dataModal.confirmButton && (\r\n <Button\r\n variant=\"primary\"\r\n onClick={() => {\r\n rejectPerdiem(dataModal.itemId);\r\n }}\r\n >\r\n Aceptar\r\n </Button>\r\n )}\r\n {dataModal.rejectButton && (\r\n <Button variant=\"danger\" onClick={() => setShowModal(false)}>\r\n Cancelar\r\n </Button>\r\n )}\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Modal\r\n show={showModalPreview}\r\n onHide={() => {\r\n setShowModalPreview(false);\r\n }}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModalPreview.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body></Modal.Body>\r\n <Modal.Footer>\r\n {dataModalPreview.confirmButton && (\r\n <Button\r\n variant=\"primary\"\r\n onClick={() => {\r\n getPreviewData(\r\n dataModalPreview.employeeType,\r\n dataModalPreview.authorize\r\n );\r\n }}\r\n >\r\n Aceptar\r\n </Button>\r\n )}\r\n {dataModalPreview.rejectButton && (\r\n <Button\r\n variant=\"danger\"\r\n onClick={() => setShowModalPreview(false)}\r\n >\r\n Cancelar\r\n </Button>\r\n )}\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Modal\r\n show={showModalAuthorize}\r\n onHide={() => {\r\n setShowModalPreview(false);\r\n }}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModalAuthorize.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <div className=\"row\">\r\n <input\r\n checked={authorizeOne}\r\n onChange={(value) => {\r\n setAuthorizeOne(!authorizeOne);\r\n }}\r\n name=\"service_report\"\r\n type=\"checkbox\"\r\n value=\"one\"\r\n className=\"with-gap col\"\r\n id={\"completo\"}\r\n />\r\n <h4 className=\"card-title col\"> {dataModalAuthorize.body}</h4>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <input\r\n checked={authorizeTwo}\r\n onChange={(value) => {\r\n setAuthorizeTwo(!authorizeTwo);\r\n }}\r\n name=\"service_report\"\r\n type=\"checkbox\"\r\n value=\"two\"\r\n className=\"with-gap col\"\r\n id={\"otro\"}\r\n />\r\n <h4 className=\"card-title col\">{dataModalAuthorize.bodyTwo}</h4>\r\n </div>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n {dataModalAuthorize.confirmButton && authorizeOne && authorizeTwo && (\r\n <Button\r\n variant=\"primary\"\r\n onClick={() => {\r\n authorizePerdiem(dataModalAuthorize.id);\r\n }}\r\n >\r\n Aceptar\r\n </Button>\r\n )}\r\n {dataModalAuthorize.rejectButton && (\r\n <Button\r\n variant=\"danger\"\r\n onClick={() => setShowModalAuthorize(false)}\r\n >\r\n Cancelar\r\n </Button>\r\n )}\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <div class=\"row page-titles\">\r\n <div class=\"col-md-10 align-self-center\">\r\n <h3 class=\"text-themecolor\">\r\n <i class=\"mdi mdi-clipboard-check\"></i> REPORTES\r\n </h3>\r\n </div>\r\n </div>\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <h4 className=\"card-title\">Listado de Reportes</h4>\r\n <h6 className=\"card-subtitle\">\r\n A continuación podrás encontrar todos los reportes\r\n generados por el empleado\r\n </h6>\r\n <ul className=\"nav nav-tabs\" role=\"tablist\">\r\n {showServices ? (\r\n <li className=\"nav-item\">\r\n {\" \"}\r\n <a\r\n className={\"nav-link \" + (tab == 0 && \"active\")}\r\n href=\"\"\r\n data-toggle=\"tab\"\r\n role=\"tab\"\r\n onClick={() => {\r\n setTab(0);\r\n }}\r\n >\r\n <span>Solicitudes</span>\r\n </a>{\" \"}\r\n </li>\r\n ) : null}\r\n <li className=\"nav-item\">\r\n {\" \"}\r\n <a\r\n className={\"nav-link \" + (tab == 1 && \"active\")}\r\n href=\"\"\r\n data-toggle=\"tab\"\r\n role=\"tab\"\r\n onClick={() => {\r\n setTab(1);\r\n }}\r\n >\r\n <span>Vista Previa</span>\r\n </a>{\" \"}\r\n </li>\r\n\r\n {showTabCanceled ? (\r\n <li className=\"nav-item\">\r\n {\" \"}\r\n <a\r\n className=\"nav-link\"\r\n href=\"\"\r\n data-toggle=\"tab\"\r\n role=\"tab\"\r\n onClick={() => {\r\n setTab(2);\r\n }}\r\n >\r\n <span>Reportes Cancelados</span>\r\n </a>{\" \"}\r\n </li>\r\n ) : null}\r\n {showTabAuthorized ? (\r\n <li className=\"nav-item\">\r\n {\" \"}\r\n <a\r\n className=\"nav-link\"\r\n href=\"\"\r\n data-toggle=\"tab\"\r\n role=\"tab\"\r\n onClick={() => {\r\n setTab(3);\r\n }}\r\n >\r\n <span>Reportes Autorizados</span>\r\n </a>{\" \"}\r\n </li>\r\n ) : null}\r\n </ul>\r\n <div className=\"d-flex no-block\"></div>\r\n <div className=\"table-responsive m-t-20\">\r\n {tab === 0 && showServices ? (\r\n <table\r\n id=\"example23\"\r\n className=\"display nowrap table table-hover table-striped table-bordered\"\r\n cellspacing=\"0\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th># Orden</th>\r\n <th>Empleado</th>\r\n <th>Cliente</th>\r\n <th>Ciudad</th>\r\n <th>Fecha creación</th>\r\n <th>Última modificación</th>\r\n <th>Comentarios</th>\r\n <th>Status</th>\r\n <th className=\"text-center\">Acciones</th>\r\n </tr>\r\n </thead>\r\n <tbody>{requests_table()}</tbody>\r\n </table>\r\n ) : null}\r\n </div>\r\n\r\n {tab === 1 ? (\r\n <>\r\n <div className=\"row\">\r\n <div className=\"col-lg-9 align-self-center\">\r\n <div\r\n className=\"btn-group\"\r\n role=\"group\"\r\n aria-label=\"Button group with nested dropdown\"\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n backMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-left\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n >\r\n {DatePreview[monthSelected].mes}\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n nextMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n {dataPreview.preview &&\r\n dataPreview.preview.length > 0 ? (\r\n <div className=\"col-lg-3 align-self-center mt-2 mt-sm-0\">\r\n {modifyOS.length > 0 ? \r\n <a\r\n style={{\r\n marginTop: \"10px\",\r\n marginLeft: \"10px\",\r\n }}\r\n type=\"button\"\r\n className=\"btn btn-info text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n endEditionOS();\r\n }}\r\n >\r\n <i className=\"fa fa-edit\"></i>\r\n {\" Terminar Edición\"}\r\n </a>\r\n : <>\r\n <a\r\n style={{\r\n marginTop: \"10px\",\r\n marginLeft: \"10px\",\r\n }}\r\n type=\"button\"\r\n className=\"btn btn-info text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n authorizePreview(true);\r\n }}\r\n >\r\n <i className=\"fa fa-check\"></i> Autorizar\r\n Reporte\r\n </a>\r\n <a\r\n style={{\r\n marginTop: \"10px\",\r\n marginLeft: \"10px\",\r\n }}\r\n type=\"button\"\r\n className=\"btn btn-danger text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n authorizePreview(false);\r\n }}\r\n >\r\n <i className=\"fa fa-times\"></i>\r\n {\" Rechazar Reporte\"}\r\n </a>\r\n </>\r\n }\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {dataPreview.preview &&\r\n dataPreview.preview.length > 0 ? (\r\n <div className=\"row p-20\">\r\n <div className=\"col-lg-12\">\r\n <h3 style={{ display: \"inline\" }}>Nombre:</h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {props.location.state.NAME || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n No. De empleado:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {props.location.state.Trab_ID || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Centro de costo:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {dataPreview?.preview[0].center || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Mes de reporte:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {DatePreview[monthSelected].mes}\r\n </p>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n <div className=\"p-20\">\r\n <div className=\"table-responsive\">\r\n <table\r\n className=\"display nowrap table table-hover table-striped table-bordered text-center\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th>Fecha</th>\r\n <th>Ocupación / Viaje</th>\r\n <th>Cliente</th>\r\n <th>Ciudad de Trabajo</th>\r\n <th>RT</th>\r\n <th>OS</th>\r\n <th>OS Anterior</th>\r\n\r\n <th>$ Máximo autorizado para alimentos</th>\r\n <th>$ acumulado, mes de reporte</th>\r\n\r\n <th>Comentarios Servicio Técnico</th>\r\n <th>Comentarios Contabilidad</th>\r\n <th> Comentarios RH</th>\r\n <th>Validación Final ST</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {renderTablePreview(dataPreview, true)}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </>\r\n ) : null}\r\n\r\n {tab === 2 ? (\r\n <>\r\n <div className=\"row\">\r\n <div className=\"col-lg-9 align-self-center\">\r\n <div\r\n className=\"btn-group\"\r\n role=\"group\"\r\n aria-label=\"Button group with nested dropdown\"\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n backMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-left\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n >\r\n {DatePreview[monthSelected].mes}\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n nextMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n {dataPreviewCanceled?.preview &&\r\n dataPreviewCanceled.preview.length > 0 ? (\r\n <div className=\"col-lg-3 align-self-center mt-2 mt-sm-0\">\r\n <a\r\n style={{\r\n marginTop: \"10px\",\r\n marginLeft: \"10px\",\r\n }}\r\n type=\"button\"\r\n className=\"btn btn-info text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n getPreviewData(\"7\", true);\r\n }}\r\n >\r\n <i className=\"fa fa-check\"></i> Autorizar\r\n Reporte\r\n </a>\r\n\r\n <a\r\n style={{\r\n marginTop: \"10px\",\r\n marginLeft: \"10px\",\r\n }}\r\n type=\"button\"\r\n className=\"btn btn-danger text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n getPreviewData(\"7\", false);\r\n }}\r\n >\r\n <i className=\"fa fa-times\"></i>\r\n {\" Rechazar Reporte\"}\r\n </a>\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {dataPreviewCanceled?.preview &&\r\n dataPreviewCanceled.preview.length > 0 ? (\r\n <div className=\"row p-20\">\r\n <div className=\"col-lg-12\">\r\n <h3 style={{ display: \"inline\" }}>Nombre:</h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {dataPreviewCanceled?.preview[0].name || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n No. De empleado:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {dataPreviewCanceled?.preview[0].employeeId ||\r\n \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Centro de costo:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {dataPreviewCanceled?.preview[0].center || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Mes de reporte:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {DatePreview[monthSelected].mes}\r\n </p>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n <div className=\"p-20\">\r\n <div className=\"table-responsive\">\r\n <table\r\n className=\"display nowrap table table-hover table-striped table-bordered text-center\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th>Fecha</th>\r\n <th>Ocupación / Viaje</th>\r\n <th>Cliente</th>\r\n <th>Ciudad de Trabajo</th>\r\n <th>RT</th>\r\n <th>OS</th>\r\n <th>OS Anterior</th>\r\n\r\n <th>$ Máximo autorizado para alimentos</th>\r\n <th>$ acumulado, mes de reporte</th>\r\n\r\n <th>Comentarios Servicio Técnico</th>\r\n <th> Comentarios RH</th>\r\n <th>Comentarios Contabilidad</th>\r\n <th>Validación Final ST</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {renderTablePreview(dataPreviewCanceled, false)}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </>\r\n ) : null}\r\n\r\n {tab === 3 ? (\r\n <>\r\n <div className=\"row\">\r\n <div className=\"col-lg-9 align-self-center\">\r\n <div\r\n className=\"btn-group\"\r\n role=\"group\"\r\n aria-label=\"Button group with nested dropdown\"\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n backMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-left\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n >\r\n {DatePreview[monthSelected].mes}\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={() => {\r\n nextMonth();\r\n }}\r\n >\r\n <i className=\"fa fa-chevron-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n {dataPreviewAuthorized?.preview &&\r\n dataPreviewAuthorized.preview.length > 0 ? (\r\n <div className=\"col-lg-3 align-self-center mt-2 mt-sm-0\">\r\n <a\r\n type=\"button\"\r\n className=\"btn btn-info text-white\"\r\n data-toggle=\"modal\"\r\n data-target=\"#exampleModal\"\r\n onClick={() => {\r\n modalNomina(\"8\", true);\r\n }}\r\n >\r\n <i className=\"fa fa-check\"></i> Enviar a Nomina\r\n </a>\r\n\r\n {/*<a style={{ marginTop: '10px' }} type=\"button\" className=\"btn btn-danger text-white\" data-toggle=\"modal\" data-target=\"#exampleModal\"\r\n onClick={() => { getPreviewData('8', false) }}\r\n ><i className=\"fa fa-times\"></i>{' Rechazar Reporte'}</a>*/}\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {dataPreviewAuthorized?.preview &&\r\n dataPreviewAuthorized.preview.length > 0 ? (\r\n <div className=\"row p-20\">\r\n <div className=\"col-lg-12\">\r\n <h3 style={{ display: \"inline\" }}>Nombre:</h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {props.location.state.NAME || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n No. De empleado:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {props.location.state.Trab_ID || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Centro de costo:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {dataPreviewAuthorized?.preview[0].center || \"\"}\r\n </p>\r\n <br />\r\n <h3 style={{ display: \"inline\" }}>\r\n Mes de reporte:\r\n </h3>\r\n <p style={{ display: \"inline\" }} className=\"ml-2\">\r\n {DatePreview[monthSelected].mes}\r\n </p>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n <div className=\"p-20\">\r\n <div className=\"table-responsive\">\r\n <table\r\n className=\"display nowrap table table-hover table-striped table-bordered text-center\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th>Fecha</th>\r\n <th>Ocupación / Viaje</th>\r\n <th>Cliente</th>\r\n <th>Ciudad de Trabajo</th>\r\n <th>RT</th>\r\n <th>OS</th>\r\n <th>OS Anterior</th>\r\n\r\n <th>$ Máximo autorizado para alimentos</th>\r\n <th>$ acumulado, mes de reporte</th>\r\n\r\n <th>Comentarios Servicio Técnico</th>\r\n <th>Comentarios Contabilidad</th>\r\n <th> Comentarios RH</th>\r\n <th>Validación Final ST</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {renderTablePreview(\r\n dataPreviewAuthorized,\r\n false\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </>\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getPerdiemData: state.getPerdiem.getPerdiemData,\r\n getPerdiemError: state.getPerdiem.getPerdiemError,\r\n\r\n rejectChiefData: state.rejectChief.rejectChiefData,\r\n rejectChiefError: state.rejectChief.rejectChiefError,\r\n\r\n authorizeChiefData: state.authorizeChief.authorizeChiefData,\r\n authorizeChiefError: state.authorizeChief.authorizeChiefError,\r\n\r\n getPreviewData: state.getPreview.getPreviewData,\r\n getPreviewError: state.getPreview.getPreviewError,\r\n\r\n authorizeRejectData: state.authorizeReject.authorizeRejectData,\r\n authorizeRejectError: state.authorizeReject.authorizeRejectError,\r\n\r\n getPreviewCanceledData: state.getPreviewCanceled.getPreviewCanceledData,\r\n getPreviewCanceledError: state.getPreviewCanceled.getPreviewCanceledError,\r\n\r\n getPreviewAuthorizedData:\r\n state.getPreviewAuthorized.getPreviewAuthorizedData,\r\n getPreviewAuthorizedError:\r\n state.getPreviewAuthorized.getPreviewAuthorizedError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n employeeMovNomData: state.employeeMovNom.employeeMovNomData,\r\n employeeMovNomError: state.employeeMovNom.employeeMovNomError,\r\n\r\n editPerdiemData: state.editPerdiem.editPerdiemData,\r\n editPerdiemError: state.editPerdiem.editPerdiemError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n GetPerdiemAction,\r\n RejectChiefAction,\r\n AuthorizeChiefAction,\r\n GetPreviewAction,\r\n AuthorizeRejectAction,\r\n GetPreviewCanceledAction,\r\n GetPreviewAuthorizedAction,\r\n employeeMovNomAction,\r\n EditPerdiemAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(ReportServiceEmpleado)\r\n);\r\n","import {\r\n REJECT_CHIEF_SUCCESS,\r\n REJECT_CHIEF_ERROR,\r\n REJECT_CHIEF_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const RejectChiefAction = (data, message) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(message),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/requests/${data}/reject`\r\n\r\n console.log(' REJECT_CHIEF RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: REJECT_CHIEF_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n RejectChief: responseJson\r\n }\r\n console.log('RESPONSE REJECT_CHIEF DATA: ', response);\r\n dispatch({ type: REJECT_CHIEF_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR REJECT_CHIEF DATA: ', response);\r\n dispatch({ type: REJECT_CHIEF_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR REJECT_CHIEF DATA: ', responseError);\r\n dispatch({ type: REJECT_CHIEF_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n AUTHORIZE_CHIEF_SUCCESS,\r\n AUTHORIZE_CHIEF_ERROR,\r\n AUTHORIZE_CHIEF_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const AuthorizeChiefAction = (data, id) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/requests/${id}/authorize`\r\n\r\n console.log(' AUTHORIZE_CHIEF RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: AUTHORIZE_CHIEF_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n AuthorizeChief: responseJson\r\n }\r\n console.log('RESPONSE AUTHORIZE_CHIEF DATA: ', response);\r\n dispatch({ type: AUTHORIZE_CHIEF_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR AUTHORIZE_CHIEF DATA: ', response);\r\n dispatch({ type: AUTHORIZE_CHIEF_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR AUTHORIZE_CHIEF DATA: ', responseError);\r\n dispatch({ type: AUTHORIZE_CHIEF_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n GET_PREVIEW_CANCELED_SUCCESS,\r\n GET_PREVIEW_CANCELED_ERROR,\r\n GET_PREVIEW_CANCELED_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const GetPreviewCanceledAction = (company, employeeId, tipoEmpleado, fecha) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(message),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/preview/view/${company}/${employeeId}/${tipoEmpleado}/${fecha}`\r\n\r\n console.log(' GET_PREVIEW RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (company === 'PURGE') {\r\n dispatch({ type: GET_PREVIEW_CANCELED_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n GetPreviewCanceled: responseJson\r\n }\r\n console.log('RESPONSE GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_CANCELED_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_CANCELED_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', responseError);\r\n dispatch({ type: GET_PREVIEW_CANCELED_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n GET_PREVIEW_AUTHORIZED_SUCCESS,\r\n GET_PREVIEW_AUTHORIZED_ERROR,\r\n GET_PREVIEW_AUTHORIZED_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const GetPreviewAuthorizedAction = (company, employeeId, tipoEmpleado, fecha) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(message),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/preview/view/${company}/${employeeId}/${tipoEmpleado}/${fecha}`\r\n\r\n\r\n console.log(' GET_PREVIEW RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (company === 'PURGE') {\r\n dispatch({ type: GET_PREVIEW_AUTHORIZED_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n GetPreviewAuthorized: responseJson\r\n }\r\n console.log('RESPONSE GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_AUTHORIZED_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', response);\r\n dispatch({ type: GET_PREVIEW_AUTHORIZED_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR GET_PREVIEW DATA: ', responseError);\r\n dispatch({ type: GET_PREVIEW_AUTHORIZED_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import { changeXml, EmployeeMovNomResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMPLOYEE_MOV_NOM_SUCCESS,\r\n EMPLOYEE_MOV_NOM_ERROR,\r\n EMPLOYEE_MOV_NOM_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const employeeMovNomAction = (data, server) => {\r\n let configJson = {\r\n 'tem:EmpleadoMovNom': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoNomina/EmpleadoMovNom\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoNomina.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST EmpeladosAll:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMPLOYEE_MOV_NOM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMPLOYEE_MOV_NOM_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMPLOYEE_MOV_NOM_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n EmployeeMovNom: EmployeeMovNomResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMPLOYEE_MOV_NOM DATA: ', response);\r\n dispatch({ type: EMPLOYEE_MOV_NOM_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMPLOYEE_MOV_NOM DATA: ', response);\r\n dispatch({ type: EMPLOYEE_MOV_NOM_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMPLOYEE_MOV_NOM DATA: ', responseError);\r\n dispatch({ type: EMPLOYEE_MOV_NOM_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import React, { useState, useEffect } from \"react\";\n\nconst Row = (props) => {\n const [show, setShow] = useState(false);\n return (\n <td\n onClick={() => {\n setShow(!show);\n }}\n style={{\n whiteSpace: show ? \"normal\" : \"nowrap\",\n width: \"400px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n display: \"block\",\n }}\n >\n {props.item.Dia}\n </td>\n );\n};\n\nexport default Row;\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { getDataUserAction } from '../../api/actions/common/DataUserAction.js';\r\nimport { AfilIndividualizadoAction } from \"../../api/actions/empleado/AfilIndividualizadoAction.js\";\r\n\r\nimport { getParams, getSesionStorage } from '../../utils/index.js';\r\nimport { alert, confirm } from '../../utils/common/alert.js';\r\nimport Card from '../../components/shared/Card.js';\r\nimport Row from '../../components/row/Row.js';\r\nimport FileBase64 from 'react-file-base64';\r\n\r\nconst AfilIndividualizado = props => {\r\n const { params, server } = getParams();\r\n const [ loading, setLoading ] = useState(true);\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [afilPersonal, setAfilPersonal] = useState({\r\n Archivo: '',\r\n Empleado_Nombre: '', \r\n IMSS: '',\r\n RFC: '',\r\n Trab_ID: '',\r\n });\r\n const [datosPersonales, setDatosPersonales] = useState({});\r\n \r\n useEffect(() => {\r\n getDataUser();\r\n AfilIndividualizado();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.dataUserData && props.dataUserData.isOK === true) {\r\n if ('DataUser' in props.dataUserData) {\r\n setDatosPersonales({...props.dataUserData.DataUser});\r\n console.log('OIHB RESULT', datosPersonales);\r\n }\r\n } \r\n else if (props.dataUserError && props.dataUserError.isOK === false) {\r\n setDatosPersonales({});\r\n props.getDataUserAction(\"PURGE\", \"\");\r\n }\r\n }, [props.dataUserData, props.dataUserError]);\r\n \r\n useEffect(() => {\r\n if (props.afilIndividualizadoData && props.afilIndividualizadoData.isOK === true) {\r\n if ('AfilIndividualizado' in props.afilIndividualizadoData) {\r\n setAfilPersonal({...props.afilIndividualizadoData.AfilIndividualizado});\r\n }\r\n props.AfilIndividualizadoAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n } \r\n else if (props.afilIndividualizadoError && props.afilIndividualizadoError.isOK === false) {\r\n setAfilPersonal({});\r\n props.AfilIndividualizadoAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.afilIndividualizadoData, props.afilIndividualizadoError]);\r\n \r\n const getDataUser = () => {\r\n let send = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:TrabID\": params['tem:TrabID'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n };\r\n \r\n props.getDataUserAction(send, server);\r\n };\r\n\r\n const AfilIndividualizado = () => {\r\n let send = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Trab_ID\": params['tem:TrabID'],\r\n \"tem:NoPath\": true,\r\n };\r\n \r\n props.AfilIndividualizadoAction(send, server);\r\n };\r\n\r\n const triggerCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n let url = (afilPersonal.Archivo || '').trim(); \r\n // if (url.length == 0) {\r\n // url = 'https://coronavirus.gob.mx/wp-content/uploads/2021/08/GuiaTx_COVID19_ConsensoInterinstitucional_2021.08.03.pdf';\r\n // }\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Afil Individualizado\" icon=\"mdi mdi-medical-bag\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title font-weight-bold\">Datos personales</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n {!loading && <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\" data-toggle=\"collapse\" data-target=\"#collapseCenter\" aria-expanded=\"false\" aria-controls=\"collapseCenter\" onClick={triggerCollapse}>\r\n {collapsed ?\r\n <i className=\"mdi mdi-chevron-down\"></i>\r\n :\r\n <i className=\"mdi mdi-chevron-up\"></i>\r\n }\r\n </button>}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n <div className=\"card-body\">\r\n <div className='card-group collapse show' id='collapseCenter'>\r\n <Card\r\n icon='mdi mdi-account-box text-info'\r\n value={datosPersonales.trabId}\r\n name='ID DE EMPLEADO'/>\r\n\r\n <Card\r\n icon='mdi mdi-account-card-details text-secondary'\r\n value={(datosPersonales.Paterno + ' ' + datosPersonales.Materno + ' ' + datosPersonales.Nombre)}\r\n name='NOMBRE'/>\r\n\r\n <Card\r\n icon='mdi mdi-hospital-building text-success'\r\n value={datosPersonales.nss}\r\n name='NSS'/>\r\n \r\n <Card\r\n icon='mdi mdi-briefcase-check text-purple'\r\n value={datosPersonales.rfc}\r\n name='RFC'/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* <div className=\"card-body\"> */}\r\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\r\n marginTop: -29 + 'px',\r\n WebkitOverflowScrolling: 'touch',\r\n paddingBottom: 0,\r\n overflowY: 'scroll'}}>\r\n {url.length > 0 && <embed src={url + '#page=1&zoom=130'} width=\"575\" height=\"500\"></embed>}\r\n </div>\r\n {/* </div> */}\r\n\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n afilIndividualizadoData: state.afilIndividualizado.afilIndividualizadoData,\r\n afilIndividualizadoError: state.afilIndividualizado.afilIndividualizadoError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDataUserAction,\r\n AfilIndividualizadoAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AfilIndividualizado));","\r\nimport { changeXml, AfilIndividualizadoResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n AFILINDIVIDUALIZADO_SUCCESS, \r\n AFILINDIVIDUALIZADO_ERROR, \r\n AFILINDIVIDUALIZADO_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const AfilIndividualizadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoEmpleado';\r\n let action = 'AfilIndividualizado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n console.log('OIHB RESULT', obj);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: AFILINDIVIDUALIZADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n AfilIndividualizado: AfilIndividualizadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE AFILINDIVIDUALIZADO DATA: ', response);\r\n dispatch({ type: AFILINDIVIDUALIZADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET AFILINDIVIDUALIZADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: AFILINDIVIDUALIZADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n AfilIndividualizado: AfilIndividualizadoResponse(body)\r\n };\r\n console.log('RESPONSE AFILINDIVIDUALIZADO DATA: ', response);\r\n dispatch({ type: AFILINDIVIDUALIZADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET AFILINDIVIDUALIZADO DATA: ', response);\r\n dispatch({ type: AFILINDIVIDUALIZADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET AFILINDIVIDUALIZADO DATA: ', responseError);\r\n dispatch({ type: AFILINDIVIDUALIZADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import {\r\n CONCEPTS_SUCCESS,\r\n CONCEPTS_ERROR,\r\n CONCEPTS_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const ConceptsAction = (type) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/concepts' + type\r\n\r\n console.log(' CONCEPTS RECUEST:', url, config, type);\r\n\r\n return (dispatch) => {\r\n\r\n if (type === 'PURGE') {\r\n dispatch({ type: CONCEPTS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n Concepts: responseJson\r\n }\r\n console.log('RESPONSE CONCEPTS DATA: ', response);\r\n dispatch({ type: CONCEPTS_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR CONCEPTS DATA: ', response);\r\n dispatch({ type: CONCEPTS_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR CONCEPTS DATA: ', responseError);\r\n dispatch({ type: CONCEPTS_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import React, { useState, useEffect } from \"react\";\n\nimport { withRouter, Link } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { GetPerdiemAction } from \"../../api/actions/perdiem/GetPerdiemAction\";\nimport { DeletePerdiemAction } from \"../../api/actions/perdiem/DeletePerdiemAction\";\nimport { GeneratePerdiemAction } from \"../../api/actions/perdiem/GeneratePerdiemAction\";\nimport Modal from \"react-bootstrap/Modal\";\nimport { GetPreviewAction } from \"../../api/actions/perdiem/GetPreviewAction\";\nimport { AuthorizeRejectAction } from \"../../api/actions/perdiem/AuthorizeRejectAction\";\nimport { AuthorizersAction } from \"../../api/actions/perdiem/AuthorizersAction\";\nimport { SendEmailsAction } from \"../../api/actions/perdiem/SendEmailsAction\";\nimport { getDataChiefAction } from \"../../api/actions/perdiem/SendDataChiefAction\";\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\n\nimport { EditPerdiemAction } from '../../api/actions/perdiem/EditPerdiemAction';\n\nimport CryptoJS from \"crypto-js\";\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar.js\";\nimport Title from \"../layout/Title.js\";\nimport TitleReport from \"../layout/TitleReport.js\";\nimport Footer from \"../layout/Footer.js\";\nimport moment from \"moment\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { getParams } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\n\nconst ReportService = (props) => {\n let thisYear = new Date().getFullYear();\n let month = new Date().getMonth();\n\n const [loading, setLoading] = useState(false);\n const [reportsService, setReportsService] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({});\n const [tab, setTab] = useState(0);\n\n const [monthSelected, setMonthSelected] = useState(month);\n const [dataPreview, setDataPreview] = useState({});\n const [messages, setMessages] = useState([]);\n const [concepts, setConcepts] = useState([]);\n const [modifyOS, setModifyOS] = useState([]);\n const [backupDataPreview, setBackupDataPreview] = useState([]);\n\n const [user, setUser] = useState({});\n\n const nextMonth = () => {\n let monthNumber = monthSelected + 1;\n console.log(\"MONTH\", monthNumber);\n if (monthNumber > 11) {\n monthNumber = 0;\n }\n setMonthSelected(monthNumber);\n getPreview(monthNumber);\n };\n\n const backMonth = () => {\n let monthNumber = monthSelected - 1;\n if (monthNumber < 0) {\n monthNumber = 11;\n }\n setMonthSelected(monthNumber);\n getPreview(monthNumber);\n };\n\n let DatePreview = [\n { mes: `ENERO ${thisYear}`, date: `${thisYear}-01-01` },\n { mes: `FEBRERO ${thisYear}`, date: `${thisYear}-02-01` },\n { mes: `MARZO ${thisYear}`, date: `${thisYear}-03-01` },\n { mes: `ABRIL ${thisYear}`, date: `${thisYear}-04-01` },\n { mes: `MAYO ${thisYear}`, date: `${thisYear}-05-01` },\n { mes: `JUNIO ${thisYear}`, date: `${thisYear}-06-01` },\n { mes: `JULIO ${thisYear}`, date: `${thisYear}-07-01` },\n { mes: `AGOSTO ${thisYear}`, date: `${thisYear}-08-01` },\n { mes: `SEPTIEMBRE ${thisYear}`, date: `${thisYear}-09-01` },\n { mes: `OCTUBRE ${thisYear}`, date: `${thisYear}-10-01` },\n { mes: `NOVIEMBRE ${thisYear}`, date: `${thisYear}-11-01` },\n { mes: `DICIEMBRE ${thisYear}`, date: `${thisYear}-12-01` },\n ];\n\n const getPreview = (monthSel) => {\n let { params, server } = getParams();\n props.GetPreviewAction(\n params[\"tem:IdEmpresa\"],\n params[\"tem:TrabID\"],\n \"1\",\n DatePreview[monthSel].date\n );\n };\n\n useEffect(() => {\n getPreview(month);\n getList();\n let { params, server } = getParams();\n let paramsAuthorizers = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.AuthorizersAction(paramsAuthorizers, server);\n\n let paramsToGetChief = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:Trab_ID\": params[\"tem:TrabID\"],\n };\n\n props.getDataChiefAction(paramsToGetChief, server);\n props.ConceptsAction(\"?type=no-paid\");\n\n let user = sessionStorage.getItem(\"userSaved\");\n setUser(JSON.parse(user));\n }, []);\n\n useEffect(() => {\n let newConcept = [];\n if (props.conceptsData && props.conceptsData.isOK) {\n console.log(\"CONCEPTS\", props.conceptsData.Concepts);\n let concepts = props.conceptsData.Concepts.results;\n\n if (concepts && concepts.length > 0) {\n concepts.map((concept) => {\n newConcept.push(concept);\n });\n }\n setConcepts(newConcept);\n props.ConceptsAction(\"PURGE\");\n } else if (props.conceptsError && props.conceptsError.isOK === false) {\n props.ConceptsAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.conceptsData, props.conceptsError]);\n\n const getList = () => {\n let { params, server } = getParams();\n setLoading(true);\n props.GetPerdiemAction(params[\"tem:TrabID\"], params[\"tem:IdEmpresa\"]);\n };\n\n useEffect(() => {\n if (props.getPerdiemData && props.getPerdiemData.isOK === true) {\n console.log(\"PERDIEMS\", props.getPerdiemData.GetPerdiem);\n if (props?.getPerdiemData?.GetPerdiem?.results.length > 0) {\n setReportsService(props?.getPerdiemData?.GetPerdiem.results);\n }\n setLoading(false);\n } else if (props.getPerdiemError && props.getPerdiemError.isOK === false) {\n props.GetPerdiemAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.getPerdiemData, props.getPerdiemError]);\n\n useEffect(() => {\n if (props.deletePerdiemData && props.deletePerdiemData.isOK === true) {\n console.log(\"DELETE\", props.getPerdiemData.DeletePerdiem);\n getList();\n props.DeletePerdiemAction(\"PURGE\", \"\");\n setLoading(false);\n alert(\"Reporte eliminado de forma exitosa.\");\n } else if (props.getPerdiemError && props.getPerdiemError.isOK === false) {\n props.DeletePerdiemAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.deletePerdiemData, props.deletePerdiemError]);\n\n useEffect(() => {\n if (props.generatePerdiemData && props.generatePerdiemData.isOK === true) {\n let perdiemRes = props.generatePerdiemData.GeneratePerdiem;\n console.log(\"isaac\", perdiemRes);\n if (perdiemRes && \"error\" in perdiemRes) {\n alert(perdiemRes.error);\n props.GeneratePerdiemAction(\"PURGE\", \"\");\n getList();\n\n setLoading(false);\n } else {\n getList();\n props.GeneratePerdiemAction(\"PURGE\", \"\");\n setLoading(false);\n alert(\"Reporte generado exitosamente.\");\n }\n } else if (\n props.generatePerdiemError &&\n props.generatePerdiemError.isOK === false\n ) {\n props.GeneratePerdiemAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.generatePerdiemData, props.generatePerdiemError]);\n\n useEffect(() => {\n if (props.getPreviewData && props.getPreviewData.isOK === true) {\n console.log(\"PREVIEW\", props.getPreviewData.GetPreview);\n\n let previewData = props.getPreviewData.GetPreview.results;\n let messagesData = [];\n if (previewData && previewData?.length > 0) {\n previewData.map((dat, i) => {\n let obj = {\n ...dat,\n };\n messagesData.push(obj);\n });\n }\n console.log(\"lleno data de tabla auth\");\n setDataPreview({ preview: messagesData });\n setMessages(messagesData);\n setLoading(false);\n } else if (props.getPreviewError && props.getPreviewError.isOK === false) {\n props.GetPreviewAction(\"PURGE\", \"\", \"\");\n setLoading(false);\n }\n }, [props.getPreviewData, props.getPreviewError]);\n\n useEffect(() => {\n if (props.authorizeRejectData && props.authorizeRejectData.isOK === true) {\n console.log(\n \"REJECT_AUTHORIZE PREVIEW\",\n props.authorizeRejectData.AuthorizeReject\n );\n setMonthSelected(month);\n getPreview(month);\n setLoading(false);\n props.AuthorizeRejectAction(\"PURGE\", \"\");\n } else if (\n props.authorizeRejectError &&\n props.authorizeRejectError.isOK === false\n ) {\n props.AuthorizeRejectAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.authorizeRejectData, props.authorizeRejectError]);\n\n useEffect(() => {\n if (props.authorizersData && props.authorizersData.isOK) {\n let data = props.authorizersData.Authorizers;\n console.log(\"COMPANY_EMAIL\", props?.dataUserData);\n console.log(\"COMPANY_EMAIL\", props?.dataUserData?.DataUser);\n\n let { params, server } = getParams();\n let newData = { data, company: params[\"tem:IdEmpresa\"] };\n props.SendEmailsAction(newData);\n } else if (\n props.authorizersError &&\n props.authorizersError.isOK === false\n ) {\n props.AuthorizersAction(\"PURGE\");\n }\n }, [props.authorizersData, props.authorizersError]);\n\n useEffect(() => {\n if (props.sendDataChiefData && props.sendDataChiefData.isOK) {\n let data = props.sendDataChiefData.DataChief;\n console.log(\"DATA_CHIEF\", data);\n } else if (\n props.sendDataChiefError &&\n props.sendDataChiefError.isOK === false\n ) {\n props.getDataChiefAction(\"PURGE\");\n }\n }, [props.sendDataChiefData, props.sendDataChiefError]);\n\n let validateSelect = () => {\n let allValues = true;\n dataPreview.preview.map((val) => {\n let option = val.data.concept != null ? true : false;\n if (option == false) {\n allValues = option;\n }\n });\n return allValues;\n };\n\n const authorizePreview = (authorize) => {\n if (validateSelect()) {\n let { params, server } = getParams();\n\n let messagesArray = [];\n dataPreview.preview.map((prev) => {\n let objPrev = {\n id: prev.id,\n concept: prev.data.concept,\n };\n messagesArray.push(objPrev);\n });\n\n let dataAuthorize = {\n messages: messagesArray,\n authorize: authorize,\n role: 1,\n date: DatePreview[monthSelected].date,\n };\n console.log(\"SENDSEND\", dataAuthorize);\n props.AuthorizeRejectAction(\n dataAuthorize,\n params[\"tem:IdEmpresa\"],\n params[\"tem:TrabID\"]\n );\n } else {\n alert(\"por favor seleccione todos los campos Ocupación / Viaje\");\n }\n };\n\n const handleDelete = (item) => {\n setDataModal({\n title: \"Se eliminará el reporte\",\n body: `¿Estás seguro que deseas eliminar el reporte?`,\n rejectButton: true,\n confirmButton: true,\n itemId: item.id,\n type: 2,\n });\n setShowModal(true);\n };\n\n const generate = (item) => {\n console.log('OIHB \"generate\"', item);\n let reports = item.data.workReport;\n let isComplete = false;\n reports.map((rep) => {\n console.log(rep.startHour);\n if (rep.startHour != \"\") {\n isComplete = true;\n return true;\n }\n });\n\n if (isComplete) {\n setDataModal({\n title: \"Se creará el reporte\",\n body: `¿Estás seguro que deseas generar el reporte?, no podrás modificarlo nuevamente.`,\n rejectButton: true,\n confirmButton: true,\n itemId: item.id,\n type: 1,\n });\n setShowModal(true);\n } else {\n setDataModal({\n title: \"No se puede generar el reporte\",\n body: `Por favor completa el reporte`,\n rejectButton: true,\n confirmButton: false,\n itemId: item.id,\n type: 1,\n });\n setShowModal(true);\n }\n };\n\n const _handleRowClick = (item) => {\n let reports = props?.getPerdiemData?.GetPerdiem?.results || [];\n let numOrdenes = [];\n if (reports && reports.length > 0) {\n numOrdenes = reports.map(m => { return Number(m.data.orderNo) });\n console.log('OIHB Num. Ordenes:', numOrdenes);\n }\n\n props.history.push(\n `${process.env.PUBLIC_URL}/reporte-tecnico/detalle-reporte`,\n { report: item, type: \"borrador\", numOrdenes: numOrdenes }\n );\n };\n\n const _newReport = () => {\n // let reports = props?.getPerdiemData?.GetPerdiem?.results || [];\n // let numberFolio = 0;\n // if (reports && reports.length > 0) {\n // numberFolio = reports[reports.length - 1].data.folio;\n // }\n let reports = props?.getPerdiemData?.GetPerdiem?.results || [];\n let folios = [];\n let numOrdenes = [];\n let numberFolio = 0;\n if (reports && reports.length > 0) {\n folios = reports.map(m => { return m.data.folio });\n console.log('OIHB Folios:', folios);\n numOrdenes = reports.map(m => { return Number(m.data.orderNo) });\n console.log('OIHB Num. Ordenes:', numOrdenes);\n\n numberFolio = Math.max(...folios);\n }\n\n console.log('OIHB Folio:', 'Ultimo ' + Number(numberFolio) + ', Proximo ' + (Number(numberFolio)+1));\n props.history.push(\n `${process.env.PUBLIC_URL}/reporte-tecnico/detalle-reporte`,\n { folio: Number(numberFolio) + 1, numOrdenes: numOrdenes, PerdiemData: reports }\n );\n };\n\n const _handleSign = (item) => {\n props.history.push(\n `${process.env.PUBLIC_URL}/reporte-tecnico/detalle-reporte`,\n { report: item, type: \"firma\" }\n );\n };\n\n const handleModal = (item, action) => {\n console.log(\"GENERATE\", item);\n if (action === 1) {\n props.GeneratePerdiemAction(item);\n }\n if (action === 2) {\n props.DeletePerdiemAction(item);\n }\n\n setShowModal(false);\n };\n\n const renderStatus = (status, item) => {\n switch (status) {\n case 0:\n return (\n <>\n <th>\n <span className=\"badge badge-info\">Borrador</span>\n </th>\n <td className=\"text-center\">\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Editar Reporte\"\n onClick={() => {\n _handleRowClick(item);\n }}\n >\n <i className=\"fas fa-pencil-alt\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Generar\"\n onClick={() => {\n generate(item);\n }}\n >\n <i className=\"mdi mdi-sync\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Eliminar Reporte\"\n onClick={() => {\n handleDelete(item);\n }}\n >\n <i className=\"mdi mdi-close\"></i>\n </button>\n </td>\n </>\n );\n break;\n\n case 1:\n return (\n <>\n <th>\n <span className=\"badge badge-primary\">Generado</span>\n </th>\n <td className=\"text-center\">\n <a\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Descargar Reporte\"\n href={`${localStorage.getItem(\"REACT_APP_PERDIEM\")}perdiems/requests/download-pdf/${item.id}`}\n >\n <i className=\"mdi mdi-eye\"></i>\n </a>\n <span title=\"Firmar Reporte\">\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n data-toggle=\"modal\"\n onClick={() => {\n _handleSign(item);\n }}\n >\n <i className=\"mdi mdi-pen\"></i>\n </button>\n </span>\n </td>\n </>\n );\n break;\n case 2:\n return (\n <>\n <th>\n <span className=\"badge badge-success\">Firmado</span>\n </th>\n <td className=\"text-center\">\n <a\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Descargar Reporte\"\n href={`${localStorage.getItem(\"REACT_APP_PERDIEM\")}perdiems/requests/download-pdf/${item.id}`}\n >\n <i className=\"mdi mdi-download\"></i>\n </a>\n </td>\n </>\n );\n break;\n case 3:\n return (\n <>\n <th>\n <span className=\"badge badge-danger\">Cancelado</span>\n </th>\n <td className=\"text-center\">\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Editar Reporte\"\n onClick={() => {\n _handleRowClick(item);\n }}\n >\n <i className=\"fas fa-pencil-alt\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Generar\"\n onClick={() => {\n generate(item);\n }}\n >\n <i className=\"mdi mdi-sync\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Eliminar Reporte\"\n onClick={() => {\n handleDelete(item);\n }}\n >\n <i className=\"mdi mdi-close\"></i>\n </button>\n </td>\n </>\n );\n break;\n case 4:\n return (\n <>\n <th>\n <span\n className=\"badge badge-danger\"\n style={{ backgroundColor: \"green\" }}\n >\n Autorizado\n </span>\n </th>\n <td className=\"text-center\">\n <a\n type=\"button\"\n className=\"btn btn-rounded btn-secondary ml-2\"\n title=\"Descargar Reporte\"\n href={`${localStorage.getItem(\"REACT_APP_PERDIEM\")}perdiems/requests/download-pdf/${item.id}`}\n >\n <i className=\"mdi mdi-download\"></i>\n </a>\n </td>\n </>\n );\n break;\n default:\n break;\n }\n };\n\n const requests_table = () => {\n let table = [];\n let reports = reportsService; //props.myMessagesRhData.MyMessagesARh;\n if (reports && reports.length >= 0) {\n if (reports.length <= 0) {\n table.push(\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\n <td>No hay solicitudes para mostrar.</td>\n </tr>\n );\n } else {\n console.log(\"DATA_PERDIEM\", reports);\n reports.map((item, i) => {\n table.push(\n <tr key={i} className=\"\" style={{ cursor: \"pointer\" }}>\n <td>#{item.data.orderNo}</td>\n <td>{item.data.technicalName}</td>\n <td>{item.data.clientName}</td>\n <td>{item.data.cityClient}</td>\n <td>{moment(item.created_at).format(\"DD/MM/YYYY\")}</td>\n <td>{moment(item.updated_at).format(\"DD/MM/YYYY\")}</td>\n <td>{item?.rejectMessage ? item?.rejectMessage : \"N/A\"}</td>\n {renderStatus(item.status, item)}\n </tr>\n );\n });\n }\n } else {\n table.push(\n <tr className=\"unread\">\n <td>No hay Reportes para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n }\n return table;\n };\n\n const messagesTripWorkWait = (param, value, id, index, one, two) => {\n let objMesages = dataPreview.preview;\n let objIndex = objMesages[index];\n let dataNew = {\n ...objIndex,\n [param]: value.target.value == \"\" ? \"\" : \"X\",\n [one]: \"\",\n [two]: \"\",\n };\n\n objMesages[index] = dataNew;\n\n console.log(objMesages, messages);\n setDataPreview({ preview: objMesages });\n setMessages(objMesages);\n };\n\n const dataSelect = (i, values, param) => {\n let preview = dataPreview.preview;\n console.log(\"PREVIEW VALUES\", i);\n preview[i].data[param] = values.value.substr(0, values.value.indexOf(\",\"));\n preview[i].data[\"authorized\"] = values.value.substr(\n values.value.indexOf(\",\") + 1\n );\n if (i >= 1) {\n console.log(i, \"osea hello\");\n preview[i].data[\"cumulative\"] =\n values.value.substr(values.value.indexOf(\",\") + 1) * 1 +\n preview[i - 1].data.cumulative * 1;\n } else {\n preview[i].data[\"cumulative\"] = values.value.substr(\n values.value.indexOf(\",\") + 1\n );\n }\n\n /* console.log('PREVIEW', preview) */\n setDataPreview({ preview: preview });\n };\n\n const renderSelector = (i, value, param) => {\n if (!value) value = \"\";\n\n let dataConcept = [{ value: value ? value + \",\" : \"SELECCIONE,\" }];\n\n if (concepts && concepts.length > 0) {\n concepts.map((concept) => {\n // console.log('values', concept)\n dataConcept.push({\n value: concept.concept + \",\" + concept.value,\n });\n });\n }\n\n let options = dataConcept.map((data, j) => {\n return (\n <option key={\"10000\" + j} value={data.value}>\n {data.value.substr(0, data.value.indexOf(\",\"))}\n </option>\n );\n });\n\n // console.log('values', options)\n\n return (\n <select\n value={value}\n className=\"form-control time\"\n style={{ width: 300 }}\n onChange={(values) => {\n dataSelect(i, values.target, param);\n }}\n >\n {options}\n </select>\n );\n };\n\n const renderTablePreview = () => {\n /* console.log('DATA_PREVIEW', dataPreview) */\n let table = [];\n let reports = dataPreview;\n for (let i = 0; i < reports.preview.length; i++) {\n if (i >= 1) {\n /* console.log('ANY', reports.preview[i], reports.preview[i-1].data.authorized) */\n reports.preview[i].data.cumulative =\n reports.preview[i].data.authorized * 1 +\n reports.preview[i - 1].data.cumulative * 1;\n } else {\n reports.preview[i].data.cumulative =\n reports.preview[i].data.authorized * 1;\n }\n }\n if (reports && reports?.preview && reports.preview.length >= 0) {\n if (reports.preview.length <= 0) {\n table.push(\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\n <td>No hay vista previa</td>\n </tr>\n );\n } else {\n reports.preview.map((item, i) => {\n /* console.log('DATA_PREVIEW 1', item.data)\n */\n table.push(\n <tr key={i} className=\"\" style={{ cursor: \"pointer\" }}>\n <td>{moment(item.data.date).format(\"DD/MM/YYYY\")}</td>\n {item.data.client === null ? (\n <td>{renderSelector(i, item.data.concept, \"concept\")}</td>\n ) : (\n <td>{item.data.concept}</td>\n )}\n\n <td>{item.data.client}</td>\n <td>{item.data.city}</td>\n <td>{item.data.rs}</td>\n <td style={ {minWidth:'150px'} }>\n {item.data.os == null ? \"-\" : \n <input\n type=\"text\"\n id=\"lastName\"\n className=\"form-control form-control-danger\" \n style={ {textAlign: 'center'} }\n value={item.data.os}\n onChange={(val) => {\n handleInputOS(item.perdiem_request_id, val.target.value);\n }}/>\n }\n </td>\n <td>{item.data.osPrevious || '-'}</td>\n\n <td>{item.data.authorized}</td>\n <td>{item.data.cumulative}</td>\n <td>\n <input\n disabled\n type=\"text\"\n id=\"lastName\"\n className=\"form-control form-control-danger\"\n value={item?.messageRol3 || \"-\"}\n />\n </td>\n <td>\n <input\n disabled\n type=\"text\"\n id=\"lastName\"\n className=\"form-control form-control-danger\"\n value={item?.messageRol4 || \"-\"}\n />\n </td>\n <td>\n <input\n disabled\n type=\"text\"\n id=\"lastName\"\n className=\"form-control form-control-danger\"\n value={item?.messageRol5 || \"-\"}\n />\n </td>\n <td>\n <input\n disabled\n type=\"text\"\n id=\"lastName\"\n className=\"form-control form-control-danger\"\n value={item?.messageRol6 || \"-\"}\n />\n </td>\n </tr>\n );\n });\n }\n } else {\n table.push(\n <tr className=\"unread\">\n <td>No hay vista previa</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n }\n return table;\n };\n \n const handleInputOS = (perdiem_request_id, newOS) => {\n let bdp = backupDataPreview;\n if (bdp.length == 0) { \n dataPreview.preview.map(m => { \n let item = { ...m };\n item.data = { ...item.data };\n bdp.push(item);\n });\n setBackupDataPreview(bdp);\n }\n\n let newDataPreview = { ...dataPreview };\n newDataPreview.preview.map((prev) => {\n if (prev.perdiem_request_id == perdiem_request_id && prev.data.client != null) { \n prev.data.os = newOS; \n }\n });\n setDataPreview(newDataPreview);\n\n let newModifyOS = [ ...modifyOS ];\n //console.log('OIHB', bdp.find(f => f.perdiem_request_id == perdiem_request_id && f.data.client != null));\n //console.log('OIHB', perdiem_request_id, newOS);\n if (bdp.some(s => s.perdiem_request_id == perdiem_request_id && s.data.os == newOS)) {\n let idx = newModifyOS.findIndex(mo => mo.perdiem_request_id == perdiem_request_id);\n if (idx > -1) newModifyOS.splice(idx, 1); \n }\n else {\n let obj = newModifyOS.find(mod => mod.perdiem_request_id == perdiem_request_id)\n if (obj == null) {\n newModifyOS.push({perdiem_request_id: perdiem_request_id, newOS: newOS, sended: false });\n }\n else {\n obj.newOS = newOS;\n }\n }\n setModifyOS(newModifyOS);\n //console.log('OIHB', newModifyOS);\n };\n\n const endEditionOS = () => {\n setLoading(true);\n\n let newModifyOS = [...modifyOS];\n let mod = newModifyOS.find(f => f.sended == false);\n if (mod) {\n mod.sended = true;\n setModifyOS(newModifyOS);\n editPerdiemRequest(mod.perdiem_request_id, mod.newOS);\n }\n //modifyOS.map(mod => {\n // editPerdiemRequest(mod.perdiem_request_id, mod.newOS);\n //});\n //setModifyOS([]);\n };\n\n const editPerdiemRequest = (perdiem_request_id, newOS) => {\n //let { params, server } = getParams();\n let dataSend = {\n dataPreview: {\n osModified: newOS,\n osModifiedBy: 'OSCAR',\n osModifiedDate: moment(new Date()).format(\"YYYY-MM-DD hh:mm:ss\"),\n }\n };\n props.EditPerdiemAction(dataSend, perdiem_request_id);\n };\n\n useEffect(() => {\n if (props.editPerdiemData && props.editPerdiemData.isOK == true) {\n setLoading(false);\n if (modifyOS.some(f => f.sended == false)) {\n endEditionOS();\n }\n else {\n setModifyOS([]);\n props.EditPerdiemAction(\"PURGE\");\n getPreview(monthSelected);\n getList();\n }\n } \n else if (props.editPerdiemError && props.editPerdiemError.isOK === false) {\n props.EditPerdiemAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.editPerdiemData, props.editPerdiemError]);\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Modal\n show={showModal}\n onHide={() => {\n setShowModal(false);\n }}\n >\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>{dataModal.body}</Modal.Body>\n <Modal.Footer>\n {dataModal.confirmButton && (\n <Button\n variant=\"primary\"\n onClick={() => handleModal(dataModal.itemId, dataModal.type)}\n >\n Aceptar\n </Button>\n )}\n {dataModal.rejectButton && (\n <Button variant=\"danger\" onClick={() => setShowModal(false)}>\n Cancelar\n </Button>\n )}\n </Modal.Footer>\n </Modal>\n\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <TitleReport action={_newReport} />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <h4 className=\"card-title\">Listado de Reportes</h4>\n <h6 className=\"card-subtitle\">\n A continuación podrás encontrar todos los reportes\n generados\n </h6>\n <ul className=\"nav nav-tabs\" role=\"tablist\">\n <li className=\"nav-item\">\n {\" \"}\n <a\n className={\"nav-link \" + (tab == 0 && \"active\")}\n href=\"\"\n data-toggle=\"tab\"\n role=\"tab\"\n onClick={() => {\n setTab(0);\n }}\n >\n <span>Solicitudes</span>\n </a>{\" \"}\n </li>\n <li className=\"nav-item\">\n {\" \"}\n <a\n className={\"nav-link \" + (tab == 1 && \"active\")}\n href=\"\"\n data-toggle=\"tab\"\n role=\"tab\"\n onClick={() => {\n setTab(1);\n }}\n >\n <span>Vista Previa</span>\n </a>{\" \"}\n </li>\n </ul>\n <div className=\"d-flex no-block\"></div>\n <div className=\"table-responsive m-t-20\">\n {tab === 0 ? (\n <table\n id=\"example23\"\n className=\"display nowrap table table-hover table-striped table-bordered\"\n cellSpacing=\"0\"\n width=\"100%\"\n >\n <thead>\n <tr>\n <th># Orden</th>\n <th>Empleado</th>\n <th>Cliente</th>\n <th>Ciudad</th>\n <th>Fecha creación</th>\n <th>Última modificación</th>\n <th>Comentarios</th>\n <th>Status</th>\n <th className=\"text-center\">Acciones</th>\n </tr>\n </thead>\n <tbody>{requests_table()}</tbody>\n </table>\n ) : null}\n\n {tab === 1 ? (\n <>\n <div className=\"row\">\n <div className=\"col-lg-9 align-self-center\">\n <div\n className=\"btn-group\"\n role=\"group\"\n aria-label=\"Button group with nested dropdown\"\n >\n <button\n type=\"button\"\n className=\"btn btn-secondary\"\n onClick={() => {\n backMonth();\n }}\n >\n <i className=\"fa fa-chevron-left\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-secondary\"\n >\n {DatePreview[monthSelected].mes}\n </button>\n <button\n type=\"button\"\n className=\"btn btn-secondary\"\n onClick={() => {\n nextMonth();\n }}\n >\n <i className=\"fa fa-chevron-right\"></i>\n </button>\n </div>\n </div>\n {dataPreview?.preview &&\n dataPreview?.preview.length > 0 ? (\n <div className=\"col-lg-3 align-self-center mt-2 mt-sm-0\">\n {modifyOS.length > 0 ? \n <a\n style={{\n marginTop: \"10px\",\n marginLeft: \"10px\",\n }}\n type=\"button\"\n className=\"btn btn-info text-white\"\n data-toggle=\"modal\"\n data-target=\"#exampleModal\"\n onClick={() => {\n endEditionOS();\n }}\n >\n <i className=\"fa fa-edit\"></i>\n {\" Terminar Edición\"}\n </a>\n : <>\n <a\n style={{\n marginTop: \"10px\",\n marginLeft: \"10px\",\n }}\n type=\"button\"\n className=\"btn btn-info text-white\"\n data-toggle=\"modal\"\n data-target=\"#exampleModal\"\n onClick={() => {\n authorizePreview(true);\n }}\n >\n <i className=\"fa fa-check\"></i> Autorizar\n Reporte\n </a>\n <a\n style={{\n marginTop: \"10px\",\n marginLeft: \"10px\",\n }}\n type=\"button\"\n className=\"btn btn-danger text-white\"\n data-toggle=\"modal\"\n data-target=\"#exampleModal\"\n onClick={() => {\n authorizePreview(false);\n }}\n >\n <i className=\"fa fa-times\"></i>\n {\" Rechazar Reporte\"}\n </a>\n </>}\n </div>\n ) : null}\n </div>\n\n {dataPreview?.preview &&\n dataPreview.preview.length > 0 ? (\n <div className=\"row p-20\">\n <div className=\"col-lg-12\">\n <h3 style={{ display: \"inline\" }}>Nombre:</h3>\n <p\n style={{ display: \"inline\" }}\n className=\"ml-2\"\n >\n {user.nombre +\n \" \" +\n user.paterno +\n \" \" +\n user.materno || \"\"}\n </p>\n <br />\n <h3 style={{ display: \"inline\" }}>\n No. De empleado:\n </h3>\n <p\n style={{ display: \"inline\" }}\n className=\"ml-2\"\n >\n {props?.dataUserData?.DataUser?.trabId || \"\"}\n </p>\n <br />\n <h3 style={{ display: \"inline\" }}>\n Centro de costo:\n </h3>\n <p\n style={{ display: \"inline\" }}\n className=\"ml-2\"\n >\n {dataPreview.preview[0].center || \"\"}\n </p>\n <br />\n <h3 style={{ display: \"inline\" }}>\n Mes de reporte:\n </h3>\n <p\n style={{ display: \"inline\" }}\n className=\"ml-2\"\n >\n {DatePreview[monthSelected].mes}\n </p>\n </div>\n </div>\n ) : null}\n\n <div className=\"p-20\">\n <div className=\"table-responsive\">\n <table\n className=\"display nowrap table table-hover table-striped table-bordered text-center\"\n width=\"100%\"\n >\n <thead>\n <tr>\n <th>Fecha</th>\n <th>Ocupación / Viaje</th>\n <th>Cliente</th>\n <th>Ciudad de Trabajo</th>\n <th>RT</th>\n <th>OS</th>\n <th>OS Anterior</th>\n\n <th>$ Máximo autorizado para alimentos</th>\n <th>$ acumulado, mes de reporte</th>\n\n <th>Comentarios Servicio Técnico</th>\n <th>Comentarios Contabilidad</th>\n <th>Comentarios RH</th>\n <th>Validación Final ST</th>\n </tr>\n </thead>\n <tbody>{renderTablePreview()}</tbody>\n </table>\n </div>\n </div>\n </>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n getPerdiemData: state.getPerdiem.getPerdiemData,\n getPerdiemError: state.getPerdiem.getPerdiemError,\n\n deletePerdiemData: state.deletePerdiem.deletePerdiemData,\n deletePerdiemError: state.deletePerdiem.deletePerdiemError,\n\n generatePerdiemData: state.generatePerdiem.generatePerdiemData,\n generatePerdiemError: state.generatePerdiem.generatePerdiemError,\n\n getPreviewData: state.getPreview.getPreviewData,\n getPreviewError: state.getPreview.getPreviewError,\n\n authorizeRejectData: state.authorizeReject.authorizeRejectData,\n authorizeRejectError: state.authorizeReject.authorizeRejectError,\n\n authorizersData: state.authorizers.authorizersData,\n authorizersError: state.authorizers.authorizersError,\n\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n\n sendDataChiefData: state.sendDataChief.sendDataChiefData,\n sendDataChiefError: state.sendDataChief.sendDataChiefError,\n\n conceptsData: state.concepts.conceptsData,\n conceptsError: state.concepts.conceptsError,\n\n editPerdiemData: state.editPerdiem.editPerdiemData,\n editPerdiemError: state.editPerdiem.editPerdiemError,\n };\n};\n\nconst mapDispatchToProps = {\n GetPerdiemAction,\n DeletePerdiemAction,\n GeneratePerdiemAction,\n GetPreviewAction,\n AuthorizeRejectAction,\n AuthorizersAction,\n SendEmailsAction,\n getDataChiefAction,\n ConceptsAction,\n EditPerdiemAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ReportService)\n);\n","import {\r\n DELETE_PERDIEM_SUCCESS,\r\n DELETE_PERDIEM_ERROR,\r\n DELETE_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const DeletePerdiemAction = (data) => {\r\n\r\n const config = {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/' + data\r\n\r\n console.log(' DELETE_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: DELETE_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n DeletePerdiem: responseJson\r\n }\r\n console.log('RESPONSE DELETE_PERDIEM DATA: ', response);\r\n dispatch({ type: DELETE_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR DELETE_PERDIEM DATA: ', response);\r\n dispatch({ type: DELETE_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR DELETE_PERDIEM DATA: ', responseError);\r\n dispatch({ type: DELETE_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n GENERATE_PERDIEM_SUCCESS,\r\n GENERATE_PERDIEM_ERROR,\r\n GENERATE_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const GeneratePerdiemAction = (data, dataReport) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify({}),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n console.log('OIHB \"data\"', data);\r\n console.log('OIHB \"dataReport\"', dataReport);\r\n console.log('OIHB \"config\"', config);\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/' + data + '/generate'\r\n\r\n console.log(' GENERATE_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GENERATE_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n GeneratePerdiem: responseJson\r\n }\r\n console.log('RESPONSE GENERATE_PERDIEM DATA: ', response);\r\n dispatch({ type: GENERATE_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR GENERATE_PERDIEM DATA: ', response);\r\n dispatch({ type: GENERATE_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR GENERATE_PERDIEM DATA: ', responseError);\r\n dispatch({ type: GENERATE_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import { changeXml, DataChiefResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n SEND_DATA_CHIEF_SUCCESS,\r\n SEND_DATA_CHIEF_ERROR,\r\n SEND_DATA_CHIEF_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getDataChiefAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetDatosJefeDirecto ': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/GetDatosJefeDirecto\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST GetDeptoCentros:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: SEND_DATA_CHIEF_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET SEND_DATA_CHIEF_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: SEND_DATA_CHIEF_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n DataChief: DataChiefResponse(body)\r\n }\r\n\r\n console.log('RESPONSE SEND_DATA_CHIEF DATA: ', response);\r\n dispatch({ type: SEND_DATA_CHIEF_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET SEND_DATA_CHIEF DATA: ', response);\r\n dispatch({ type: SEND_DATA_CHIEF_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET SEND_DATA_CHIEF DATA: ', responseError);\r\n dispatch({ type: SEND_DATA_CHIEF_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import {\r\n CREATE_PERDIEM_SUCCESS,\r\n CREATE_PERDIEM_ERROR,\r\n CREATE_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const CreatePerdiemAction = (data) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/create'\r\n\r\n console.log(' CREATE_PERDIEM RECUEST:', url, config, data);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: CREATE_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n CreatePerdiem: responseJson\r\n }\r\n console.log('RESPONSE CREATE_PERDIEM DATA SUCCESS: ', response);\r\n dispatch({ type: CREATE_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR CREATE_PERDIEM DATA ERROR: ', response);\r\n dispatch({ type: CREATE_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR CREATE_PERDIEM DATA: ', responseError);\r\n dispatch({ type: CREATE_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};","import {\r\n SIGN_PERDIEM_SUCCESS,\r\n SIGN_PERDIEM_ERROR,\r\n SIGN_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const SignPerdiemAction = (data, id) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/' + id + '/sign'\r\n\r\n console.log(' SIGN_PERDIEM RECUEST:', url, config, data);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: SIGN_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then((json) => {\r\n console.log('FIRST', json.Response)\r\n return json.json()\r\n })\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n SignPerdiem: responseJson\r\n }\r\n console.log('RESPONSE SIGN_PERDIEM DATA: ', response);\r\n dispatch({ type: SIGN_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR SIGN_PERDIEM DATA: ', response);\r\n dispatch({ type: SIGN_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR SIGN_PERDIEM DATA: ', responseError);\r\n dispatch({ type: SIGN_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};\r\n","import { changeXml, empleadoJornadaResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMPLEADO_JORNADA_SUCCESS,\r\n EMPLEADO_JORNADA_ERROR,\r\n EMPLEADO_JORNADA_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getEmpleadoJornadaAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetEmpleadoJornadaTurno': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/GetEmpleadoJornadaTurno\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMPLEADO_JORNADA_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n console.log('EMPLEADO_JORNADA', body)\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMPLEADO_JORNADA_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMPLEADO_JORNADA_ERROR, payload: response })\r\n } else {\r\n const response = {\r\n isOK: true,\r\n EmpleadoJornada: empleadoJornadaResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMPLEADO_JORNADA DATA: ', response);\r\n dispatch({ type: EMPLEADO_JORNADA_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMPLEADO_JORNADA DATA: ', response);\r\n dispatch({ type: EMPLEADO_JORNADA_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMPLEADO_JORNADA DATA: ', responseError);\r\n dispatch({ type: EMPLEADO_JORNADA_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import {\r\n ID_PERDIEM_SUCCESS,\r\n ID_PERDIEM_ERROR,\r\n ID_PERDIEM_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const IdPerdiemAction = (id) => {\r\n\r\n const config = {\r\n method: 'GET',\r\n //body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + id + '/get-next-request-id'\r\n\r\n console.log(' ID_PERDIEM RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (id === 'PURGE') {\r\n dispatch({ type: ID_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then((json) => {\r\n console.log('FIRST', json)\r\n return json.json()\r\n })\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n IdPerdiem: responseJson\r\n }\r\n console.log('RESPONSE ID_PERDIEM DATA: ', response);\r\n dispatch({ type: ID_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR ID_PERDIEM DATA: ', response);\r\n dispatch({ type: ID_PERDIEM_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR ID_PERDIEM DATA: ', responseError);\r\n dispatch({ type: ID_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { CreatePerdiemAction } from \"../../api/actions/perdiem/CreatePerdiemAction\";\nimport { GetPerdiemAction } from \"../../api/actions/perdiem/GetPerdiemAction\";\nimport { EditPerdiemAction } from \"../../api/actions/perdiem/EditPerdiemAction\";\nimport { SignPerdiemAction } from \"../../api/actions/perdiem/SignPerdiemAction\";\nimport { getEmpleadoJornadaAction } from \"../../api/actions/perdiem/EmpleadoJornadaAction\";\nimport { getVacationsAction } from \"../../api/actions/empleado/VacationsAction\";\nimport { IdPerdiemAction } from \"../../api/actions/perdiem/IsPerdiemAction\";\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\nimport { ServiceCodeAction } from \"../../api/actions/perdiem/ServiceCodeAction\";\nimport CanvasDraw from \"react-canvas-draw\";\n\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar.js\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport moment from \"moment\";\n\nimport { getParams } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\nimport \"./DetailReport.css\";\n\nlet styleInput = {\n outline: \"0\",\n borderWidth: \"0 0 2px \",\n fontSize: \" 1.3rem\",\n};\n\nconst zoom = 0.6;\n\nconst DetailReport = (props) => {\n const canvasTest = useRef();\n const canvasTest2 = useRef();\n const [loading, setLoading] = useState(true);\n const [dataReport, setDataReport] = useState({});\n const [dataReportSaved, setDataReportSaved] = useState({});\n const [show, setShow] = useState(true);\n const [type, setType] = useState(null);\n const [disabled, setdisabled] = useState(false);\n const [isSign, setIsSign] = useState(false);\n const [emails, setEmails] = useState(\"\");\n const [user, setUser] = useState(\"\");\n const [validate, setValidate] = useState(false);\n const [noDates, setNoDates] = useState([]);\n const [arrayValid, setArrayValid] = useState([]);\n const [concepts, setConcepts] = useState([]);\n const [totalHours, setTotalHours] = useState({\n normal: [0],\n extra: [0],\n extraN: [0],\n nocturna: [0],\n weekEnd: [0],\n viaje: [0],\n viajeNormal: [0],//DEVELOPING\n viajeExtra: [0],//DEVELOPING\n viajeExtraN: [0],//DEVELOPING\n viajeNocturna: [0],//DEVELOPING\n viajeWeekEnd: [0],//DEVELOPING\n total: {\n normal: 0,\n extra: 0,\n extraN: 0,\n nocturna: 0,\n weekEnd: 0,\n viaje: 0,\n viajeNormal: 0,//DEVELOPING\n viajeExtra: 0,//DEVELOPING\n viajeExtraN: 0,//DEVELOPING\n viajeNocturna: 0,//DEVELOPING\n viajeWeekEnd: 0,//DEVELOPING\n },\n });\n const [errors, setErrors] = useState({\n client: 0,\n cityClient: 0,\n noMachine: 0,\n contactClient: 0,\n technicalName: 0,\n clientName: 0,\n orderNo: 0,\n ocupation: 0,\n projectCoordinator: 0,\n typeWork: 0,\n });\n const [codeComing, setCodeComing] = useState([]);\n\n let checkProperties = [];\n\n useEffect(() => {\n let { params, server } = getParams();\n let user = sessionStorage.getItem(\"userSaved\");\n let datasUser = sessionStorage.getItem(\"USER\");\n let dataUser = JSON.parse(user);\n let oderDataUser = JSON.parse(datasUser);\n\n props.getVacationsAction(params, server);\n props.ConceptsAction(\"?type=paid\");\n\n setUser({ ...dataUser, ...oderDataUser });\n\n let empleadoJornada = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:TrabID\": params[\"tem:TrabID\"],\n };\n\n props.getEmpleadoJornadaAction(empleadoJornada, server);\n\n let report = props?.location?.state?.report;\n\n setType(props?.location?.state?.type || null);\n if (!props?.location?.state?.type) {\n props.IdPerdiemAction(params[\"tem:TrabID\"]);\n }\n\n let status = props?.location?.state?.type === \"firma\" ? true : false;\n setdisabled(status);\n setIsSign(status);\n let workReport = [\n {\n date: null,\n startHour: \"\",\n finishHour: \"\",\n pause: \"\",\n machineNumber: \"\",\n out: \"\",\n arrival: \"\",\n description: \"\",\n },\n ];\n /* DAYS.map(() => {\n workReport.push()\n }) */\n let data = {\n employeeId: params[\"tem:TrabID\"],\n company: params[\"tem:IdEmpresa\"],\n email: props?.dataUserData?.DataUser?.correo,\n data: {\n observations: \"\",\n orderNo: props?.location?.state?.folio,\n technicalName: `${dataUser?.nombre} ${dataUser?.paterno} ${dataUser?.materno}`,\n workReport: workReport,\n address: {\n street: \"Jaime Balmes No. 8 Piso 2, Oficina . 203\",\n colony: \"Col. Polanco I sección\",\n cp: \"11510\",\n state: \"CDMX\",\n country: \"México\",\n },\n folio: props?.location?.state?.folio,\n ahr: {\n a: \"\",\n h: \"\",\n r: \"\",\n },\n tvs: {\n t: \"\",\n v: \"\",\n s: \"\",\n },\n resume: {\n normal: \"\",\n extra: \"\",\n extraN: \"\",\n nocturna: \"\",\n weekEnd: \"\",\n viaje: \"\",\n viajeNormal: \"\",//DEVELOPING\n viajeExtra: \"\",//DEVELOPING\n viajeExtraN: \"\",//DEVELOPING\n viajeNocturna: \"\",//DEVELOPING\n viajeWeekEnd: \"\",//DEVELOPING\n },\n REK: \"\",\n client: \"\",\n cityClient: \"\",\n noMachine: \"\",\n contactClient: \"\",\n projectCoordinator: \"\",\n clientName: \"\",\n ocupation: \"\",\n typeWork: \"\",\n },\n status: 0,\n };\n let dataRepo = {};\n if (report && \"employeeId\" in report) {\n dataRepo = report;\n } else {\n dataRepo = data;\n }\n setDataReport(dataRepo);\n setLoading(false);\n updateHours(dataRepo);\n ///props.getMyMessagesARHAction(params, server);\n\n let toSave = {\n data: {\n orderNo: dataRepo.data.orderNo,\n serviceCode: (dataRepo.data.serviceCode || \"0\")\n }\n };\n setDataReportSaved(toSave);\n }, []);\n\n useEffect(() => {\n let newTotal = parseFloat(\n Number(totalHours.total.normal) +\n Number(totalHours.total.extra) +\n Number(totalHours.total.extraN) +\n Number(totalHours.total.nocturna) +\n Number(totalHours.total.weekEnd)\n ).toFixed(2);\n\n //let newV = parseFloat(Number(totalHours.total.viaje)).toFixed(2);\n let newV = parseFloat(\n Number(totalHours.total.viajeNormal || \"0\") + \n Number(totalHours.total.viajeExtra || \"0\") + \n Number(totalHours.total.viajeExtraN || \"0\") + \n Number(totalHours.total.viajeNocturna || \"0\") + \n Number(totalHours.total.viajeWeekEnd || \"0\")\n ).toFixed(2) //DEVELOPING\n \n let newS = parseFloat(\n Number(totalHours.total.normal) +\n Number(totalHours.total.extra) +\n Number(totalHours.total.extraN) +\n Number(totalHours.total.nocturna) +\n Number(totalHours.total.weekEnd) +\n //Number(totalHours.total.viaje) + \n Number(totalHours.total.viajeNormal || \"0\") + \n Number(totalHours.total.viajeExtra || \"0\") + \n Number(totalHours.total.viajeExtraN || \"0\") + \n Number(totalHours.total.viajeNocturna || \"0\") + \n Number(totalHours.total.viajeWeekEnd || \"0\") \n ).toFixed(2);\n\n if (dataReport?.data?.tvs !== undefined) {\n let newDataReport = { ...dataReport };\n\n newDataReport.data.tvs.t = newTotal;\n newDataReport.data.tvs.v = newV;\n newDataReport.data.tvs.s = newS;\n newDataReport.data.resume.normal = totalHours.total.normal;\n newDataReport.data.resume.extra = totalHours.total.extra;\n newDataReport.data.resume.extraN = totalHours.total.extraN;\n newDataReport.data.resume.nocturna = totalHours.total.nocturna;\n newDataReport.data.resume.weekEnd = totalHours.total.weekEnd;\n newDataReport.data.resume.viaje = totalHours.total.viaje; //SE DEBE COMENTAR O QUE NO SE SUME CON TOTALES\n \n newDataReport.data.resume.viajeNormal = totalHours.total.viajeNormal;\n newDataReport.data.resume.viajeExtra = totalHours.total.viajeExtra;\n newDataReport.data.resume.viajeExtraN = totalHours.total.viajeExtraN;\n newDataReport.data.resume.viajeNocturna = totalHours.total.viajeNocturna;\n newDataReport.data.resume.viajeWeekEnd = totalHours.total.viajeWeekEnd;\n\n setDataReport(newDataReport);\n }\n }, [totalHours]);\n\n useEffect(() => {\n console.log(\"dataReport\", dataReport);\n }, [dataReport]);\n\n useEffect(() => {\n let newConcept = [{ value: \"\", label: \"\" }];\n if (props.conceptsData && props.conceptsData.isOK) {\n let concepts = props.conceptsData.Concepts.results;\n\n if (concepts && concepts.length > 0) {\n concepts.map((concept) => {\n newConcept.push({\n value: concept.value,\n label: concept.concept,\n });\n });\n }\n setConcepts(newConcept);\n props.ConceptsAction(\"PURGE\");\n } else if (props.conceptsError && props.conceptsError.isOK === false) {\n props.ConceptsAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.conceptsData, props.conceptsError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK) {\n let { solicitudes } = props.vacationsData.Vacations;\n console.log(\"events\", solicitudes);\n\n let dates = [];\n if (solicitudes && solicitudes.length > 0) {\n solicitudes.map((solicitud) => {\n if (solicitud.Status == \"Aprobado\") {\n dates.push(solicitud.FechaInicio.split(\"T\")[0]);\n dates.push(solicitud.FechaFin.split(\"T\")[0]);\n }\n });\n }\n\n setNoDates(dates);\n } else if (props.vacationsError && props.vacationsError.isOK === false) {\n props.getVacationsAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.vacationsData, props.vacationsError]);\n\n useEffect(() => {\n let { params, server } = getParams();\n if (props.createPerdiemData && props.createPerdiemData.isOK) {\n let perdiemRes = props.createPerdiemData?.CreatePerdiem;\n if (perdiemRes && \"error\" in perdiemRes) {\n alert(perdiemRes.error);\n props.CreatePerdiemAction(\"PURGE\");\n setLoading(false);\n } else {\n alert(\"Su reporte ha sido guardado\");\n getList();\n props.CreatePerdiemAction(\"PURGE\");\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\n setLoading(false);\n }\n } else if (\n props.createPerdiemError &&\n props.createPerdiemError.isOK === false\n ) {\n alert(\"No se pudo realizar la acción\");\n props.CreatePerdiemAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.createPerdiemData, props.createPerdiemError]);\n\n useEffect(() => {\n if (props.editPerdiemData && props.editPerdiemData.isOK == true) {\n setLoading(false);\n alert(\"Su reporte ha sido actualizado\");\n props.EditPerdiemAction(\"PURGE\");\n getList();\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\n } else if (\n props.editPerdiemError &&\n props.editPerdiemError.isOK === false\n ) {\n alert(\"No se pudo realizar la acción\");\n props.EditPerdiemAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.editPerdiemData, props.editPerdiemError]);\n\n useEffect(() => {\n if (props.signPerdiemData && props.signPerdiemData.isOK == true) {\n let perdiemRes = props.signPerdiemData.SignPerdiem;\n console.log(\"isaac\", perdiemRes);\n if (perdiemRes && \"error\" in perdiemRes) {\n alert(perdiemRes.error);\n } else {\n alert(\"Su reporte ha sido firmado y enviado con éxito..\");\n }\n props.SignPerdiemAction(\"PURGE\");\n getList();\n setLoading(false);\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\n } else if (\n props.signPerdiemError &&\n props.signPerdiemError.isOK === false\n ) {\n setLoading(false);\n alert(\"Su reporte ha sido firmado y enviado con éxito.\");\n props.SignPerdiemAction(\"PURGE\");\n getList();\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\n }\n }, [props.signPerdiemData, props.signPerdiemError]);\n\n useEffect(() => {\n if (props.empleadoJornadaData && props.empleadoJornadaData.isOK) {\n let Employee = props.empleadoJornadaData?.EmpleadoJornada;\n if (Employee) {\n }\n } else if (\n props.empleadoJornadaError &&\n props.empleadoJornadaError.isOK === false\n ) {\n props.getEmpleadoJornadaAction(\"PURGE\");\n }\n }, [props.empleadoJornadaData, props.empleadoJornadaError]);\n\n useEffect(() => {\n if (props.idPerdiemData && props.idPerdiemData.isOK) {\n let idPerdiem = props.idPerdiemData?.IdPerdiem;\n\n let newDataReport = { ...dataReport };\n newDataReport.data.reportId = idPerdiem?.id;\n setDataReport(newDataReport);\n //setDataReportSaved({ ...dataReport });\n console.log('OIHB Data', JSON.stringify(dataReport))\n \n props.IdPerdiemAction(\"PURGE\");\n } else if (props.idPerdiemError && props.idPerdiemError.isOK === false) {\n props.IdPerdiemAction(\"PURGE\");\n }\n }, [props.idPerdiemData, props.idPerdiemError]);\n\n useEffect(() => {\n if (props.servCodePerdiemData && props.servCodePerdiemData.isOK) {\n console.log('OIHB Code', props.servCodePerdiemData.ServiceCode.results);\n let newDataReport = {...dataReport}\n newDataReport.data.serviceCode = props.servCodePerdiemData.ServiceCode.results;\n setDataReport(newDataReport);\n props.ServiceCodeAction(\"PURGE\");\n if (!codeComing.some(s => s == true)) {\n procesarServicioReporte();\n }\n else {\n let comming = [...codeComing];\n let idx = comming.indexOf(true);\n if (idx >= 0) {\n comming[idx] = false;\n }\n setCodeComing(comming);\n }\n } \n else if (props.servCodePerdiemError && props.servCodePerdiemError.isOK === false) {\n props.ServiceCodeAction(\"PURGE\");\n setLoading(false);\n }\n }, [props.servCodePerdiemData, props.servCodePerdiemError]);\n\n const getList = () => {\n let { params, server } = getParams();\n setLoading(true);\n props.GetPerdiemAction(params[\"tem:TrabID\"], [\"tem:IdEmpresa\"]);\n };\n\n let DAYS = [\"DOM\", \"LUN\", \"MAR\", \"MIE\", \"JUE\", \"VIE\", \"SAB\"];\n\n const time = [\n { value: \"\", label: \"\" },\n { value: \"Viaje SBS\", label: \"Viaje SBS\" },\n { value: \"7:00\", label: \"7:00\" },\n { value: \"7:30\", label: \"7:30\" },\n { value: \"8:00\", label: \"8:00\" },\n { value: \"8:30\", label: \"8:30\" },\n { value: \"9:00\", label: \"9:00\" },\n { value: \"9:30\", label: \"9:30\" },\n { value: \"10:00\", label: \"10:00\" },\n { value: \"10:30\", label: \"10:30\" },\n { value: \"11:00\", label: \"11:00\" },\n { value: \"11:30\", label: \"11:30\" },\n { value: \"12:00\", label: \"12:00\" },\n { value: \"12:30\", label: \"12:30\" },\n { value: \"13:00\", label: \"13:00\" },\n { value: \"13:30\", label: \"13:30\" },\n { value: \"14:00\", label: \"14:00\" },\n { value: \"14:30\", label: \"14:30\" },\n { value: \"15:00\", label: \"15:00\" },\n { value: \"15:30\", label: \"15:30\" },\n { value: \"16:00\", label: \"16:00\" },\n { value: \"16:30\", label: \"16:30\" },\n { value: \"17:00\", label: \"17:00\" },\n { value: \"17:30\", label: \"17:30\" },\n { value: \"18:00\", label: \"18:00\" },\n { value: \"18:30\", label: \"18:30\" },\n { value: \"19:00\", label: \"19:00\" },\n { value: \"19:30\", label: \"19:30\" },\n { value: \"20:00\", label: \"20:00\" },\n { value: \"20:30\", label: \"20:30\" },\n { value: \"21:00\", label: \"21:00\" },\n { value: \"21:30\", label: \"21:30\" },\n { value: \"22:00\", label: \"22:00\" },\n { value: \"22:30\", label: \"22:30\" },\n { value: \"23:00\", label: \"23:00\" },\n { value: \"23:30\", label: \"23:30\" },\n { value: \"0:00\", label: \"0:00\" },\n { value: \"0:30\", label: \"0:30\" },\n { value: \"1:00\", label: \"1:00\" },\n { value: \"1:30\", label: \"1:30\" },\n { value: \"2:00\", label: \"2:00\" },\n { value: \"2:30\", label: \"2:30\" },\n { value: \"3:00\", label: \"3:00\" },\n { value: \"3:30\", label: \"3:30\" },\n { value: \"4:00\", label: \"4:00\" },\n { value: \"4:30\", label: \"4:30\" },\n { value: \"5:00\", label: \"5:00\" },\n { value: \"5:30\", label: \"5:30\" },\n { value: \"6:00\", label: \"6:00\" },\n { value: \"6:30\", label: \"6:30\" },\n ];\n\n const timeTravel = [\n { value: \"\", label: \"\" },\n //{ value: \"Viaje SBS\", label: \"Viaje SBS\" },\n { value: \"N/A\", label: \"N/A\" },\n { value: \"7:00\", label: \"7:00\" },\n { value: \"7:30\", label: \"7:30\" },\n { value: \"8:00\", label: \"8:00\" },\n { value: \"8:30\", label: \"8:30\" },\n { value: \"9:00\", label: \"9:00\" },\n { value: \"9:30\", label: \"9:30\" },\n { value: \"10:00\", label: \"10:00\" },\n { value: \"10:30\", label: \"10:30\" },\n { value: \"11:00\", label: \"11:00\" },\n { value: \"11:30\", label: \"11:30\" },\n { value: \"12:00\", label: \"12:00\" },\n { value: \"12:30\", label: \"12:30\" },\n { value: \"13:00\", label: \"13:00\" },\n { value: \"13:30\", label: \"13:30\" },\n { value: \"14:00\", label: \"14:00\" },\n { value: \"14:30\", label: \"14:30\" },\n { value: \"15:00\", label: \"15:00\" },\n { value: \"15:30\", label: \"15:30\" },\n { value: \"16:00\", label: \"16:00\" },\n { value: \"16:30\", label: \"16:30\" },\n { value: \"17:00\", label: \"17:00\" },\n { value: \"17:30\", label: \"17:30\" },\n { value: \"18:00\", label: \"18:00\" },\n { value: \"18:30\", label: \"18:30\" },\n { value: \"19:00\", label: \"19:00\" },\n { value: \"19:30\", label: \"19:30\" },\n { value: \"20:00\", label: \"20:00\" },\n { value: \"20:30\", label: \"20:30\" },\n { value: \"21:00\", label: \"21:00\" },\n { value: \"21:30\", label: \"21:30\" },\n { value: \"22:00\", label: \"22:00\" },\n { value: \"22:30\", label: \"22:30\" },\n { value: \"23:00\", label: \"23:00\" },\n { value: \"23:30\", label: \"23:30\" },\n { value: \"0:00\", label: \"0:00\" },\n { value: \"0:30\", label: \"0:30\" },\n { value: \"1:00\", label: \"1:00\" },\n { value: \"1:30\", label: \"1:30\" },\n { value: \"2:00\", label: \"2:00\" },\n { value: \"2:30\", label: \"2:30\" },\n { value: \"3:00\", label: \"3:00\" },\n { value: \"3:30\", label: \"3:30\" },\n { value: \"4:00\", label: \"4:00\" },\n { value: \"4:30\", label: \"4:30\" },\n { value: \"5:00\", label: \"5:00\" },\n { value: \"5:30\", label: \"5:30\" },\n { value: \"6:00\", label: \"6:00\" },\n { value: \"6:30\", label: \"6:30\" },\n ];\n\n const pause = [\n { value: \"\", label: \"\" },\n { value: \"0\", label: \"0\" },\n { value: \"30\", label: \"30\" },\n { value: \"60\", label: \"60\" },\n { value: \"90\", label: \"90\" },\n { value: \"120\", label: \"120\" },\n { value: \"150\", label: \"150\" },\n { value: \"180\", label: \"180\" },\n { value: \"210\", label: \"210\" },\n { value: \"240\", label: \"240\" },\n { value: \"270\", label: \"270\" },\n { value: \"300\", label: \"300\" },\n { value: \"330\", label: \"330\" },\n { value: \"360\", label: \"360\" },\n { value: \"390\", label: \"390\" },\n { value: \"420\", label: \"420\" },\n { value: \"450\", label: \"450\" },\n { value: \"480\", label: \"480\" },\n { value: \"510\", label: \"510\" },\n { value: \"540\", label: \"540\" },\n { value: \"570\", label: \"570\" },\n { value: \"600\", label: \"600\" },\n ];\n\n const handleSubmit = async (event) => {\n const base64 = canvasTest.current.canvasContainer.childNodes[1].toDataURL();\n const base642 =\n canvasTest2.current.canvasContainer.childNodes[1].toDataURL();\n\n if (\n dataReport?.data?.nombreCliente &&\n dataReport?.data?.jobTitle &&\n dataReport?.data?.signDate\n ) {\n let emailsArray = [];\n if (emails && emails.length > 0) {\n emailsArray = emails.split(\",\");\n }\n \n if (user.correo != null) {\n if (user.correo.trim().length > 0){\n emailsArray.push(user.correo.trim());\n }\n }\n\n setdisabled(false);\n // await setShow(false)\n\n let arrSign = {\n signature_1: base64,\n signature_2: base642,\n center: props?.dataUserData?.DataUser?.centro,\n mails: [...emailsArray],\n };\n props.SignPerdiemAction(arrSign, dataReport.id);\n\n // var input = document.getElementById('content');\n // const pdf = new jsPDF('l', 'mm', [279, 216]);\n /* html2canvas(input, { allowTaint: true, seCORS: true, useCORS: true })\n .then((canvas) => {\n const imgData = canvas.toDataURL('image/png', 1);\n var imgWidth = 279;\n var imgHeight = 216;\n document.getElementsByClassName('form-control')[0].style.borderBottom = \"none !import\";\n\n pdf.addImage(imgData, 'JPG', 0, 0, imgWidth, imgHeight, undefined, 'FAST');\n var file = pdf.output('datauristring');\n var ret = file.replace('data:application/pdf;filename=generated.pdf;base64,', '');\n // pdf.save('ReportKrones.pdf')\n setLoading(true);\n setShow(true)\n setdisabled(true)\n let dataSend = {\n pdf: ret,\n mails: [\n ...emailsArray,\n ],\n center: props?.dataUserData?.DataUser?.centro\n }\n \n })\n\n\n let arrSign = {\n 'signature_1': imgData\n }\n props.SignPerdiemAction(arrSign, dataReport.id) */\n } else {\n alert(\"Completa los datos faltantes\");\n }\n };\n\n const handleInput = (value, param) => {\n let newDataReport = dataReport.data;\n let data = {\n ...newDataReport,\n [param]: value.target.value,\n };\n let newReport = {\n ...dataReport,\n data: data,\n };\n setDataReport(newReport);\n updateHours(newReport);\n };\n\n const autoAsignWhen = (obj, value, param) => {\n //console.log('OIHB', 'autoAsignWhen');\n if (param == 'startHour' || param == 'finishHour') {\n //console.log('OIHB', 'startHour / finishHour');\n let assigOther = param == 'startHour' ? 'finishHour' : 'startHour';\n if (value.toLocaleLowerCase().includes(\"sbs\")) {\n //console.log('OIHB', 'SBS');\n obj[assigOther] = 'Viaje SBS';\n obj['out'] = 'N/A';\n obj['arrival'] = 'N/A';\n }\n else {\n //obj[assigOther] = '';\n }\n }\n };\n\n const handleSelect = (value, param) => {\n let newDataReport = dataReport.data;\n let data = {\n ...newDataReport,\n [param]: value.target.value,\n };\n let newReport = {\n ...dataReport,\n data: data,\n };\n\n setDataReport(newReport);\n updateHours(newReport);\n };\n\n const dateSelect = async (index, value, param) => {\n //let formatDate = moment(value.target.value).format('DD/MM/YYYY HH:mm')\n let newDataReport = dataReport.data.workReport;\n let report = newDataReport[index];\n let newWorkReport = {\n ...report,\n [param]: value?.target?.value || null,\n };\n autoAsignWhen(newWorkReport, value?.target?.value, param);\n\n newDataReport[index] = newWorkReport;\n\n let newData = dataReport.data;\n let data = {\n ...newData,\n workReport: newDataReport,\n };\n\n let newReport = {\n ...dataReport,\n data: data,\n };\n await setDataReport(newReport);\n updateHours(newReport);\n };\n\n const ahr = (value, param) => {\n let ahr = dataReport.data.ahr;\n let newAhr = {\n ...ahr,\n [param]: value.target.value,\n };\n let newData = dataReport.data;\n let newReport = {\n ...dataReport,\n data: {\n ...newData,\n ahr: newAhr,\n },\n };\n setDataReport(newReport);\n updateHours(newReport);\n };\n\n const tvs = (value, param) => {\n let tvs = dataReport.data.tvs;\n let newAhr = {\n ...tvs,\n [param]: value.target.value,\n };\n let newData = dataReport.data;\n let newReport = {\n ...dataReport,\n data: {\n ...newData,\n tvs: newAhr,\n },\n };\n setDataReport(newReport);\n updateHours(newReport);\n };\n\n const resume = (value, param) => {\n let resume = dataReport.data.resume;\n let newresume = {\n ...resume,\n [param]: value.target.value,\n };\n let newData = dataReport.data;\n let newReport = {\n ...dataReport,\n data: {\n ...newData,\n resume: newresume,\n },\n };\n setDataReport(newReport);\n updateHours(newReport);\n };\n\n const renderSelectorTime = (i, value, param, data) => {\n let options = time.map((data, j) => {\n return (\n <option key={j + data.label} value={data.value}>\n {data.label}\n </option>\n );\n });\n\n return (\n <select\n value={value}\n disabled={disabled}\n className=\"form-control time\"\n style={{\n ...styleInput,\n borderBottomColor:\n validate && arrayValid[i]\n ? value.length > 0\n ? null\n : \"red\"\n : null,\n }}\n onChange={(values) => {\n dateSelect(i, values, param);\n }}\n >\n {options}\n </select>\n );\n };\n const renderSelectorTimeTrabel = (i, value, param) => {\n let options = timeTravel.map((data, j) => {\n return (\n <option key={j + data.label} value={data.value}>\n {data.label}\n </option>\n );\n });\n\n return (\n <select\n value={value}\n disabled={disabled}\n className=\"form-control time\"\n style={{\n ...styleInput,\n borderBottomColor:\n validate && arrayValid[i]\n ? value.length > 0\n ? null\n : \"red\"\n : null,\n }}\n onChange={(values) => {\n dateSelect(i, values, param);\n }}\n >\n {options}\n </select>\n );\n };\n\n const renderSelectorPause = (i, value, param) => {\n let options = pause.map((data, j) => {\n return (\n <option key={j + data.label} value={data.value}>\n {data.label}\n </option>\n );\n });\n return (\n <select\n value={value}\n disabled={disabled}\n className=\"form-control pause\"\n style={{\n ...styleInput,\n borderBottomColor:\n validate && arrayValid[i]\n ? value.length > 0\n ? null\n : \"red\"\n : null,\n }}\n onChange={(values) => {\n dateSelect(i, values, param);\n }}\n >\n {options}\n </select>\n );\n };\n\n const renderSelectorOcupation = (title, value, param, data) => {\n if (!checkProperties.some(s => s.paramName == param)) {\n checkProperties.push( {\n tittleParam: title,\n paramName: param, \n });\n }\n\n let options = concepts.map((data, j) => {\n return (\n <option key={j + data.label} value={data.label}>\n {data.label}\n </option>\n );\n });\n return (\n <div style={{ marginBottom: 10 }}>\n <label style={{ fontSize: \"1.3rem\", fontWeight: \"700\" }}>{title}</label>\n <div>\n <select\n value={value}\n disabled={disabled}\n className=\"form-control pause\"\n style={{\n ...styleInput,\n borderBottomColor:\n \"type\" in props\n ? \"black\"\n : validate\n ? value?.length > 0\n ? \"black\"\n : \"red\"\n : \"black\",\n }}\n onChange={(value) => {\n handleInput(value, param);\n }}\n >\n {options}\n </select>\n </div>\n </div>\n );\n };\n\n const validateDateSelect = (index, value, param) => {\n let nodate = noDates;\n let arraycontainsturtles = nodate.indexOf(value.target.value) > -1;\n if (arraycontainsturtles) {\n alert(\"No puedes seleccionar esta fecha\");\n //dateSelect(index, null, param)\n } else {\n dateSelect(index, value, param);\n }\n };\n\n const renderRows = () => {\n let data = dataReport?.data?.workReport;\n return data.map((day, i) => {\n return (\n <tr key={i}>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"3%\" }}>\n <input\n placeholder=\"MM/DD/YYYY\"\n onfocus=\"(this.type='date')\"\n onKeyDown={(e) => e.preventDefault()}\n value={day?.date && day?.date.length > 0 ? day?.date : null}\n disabled={disabled}\n type=\"date\"\n className=\"form-control\"\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? typeof day.date !== \"string\" && arrayValid[i]\n ? \"red\"\n : null\n : null,\n }}\n onChange={(value) => {\n validateDateSelect(i, value, \"date\");\n }}\n />\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"6%\" }}>\n {renderSelectorTime(i, day?.startHour || false, \"startHour\", data)}\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"6%\" }}>\n {renderSelectorTime(i, day.finishHour || false, \"finishHour\", data)}\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"6%\" }}>\n {renderSelectorPause(i, day.pause, \"pause\")}\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"3%\" }}>\n <input\n disabled={disabled}\n className=\"form-control\"\n style={{\n ...styleInput,\n borderBottomColor:\n validate && arrayValid[i]\n ? day?.machineNumber.length > 0\n ? null\n : \"red\"\n : null,\n }}\n value={day?.machineNumber || null}\n onChange={(values) => {\n dateSelect(i, values, \"machineNumber\");\n }}\n />\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"6%\" }}>\n {renderSelectorTimeTrabel(i, day.out, \"out\")}\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"6%\" }}>\n {renderSelectorTimeTrabel(i, day.arrival, \"arrival\")}\n </td>\n <td className=\"selectorKrones\" scope=\"col\" style={{ width: \"15%\" }}>\n <div className=\"row\">\n <div className=\"col-11\">\n <input\n disabled={disabled}\n type=\"text\"\n className=\"form-control\"\n style={{\n ...styleInput,\n borderBottomColor:\n validate && arrayValid[i]\n ? day?.description.length > 0\n ? null\n : \"red\"\n : null,\n }}\n value={day?.description}\n onChange={(values) => {\n dateSelect(i, values, \"description\");\n }}\n />\n </div>\n\n <div className=\"col-1\">\n <i\n onClick={() => {\n deleteRow(i);\n }}\n className=\"mdi mdi-close-box\"\n ></i>\n </div>\n </div>\n </td>\n {/* <td className='selectorKrones' scope=\"col\" style={{ width: '6%' }}><i className=\"mdi mdi-eye\"></i></td> */}\n </tr>\n );\n });\n };\n\n const updateHours = (data) => {\n let duration = (start, finish) =>\n moment.duration(finish.diff(start)).asHours();\n\n let newTotalHours = {\n normal: [0],\n extra: [0],\n extraN: [0],\n nocturna: [0],\n weekEnd: [0],\n viaje: [0],\n viajeNormal: [0], //DEVELOPING\n viajeExtra: [0], //DEVELOPING\n viajeExtraN: [0], //DEVELOPING\n viajeNocturna: [0],//DEVELOPING\n viajeWeekEnd: [0],//DEVELOPING\n total: {\n normal: 0,\n extra: 0,\n extraN: 0,\n nocturna: 0,\n weekEnd: 0,\n viaje: 0,\n viajeNormal: 0, //DEVELOPING\n viajeExtra: 0, //DEVELOPING\n viajeExtraN: 0, //DEVELOPING\n viajeNocturna: 0,//DEVELOPING\n viajeWeekEnd: 0,//DEVELOPING\n },\n };\n (data?.data?.workReport).forEach((day, i) => {\n let saveDayInRange = [];\n let orderByType = (type) => {\n let order = 0;\n switch (type) {\n case 'normal':\n order = 1;\n break;\n case 'extra':\n order = 2;\n break;\n case 'extraN':\n order = 3;\n break;\n case 'nocturna':\n order = 4;\n break;\n }\n return order;\n };\n\n console.log(\"updating hi\", day);\n if (typeof day.date === \"string\") {\n let isSBS = (day.startHour == \"Viaje SBS\" || day.finishHour == \"Viaje SBS\");\n if (day.startHour && day.finishHour && !isSBS) {\n let ranges = {\n normal: [\n {\n start: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n extra: [\n {\n start: moment(`${day.date} 6:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 6:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n extraN: [\n {\n start: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n nocturna: [\n {\n start: moment(`${day.date} 00:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n {\n start: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\").add(\n 2,\n \"days\"\n ),\n },\n ],\n };\n // Se ha comentado porque se vuelve a definir lo mismo.\n // let start = moment(\n // `${day.date} ${day.startHour}`,\n // \"YYYY-mm-dd HH:mm\"\n // );\n // let finish = moment(\n // `${day.date} ${day.finishHour}`,\n // \"YYYY-mm-dd HH:mm\"\n // );\n\n let start = moment(`${day.date} ${day.startHour}`, \"YYYY-mm-dd HH:mm\");\n let finish = moment(`${day.date} ${day.finishHour}`, \"YYYY-mm-dd HH:mm\");\n console.log(\"day\", moment(`${day.date} ${day.finishHour}`).day());\n if (start >= finish) finish.add(1, \"days\");\n\n console.log(\"weekend\", day);\n \n // weekEnd\n if (\n moment(`${day.date} ${day.finishHour}`).day() === 0 ||\n moment(`${day.date} ${day.finishHour}`).day() === 6\n ) {\n newTotalHours.weekEnd[i] = duration(start, finish);\n if (\n Number(!isNaN(day.pause) ? day.pause : \"0\") > 0\n ) {\n newTotalHours.weekEnd[i] -= Number(day.pause) / 60;\n }\n } \n else {\n let addHours = (type) => {\n // newTotalHours.normal[i] =\n // duration(start, finish) - Number(day.pause) / 60;\n // newTotalHours[type][i] = 0;\n\n ranges[type].forEach((range) => {\n console.log('OIHB: ', `Rangos \"${type}\"[${i}]: ${range.start} a ${range.finish} | Petición: ${day.startHour} a ${day.finishHour}`)\n let s = start > range.start ? start : range.start;\n let f = finish < range.finish ? finish : range.finish;\n\n if (start < range.finish && finish > range.start) {\n let saveDuration = duration(s, f);\n newTotalHours[type][i] = saveDuration;\n\n if (\n saveDuration > 0 && \n Number(isNaN(day.pause) ? '0' : day.pause) > 0\n ) {\n saveDayInRange.push({\n type: type,\n i: i,\n order: orderByType(type),\n duration: saveDuration,\n total: newTotalHours[type][i],\n });\n //newTotalHours[type][i] -= Number(day.pause) / 60;\n }\n console.log(\"OIHB\", `Entra en este rango: \"${type}\"[${i}]`);\n }\n });\n };\n for (const property in ranges) addHours(property);\n }\n } \n else {\n if (\n moment(`${day.date} ${day.finishHour}`).day() === 0 ||\n moment(`${day.date} ${day.finishHour}`).day() === 6\n ) {\n newTotalHours.weekEnd[i] = 0;\n } else {\n newTotalHours.normal[i] = 0;\n newTotalHours.extra[i] = 0;\n newTotalHours.extraN[i] = 0;\n newTotalHours.nocturna[i] = 0;\n }\n }\n \n if (day.out && day.arrival && !(day.out == \"N/A\" || day.arrival == \"N/A\")) {\n let rangesViaje = {\n viajeNormal: [\n {\n start: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n viajeExtra: [\n {\n start: moment(`${day.date} 6:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 6:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 8:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n viajeExtraN: [\n {\n start: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 18:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n ],\n viajeNocturna: [\n {\n start: moment(`${day.date} 00:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\"),\n },\n {\n start: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\"),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n },\n {\n start: moment(`${day.date} 20:00`, \"YYYY-mm-dd HH:mm\").add(\n 1,\n \"days\"\n ),\n finish: moment(`${day.date} 06:00`, \"YYYY-mm-dd HH:mm\").add(\n 2,\n \"days\"\n ),\n },\n ],\n };\n // viaje\n let start = moment(`${day.date} ${day.out}`, \"YYYY-mm-dd HH:mm\");\n let finish = moment(`${day.date} ${day.arrival}`, \"YYYY-mm-dd HH:mm\");\n console.log('OIHB', 'Viaje Rango: ' + start + ' - ' + finish);\n\n if (start >= finish) finish.add(1, \"days\");\n\n newTotalHours.viaje[i] = (day.out == \"N/A\" || day.arrival == \"N/A\") ? 0 : duration(start, finish);\n \n //--------------------------------------------------------------------------------------\n //Lo nuevo de las columnas viaje\n // weekEnd\n if (\n moment(`${day.date} ${day.arrival}`).day() === 0 ||\n moment(`${day.date} ${day.arrival}`).day() === 6\n ) {\n newTotalHours.viajeWeekEnd[i] = duration(start, finish);\n } \n else {\n let addHours = (type) => {\n rangesViaje[type].forEach((range) => {\n console.log('OIHB: ', `Viajes Rangos \"${type}\"[${i}]: ${range.start} a ${range.finish} | Petición: ${day.startHour} a ${day.finishHour}`)\n let s = start > range.start ? start : range.start;\n let f = finish < range.finish ? finish : range.finish;\n \n if (start < range.finish && finish > range.start) {\n newTotalHours[type][i] = duration(s, f);\n console.log(\"OIHB\", `Entra en este viaje rango: \"${type}\"[${i}]`);\n }\n });\n };\n for (const property in rangesViaje) addHours(property);\n }\n //--------------------------------------------------------------------------------------\n } \n else {\n newTotalHours.viaje[i] = 0;\n //--------------------------------------------------------------------------------------\n //Lo nuevo de las columnas viaje\n if (\n moment(`${day.date} ${day.finishHour}`).day() === 0 ||\n moment(`${day.date} ${day.finishHour}`).day() === 6\n ) {\n newTotalHours.viajeWeekEnd[i] = 0;\n } \n else {\n newTotalHours.viajeNormal[i] = 0;\n newTotalHours.viajeExtra[i] = 0;\n newTotalHours.viajeExtraN[i] = 0;\n newTotalHours.viajeNocturna[i] = 0;\n }\n //--------------------------------------------------------------------------------------\n }\n } \n else {\n if (\n moment(`${day.date} ${day.finishHour}`).day() === 0 ||\n moment(`${day.date} ${day.finishHour}`).day() === 6\n ) {\n newTotalHours.weekEnd[i] = 0;\n } else {\n newTotalHours.normal[i] = 0;\n newTotalHours.extra[i] = 0;\n newTotalHours.extraN[i] = 0;\n newTotalHours.nocturna[i] = 0;\n }\n\n newTotalHours.viaje[i] = 0;\n }\n\n // let _totales = saveDayInRange.map(m => { return m.total });\n // let _maxTotal = Math.max(..._totales);\n // let _objAD = saveDayInRange.find(f => f.total == _maxTotal); \n // if (_objAD){\n // newTotalHours[_objAD.type][_objAD.i] -= Number(day.pause) / 60;\n // }\n\n let saveDayPause = Number(day.pause) / 60;\n saveDayInRange.sort((a, b) => { return a.order-b.order;}).map(\n (item) => {\n if (saveDayPause > 0) {\n if (item.duration >= saveDayPause) {\n newTotalHours[item.type][item.i] -= saveDayPause;\n saveDayPause = 0;\n }\n else {\n newTotalHours[item.type][item.i] -= item.duration;\n saveDayPause -= item.duration;\n }\n }\n }\n );\n\n // saveDayInRange = [];\n \n });\n console.log(\"updating hi\", newTotalHours);\n // setTotalHours({\n // ...newTotalHours,\n // total: {\n // normal: newTotalHours.normal.reduce((a, b) => a + b),\n // extra: newTotalHours.extra.reduce((a, b) => a + b),\n // extraN: newTotalHours.extraN.reduce((a, b) => a + b),\n // nocturna: newTotalHours.nocturna.reduce((a, b) => a + b),\n // weekEnd: newTotalHours.weekEnd.reduce((a, b) => a + b),\n // viaje: newTotalHours.viaje.reduce((a, b) => a + b),\n // },\n // });\n\n setTotalHours({\n ...newTotalHours,\n total: {\n normal: newTotalHours.normal.reduce((a, b) => a + b),\n extra: newTotalHours.extra.reduce((a, b) => a + b),\n extraN: newTotalHours.extraN.reduce((a, b) => a + b),\n nocturna: newTotalHours.nocturna.reduce((a, b) => a + b),\n weekEnd: newTotalHours.weekEnd.reduce((a, b) => a + b),\n viaje: newTotalHours.viaje.reduce((a, b) => a + b),\n viajeNormal: newTotalHours.viajeNormal.reduce((a, b) => a + b),//DEVELOPING\n viajeExtra: newTotalHours.viajeExtra.reduce((a, b) => a + b),//DEVELOPING\n viajeExtraN: newTotalHours.viajeExtraN.reduce((a, b) => a + b),//DEVELOPING\n viajeNocturna: newTotalHours.viajeNocturna.reduce((a, b) => a + b),//DEVELOPING\n viajeWeekEnd: newTotalHours.viajeWeekEnd.reduce((a, b) => a + b),//DEVELOPING\n },\n });\n\n console.log('OIHB totalHours', totalHours);\n };\n\n const generateValidation = (param) => {\n if (validate) {\n let data = dataReport.data;\n if (param in data) {\n return \"black\";\n } else {\n return \"red\";\n }\n }\n return \"black\";\n };\n\n const renderInput = (title, value, param, props = {}) => {\n if (!checkProperties.some(s => s.paramName == param)) {\n checkProperties.push( {\n tittleParam: title,\n paramName: param, \n });\n }\n\n return (\n <div className=\"row\" style={{ alignItems: \"center\", marginBottom: 10 }}>\n <label\n style={{ fontSize: \"1.3rem\", fontWeight: \"700\" }}\n className=\"col-sm-4 col-form-label\"\n >\n {title}\n </label>\n <div className=\"col-sm-8 col-12 col-md-8\">\n <input\n disabled={disabled}\n type=\"text\"\n className=\"form-control\"\n value={value}\n style={{\n ...styleInput,\n fontSize: \"1.3rem\",\n borderBottomColor:\n \"type\" in props\n ? \"black\"\n : validate\n ? value?.length > 0\n ? \"black\"\n : \"red\"\n : \"black\",\n }}\n onChange={(value) => {\n handleInput(value, param);\n }}\n onKeyUp={(value) => {\n if (param == \"technicalName\" || param == \"orderNo\") {\n // let comming = [...codeComing];\n // comming.push(true);\n // setCodeComing(comming);\n\n // getServiceCode();\n }\n }}\n {...props}\n />\n </div>\n </div>\n );\n };\n\n const renderInputTwo = (title, value, param, props = {}) => {\n return (\n <div className=\"row\" style={{ alignItems: \"center\", marginBottom: 10 }}>\n <label\n style={{ fontSize: \"1.3rem\", fontWeight: \"700\" }}\n className=\"col-sm-3 form-label\"\n >\n {title}\n </label>\n <div className=\"col-sm-9 col-12 col-md-8\">\n <input\n type=\"text\"\n className=\"form-control\"\n value={value}\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? value?.length > 0\n ? \"black\"\n : \"red\"\n : \"black\",\n }}\n onChange={(value) => {\n handleInput(value, param);\n }}\n {...props}\n />\n </div>\n </div>\n );\n };\n\n const validateData = () => {\n let data = dataReport.data;\n let success = false;\n //validateDays();\n if (\n data?.client &&\n data?.cityClient &&\n data?.noMachine &&\n data?.contactClient &&\n data?.technicalName &&\n data?.clientName &&\n data?.orderNo &&\n data?.ocupation &&\n data?.projectCoordinator &&\n data?.typeWork &&\n data?.REK &&\n !(data.ahr.a == \"\" || data.ahr.h == \"\" || data.ahr.r == \"\") &&\n data?.observations \n ) success = true;\n /* {\n let count = 0;\n\n data.workReport.forEach((day, i) => {\n\n if (\n day.startHour === ''\n && day.finishHour === ''\n && day.pause === \"\"\n && day?.machineNumber === ''\n && day.out !== ''\n && day.arrival !== ''\n && day?.description === \"\"\n ) {\n count = 1\n\n } else {\n\n let orComparison = !!(day.startHour\n || day.finishHour\n || day.pause !== \"\"\n || day?.machineNumber\n || day.out\n || day.arrival\n || day?.description !== \"\"\n );\n\n let andComparison = !!(day.startHour\n && day.finishHour\n && day.pause !== \"\"\n && day?.machineNumber\n && day.out\n && day.arrival\n && day?.description !== \"\");\n\n if (orComparison) {\n count++;\n\n if (orComparison !== andComparison)\n success = false;\n else if (typeof day.date !== 'string')\n success = false;\n }\n\n }\n\n\n });\n\n if (!count) success = false;\n } else {\n\n success = false;\n } */\n return success;\n };\n\n const validateDays = () => {\n let data = dataReport.data;\n let valid = [];\n data.workReport.map((report) => {\n let isSelected = false;\n if (\n report.date !== null ||\n report.startHour !== \"\" ||\n report.finishHour !== \"\" ||\n report.pause !== \"\" ||\n report?.machineNumber !== \"\" ||\n report.out !== \"\" ||\n report.arrival !== \"\" ||\n report?.description !== \"\"\n ) {\n isSelected = true;\n if (\n report.date !== null &&\n report.date !== \"\" &&\n report.out !== \"\" &&\n report.arrival !== \"\" &&\n report?.description !== \"\"\n ) {\n isSelected = false;\n }\n }\n valid.push(isSelected);\n });\n setArrayValid(valid);\n };\n\n const handleSend = () => {\n console.log(\"DATA BEFORE SEND TO ENDPOINT\", dataReport);\n console.log(\"DATA BEFORE SEND TO ENDPOINT\", dataReport);\n console.log(\"DATAENDPOINT\", dataReport);\n\n let numOrdenes = props?.location?.state?.numOrdenes;\n let newErrors = {...errors};\n newErrors.orderNo = (numOrdenes || []).some(n => n == dataReport.data.orderNo) ? 1 : 0;\n setErrors(newErrors);\n\n if (!validateData()) {\n let details = {\n description: 'Favor de llenar los campos obligatorios:',\n details: [validateGeneralFields(), ...validateWorkReportFields()]\n };\n\n alert(details, true);\n }\n else if (numOrdenes.some(n => n == dataReport.data.orderNo)) {\n alert(\"Favor de corregir los errores.\");\n }\n else {\n getServiceCode();\n }\n };\n\n const addRow = () => {\n let workReport = {\n date: null,\n startHour: \"\",\n finishHour: \"\",\n pause: \"\",\n machineNumber: \"\",\n out: \"\",\n arrival: \"\",\n description: \"\",\n };\n let x = dataReport?.data?.workReport.push(workReport);\n dateSelect();\n renderRows();\n };\n\n const deleteRow = (index) => {\n let x = dataReport?.data?.workReport;\n console.log(index, x.length);\n if (x.length > 1) {\n for (var i = x.length - 1; i >= 0; --i) {\n if (i == index) {\n let newReport = dataReport?.data?.workReport.splice(i, 1);\n }\n }\n } else {\n alert(\"No se puede realizar la acción. Debes contener al menos 1 fila\");\n }\n\n console.log(\"updating hours\", dataReport);\n dateSelect();\n renderRows();\n /* updateHours(dataReport) */\n };\n\n const actualice = () => {\n let numOrdenes = (props?.location?.state?.numOrdenes || []).filter(f => f != dataReportSaved.data.orderNo);\n if (!numOrdenes) numOrdenes = [];\n\n console.log('OIHB', numOrdenes);\n let newErrors = {...errors};\n newErrors.orderNo = numOrdenes.some(n => n == dataReport.data.orderNo) ? 1 : 0;\n setErrors(newErrors);\n \n if (numOrdenes.some(n => n == dataReport.data.orderNo)) {\n alert(\"Favor de corregir los errores.\");\n }\n else {\n getServiceCode();\n }\n //if (validateData()) {\n //let dataSend = {\n //employeeId: dataReport.employeeId,\n //data: dataReport.data,\n //};\n //props.EditPerdiemAction(dataSend, dataReport.id);\n //}\n /* else {\n alert('Favor de llenar los campos obligatorios')\n }*/\n };\n\n const getServiceCode = () => {\n let dataServCode = {\n name: dataReport.data.technicalName + \"\",\n orderNo: dataReport.data.orderNo + \"\",\n date: dataReport.data.workReport[0].date + \"\",\n currentCode: (dataReportSaved?.data?.serviceCode || \"0\") + \"\",\n };\n console.log('OIHB', dataServCode);\n props.ServiceCodeAction(dataServCode);\n };\n\n const procesarServicioReporte = () => {\n if (type == \"borrador\") {\n let dataSend = {\n data: dataReport.data,\n };\n props.EditPerdiemAction(dataSend, dataReport.id);\n }\n else {\n let sendDataChiefData = props?.sendDataChiefData?.DataChief;\n let newDataReport = {\n ...dataReport,\n boss: {\n email: sendDataChiefData?.Email || \"\",\n id: sendDataChiefData?.Trab_ID || \"\",\n name: sendDataChiefData?.NombreCompleto || \"\",\n },\n name: dataReport?.data?.technicalName,\n };\n console.log(\"DATAENDPOINT\", newDataReport);\n props.CreatePerdiemAction(newDataReport);\n }\n };\n\n const getTransaltedField = (field) => \n {\n switch (field) {\n case 'observations':\n return '\"Comentarios/Observaciones\"';\n break;\n case 'orderNo':\n return '\"Número de Orden\"';\n break;\n case 'technicalName':\n return '\"Técnico de Krones\"';\n break;\n case 'street':\n return '\"Calle\"';\n break;\n case 'colony':\n return '\"Colonia\"';\n break;\n case 'cp':\n return '\"Código Postal\"';\n break;\n case 'state':\n return '\"Estado\"';\n break;\n case 'country':\n return '\"País\"';\n break;\n case 'folio':\n return '\"Folio\"';\n break;\n case 'a':\n return '\"A\"';\n break;\n case 'h':\n return '\"H\"';\n break;\n case 'r':\n return '\"R\"';\n break;\n case 't':\n return '\"T\"';\n break;\n case 'v':\n return '\"V\"';\n break;\n case 's':\n return '\"S\"';\n break;\n case 'REK':\n return '\"REK\"';\n break;\n case 'client':\n return '\"Razón Social Cliente\"';\n break;\n case 'cityClient':\n return '\"Ciudad\"';\n break;\n case 'noMachine':\n return '\"No. Maq\"';\n break;\n case 'contactClient':\n return '\"Contacto Cliente\"';\n break;\n case 'projectCoordinator':\n return '\"Coordinador de Proyecto\"';\n break;\n case 'clientName':\n return '\"Nombre de Cliente\"';\n break;\n case 'ocupation':\n return '\"Ocupación\"';\n break;\n case 'typeWork':\n return '\"Servicio, reporte o respaldo de datos\"';\n break;\n case 'date':\n return '\"Fecha\"';\n break;\n case 'out':\n return '\"Salida\"';\n break;\n case 'arrival':\n return '\"Llegada\"';\n break;\n case 'description':\n return '\"Comentarios/Tipo de Trabajo\"';\n break;\n case 'startHour':\n return '\"Inicio\"';\n break;\n case 'finishHour':\n return '\"Final\"';\n break;\n case 'pause':\n return '\"Pausa\"';\n break;\n case 'machineNumber':\n return '\"Número de Maquina\"';\n break;\n }\n return '';\n };\n\n const validateWorkReportFields = () => \n {\n let data = dataReport.data;\n let mainFields = [\n 'date', 'startHour', 'finishHour', 'pause', \n ];\n let secondaryFields = [\n 'machineNumber', 'out', 'arrival', 'description' \n ];\n let missedFields = [];\n\n console.log('OIHB', data.workReport);\n (data.workReport || []).map((row, iR) => {\n let missed = { fila: (iR + 1), fields: [] };\n\n mainFields.map((field) => {\n if (!row[field] && row[field] !== '0') {\n //missedFields.push(getTransaltedField(field) + ' en la fila ' + (iR + 1));\n missed.fields.push(getTransaltedField(field));\n }\n });\n\n secondaryFields.map((field) => {\n if (!row[field] && row[field] !== '0') {\n console.log('OIHB', field);\n //missedFields.push(getTransaltedField(field) + ' en la fila ' + (iR + 1));\n missed.fields.push(getTransaltedField(field));\n }\n });\n\n if (missed.fields.length > 0) missedFields.push(missed);\n });\n \n return missedFields.map((item) => { return `En la fila ${item.fila}; ${item.fields.join(', ')}`; });\n };\n \n const validateGeneralFields = () => {\n let paramInvalid = '';\n let data = dataReport.data;\n\n checkProperties.map((item, i) => {\n if (!data[item.paramName]) {\n paramInvalid += (paramInvalid.length > 0 ? ', ' : '') + `\"${item.tittleParam}\"`;\n }\n });\n\n if (!data.typeWork) \n paramInvalid += (paramInvalid.length > 0 ? ', ' : '') + '\"Servicio, reporte, o respaldo datos\"';\n if (!data.REK) \n paramInvalid += (paramInvalid.length > 0 ? ', ' : '') + '\"REK\"';\n if ((data.ahr.a == \"\" || data.ahr.h == \"\" || data.ahr.r == \"\"))\n paramInvalid += (paramInvalid.length > 0 ? ', ' : '') + '\"A, H, R\"';\n if (!data.observations) \n paramInvalid += (paramInvalid.length > 0 ? ', ' : '') + '\"Comentarios/Observaciones\"';\n \n return paramInvalid;\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"REPORTE DETALLE\" icon=\"mdi mdi-account-multiple\" />\n {/* <div className=\"container-fluid\" style={{ overflowX: 'auto' }}>\n <div className=\"row\" style={{ width: '140%' }}> */}\n {/* <div className=\"container-fluid\" style={{ transform: 'scale(0.6)'}}> */}\n <div className=\"container-fluid\" style={{ zoom }}>\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\" id=\"content\">\n <div\n className=\"row col-12 col-md-12 col-lg-12\"\n style={{ padding: \"1%\" }}\n >\n <div className=\"col-12 col-md-12 col-lg-2 column\">\n <img\n src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Krones_Logo.svg/2560px-Krones_Logo.svg.png\"\n style={{ width: \"100%\" }}\n />\n </div>\n <div\n className=\"col-12 col-md-12 col-lg-10\"\n style={{ textAlign: \"end\" }}\n >\n <h6>{dataReport?.data?.address?.street || null}</h6>\n <h6>{dataReport?.data?.address?.colony || null}</h6>\n <h6>\n {dataReport?.data?.address\n ? dataReport?.data?.address?.cp +\n \", \" +\n dataReport?.data?.address?.state +\n \", \" +\n dataReport?.data?.address?.country\n : \"\"}\n </h6>\n <h5>Reporte de Servicio</h5>\n </div>\n {!isSign ? (\n <div\n style={{ fontSize: \"1.3rem !important\" }}\n className=\"col-12 col-md-12 col-lg-5 dir column\"\n >\n {renderInput(\n \"Razón Social Cliente\",\n dataReport?.data?.client || null,\n \"client\"\n )}\n {renderInput(\n \"Ciudad\",\n dataReport?.data?.cityClient || null,\n \"cityClient\"\n )}\n {renderInput(\n \"No. Máq\",\n dataReport?.data?.noMachine || null,\n \"noMachine\"\n )}\n {renderInput(\n \"Contacto Cliente\",\n dataReport?.data?.contactClient || null,\n \"contactClient\"\n )}\n {renderInput(\n \"Coordinador de Proyecto\",\n dataReport?.data?.projectCoordinator || null,\n \"projectCoordinator\"\n )}\n </div>\n ) : null}\n\n {!isSign ? (\n <div\n style={{ fontSize: \"1.3rem !important\" }}\n className=\"col-12 col-md-12 col-lg-5 column\"\n >\n {type ? (\n <p>\n <b style={{ color: \"red\" }}>\n {dataReport?.data?.serviceCode ? `No. Reporte Servicio (RS): ${dataReport?.data?.serviceCode}` : `No. Reporte Servicio (RS): ${dataReport?.data?.technicalName\n ?.replace(/\\w\\S*/g, function (txt) {\n return (\n txt.charAt(0).toUpperCase() +\n txt.substr(1).toLowerCase()\n );\n })\n ?.replace(/\\s/g, \"\")}${\n dataReport?.data?.orderNo\n ? dataReport?.data?.orderNo\n .toString()\n .padStart(6, \"0\")\n : \"\"\n }`}{\" \"}\n </b>\n </p>\n ) : (\n <></>\n )}\n {renderInput(\n \"Técnico de KRONES\",\n dataReport?.data?.technicalName || null,\n \"technicalName\"\n )}\n {renderInput(\n \"Nombre del Cliente\",\n dataReport?.data?.clientName || null,\n \"clientName\"\n )}\n\n {renderInput(\n \"Número de Orden\",\n dataReport?.data.orderNo || null,\n \"orderNo\"\n )}\n {errors.orderNo ? <label style={ { color: 'red', fontWeight: 'bold'} }>Este número de orden ya fue ocupado.</label> : null}\n\n {renderSelectorOcupation(\n \"Ocupación\",\n dataReport?.data?.ocupation || null,\n \"ocupation\"\n )}\n </div>\n ) : null}\n\n <div\n className=\"col-sm-12 col-lg-12 col-md-12\"\n style={{\n textAlign: \"center\",\n marginBottom: 10,\n fontWeight: 400,\n }}\n >\n <i>\n Antes de firmar este reporte, revise detenidamente el\n tiempo empleado, el trabajo realizado; las normas de\n la compañía no permiten modificar este reporte después\n de firmado.\n </i>\n </div>\n\n {!isSign ? (\n <div className=\"col-8 col-md-8 col-lg-8 column table-responsive\">\n <table className=\"table\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n style={{\n border: \"1px\",\n borderRight: \"black\",\n width: \"20%\",\n solid: \"black\",\n }}\n ></th>\n {/* <th scope=\"col\" style={{ border: '1px' }}>Tipo de Trabajo</th> */}\n <th scope=\"col\" style={{ border: \"1px\" }}></th>\n </tr>\n </thead>\n <tbody>\n <tr\n style={{\n borderBottom: \"1px\",\n borderBottomColor: \"red solid\",\n }}\n >\n <td\n style={{\n border: \"1px\",\n borderRight: \"black\",\n border: \"1px\",\n color: generateValidation(\"typeWork\"),\n }}\n >\n Servicio, reporte, o respaldo datos\n </td>\n <td\n style={{\n verticalAlign: \"middle\",\n maxWidth: \"250px\",\n width: \"200px\",\n }}\n >\n <input\n disabled={disabled}\n style={{ ...styleInput }}\n checked={\n dataReport?.data.typeWork === \"completo\"\n }\n onChange={(value) => {\n handleInput(value, \"typeWork\");\n }}\n name=\"service_report\"\n type=\"radio\"\n value=\"completo\"\n className=\"with-gap\"\n id={\"completo\"}\n />\n <label\n htmlFor={\"completo\"}\n style={{\n paddingLeft: \"5px\",\n marginRight: \"20px\",\n width: \"200px\",\n }}\n >\n Completo\n </label>\n </td>\n <td\n style={{\n verticalAlign: \"middle\",\n maxWidth: \"250px\",\n width: \"200px\",\n }}\n >\n <input\n disabled={disabled}\n style={styleInput}\n checked={\n dataReport?.data.typeWork === \"pendiente\"\n }\n onChange={(value) => {\n handleInput(value, \"typeWork\");\n }}\n name=\"service_report\"\n type=\"radio\"\n value=\"pendiente\"\n className=\"with-gap\"\n id={\"pendiente\"}\n />\n <label\n htmlFor={\"pendiente\"}\n style={{\n paddingLeft: \"5px\",\n width: \"200px\",\n }}\n >\n Pendiente\n </label>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n ) : null}\n </div>\n\n {!isSign ? (\n <div className=\"col-12 col-md-12 col-lg-12 column table-responsive\">\n <button\n onClick={() => {\n addRow();\n }}\n type=\"button\"\n className=\"btn btn-success waves-effect waves-light\"\n >\n Agregar Fila\n </button>\n <table className=\"table table-bordered\">\n <thead>\n <tr>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Fecha\n </th>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Inicio\n </th>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Final\n </th>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Pausa\n </th>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Número de Máquina\n </th>\n <th colSpan=\"2\">\n <p style={{ textAlign: \"center\" }}>\n Tiempo de viaje\n </p>\n <div style={{ display: \"flex\" }}>\n <p style={{ fontSize: 13, width: \"100%\" }}>\n Salida\n </p>\n <p\n style={{\n fontSize: 13,\n width: \"100%\",\n paddingLeft: \"12px\",\n }}\n >\n Llegada\n </p>\n </div>\n </th>\n <th scope=\"col\" style={{ fontSize: 13 }}>\n Comentarios/Tipo de Trabajo\n </th>\n {/* <th scope=\"col\" style={{ fontSize: 13 }}>Acciones</th> */}\n </tr>\n </thead>\n\n <tbody>{renderRows()}</tbody>\n </table>\n </div>\n ) : null}\n {!isSign ? (\n <div className=\"col-12 col-md-12 col-lg-12 row\">\n <div className=\"col-12 col-md-1 col-lg-1 table-responsive\">\n <table className=\"table table-bordered\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n style={{ width: \"2%\" }}\n rowspan=\"2\"\n >\n REK\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <select\n value={dataReport?.data.REK || null}\n disabled={disabled}\n className=\"form-control\"\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? dataReport?.data?.REK &&\n dataReport?.data?.REK.length > 0\n ? null\n : \"red\"\n : null,\n }}\n // style={{padding:0}}\n onChange={(value) => {\n handleSelect(value, \"REK\");\n }}\n >\n {/* <option value=\"\">{dataReport?.data.REK || null}</option> */}\n <option value=\"\"></option>\n <option value=\"Si\">Si</option>\n <option value=\"No\">No</option>\n </select>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div className=\"col-12 col-md-2 col-lg-2\">\n <table className=\"table table-bordered\">\n <tbody>\n <tr>\n <td>A=</td>\n <td>\n <input\n disabled={disabled}\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? dataReport?.data?.ahr?.a ||\n dataReport?.data?.ahr?.a.length > 0 ||\n dataReport?.data?.ahr?.h.length > 0 ||\n dataReport?.data?.ahr?.r.length > 0\n ? null\n : \"red\"\n : null,\n }}\n type=\"number\"\n min=\"0\"\n className=\"form-control\"\n name=\"AA\"\n value={dataReport?.data?.ahr?.a || null}\n onChange={(value) => {\n ahr(value, \"a\");\n }}\n />\n </td>\n </tr>\n <tr>\n <td>H=</td>\n <td>\n <input\n disabled={disabled}\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? dataReport?.data?.ahr?.h ||\n dataReport?.data?.ahr?.a.length > 0 ||\n dataReport?.data?.ahr?.h.length > 0 ||\n dataReport?.data?.ahr?.r.length > 0\n ? null\n : \"red\"\n : null,\n }}\n type=\"number\"\n min=\"0\"\n className=\"form-control\"\n name=\"HH\"\n value={dataReport?.data?.ahr?.h || null}\n onChange={(value) => {\n ahr(value, \"h\");\n }}\n />\n </td>\n </tr>\n <tr>\n <td>R=</td>\n <td>\n <input\n disabled={disabled}\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? dataReport?.data?.ahr?.r ||\n dataReport?.data?.ahr?.a.length > 0 ||\n dataReport?.data?.ahr?.h.length > 0 ||\n dataReport?.data?.ahr?.r.length > 0\n ? null\n : \"red\"\n : null,\n }}\n type=\"number\"\n min=\"0\"\n className=\"form-control\"\n name=\"RR\"\n value={dataReport?.data?.ahr?.r || null}\n onChange={(value) => {\n ahr(value, \"r\");\n }}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div className=\"col-12 col-md-2 col-lg-2 \">\n <table className=\"table table-bordered\">\n <tbody>\n <tr>\n <td>T=</td>\n\n <td>\n <p>\n {parseFloat(\n Number(totalHours.total.normal) +\n Number(totalHours.total.extra) +\n Number(totalHours.total.extraN) +\n Number(totalHours.total.nocturna) +\n Number(totalHours.total.weekEnd)\n ).toFixed(2)}\n </p>\n </td>\n </tr>\n <tr>\n <td>V=</td>\n <td>\n <p>\n {parseFloat(\n Number(totalHours.total.viaje)\n ).toFixed(2)}\n </p>\n </td>\n </tr>\n <tr>\n <td>S=</td>\n <td>\n <p>\n {parseFloat(\n Number(totalHours.total.normal) +\n Number(totalHours.total.extra) +\n Number(totalHours.total.extraN) +\n Number(totalHours.total.nocturna) +\n Number(totalHours.total.weekEnd) +\n //Number(totalHours.total.viaje) + \n Number(totalHours.total.viajeNormal || \"0\") + \n Number(totalHours.total.viajeExtra || \"0\") + \n Number(totalHours.total.viajeExtraN || \"0\") + \n Number(totalHours.total.viajeNocturna || \"0\") + \n Number(totalHours.total.viajeWeekEnd || \"0\") \n ).toFixed(2)}\n </p>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div className=\"col-12 col-md-7 col-lg-7 table-responsive\">\n <table className=\"table table-bordered\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n rowspan=\"2\"\n style={{ fontSize: 13, verticalAlign: 'middle' }}\n >\n TIPO DE HORA LABORADA\n </th>\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n NORMAL\n </th>\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n EXTRA\n </th>\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n EXTRA\n </th>\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n NOCTURNA\n </th>\n <th\n scope=\"col\"\n rowspan=\"2\"\n style={{ fontSize: 13, verticalAlign: 'middle' }}\n >\n FIN DE SEMANA - FESTIVO\n </th>\n {/* <th\n scope=\"col\"\n rowspan=\"2\"\n style={{ fontSize: 13 }}\n >\n VIAJE\n </th> */}\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n V. NORMAL\n </th>\n <th scope=\"col\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n V. EXTRA\n </th>\n <th scope=\"col\" rowspan=\"2\" style={{ fontSize: 13, verticalAlign: 'middle' }}>\n V. FIN DE SEMANA - FESTIVO\n </th>\n </tr>\n <tr>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 08:00 a 18:00\n </th>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 06:00 a 08:00\n </th>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 18:00 a 20:00\n </th>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 20:00 a 06:00\n </th>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 08:00 a 18:00\n </th>\n <th scope=\"col\" style={{ fontSize: 12, verticalAlign: 'middle' }}>\n 18:00 a 08:00\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>CANTIDADES</td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.normal) ? totalHours.total.normal+'.0' : totalHours.total.normal}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.extra) ? totalHours.total.extra+'.0' : totalHours.total.extra}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.extraN) ? totalHours.total.extraN+'.0' : totalHours.total.extraN}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.nocturna) ? totalHours.total.nocturna+'.0' : totalHours.total.nocturna}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.weekEnd) ? totalHours.total.weekEnd+'.0' : totalHours.total.weekEnd}\n </p>\n </td>\n {/* <td>\n <p style={{ textAlign: \"center\" }}>\n {Number.isInteger(totalHours.total.viaje) ? totalHours.total.viaje+'.0' : totalHours.total.viaje}\n </p>\n </td> */}\n <td>\n <p style={{ textAlign: \"center\" }}>\n {parseFloat(Number(totalHours.total.viajeNormal || \"0\")).toFixed(1)}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {parseFloat(\n Number(totalHours.total.viajeExtra || \"0\") + \n Number(totalHours.total.viajeExtraN || \"0\") + \n Number(totalHours.total.viajeNocturna || \"0\") \n ).toFixed(1)}\n </p>\n </td>\n <td>\n <p style={{ textAlign: \"center\" }}>\n {parseFloat(Number(totalHours.total.viajeWeekEnd || \"0\")).toFixed(1)}\n </p>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n {\n <div className=\"col-12 col-md-12\">\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label\n htmlFor=\"staticEmail\"\n className=\"col-sm-12 col-form-label\"\n >\n Comentarios/Observaciones\n </label>\n <div className=\"col-sm-12 col-12 col-md-12\">\n <textarea\n style={styleInput}\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows=\"2\"\n value={dataReport?.data?.observations}\n onChange={(value) => {\n handleInput(value, \"observations\");\n }}\n />\n </div>\n </div>\n </div>\n }\n </div>\n ) : null}\n\n {isSign ? (\n <div>\n <div className=\"col-12 col-md-12 col-lg-12 mb-2\">\n <p>\n <b>Revisión de seguridades</b> (Cualquier anomalia,\n alteración o modificación de las seguridades debe\n ser descrita con detalle suficiente){\" \"}\n </p>\n </div>\n <div\n className=\"col-12 col-md-12 col-lg-12 row\"\n style={{ marginBottom: \"2%\" }}\n >\n <div className=\"col-sm-12 col-md-4 col-lg-12\">\n <div>\n <input\n type=\"checkbox\"\n value=\"\"\n id=\"defaultCheck1\"\n />\n <label htmlFor=\"defaultCheck1\">\n ¿Consta la máquina con todas sus seguridades\n activadas?\n </label>\n </div>\n <br />\n <div>\n <input\n type=\"checkbox\"\n value=\"\"\n id=\"defaultCheck2\"\n />\n <label htmlFor=\"defaultCheck2\">\n ¿Hubo alguna modificación en cuanto a\n seguridades activadas?\n </label>\n </div>\n <br />\n <div>\n <input\n type=\"checkbox\"\n value=\"\"\n id=\"defaultCheck3\"\n />\n <label htmlFor=\"defaultCheck3\">\n ¿Las actividades se modificaron por\n responsabilidad del cliente?\n </label>\n </div>\n </div>\n\n <div className=\"col-sm-12 col-md-4 col-lg-6\">\n <div className=\"col-sm-12 col-12 col-md-12\">\n <label\n htmlFor=\"staticEmail\"\n className=\"col-sm-10 col-form-label\"\n >\n {\" \"}\n Técnico Krones{\" \"}\n </label>\n <div style={{ zoom: 1 / zoom }}>\n <div\n style={{\n borderStyle: \"groove\",\n width: \"100%\",\n borderWidth: \"1px\",\n marginTop: \"5px\",\n }}\n >\n <CanvasDraw\n ref={canvasTest}\n style={{ width: '100%', height: '150px' }}\n lazyRadius={3}\n brushRadius={1}\n brushColor={\"#000\"}\n hideGrid={true}\n />\n </div>\n </div>\n\n <div\n className=\"row\"\n style={{\n alignItems: \"center\",\n marginBottom: 10,\n marginTop: 20,\n }}\n >\n <label\n style={{\n fontSize: \"1.3rem\",\n fontWeight: \"700\",\n }}\n className=\"col-sm-12 form-label\"\n >\n {dataReport?.data?.technicalName}\n </label>\n </div>\n </div>\n </div>\n\n <div className=\"col-sm-12 col-md-4 col-lg-6\">\n <div className=\"form-group col-sm-12 col-12 col-md-12\">\n <label\n htmlFor=\"staticEmail\"\n className=\"col-sm-12 col-form-label\"\n >\n Firma Cliente\n </label>\n <div style={{ zoom: 1 / zoom }}>\n <div\n style={{\n borderStyle: \"groove\",\n width: \"100%\",\n borderWidth: \"1px\",\n marginTop: \"5px\",\n }}\n >\n <CanvasDraw\n ref={canvasTest2}\n style={{ width: '100%', height: '150px' }}\n lazyRadius={3}\n brushRadius={1}\n brushColor={\"#000\"}\n hideGrid={true}\n /> \n </div>\n </div>\n {renderInputTwo(\n \"Nombre cliente\",\n dataReport?.data?.nombreCliente || null,\n \"nombreCliente\"\n )}\n {renderInputTwo(\n \"Puesto\",\n dataReport?.data?.jobTitle || null,\n \"jobTitle\"\n )}\n <div\n className=\"row\"\n style={{\n alignItems: \"center\",\n marginBottom: 10,\n }}\n >\n <label className=\"col-sm-3 col-form-label\">\n {\"Fecha de firma\"}\n </label>\n <div className=\"col-sm-9 col-12 col-md-8\">\n <input\n value={dataReport?.data?.signDate}\n type=\"date\"\n className=\"form-control\"\n style={{\n ...styleInput,\n borderBottomColor: validate\n ? dataReport?.data?.signDate\n ? \"black\"\n : \"red\"\n : \"black\",\n }}\n onChange={(value) => {\n handleInput(value, \"signDate\");\n }}\n />\n </div>\n </div>\n </div>\n </div> \n </div>\n </div>\n ) : null}\n\n {show && dataReport?.status && dataReport?.status === 1 ? (\n <>\n <div>\n <p>\n {\" \"}\n Por favor ingresa el o los correos del cliente\n (separados por una coma) a los cuáles se les enviará\n este reporte.\n </p>\n <input\n onChange={(event) => {\n setEmails(event.target.value);\n }}\n style={styleInput}\n type=\"text\"\n className=\"form-control\"\n />\n </div>\n <div\n className=\"card-action text-center header_div\"\n id=\"header_div\"\n >\n <button\n onClick={() => {\n handleSubmit();\n }}\n type=\"button\"\n className=\"btn btn-success waves-effect waves-light mt-5\"\n >\n Firmar\n </button>\n </div>\n </>\n ) : null}\n\n {type === \"borrador\" ? (\n <div className=\"card-action text-center \">\n <button\n onClick={() => {\n actualice();\n }}\n type=\"button\"\n className=\"btn btn-success waves-effect waves-light\"\n disabled={codeComing.some(s => s == true)}\n >\n Actualizar\n </button>\n </div>\n ) : null}\n\n {type === null ? (\n <div className=\"card-action text-center\">\n <button\n onClick={() => {\n handleSend();\n }}\n type=\"button\"\n className=\"btn btn-success waves-effect waves-light\"\n disabled={codeComing.some(s => s == true)}\n >\n Crear Reporte\n </button>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n//\nconst mapStateToProps = (state) => {\n return {\n createPerdiemData: state.createPerdiem.createPerdiemData,\n createPerdiemError: state.createPerdiem.createPerdiemError,\n\n editPerdiemData: state.editPerdiem.editPerdiemData,\n editPerdiemError: state.editPerdiem.editPerdiemError,\n\n signPerdiemData: state.signPerdiem.signPerdiemData,\n signPerdiemError: state.signPerdiem.signPerdiemError,\n\n empleadoJornadaData: state.empleadoJornada.empleadoJornadaData,\n empleadoJornadaError: state.empleadoJornada.empleadoJornadaError,\n\n loginData: state.login.loginData,\n loginError: state.login.loginError,\n\n idPerdiemData: state.idPerdiem.idPerdiemData,\n idPerdiemError: state.idPerdiem.idPerdiemError,\n\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n\n sendDataChiefData: state.sendDataChief.sendDataChiefData,\n sendDataChiefError: state.sendDataChief.sendDataChiefError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n\n conceptsData: state.concepts.conceptsData,\n conceptsError: state.concepts.conceptsError,\n\n servCodePerdiemData: state.serviceCode.servCodePerdiemData,\n servCodePerdiemError: state.serviceCode.servCodePerdiemError,\n };\n};\n\nconst mapDispatchToProps = {\n CreatePerdiemAction,\n GetPerdiemAction,\n EditPerdiemAction,\n SignPerdiemAction,\n getEmpleadoJornadaAction,\n IdPerdiemAction,\n getVacationsAction,\n ConceptsAction,\n ServiceCodeAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(DetailReport)\n);\n","import {\r\n SERVCODE_PERDIEM_SUCCESS,\r\n SERVCODE_PERDIEM_ERROR,\r\n SERVCODE_PERDIEM_PURGE\r\n } from '../../types'\r\n \r\n \r\n export const ServiceCodeAction = (data) => {\r\n \r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n };\r\n \r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/requests/serviceCode'\r\n \r\n console.log(' SERVCODE_PERDIEM RECUEST:', url, config, data);\r\n \r\n return (dispatch) => {\r\n \r\n if (data === 'PURGE') {\r\n dispatch({ type: SERVCODE_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then(json => json.json())\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n ServiceCode: responseJson\r\n }\r\n console.log('RESPONSE SERVCODE_PERDIEM DATA SUCCESS: ', response);\r\n dispatch({ type: SERVCODE_PERDIEM_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR SERVCODE_PERDIEM DATA ERROR: ', response);\r\n dispatch({ type: SERVCODE_PERDIEM_ERROR, payload: response })\r\n }\r\n \r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR SERVCODE_PERDIEM DATA: ', responseError);\r\n dispatch({ type: SERVCODE_PERDIEM_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n };","import { changeXml, IncidenciasKronesResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n INCIDENCIAS_KRONES_SUCCESS,\r\n INCIDENCIAS_KRONES_ERROR,\r\n INCIDENCIAS_KRONES_PURGE,\r\n VALIDATE_ERROR\r\n} from '../../types'\r\n\r\n\r\nexport const getCatIncidenciasKronesAction = (data, server) => {\r\n let configJson = {\r\n 'tem:CatIncidencias': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatIncidencias\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST CatIncidencias:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: INCIDENCIAS_KRONES_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET INCIDENCIAS_KRONES_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: INCIDENCIAS_KRONES_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n IncidenciasKrones: IncidenciasKronesResponse(body)\r\n }\r\n\r\n console.log('RESPONSE INCIDENCIAS_KRONES DATA: ', response);\r\n dispatch({ type: INCIDENCIAS_KRONES_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET INCIDENCIAS_KRONES DATA: ', response);\r\n dispatch({ type: INCIDENCIAS_KRONES_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET INCIDENCIAS_KRONES DATA: ', responseError);\r\n dispatch({ type: INCIDENCIAS_KRONES_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, VacationsResponseV2 } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VACATIONS_SUCCESS,\r\n VACATIONS_ERROR,\r\n VACATIONS_PURGE,\r\n VALIDATE_ERROR\r\n} from '../../types'\r\n\r\n\r\nexport const getVacationsActionV2 = (data, server) => {\r\n let configJson = {\r\n 'tem:MisVacaciones': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MisVacaciones\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: VACATIONS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET VACATIONS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: VACATIONS_ERROR, payload: response })\r\n } else { \r\n response = {\r\n isOK: true,\r\n VacationsV2: VacationsResponseV2(body)\r\n }\r\n\r\n console.log('RESPONSE VACATIONS DATA: ', response);\r\n dispatch({ type: VACATIONS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VACATIONS DATA: ', response);\r\n dispatch({ type: VACATIONS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VACATIONS DATA: ', responseError);\r\n dispatch({ type: VACATIONS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\nimport { getCatIncidenciasKronesAction } from '../../api/actions/empleado/IncidenciasKronesAction';\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\nimport { getVacationsActionV2 } from '../../api/actions/empleado/VacationsActionV2';\nimport { GetIncidenciasConfigAction, IniciaIncidenciaConfigEventoAction, CancelaIncidenciaConfigEventoAction, UpdateIncidenciasConfigAction } from '../../api/actions/systemAdmin/IncidenciasConfigAction';\nimport { GetIncidenciasRazonesAction } from '../../api/actions/systemAdmin/IncidenciasRazonesAction';\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\nimport { getCancelVacationsEulenAction } from '../../api/actions/systemAdmin/CancelVacationsEulenAction';\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\nimport moment from 'moment';\nimport Row from '../../components/row/Row'\n\nimport { getParams } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nconst Incidents = props => {\n\n const [loading, setLoading] = useState(true);\n const [showTable, setShowTable] = useState('1');\n const [incidents, setIncidents] = useState([]);\n const [data, setData] = useState({});\n // Se agregó para guardar por separado la información cuando existen cancelaciones de incidencias\n const [dataV2, setDataV2] = useState({});\n const [incidenciasConfig, setIncidenciasConfig] = useState([]);\n const [incidenciasRazones, setIncidenciasRazones] = useState([]);\n const [valoresConfig, setValoresConfig] = useState([]);\n const [formularioIncidencia, setFormularioIncidencia] = useState(false); //(process.env.REACT_APP_IS_KRONES == '1')\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({});\n const [form, setValues] = useState({});\n const [warnings, setWarn] = useState(null);\n const [motivo, setMotivo] = useState('');\n\n // Se agregó para mostrar el modal de cancelación de incidencias\n const [showCancelModal, setShowCancelModal] = useState(false);\n\n useEffect(() => {\n getCatIncidents();\n getVacaciones();\n GetValoresConfig('SICONSULTA');\n\n if (localStorage.getItem(\"REACT_APP_CONF_INCIDENCIAS\") == '1') {\n GetIncidenciasConfig();\n }\n }, []);\n\n useEffect(() => {\n if (props.catIncidentsData && props.catIncidentsData.isOK) {\n let cat = [...props.catIncidentsData.CatIncidents];\n setIncidents(cat);\n setLoading(false);\n props.getCatIncidentsAction('PURGE', '');\n }\n else if (props.catIncidentsError && props.catIncidentsError.isOK === false) {\n setIncidents([]);\n setLoading(false);\n props.getCatIncidentsAction('PURGE', '');\n }\n }, [props.catIncidentsData, props.catIncidentsError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK) {\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\n setDataV2({\n ...props.vacationsData.VacationsV2\n });\n } else {\n setData({\n ...props.vacationsData.Vacations\n });\n }\n setLoading(false);\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\n props.getVacationsActionV2('PURGE', '');\n } else {\n props.getVacationsAction('PURGE', '');\n }\n }\n else if (props.vacationsError && props.vacationsError.isOK === false) {\n setData({\n antiguedad: null,\n diasDisfrutados: null,\n diasDisponibles: null,\n diasTomados: null,\n fechaIngreso: null,\n totalDiasVacacionales: null\n });\n setLoading(false);\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\n props.getVacationsActionV2('PURGE', '');\n } else {\n props.getVacationsAction('PURGE', '');\n }\n }\n }, [props.vacationsData, props.vacationsError]);\n\n useEffect(() => {\n let { params, server } = getParams();\n if (props.cancelVacationsEulenData && props.cancelVacationsEulenData.isOK) {\n alert('Su solicitud de cancelación ha sido enviada.');\n props.getVacationsActionV2('PURGE', '');\n props.getCancelVacationsEulenAction('PURGE', '');\n props.getVacationsActionV2(params, server);\n\n setLoading(false);\n } else if (props.cancelVacationsEulenError && props.cancelVacationsEulenError.isOK === false) {\n props.getCancelVacationsEulenAction('PURGE', '');\n props.getVacationsActionV2('PURGE', '');\n props.getVacationsActionV2(params, server);\n\n setLoading(false);\n }\n }, [props.cancelVacationsEulenData, props.cancelVacationsEulenError]);\n\n useEffect(() => {\n if ((props.getIncidenciasConfigData && props.getIncidenciasConfigData.isOK)) {\n let catalogo = [];\n if ('GetIncidenciasConfig' in props.getIncidenciasConfigData) {\n catalogo = [...props.getIncidenciasConfigData.GetIncidenciasConfig.IncidenciasConfig];\n }\n setIncidenciasConfig(catalogo);\n props.GetIncidenciasConfigAction('PURGE', '');\n }\n else if ((props.getIncidenciasConfigError && props.getIncidenciasConfigError.isOK === false)) {\n setIncidenciasConfig([]);\n props.GetIncidenciasConfigAction('PURGE', '');\n }\n }, [props.getIncidenciasConfigData, props.getIncidenciasConfigError]);\n\n useEffect(() => {\n if ((props.iniciaIncidenciaConfigEventoData && props.iniciaIncidenciaConfigEventoData.isOK)) {\n let result = { ...props.iniciaIncidenciaConfigEventoData.IniciaIncidenciaConfigEvento };\n if ('Exito' in result && 'Mensaje' in result) {\n alert(result.Mensaje);\n if (result.Exito) {\n setIncidenciasConfig([]);\n GetIncidenciasConfig();\n }\n }\n setLoading(false);\n props.IniciaIncidenciaConfigEventoAction('PURGE', '');\n }\n else if ((props.iniciaIncidenciaConfigEventoError && props.iniciaIncidenciaConfigEventoError.isOK === false)) {\n setLoading(false);\n props.IniciaIncidenciaConfigEventoAction('PURGE', '');\n }\n }, [props.iniciaIncidenciaConfigEventoData, props.iniciaIncidenciaConfigEventoError]);\n\n useEffect(() => {\n if ((props.cancelaIncidenciaConfigEventoData && props.cancelaIncidenciaConfigEventoData.isOK)) {\n let result = { ...props.cancelaIncidenciaConfigEventoData.CancelaIncidenciaConfigEvento };\n if ('Exito' in result && 'Mensaje' in result) {\n alert(result.Mensaje);\n if (result.Exito) {\n setIncidenciasConfig([]);\n GetIncidenciasConfig();\n }\n }\n setLoading(false);\n props.CancelaIncidenciaConfigEventoAction('PURGE', '');\n }\n else if ((props.cancelaIncidenciaConfigEventoError && props.cancelaIncidenciaConfigEventoError.isOK === false)) {\n setLoading(false);\n props.CancelaIncidenciaConfigEventoAction('PURGE', '');\n }\n }, [props.cancelaIncidenciaConfigEventoData, props.cancelaIncidenciaConfigEventoError]);\n\n useEffect(() => {\n if ((props.updateIncidenciasConfigData && props.updateIncidenciasConfigData.isOK)) {\n let result = { ...props.updateIncidenciasConfigData.UpdateIncidenciasConfig };\n if ('Exito' in result && 'Mensaje' in result) {\n if (result.Exito) {\n IniciaIncidenciaConfigEvento(form.Falta_ID);\n setValues({});\n setLoading(true);\n }\n }\n props.UpdateIncidenciasConfigAction('PURGE', '');\n }\n else if ((props.updateIncidenciasConfigError && props.updateIncidenciasConfigError.isOK === false)) {\n setLoading(false);\n props.UpdateIncidenciasConfigAction('PURGE', '');\n }\n }, [props.updateIncidenciasConfigData, props.updateIncidenciasConfigError]);\n\n useEffect(() => {\n if ((props.getIncidenciasRazonesData && props.getIncidenciasRazonesData.isOK)) {\n let catalogo = [];\n if ('GetIncidenciasRazones' in props.getIncidenciasRazonesData) {\n catalogo = [...props.getIncidenciasRazonesData.GetIncidenciasRazones.IncidenciasRazones];\n }\n setLoading(false);\n setIncidenciasRazones(catalogo);\n props.GetIncidenciasRazonesAction('PURGE', '');\n }\n else if ((props.getIncidenciasRazonesError && props.getIncidenciasRazonesError.isOK === false)) {\n setLoading(false);\n setIncidenciasConfig([]);\n props.GetIncidenciasRazonesAction('PURGE', '');\n }\n }, [props.getIncidenciasRazonesData, props.getIncidenciasRazonesError]);\n\n useEffect(() => {\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\n if (configuraciones.length > 0) {\n setFormularioIncidencia(\n configuraciones.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'FormularioIncidencia' && s.Valor == '1'))\n );\n setValoresConfig(configuraciones);\n }\n else {\n setValoresConfig([]);\n }\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setValoresConfig([]);\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n\n\n const getCatIncidents = () => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n };\n\n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1' || sessionStorage.getItem(\"SICONSULTA_ValidaDiasKrones\") == \"1\") {\n _params['tem:TrabID'] = params['tem:TrabID'];\n }\n\n props.getCatIncidentsAction(_params, server);\n };\n\n const getVacaciones = () => {\n setLoading(true);\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n //'tem:ArchivoAdjunto': true,\n };\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\n props.getVacationsActionV2(_params, server);\n } else {\n props.getVacationsAction(_params, server);\n }\n };\n\n const GetIncidenciasConfig = () => {\n let { params, server } = getParams();\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID']\n };\n props.GetIncidenciasConfigAction(send, server);\n };\n\n const IniciaIncidenciaConfigEvento = (FaltaID) => {\n let { params, server } = getParams();\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:FaltaID': FaltaID,\n };\n props.IniciaIncidenciaConfigEventoAction(send, server);\n };\n\n const CancelaIncidenciaConfigEvento = (FaltaID) => {\n let { params, server } = getParams();\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:FaltaID': FaltaID,\n };\n props.CancelaIncidenciaConfigEventoAction(send, server);\n };\n\n const UpdateIncidenciasConfig = () => {\n let m = moment(form.FechaIncial);\n let fechaIncial = m.format('YYYY-MM-DD') + 'T00:00:00.00';\n console.log('OIHB ESP hanldeFinishModal', form, fechaIncial);\n\n let { params, server } = getParams();\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Id': form.Id,\n 'tem:FechaInicial': fechaIncial,\n };\n\n if (incidenciasRazones.length > 0) {\n send['tem:Razon_ID'] = form.Razon_ID;\n }\n\n console.log('OIHB ESP UpdateIncidenciasConfig', send, server);\n props.UpdateIncidenciasConfigAction(send, server);\n };\n\n const GetIncidenciasRazones = (FaltaID) => {\n let { params, server } = getParams();\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:FaltaID': FaltaID,\n 'tem:Activo': true\n };\n\n setLoading(true);\n props.GetIncidenciasRazonesAction(send, server);\n };\n\n const GetValoresConfig = (seccion, variable = '') => {\n let { params, server } = getParams();\n\n let send = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:Seccion\": seccion,\n \"tem:Variable\": variable,\n };\n\n props.GetValoresConfigAction(send, server);\n };\n\n const incidents_table = () => {\n let table = [];\n table.push(<tr key={\"tr_i00\"}><td>Sin incidencias</td></tr>);\n\n if (!data.incidencias) return table;\n if (data.incidencias.length == 0) return table;\n table = [];\n\n if (data.incidencias[0]['error']) {\n table.push(\n <tr>\n <td>{data.incidencias[0]['error']}</td>\n </tr>\n );\n }\n else {\n data.incidencias.map((item, i) => {\n let color;\n\n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Rechazada':\n color = '#be2b71';\n break;\n\n default:\n color = '#003b71';\n }\n\n table.push(\n <tr key={item.SolicitudID}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td>{(item.TipoSolString || '')}</td>\n {formularioIncidencia ?\n <Row item={item} />\n :\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\n <div>\n {item.Dia}\n </div>\n </td>\n }\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')}</td>\n {localStorage.getItem(\"REACT_APP_MUESTRA_MOTIVO\") == '1' && <td>{item.MotivoVacacion}</td>}\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\n <td>{item.Comentario} </td>}\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\n <td></td>\n </tr>\n );\n });\n return table;\n }\n\n return table;\n };\n\n\n const incidents_tableV2 = () => {\n let table = [];\n\n\n table.push(<tr key={\"tr_i00\"}><td>Sin incidencias</td></tr>);\n\n if (!dataV2.incidencias) return table;\n if (dataV2.incidencias.length == 0) return table;\n table = [];\n\n if (dataV2.incidencias[0]['error']) {\n table.push(\n <tr>\n <td>{dataV2.incidencias[0]['error']}</td>\n </tr>\n );\n }\n else {\n dataV2.incidencias.map((item, i) => {\n let cancelacionIncidencia = dataV2.solCancelIncidencias\n\n let canCancel = false;\n let color;\n let itemFechaVacacion = (item.FechaInicio == undefined || item.FechaInicio == null || item.FechaInicio === '') ? item.FechaVacacion : item.FechaInicio\n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Rechazada':\n color = '#be2b71';\n break;\n\n default:\n color = '#003b71';\n }\n\n\n if (cancelacionIncidencia && cancelacionIncidencia.length > 0 && item.Status == 'Aprobado') {\n let exists = [];\n if (item.RangoFechas === 'true') {\n exists = cancelacionIncidencia.filter(cancelacionIncidencia => (\n cancelacionIncidencia.RangoFechas === item.RangoFechas &&\n cancelacionIncidencia.Dia === item.Dia &&\n (\n moment(cancelacionIncidencia.FechaInicio).format('DD-MM-YYYY') === moment(item.FechaInicio).format('DD-MM-YYYY') &&\n moment(cancelacionIncidencia.FechaFin).format('DD-MM-YYYY') === moment(item.FechaFin).format('DD-MM-YYYY')\n )\n ));\n }\n else {\n exists = cancelacionIncidencia.filter(cancelacionIncidencia => (\n cancelacionIncidencia.Dia === item.Dia &&\n moment(((cancelacionIncidencia.FechaInicio == undefined || cancelacionIncidencia.FechaInicio == null || cancelacionIncidencia.FechaInicio === '') ? cancelacionIncidencia.FechaVacacion : cancelacionIncidencia.FechaInicio)).format('DD-MM-YYYY') === moment(itemFechaVacacion).format('DD-MM-YYYY')\n ));\n //console.log('OIHB', itemFechaVacacion + '; Es única');\n }\n\n if (valoresConfig.some(s => (s.Seccion === 'SICONSULTA' && s.Variable === 'CancelIncidencias' && s.Valor === '1')) && (item.Status === 'Aprobado') && (exists.length <= 0)) {\n canCancel = true;\n }\n }\n else if (item.Status === 'Aprobado') {\n canCancel = true;\n }\n console.log('ITEM_FECHAS', item.FechaInicio, item.RangoFechas)\n\n table.push(\n <tr key={item.SolicitudID}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td>{item.TipoSolString}</td>\n {formularioIncidencia ?\n <Row item={item} />\n :\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\n <div>\n {item.Dia}\n </div>\n </td>\n }\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')}</td>\n {localStorage.getItem(\"REACT_APP_MUESTRA_MOTIVO\") == '1' && <td>{item.MotivoVacacion}</td>}\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\n <td>{item.Comentario} </td>}\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\n {canCancel ?\n <td onClick={() => _handleRowClick(item.SolicitudID, item.TipoSolicitud)}><i className=\"mdi mdi-close\"></i></td>\n :\n <td></td>}\n </tr>\n );\n });\n }\n\n return table;\n };\n\n const cancelations_table = () => {\n\n let table = [];\n let solicitudes = dataV2.solCancelIncidencias\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td>Sin cancelaciones</td>\n </tr>\n );\n }\n if (solicitudes.length > 0) {\n if (solicitudes[0]['error']) {\n table.push(\n <tr>\n <td>{solicitudes[0]['error']}</td>\n </tr>\n );\n } else {\n\n solicitudes.map((item, i) => {\n let color;\n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Rechazada':\n color = '#be2b71';\n break;\n\n case 'Vencida':\n color = '#8B0000';\n break;\n default:\n color = '#003b71';\n }\n\n\n let validateDates = (item.FechaInicio == undefined || item.FechaInicio == null || (item.FechaInicio == undefined || item.FechaInicio == null || item.FechaInicio === '')) ? item.FechaVacacion : item.FechaInicio\n table.push(\n <tr key={item.SolicitudID}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td>{item.TipoSolString}</td>\n {formularioIncidencia ?\n <Row item={item} />\n :\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\n <div>\n {item.Dia}\n </div>\n </td>\n }\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}</td>\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\n <td>{item.Comentario} </td>}\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\n <td></td>\n </tr>\n );\n });\n\n }\n }\n\n return table;\n };\n\n\n\n const countIncidentsConfig = () => {\n return [...incidenciasConfig].filter(f => [...incidents].some(s => s.id == f.Falta_ID)).length;\n }\n\n const incidentsConfig_table = () => {\n let table = [];\n\n table.push(<tr key={\"tr_ic00\"}><td colSpan=\"3\">Sin incidencias por evento</td></tr>);\n\n let catIncidents = [...incidents];\n\n if (catIncidents.length == 0) return table;\n\n let catIncidentsConfig = incidenciasConfig.filter(f => catIncidents.some(s => s.id == f.Falta_ID));\n if (catIncidentsConfig.length == 0) return table;\n\n table = [];\n\n catIncidentsConfig.map((item, i) => {\n let color;\n let obj = catIncidents.find(f => f.id == item.Falta_ID);\n let descripcion = item.Falta_ID;\n if (obj != null) descripcion = obj.descripcion;\n\n //console.log('OIHB ESP', obj);\n\n switch (item.Activo) {\n case 'true':\n color = '#93c03f';\n break;\n case 'false':\n color = '#be2b71';\n break;\n default:\n color = '#be2b71';\n }\n\n // var vencimientoSL = false;\n // if (item._FechaComienzo != \"N/A\" && item._FechaVencimiento != \"N/A\") {\n // var m1 = moment(item._FechaComienzo);\n // var m2 = moment(item._FechaVencimiento);\n // vencimientoSL = m2.diff(m1, 'years', true) >=2;\n // }\n\n //var vencimientoSL = false;\n // var m1 = moment(item._FechaComienzo);\n // var m2 = moment(item._FechaVencimiento);\n // if (m1 && m2) {\n // vencimientoSL = m2.diff(m1, 'years', true) >=2;\n // }\n\n var vencimientoSL = false;\n var tryDate = (strFecha = \"\") => {\n // Donde el formato sería: DD-MM-YYYY\n var arr = strFecha.split('-');\n if (arr.length >= 3) return new Date(arr[2], arr[1], arr[0]);\n else return null;\n };\n\n var m1 = tryDate(item._FechaComienzo);\n var m2 = tryDate(item._FechaVencimiento);\n if (m1 && m2) {\n vencimientoSL = (m2.getFullYear() - m1.getFullYear()) >= 2;\n }\n\n table.push(\n <tr key={'tr_ic' + item.Id}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td><i className=\"mdi mdi-calendar-clock\"></i> {descripcion}</td>\n <td>{(item._DiasOtorgados >= 360 ? 'SIN LIMITE' : item._DiasOtorgados)}</td>\n <td>{(item._DiasOtorgados >= 360 ? 'SIN LIMITE' : item._DiasPendientes)}</td>\n <td>{item._DiasGozados}</td>\n <td>{item._FechaComienzo}</td>\n <td>{(vencimientoSL ? 'SIN LIMITE' : item._FechaVencimiento)}</td>\n <td style={{ color: color }}>{item.Activo == 'true' ? 'Activado' : 'Desactivado'}</td>\n <td style={{ textAlign: 'right' }}>\n {item.PorEvento == 'true' &&\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light\" onClick={() => handleIncidentEvent(item)}>\n {(item.Activo == 'true' ? 'Cancelar' : 'Iniciar')}\n </button>\n }\n </td>\n </tr>\n );\n });\n return table;\n };\n\n const _handleRowClick = (id, incidencia) => {\n setDataModal({\n title: 'Cancelación de Incidencia',\n body: `¿Estás seguro que deseas cancelar esta solicitud de incidencia?.`,\n rejectButton: true,\n confirmButton: true,\n data: id,\n incidencia: incidencia,\n type: 'incidencia',\n haveComment: (localStorage.getItem(\"REACT_APP_ESCRIBE_MOTIVO\") == \"1\"),\n });\n setShowCancelModal(true);\n };\n\n const _handleConfirmCancelationModal = (id, incidencia) => {\n let { params, server } = getParams();\n console.log('PARAMS', params)\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:SolicitudID': id,\n 'tem:TrabIDEmp': params['tem:TrabID'],\n 'tem:Motivo': motivo,\n 'tem:Incidencia': true,\n 'tem:Incidencia_ID': incidencia\n }\n setLoading(true);\n props.getCancelVacationsEulenAction(params, server);\n\n setShowCancelModal(false);\n setMotivo('');\n setDataModal({});\n };\n\n\n const _handleCancelationCloseModal = () => {\n setShowCancelModal(false);\n setMotivo('');\n };\n\n const handleCancelationInput = event => {\n var value = event.target.value;\n setMotivo(value);\n };\n\n const handleIncidentEvent = (incident) => {\n if (incident == undefined || incident == null) return;\n //setLoading(true);\n\n if (incident.Activo == 'true') {\n setLoading(true);\n CancelaIncidenciaConfigEvento(incident.Falta_ID);\n }\n else {\n GetIncidenciasRazones(incident.Falta_ID);\n handleOpenModal(incident.Id, incident.Falta_ID);\n //IniciaIncidenciaConfigEvento(incident.Falta_ID);\n }\n };\n\n const handleDropdown = e => {\n setShowTable(e.target.value);\n };\n\n const _handleInput = (event) => {\n setValues({\n ...form,\n [event.target.name]: event.target.value,\n });\n };\n\n const _renderSelector = (name, array, value, text2, text1 = null) => {\n let options = [(<option key={'opt_' + name} value={null}>Sin datos</option>)];\n if (array.length > 0) {\n options = array.map((m, ix) => {\n if (text1 == null) text1 = value;\n return (<option key={'opt' + ix + '_' + name} value={m[value]}>[{m[text1]}] {m[text2]}</option>);\n });\n\n options = [(<option key={'opt_' + name} value={null}>Selecciona</option>)].concat(options);\n }\n\n return (\n <select\n name={name}\n value={form[name]}\n className=\"form-control\"\n onChange={_handleInput}>\n {options}\n </select>\n );\n };\n\n const handleOpenModal = (Id, Falta_ID) => {\n setValues({\n //...form,\n Id: Id,\n Falta_ID: Falta_ID,\n //FechaIncial: new Date()\n });\n setShowModal(true);\n };\n\n const handleCloseModal = () => {\n setShowModal(false);\n setWarn(null);\n //setValues({});\n };\n\n const hanldeFinishModal = () => {\n var catRazones = (incidenciasRazones.length > 0);\n\n var invalidoE1 = (form.Id == undefined || form.Id == null ||\n form.Falta_ID == undefined || form.Falta_ID == null ||\n form.FechaIncial == undefined || form.FechaIncial == null);\n\n var invalidoE2 = (catRazones ? form.Razon_ID == undefined || form.Razon_ID == null : false);\n\n if (invalidoE1 || invalidoE2) {\n setWarn(\"Todos los campos son obligatorios.\");\n return;\n }\n\n\n handleCloseModal();\n\n setLoading(true);\n UpdateIncidenciasConfig();\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n \n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBIncidencias') || 'localhost').trim(); \n \n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n \n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n }\n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n\n const {\n antiguedad,\n diasDisfrutados,\n diasDisponibles,\n diasTomados,\n fechaIngreso,\n totalDiasVacacionales\n } = data;\n\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n\n <Modal show={showModal} onHide={handleCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>Captura datos para el evento</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <form>\n {warnings && (\n <div className=\"alert alert-warning\">{warnings}</div>\n )}\n <div className=\"form-group\">\n <label>\n Fecha Inicial\n </label>\n <input type=\"date\" name={'FechaIncial'} value={form['FechaIncial']} className=\"form-control\" onChange={_handleInput} />\n </div>\n {incidenciasRazones.length > 0 &&\n <div className=\"form-group\">\n <label>\n Razón de incidencia\n </label>\n {_renderSelector('Razon_ID', incidenciasRazones, 'Id', 'Descripcion', 'Numero')}\n </div>\n }\n </form>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={handleCloseModal}>\n Cancelar\n </Button>\n <Button variant=\"success\" onClick={hanldeFinishModal}>\n Iniciar\n </Button>\n </Modal.Footer>\n </Modal>\n\n {sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") === '1' && (\n <Modal show={showCancelModal} onHide={_handleCancelationCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <p>{dataModal.body}</p>\n {dataModal.haveComment ? <input\n className=\"form-control\"\n name=\"company\"\n type=\"textarea\"\n required=\"\"\n placeholder=\"Motivo\"\n value={motivo}\n onChange={handleCancelationInput}\n autoFocus\n /> : null}\n\n </Modal.Body>\n <Modal.Footer>\n {dataModal.confirmButton &&\n <Button variant=\"primary\" onClick={() => _handleConfirmCancelationModal(dataModal.data, dataModal.incidencia)}>\n Si\n </Button>\n }\n {dataModal.rejectButton &&\n <Button variant=\"danger\" onClick={() => _handleCancelationCloseModal()}>\n No\n </Button>\n }\n </Modal.Footer>\n </Modal>\n )}\n <Title actual=\"Incidencias\" icon=\"mdi mdi-alert-circle-outline\" />\n <div className=\"container-fluid\">\n\n\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n\n <div className=\"card-header\">\n <div className=\"d-flex\">\n\n\n {sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") === '1' && (\n\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2 col-6\">SOLICITUD DE</h4>\n <select className=\"form-control p-2 col-7\" onChange={handleDropdown}>\n <option value=\"1\">INCIDENCIAS</option>\n <option value=\"2\">CANCELACIONES</option>\n </select>\n </div>\n\n )}\n <Link to={`${process.env.PUBLIC_URL}/incidents/newincident`} className=\"ml-auto p-2\">\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light\">Nueva Incidencia</button>\n </Link>\n\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\" >\n <thead>\n <tr>\n {/*<th>Solicitud</th>*/}\n <th>Tipo Incidencia</th>\n <th>Día</th>\n <th>Fecha(s) solicitud</th>\n {localStorage.getItem(\"REACT_APP_MUESTRA_MOTIVO\") == '1' && <th>Motivo </th>}\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerComentariosEmpleado' && s.Valor == '1')) &&\n <th>Comentario </th>}\n <th>Estatus</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") === '1' ?\n (showTable === '1' ? incidents_tableV2() : cancelations_table()) :\n incidents_table()}\n </tbody>\n </table>\n </div>\n </div>\n\n </div>\n </div>\n\n {(localStorage.getItem(\"REACT_APP_CONF_INCIDENCIAS\") == '1' && countIncidentsConfig() > 0) &&\n <div className=\"col-lg-12\">\n <div className=\"card\">\n\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-12\">\n <h4 className=\"card-title\">CONTROL REGLAS DE INCIDENCIAS</h4>\n </div>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\" >\n <thead>\n <tr>\n {/*<th>Solicitud</th>*/}\n <th>Incidencia</th>\n\n <th>Días/Hrs. Otorgados</th>\n <th>Días/Hrs. Pendientes</th>\n <th>Días/Hrs. Tomados</th>\n <th>Inicia</th>\n <th>Finaliza</th>\n\n <th>Estatus</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {incidentsConfig_table()}\n </tbody>\n </table>\n </div>\n </div>\n\n </div>\n </div>\n }\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n\n catIncidentsData: state.catIncidents.catIncidentsData,\n catIncidentsError: state.catIncidents.catIncidentsError,\n\n incidenciasKronesData: state.incidenciasKrones.incidenciasKronesData,\n incidenciasKronesError: state.incidenciasKrones.incidenciasKronesError,\n\n getIncidenciasConfigData: state.getIncidenciasConfig.getIncidenciasConfigData,\n getIncidenciasConfigError: state.getIncidenciasConfig.getIncidenciasConfigError,\n\n iniciaIncidenciaConfigEventoData: state.iniciaIncidenciaConfigEvento.iniciaIncidenciaConfigEventoData,\n iniciaIncidenciaConfigEventoError: state.iniciaIncidenciaConfigEvento.iniciaIncidenciaConfigEventoError,\n\n cancelaIncidenciaConfigEventoData: state.cancelaIncidenciaConfigEvento.cancelaIncidenciaConfigEventoData,\n cancelaIncidenciaConfigEventoError: state.cancelaIncidenciaConfigEvento.cancelaIncidenciaConfigEventoError,\n\n updateIncidenciasConfigData: state.updateIncidenciasConfig.updateIncidenciasConfigData,\n updateIncidenciasConfigError: state.updateIncidenciasConfig.updateIncidenciasConfigError,\n\n getIncidenciasRazonesData: state.getIncidenciasRazones.getIncidenciasRazonesData,\n getIncidenciasRazonesError: state.getIncidenciasRazones.getIncidenciasRazonesError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n\n cancelVacationsEulenData: state.cancelVacationsEulen.cancelVacationsEulenData,\n cancelVacationsEulenError: state.cancelVacationsEulen.cancelVacationsEulenError,\n };\n};\n\nconst mapDispatchToProps = {\n getCatIncidentsAction,\n getVacationsAction,\n getCatIncidenciasKronesAction,\n GetIncidenciasConfigAction,\n IniciaIncidenciaConfigEventoAction,\n CancelaIncidenciaConfigEventoAction,\n UpdateIncidenciasConfigAction,\n GetIncidenciasRazonesAction,\n GetValoresConfigAction,\n getCancelVacationsEulenAction,\n getVacationsActionV2,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Incidents));\n\n","\r\nimport { changeXml, GetIncidenciasConfigResponse, IniciaIncidenciaConfigEventoResponse, CancelaIncidenciaConfigEventoResponse, UpdateIncidenciasConfigResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n GETINCIDENCIASCONFIG_SUCCESS, \r\n GETINCIDENCIASCONFIG_ERROR, \r\n GETINCIDENCIASCONFIG_PURGE, \r\n\r\n INICIAINCIDENCIACONFIGEVENTO_SUCCESS, \r\n INICIAINCIDENCIACONFIGEVENTO_ERROR, \r\n INICIAINCIDENCIACONFIGEVENTO_PURGE, \r\n\r\n CANCELAINCIDENCIACONFIGEVENTO_SUCCESS, \r\n CANCELAINCIDENCIACONFIGEVENTO_ERROR, \r\n CANCELAINCIDENCIACONFIGEVENTO_PURGE, \r\n\r\n UPDATEINCIDENCIASCONFIG_SUCCESS, \r\n UPDATEINCIDENCIASCONFIG_ERROR, \r\n UPDATEINCIDENCIASCONFIG_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetIncidenciasConfigAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetIncidenciasConfig';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETINCIDENCIASCONFIG_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetIncidenciasConfig: GetIncidenciasConfigResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASCONFIG_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETINCIDENCIASCONFIG_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetIncidenciasConfig: GetIncidenciasConfigResponse(body)\r\n };\r\n console.log('RESPONSE GETINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASCONFIG_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASCONFIG_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETINCIDENCIASCONFIG DATA: ', responseError);\r\n dispatch({ type: GETINCIDENCIASCONFIG_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const IniciaIncidenciaConfigEventoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'IniciaIncidenciaConfigEvento';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n IniciaIncidenciaConfigEvento: IniciaIncidenciaConfigEventoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE INICIAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET INICIAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n IniciaIncidenciaConfigEvento: IniciaIncidenciaConfigEventoResponse(body)\r\n };\r\n console.log('RESPONSE INICIAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET INICIAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET INICIAINCIDENCIACONFIGEVENTO DATA: ', responseError);\r\n dispatch({ type: INICIAINCIDENCIACONFIGEVENTO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const CancelaIncidenciaConfigEventoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'CancelaIncidenciaConfigEvento';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n CancelaIncidenciaConfigEvento: CancelaIncidenciaConfigEventoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE CANCELAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET CANCELAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n CancelaIncidenciaConfigEvento: CancelaIncidenciaConfigEventoResponse(body)\r\n };\r\n console.log('RESPONSE CANCELAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET CANCELAINCIDENCIACONFIGEVENTO DATA: ', response);\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET CANCELAINCIDENCIACONFIGEVENTO DATA: ', responseError);\r\n dispatch({ type: CANCELAINCIDENCIACONFIGEVENTO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateIncidenciasConfigAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'UpdateIncidenciasConfig';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateIncidenciasConfig: UpdateIncidenciasConfigResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATEINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATEINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateIncidenciasConfig: UpdateIncidenciasConfigResponse(body)\r\n };\r\n console.log('RESPONSE UPDATEINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATEINCIDENCIASCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATEINCIDENCIASCONFIG DATA: ', responseError);\r\n dispatch({ type: UPDATEINCIDENCIASCONFIG_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","\r\nimport { changeXml, GetIncidenciasRazonesResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n GETINCIDENCIASRAZONES_SUCCESS, \r\n GETINCIDENCIASRAZONES_ERROR, \r\n GETINCIDENCIASRAZONES_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetIncidenciasRazonesAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetIncidenciasRazones';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETINCIDENCIASRAZONES_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetIncidenciasRazones: GetIncidenciasRazonesResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETINCIDENCIASRAZONES DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASRAZONES_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETINCIDENCIASRAZONES DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETINCIDENCIASRAZONES_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetIncidenciasRazones: GetIncidenciasRazonesResponse(body)\r\n };\r\n console.log('RESPONSE GETINCIDENCIASRAZONES DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASRAZONES_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETINCIDENCIASRAZONES DATA: ', response);\r\n dispatch({ type: GETINCIDENCIASRAZONES_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETINCIDENCIASRAZONES DATA: ', responseError);\r\n dispatch({ type: GETINCIDENCIASRAZONES_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import { changeXml, changeToXmlWcf, InsertIncidentsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_INCIDENTS_SUCCESS,\n INSERT_INCIDENTS_ERROR,\n INSERT_INCIDENTS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getInsertIncidentsAction = (data, server, isKrones = null) => {\n if (isKrones == null) {\n isKrones = (process.env.REACT_APP_IS_KRONES == '1');\n }\n\n let configJson = {\n 'tem:InsertaIncidencia': {\n ...data\n }\n }\n\n //let obj = changeXml(configJson);\n\n if (isKrones) {\n configJson = {\n 'tem:InsertaIncidenciaKrones': {\n ...data\n }\n }\n //obj = changeToXmlWcf(configJson);\n }\n\n let obj = changeToXmlWcf(configJson);\n\n console.log('OIHB', obj);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': isKrones ? \"http://tempuri.org/IwcfKioscoSicoss/InsertaIncidenciaKrones\" : \"http://tempuri.org/IwcfKioscoSicoss/InsertaIncidencia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST InsertaIncidencia/InsertaIncidenciaKrones:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_INCIDENTS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n console.log('OIHB', 'JSON RESULT');\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n console.log('OIHB', 'JSON RESULT');\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_INCIDENTS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_INCIDENTS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n InsertIncidents: InsertIncidentsResponse(body, isKrones)\n }\n\n console.log('RESPONSE INSERT_INCIDENTS DATA: ', response);\n dispatch({ type: INSERT_INCIDENTS_SUCCESS, payload: response })\n }\n console.log('OIHB', 'JSON RESULT');\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_INCIDENTS DATA: ', response);\n dispatch({ type: INSERT_INCIDENTS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_INCIDENTS DATA: ', responseError);\n dispatch({ type: INSERT_INCIDENTS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport CryptoJS from 'crypto-js';\nimport { validDateIncidentAction } from '../../api/endpoints';\nimport { getDiasBloqueadosAspenAction } from '../../api/endpoints';\nimport DayPicker, { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport moment from 'moment';\n\nconst DatePickerSelector = props => {\n const defaultLimitDays = 365;\n const [selectedDays, setSelectedDays] = useState(props.selected);\n const [disabledDays, setDisabledDays] = useState(props.ivalid);\n const [selectedMonth, setSelectedMonth] = useState(new Date());\n const [lockedDays, setLockedDays] = useState(null);\n\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa']\n\n const MONTHS = [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre',\n ]\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n ]\n\n useEffect(() => {\n setDisabledDays(props.ivalid)\n }, [props.ivalid])\n\n useEffect(() => {\n setSelectedDays(props.selected)\n }, [props.selected])\n \n useEffect(() => {\n if (selectedMonth) {\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n getDiasBloqueados(selectedMonth);\n }\n }\n }, [selectedMonth]);\n\n const getDiasBloqueados = async (selectedMonth) => {\n let params = sessionStorage.getItem('params');\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': selectedMonth.getUTCFullYear(),\n 'tem:mes': selectedMonth.getMonth() + 1,\n };\n\n let request2 = await getDiasBloqueadosAspenAction(dataUser, server);\n if (request2 && request2.isOK) { \n // console.log('OIHB', request2.DiasBloqueados.map(item => item.Fecha));\n setLockedDays(request2.DiasBloqueados.map(item => item.Fecha));\n }\n };\n\n const handleDayClick = (day, { selected }) => {\n const selDays = selectedDays.concat();\n let disabled = disabledDays.concat();\n\n if (selected) {\n const selectedIndex = selDays.findIndex(selectedDay =>\n DateUtils.isSameDay(selectedDay, day)\n );\n selDays.splice(selectedIndex, 1);\n setSelectedDays(selDays);\n props.selectedDays(selDays)\n setDisabledDays(disabled)\n props.selectedDisabled(disabled)\n } \n else {\n validateDay(day).then((validated) => {\n if (validated) {\n selDays.push(day);\n } \n else {\n const selectedDisableIndexs = disabled.findIndex(selectedDays =>\n DateUtils.isSameDay(selectedDays, day)\n );\n if (selectedDisableIndexs === -1) {\n disabled.push(day)\n } \n else {\n disabled.splice(selectedDisableIndexs, 2);\n }\n }\n props.selectedDays(selDays)\n props.selectedDisabled(disabled)\n setSelectedDays(selDays);\n setDisabledDays(disabled)\n })\n }\n }\n\n const validateDay = async (date) => {\n if (date) {\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let formatedDate = moment(date).format('YYYY-MM-DD') + 'T00:00:00';\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fecha': formatedDate,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n \n return await validDateIncidentAction(dataUser, server).then(valid => {\n console.log('validDateIncidentAction', formatedDate, valid);\n\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n let valid2 = !lockedDays.some(day => moment(day).format('DD-MM-YYYY') == moment(date).format('DD-MM-YYYY'));\n console.log('getDiasBloqueadosAspenAction', formatedDate, valid2);\n valid = (valid && valid2);\n }\n \n return valid \n })\n }\n }\n }\n \n const modifiers = {\n disabledDayss: disabledDays,\n };\n\n return (\n <div>\n <style>{`\n .DayPicker-Day--disabledDayss {\n background-color: #be2b71;\n color: white;\n }\n .DayPicker-Day--selected {\n background-color: #93c03f;\n color: white;\n }\n .DayPicker-Day--disabled {\n outline: none;\n pointer-events: none;\n }\n `}</style>\n <DayPicker\n months={MONTHS}\n weekdaysShort={WEEKDAYS_SHORT}\n selectedDays={selectedDays}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onMonthChange={(month) => { setSelectedMonth(month) }}\n />\n </div>\n );\n\n}\n\nexport default withRouter(DatePickerSelector);","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport CryptoJS from 'crypto-js';\nimport { validDateIncidentAction } from '../../api/endpoints';\nimport { getDiasBloqueadosAspenAction } from '../../api/endpoints';\nimport DayPicker, { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport moment from 'moment';\n\nconst DatePickerMultiSelector = props => {\n const defaultLimitDays = 365;\n const [rangeSelected, setRangeSelected] = useState({ from: undefined, to: undefined })\n const [disabledDays, setDisabledDays] = useState([])\n const [enabledDays, setEnabledDays] = useState([])\n const [selectedMonth, setSelectedMonth] = useState(new Date());\n const [lockedDays, setLockedDays] = useState(null);\n const [isKrones, setIsKrones] = useState(false);\n const WEEKDAYS_SHORT = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa']\n\n const MONTHS = [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre',\n ]\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n ]\n \n useEffect(() => {\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n getDiasBloqueados(selectedMonth || new Date());\n }\n }, [selectedMonth]);\n\n useEffect(() => {\n _resetDates();\n //_handleReset();\n }, [props.resetDates]);\n\n useEffect(() => {\n if (props.isKrones == false || props.isKrones == true) {\n setIsKrones(props.isKrones);\n }\n else {\n setIsKrones(process.env.REACT_APP_IS_KRONES == '1');\n }\n }, [props.isKrones]);\n \n const getDiasBloqueados = async (selectedMonth) => {\n let params = sessionStorage.getItem('params');\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': selectedMonth.getUTCFullYear(),\n 'tem:mes': selectedMonth.getMonth() + 1,\n };\n\n let request2 = await getDiasBloqueadosAspenAction(dataUser, server);\n if (request2 && request2.isOK) { \n // console.log('OIHB', request2.DiasBloqueados.map(item => item.Fecha));\n setLockedDays(request2.DiasBloqueados.map(item => item.Fecha));\n }\n };\n \n const handleDayClick = async (day) => {\n const range = DateUtils.addDayToRange(day, rangeSelected);\n let start = range.from;\n let end = range.to || '';\n let arrDays = getDaysArray(start, end);\n setRangeSelected(range)\n let disabled = []\n let enabled = []\n if (arrDays.length > 0) {\n for(var i = 0; i < arrDays.length; i++) {\n let day = arrDays[i];\n let validated = await validateDay(day);\n if (!validated) {\n disabled.push(day);\n }\n else {\n enabled.push(day);\n }\n }\n\n // if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\n // disabled = []\n // disabled.push(range.from)\n // disabled.push(range.to)\n // }\n\n // if (disabled.length > 0) {\n // _handleReset();\n // }\n \n setDisabledDays(disabled);\n setEnabledDays(enabled);\n }\n\n if (enabled.length == 0) {\n return;\n }\n\n console.log('FEHCAS_', start, end, disabled, enabled)\n if (isKrones) {\n // if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\n\n // } \n // else {\n props.setInitialDate(start)\n props.setFinalDate(end)\n // }\n }\n else {\n // if (props.skipWeekends == true && compareIfWeekend(range) && arrDays.length == 2) {\n // _handleReset()\n // } \n // else {\n if ((localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") && equalDate(start, end)) {\n setDisabledDays([])\n _handleReset()\n } \n else {\n props.setInitialDate(start)\n props.setFinalDate(end)\n }\n // }\n }\n }\n\n const compareIfWeekend = (range) => {\n let from = range.from\n let to = range.to\n if (from != undefined && to != undefined) {\n if (!(new Date(from).getDay() % 6) && !(new Date(to).getDay() % 6)) {\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n }\n\n const equalDate = (start, end) => {\n let dayStart = start.getDay()\n let monthStart = start.getMonth()\n if (end != '') {\n let monthEnd = end.getMonth()\n let dayEnd = end.getDay()\n if (monthStart === monthEnd && dayStart === dayEnd) {\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n }\n\n const getDaysArray = (start, end) => {\n if (end) {\n for (var arr = [], dt = new Date(start); dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n return arr;\n }\n return []\n };\n\n const _resetDates = () => {\n setRangeSelected({\n from: undefined,\n to: undefined,\n });\n props.setInitialDate('');\n props.setFinalDate('');\n };\n\n const _handleReset = () => {\n if (localStorage.getItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\") != \"1\") {\n _resetDates();\n }\n }\n\n const validateDay = async (date) => {\n\n if (date) {\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL} /login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n let formatedDate = moment(date).format('YYYY-MM-DD') + 'T00:00:00';\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fecha': formatedDate,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n\n return await validDateIncidentAction(dataUser, server).then(valid => {\n console.log('validDateIncidentAction', formatedDate, valid);\n\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1') {\n let valid2 = !lockedDays.some(day => moment(day).format('DD-MM-YYYY') == moment(date).format('DD-MM-YYYY'));\n console.log('getDiasBloqueadosAspenAction', formatedDate, valid2);\n valid = (valid && valid2);\n }\n\n let myDate = new Date(date);\n // if (props.skipWeekends == true && (myDate.getDay() % 6) == 0) {\n // return false;\n // } \n // else {\n return valid;\n // }\n })\n }\n }\n }\n\n const { from, to } = rangeSelected;\n const modifiers = {\n disabledDayss: disabledDays,\n start: from, \n end: to\n };\n return (\n <div>\n <div>\n <style>{`\n.Selectable .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):not(.DayPicker-Day--disabledDayss) {\n background-color: #EEFFE0 !important;\n color: #93c03f !important;\n}\n.Selectable .DayPicker-Day {\n border-radius: 0 !important;\n}\n\n.Selectable .DayPicker-Day--start {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n background-color: #93c03f !important;\n color: #fff;\n}\n.Selectable .DayPicker-Day--end {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n background-color: #93c03f !important;\n color: #fff;\n}\n\n.Selectable .DayPicker-Day--disabledDayss {\n background-color: #be2b71 !important;\n color: #fff !important;\n}\n.Selectable .DayPicker-Day--disabled {\n outline: none;\n pointer-events: none;\n}\n` }</style>\n <DayPicker\n months={MONTHS}\n weekdaysShort={WEEKDAYS_SHORT}\n className=\"Selectable\"\n selectedDays={[from, { from, to }]}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onMonthChange={(month) => { setSelectedMonth(month) }}\n // disabledDays={{ before: new Date() }}\n />\n </div>\n <div>\n <button\n type=\"button\"\n onClick={() => {\n setRangeSelected({\n from: undefined,\n to: undefined,\n });\n props.setInitialDate('')\n props.setFinalDate('')\n setDisabledDays([])\n }}\n className=\"btn btn-info waves-effect waves-light\"\n >\n Restaurar\n </button>\n </div>\n\n\n </div>\n );\n\n}\n\nexport default withRouter(DatePickerMultiSelector);","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { CtrlVacionEmpleadoDatosAction } from '../../api/actions/empleado/ControlVacacionesEmpleadoAction';\r\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\r\nimport { getCatIncidenciasKronesAction } from '../../api/actions/empleado/IncidenciasKronesAction';\r\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\r\nimport { getInsertIncidentsAction } from '../../api/actions/empleado/InsertIncidentAction';\r\nimport { getSkipWeekendAction } from '../../api/actions/empleado/SkipWeekendAction';\r\nimport { getDiasBloqueadosAction } from '../../api/actions/systemAdmin/GetDiasBloqueadosAction';\r\n\r\nimport { getParams, getDatesInRange } from '../../utils';\r\nimport { alert, confirm } from '../../utils/common/alert';\r\nimport Card from '../../components/shared/Card.js';\r\nimport Row from '../../components/row/Row';\r\nimport FileBase64 from 'react-file-base64';\r\n\r\nimport DatePickerSelector from '../../components/incident/DatePickerSelector';\r\nimport DatePickerMultiSelector from '../../components/incident/DatePickerMultiSelector';\r\nimport DatePickerAvaibleSelector from '../../components/incident/DatePickerAvaibleSelector';\r\nimport DatePickerAvaibleMultiSelector from '../../components/incident/DatePickerAvaibleMultiSelector';\r\n\r\n//KRONES\r\nconst time = [\r\n\r\n { value: \"0:00\", label: \"0:00 Hrs\" },\r\n { value: \"0:30\", label: \"0:30 Hrs\" },\r\n { value: \"1.0\", label: \"1:00 Hrs\" },\r\n { value: \"1.3\", label: \"1:30 Hrs\" },\r\n { value: \"2.0\", label: \"2:00 Hrs\" },\r\n { value: \"2.3\", label: \"2:30 Hrs\" },\r\n { value: \"3.0\", label: \"3:00 Hrs\" },\r\n { value: \"3.3\", label: \"3:30 Hrs\" },\r\n { value: \"4.0\", label: \"4:00 Hrs\" },\r\n { value: \"4.3\", label: \"4:30 Hrs\" },\r\n { value: \"5.0\", label: \"5:00 Hrs\" },\r\n { value: \"5.3\", label: \"5:30 Hrs\" },\r\n { value: \"6.0\", label: \"6:00 Hrs\" },\r\n { value: \"6.3\", label: \"6:30 Hrs\" },\r\n { value: \"7.0\", label: \"7:00 Hrs\" },\r\n { value: \"7.3\", label: \"7:30 Hrs\" },\r\n { value: \"8.00\", label: \"8:00 Hrs\" },\r\n { value: \"8.30\", label: \"8:30 Hrs\" },\r\n { value: \"9.00\", label: \"9:00 Hrs\" },\r\n { value: \"9.30\", label: \"9:30 Hrs\" },\r\n { value: \"10.00\", label: \"10:00 Hrs\" },\r\n { value: \"10.3\", label: \"10:30 Hrs\" },\r\n { value: \"11.0\", label: \"11:00 Hrs\" },\r\n { value: \"11.3\", label: \"11:30 Hrs\" },\r\n { value: \"12.0\", label: \"12:00 Hrs\" },\r\n { value: \"12.3\", label: \"12:30 Hrs\" },\r\n { value: \"13.0\", label: \"13:00 Hrs\" },\r\n { value: \"13.3\", label: \"13:30 Hrs\" },\r\n { value: \"14.0\", label: \"14:00 Hrs\" },\r\n { value: \"14.3\", label: \"14:30 Hrs\" },\r\n { value: \"15.0\", label: \"15:00 Hrs\" },\r\n { value: \"15.3\", label: \"15:30 Hrs\" },\r\n { value: \"16.0\", label: \"16:00 Hrs\" },\r\n { value: \"16.3\", label: \"16:30 Hrs\" },\r\n { value: \"17.0\", label: \"17:00 Hrs\" },\r\n { value: \"17.3\", label: \"17:30 Hrs\" },\r\n { value: \"18.0\", label: \"18:00 Hrs\" },\r\n { value: \"18.3\", label: \"18:30 Hrs\" },\r\n { value: \"19.0\", label: \"19:00 Hrs\" },\r\n { value: \"19.3\", label: \"19:30 Hrs\" },\r\n { value: \"20.0\", label: \"20:00 Hrs\" },\r\n { value: \"20.3\", label: \"20:30 Hrs\" },\r\n { value: \"21.0\", label: \"21:00 Hrs\" },\r\n { value: \"21.3\", label: \"21:30 Hrs\" },\r\n { value: \"22.0\", label: \"22:00 Hrs\" },\r\n { value: \"22.3\", label: \"22:30 Hrs\" },\r\n { value: \"23.0\", label: \"23:00 Hrs\" },\r\n { value: \"23.3\", label: \"23:30 Hrs\" },\r\n { value: \"24.0\", label: \"24:00 Hrs\" },\r\n\r\n];\r\n\r\n\r\n//AUN NO ESTA INCLUIDO AQUI LO DE DIAS BLOQUEADOS ASPEN\r\n\r\nconst IncidentsV2 = props => {\r\n const [ loading, setLoading ] = useState(true);\r\n const [ vacacionDatos, setVacacionDatos ] = useState({});\r\n const [ vacaciones, setVacaciones ] = useState({});\r\n const { params, server } = getParams();\r\n //---------------------------------------------------------------------------------------------\r\n // const [dates, setDates] = useState([{ date: null, status: null }]);\r\n\r\n const [incidents, setIncidents] = useState([]);\r\n const [incident, setIncident] = useState('-');\r\n const [incidentTypeDate, setIncidentTypeDate] = useState('0');\r\n\r\n const [selectedDays, setSelectedDays] = useState([]);\r\n const [selectedDisabled, setSelectedDisabled] = useState([]);\r\n const [selectedMonth, setSelectedMonth] = useState(null);\r\n const [tooltipDates, setTooltipDates] = useState([]);\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n const [dataModal, setDataModal] = useState({title: '', selectedDays: [], buttons: [], });\r\n const WEEKDAYS_LONG = [\r\n 'Domingo',\r\n 'Lunes',\r\n 'Martes',\r\n 'Miercoles',\r\n 'Jueves',\r\n 'Viernes',\r\n 'Sabado',\r\n ];\r\n\r\n const [initialDate, setInitialDate] = useState('');\r\n const [finalDate, setFinalDate] = useState('');\r\n const [skipWeekends, setSkipWeekends] = useState(false);\r\n\r\n const [resetDates, setResetDates] = useState(null);\r\n //---------------------------------------------------------------------------------------------\r\n const [motivo, setMotivo] = useState('');\r\n const [fechaReposi, setFechaReposi] = useState('');\r\n const [fecha, setFecha] = useState('');\r\n const [horaEstimada, setHoraEstimada] = useState('0');\r\n const [horaReal, setHoraReal] = useState('0');\r\n const [horaSalida, setHoraSalida] = useState('0');\r\n const [file, setFile] = useState('');\r\n //---------------------------------------------------------------------------------------------\r\n useEffect(() => {\r\n setLoading(true);\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1') {\r\n _params['tem:TrabID'] = params['tem:TrabID'];\r\n }\r\n\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n setIncident({});\r\n setIncidentTypeDate('2');\r\n \r\n props.getCatIncidenciasKronesAction(_params, server); \r\n }\r\n else {\r\n props.getCatIncidentsAction(_params, server);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.catIncidentsData && props.catIncidentsData.isOK) || (props.incidenciasKronesData && props.incidenciasKronesData.isOK)) {\r\n let cat = (process.env.REACT_APP_IS_KRONES == '1' ? [...props.incidenciasKronesData.IncidenciasKrones] : [...props.catIncidentsData.CatIncidents]);\r\n setIncidents(cat);\r\n setLoading(false);\r\n getDatosVacacion();\r\n } \r\n else if ((props.catIncidentsError && props.catIncidentsError.isOK === false) || (props.incidenciasKronesError && props.incidenciasKronesError.isOK === false)) {\r\n setIncidents([]);\r\n setLoading(false);\r\n props.getCatIncidentsAction('PURGE', '');\r\n props.getCatIncidenciasKronesAction('PURGE', '');\r\n }\r\n }, [props.catIncidentsData, props.catIncidentsError, props.incidenciasKronesData, props.incidenciasKronesError]);\r\n\r\n useEffect(() => {\r\n if (process.env.REACT_APP_IS_KRONES == '1' && incidentTypeDate != '2') {\r\n setSkipWeekends(false);\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n if (props.skipWeekendData && props.skipWeekendData.isOK) {\r\n setSkipWeekends(props.skipWeekendData.skipWeekend || false);\r\n setLoading(false);\r\n } \r\n else if (props.skipWeekendError && props.skipWeekendError.isOK === false) {\r\n setSkipWeekends(false);\r\n props.getSkipWeekendAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.skipWeekendData, props.skipWeekendError]);\r\n\r\n useEffect(() => {\r\n if (props.getDiasBloqueadosData && props.getDiasBloqueadosData.isOK) {\r\n setSelectedDisabled([]);\r\n setTooltipDates([]);\r\n let diasBloqueados = [...props.getDiasBloqueadosData.GetDiasBloqueados];\r\n //console.log('OIHB Esp', diasBloqueados);\r\n if (diasBloqueados.length > 0) {\r\n diasBloqueados = diasBloqueados.filter(item => !item.PermiteSolicitar).map(item => new Date(item.Fecha));\r\n setSelectedDisabled(diasBloqueados);\r\n \r\n let tooltips = [...props.getDiasBloqueadosData.GetDiasBloqueados].filter(item => item.EsFestivo);\r\n if (tooltips.length > 0) {\r\n tooltips = tooltips.map(item => { return { Date: new Date(item.Fecha), Tooltip: item.Descripcion } });\r\n setTooltipDates(tooltips);\r\n }\r\n }\r\n \r\n setLoading(false);\r\n } \r\n else if (props.getDiasBloqueadosError && props.getDiasBloqueadosError.isOK === false) {\r\n setSelectedDisabled([]);\r\n setTooltipDates([]);\r\n props.getDiasBloqueadosAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.getDiasBloqueadosData, props.getDiasBloqueadosError]);\r\n\r\n useEffect(() => {\r\n if (props.ctrlVacionEmpleadoDatosData && props.ctrlVacionEmpleadoDatosData.isOK) {\r\n setVacacionDatos(props.ctrlVacionEmpleadoDatosData.CtrlVacionEmpleadoDatos || {});\r\n setLoading(false);\r\n\r\n getVacaciones();\r\n } \r\n else if (props.ctrlVacionEmpleadoDatosError && props.ctrlVacionEmpleadoDatosError.isOK === false) {\r\n setVacacionDatos({});\r\n props.CtrlVacionEmpleadoDatosAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.ctrlVacionEmpleadoDatosData, props.ctrlVacionEmpleadoDatosError]);\r\n\r\n useEffect(() => {\r\n if (props.vacationsData && props.vacationsData.isOK) {\r\n setVacaciones({...props.vacationsData.Vacations});\r\n props.getVacationsAction('PURGE', '');\r\n setLoading(false);\r\n } \r\n else if (props.vacationsError && props.vacationsError.isOK === false) {\r\n setVacaciones({});\r\n props.getVacationsAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsData, props.vacationsError]);\r\n\r\n useEffect(() => {\r\n if (props.insertIncidentsData && props.insertIncidentsData.isOK) {\r\n let InsertIncidents = props.insertIncidentsData.InsertIncidents;\r\n\r\n let isDetails = (localStorage.getItem(\"REACT_APP_CONFIRMA_SOLICITUDES\") == '1');\r\n if (!isDetails) {\r\n alert('Tu solicitud de incidencias ha sido enviada.');\r\n }\r\n else {\r\n let msg = {\r\n description: 'Tu solicitud de incidencia ha sido enviada.',\r\n details: []\r\n };\r\n\r\n if ((InsertIncidents.Details || []).length > 0) {\r\n msg.details = msg.details.concat(['', 'Detalles:']);\r\n msg.details = msg.details.concat(InsertIncidents.Details);\r\n alert(msg, true);\r\n }\r\n }\r\n\r\n props.getInsertIncidentsAction('PURGE', '');\r\n setLoading(false);\r\n getVacaciones();\r\n\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n setIncident({});\r\n setIncidentTypeDate('2');\r\n }\r\n else {\r\n setIncident('-');\r\n setIncidentTypeDate('0');\r\n }\r\n\r\n setInitialDate('');\r\n setFinalDate('');\r\n setSelectedDays([]);\r\n } \r\n else if (props.insertIncidentsError && props.insertIncidentsError.isOK === false) {\r\n props.getInsertIncidentsAction('PURGE', '');\r\n setLoading(false);\r\n setInitialDate('');\r\n setFinalDate('');\r\n setSelectedDays([]);\r\n }\r\n }, [props.insertIncidentsData, props.insertIncidentsError]);\r\n\r\n useEffect(() => {\r\n setInitialDate('');\r\n setFinalDate('');\r\n setSelectedDays([]);\r\n }, [incidentTypeDate]);\r\n\r\n useEffect(() => {\r\n if (selectedMonth) {\r\n getSkipWeekend();\r\n getDiasBloqueados(selectedMonth);\r\n }\r\n }, [selectedMonth]);\r\n //---------------------------------------------------------------------------------------------\r\n \r\n const getDatosVacacion = () => {\r\n setLoading(true);\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_id': params['tem:TrabID'],\r\n };\r\n\r\n props.CtrlVacionEmpleadoDatosAction(_params, server);\r\n };\r\n\r\n const getVacaciones = () => {\r\n setLoading(true);\r\n props.getVacationsAction(params, server);\r\n };\r\n\r\n const getSkipWeekend = () => {\r\n //setLoading(true);\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n };\r\n //ESTABA DEFINIDO PARA KRONES\r\n props.getSkipWeekendAction(_params, server); \r\n };\r\n\r\n const getDiasBloqueados = (month) => {\r\n //setLoading(true);\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_ID': params['tem:TrabID'],\r\n 'tem:Año': month.getFullYear(),\r\n 'tem:mes': month.getMonth() + 1,\r\n };\r\n console.log(_params);\r\n props.getDiasBloqueadosAction(_params, server);\r\n };\r\n\r\n const getTBodyIncidencias = () => {\r\n let table = [];\r\n let incidents = vacaciones.incidencias || [];\r\n if (incidents.length > 0) {\r\n if (incidents[0]['error']) {\r\n table.push(\r\n <tr>\r\n <td>{incidents[0]['error']}</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n incidents.map((item, i) => {\r\n let color;\r\n\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Rechazada':\r\n color = '#be2b71';\r\n break;\r\n\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n table.push(\r\n <tr key={item.SolicitudID}>\r\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\r\n <td>{(item.TipoSolString || '')}</td>\r\n {process.env.REACT_APP_IS_KRONES == '1' ?\r\n <Row item={item} />\r\n :\r\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\r\n <div>\r\n {item.Dia}\r\n </div>\r\n </td>\r\n }\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')}</td>\r\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\r\n <td></td>\r\n </tr>\r\n );\r\n });\r\n return table;\r\n }\r\n }\r\n return table;\r\n };\r\n //---------------------------------------------------------------------------------------------\r\n // const _handleAddDate = () => {\r\n // setDates([...dates, { date: null, status: null }]);\r\n // };\r\n\r\n // const _handleChangeInitialDate = (date) => {\r\n // setInitialDate(date)\r\n // };\r\n\r\n // const _handleChangeFinalDate = (date) => {\r\n // setFinalDate(date)\r\n // };\r\n\r\n const swichData = () => {\r\n switch (incident.idFormulario) {\r\n case '1':\r\n return {\r\n 'wcf:ArchivoBase64': ' ',\r\n 'wcf:ContentType': ' ',\r\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n \"wcf:HoraEstimada\": 0,\r\n \"wcf:HoraReal\": 0,\r\n \"wcf:HoraSalida\": 0,\r\n \"wcf:IdFormulario\": incident.idFormulario,\r\n \"wcf:MotivoIncidencia\": motivo,\r\n 'wcf:NombreArchivo': ' ',\r\n }\r\n break;\r\n case '2':\r\n return {\r\n 'wcf:ArchivoBase64': ' ',\r\n 'wcf:ContentType': ' ',\r\n 'wcf:Fecha': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\r\n 'wcf:FechaReposicion': fechaReposi != '' ? moment(fechaReposi).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\r\n \"wcf:HoraEstimada\": horaEstimada,\r\n \"wcf:HoraReal\": horaReal,\r\n \"wcf:HoraSalida\": 0,\r\n \"wcf:IdFormulario\": incident.idFormulario,\r\n \"wcf:MotivoIncidencia\": motivo,\r\n 'wcf:NombreArchivo': ' ',\r\n }\r\n break;\r\n case '3':\r\n return {\r\n 'wcf:ArchivoBase64': ' ',\r\n 'wcf:ContentType': ' ',\r\n 'wcf:Fecha': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\r\n 'wcf:FechaReposicion': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\r\n \"wcf:HoraEstimada\": 0,\r\n \"wcf:HoraReal\": 0,\r\n \"wcf:HoraSalida\": horaSalida,\r\n \"wcf:IdFormulario\": incident.idFormulario,\r\n \"wcf:MotivoIncidencia\": motivo,\r\n 'wcf:NombreArchivo': ' ',\r\n }\r\n break;\r\n case '4':\r\n let img = file.base64;\r\n let image = img.split(',')\r\n return {\r\n 'wcf:ArchivoBase64': image[1],\r\n 'wcf:ContentType': file.type,\r\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n \"wcf:HoraEstimada\": 0,\r\n \"wcf:HoraReal\": 0,\r\n \"wcf:HoraSalida\": 0,\r\n \"wcf:IdFormulario\": incident.idFormulario,\r\n \"wcf:MotivoIncidencia\": ' ',\r\n 'wcf:NombreArchivo': file.name,\r\n }\r\n break;\r\n default:\r\n return {\r\n 'wcf:ArchivoBase64': ' ',\r\n 'wcf:ContentType': ' ',\r\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\r\n \"wcf:HoraEstimada\": 0,\r\n \"wcf:HoraReal\": 0,\r\n \"wcf:HoraSalida\": 0,\r\n \"wcf:IdFormulario\": incident.idFormulario,\r\n \"wcf:MotivoIncidencia\": motivo,\r\n 'wcf:NombreArchivo': ' ',\r\n }\r\n break;\r\n }\r\n };\r\n\r\n const _handleSubmitDates = () => {\r\n if (selectedDays.length == 0 && incidentTypeDate === '1') {\r\n alert('Debes indicar por lo menos una fecha ha solicitar.');\r\n return;\r\n }\r\n\r\n if (finalDate.length === 0 && incidentTypeDate === '2') {\r\n alert('Debes indicar un rango de fechas valido.');\r\n return;\r\n }\r\n\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n if (incident.idFormulario != '4' && (motivo.trim().length == 0)) { \r\n alert('Debes indicar el campo \"Motivos\".');\r\n return;\r\n }\r\n if (incident.idFormulario == '2' && (fecha.trim().length == 0 || fechaReposi.trim().length == 0)) { \r\n alert('Debes indicar el campo \"FECHA\" y \"FECHA DE RESPOSICIÓN\".');\r\n return;\r\n }\r\n if (incident.idFormulario == '3' && (fecha.trim().length == 0)) { \r\n alert('Debes indicar el campo \"FECHA\".');\r\n return;\r\n }\r\n }\r\n \r\n let requests = selectedDays;\r\n\r\n requests = requests.sort((a, b) => { return new Date(a) - new Date(b); });\r\n\r\n let dates_params = '';\r\n\r\n requests.map((day, i) => {\r\n if (requests.length === i + 1) {\r\n dates_params += moment(day).format('DD/MM/YYYY');\r\n } \r\n else {\r\n dates_params += moment(day).format('DD/MM/YYYY') + '|';\r\n }\r\n });\r\n\r\n if (incident != '-') {\r\n let dataUser = {};\r\n if (incidentTypeDate === '1') {\r\n dataUser = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n //'tem:Incidencia_ID': (process.env.REACT_APP_IS_KRONES == '1' ? incident.id : incident),\r\n 'tem:Incidencia_ID': (process.env.REACT_APP_IS_KRONES == '1' ? incident.id : incident.id),\r\n 'tem:Fechas': dates_params,\r\n 'tem:rangoFechas': '0',\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n };\r\n }\r\n\r\n if (incidentTypeDate === '2') {\r\n dataUser = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n //'tem:Incidencia_ID': (process.env.REACT_APP_IS_KRONES == '1' ? incident.id : incident),\r\n 'tem:Incidencia_ID': (process.env.REACT_APP_IS_KRONES == '1' ? incident.id : incident.id),\r\n\r\n \"tem:FechaInicio\": moment(initialDate).format('YYYY-MM-DD') + 'T00:00:00',\r\n \"tem:FechaFinal\": moment(finalDate).format('YYYY-MM-DD') + 'T00:00:00',\r\n 'tem:rangoFechas': '1',\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n };\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n dataUser['tem:camposIncidencias'] = swichData();\r\n }\r\n }\r\n \r\n console.log('SEND_INCIDENCIA', dataUser);\r\n \r\n setLoading(true);\r\n props.getInsertIncidentsAction(dataUser, server);\r\n } \r\n else {\r\n alert('Selecciona un tipo de incidencia.')\r\n }\r\n };\r\n\r\n const _handleOpenModal = () => {\r\n if (selectedDays.length == 0 && incidentTypeDate === '1') {\r\n alert('Debes indicar por lo menos una fecha ha solicitar.');\r\n return;\r\n }\r\n if (finalDate.length === 0 && incidentTypeDate === '2') {\r\n alert('Debes indicar un rango de fechas valido.');\r\n return;\r\n }\r\n if (process.env.REACT_APP_IS_KRONES == '1') \r\n {\r\n if (incident.idFormulario != '4' && (motivo.trim().length == 0)) { \r\n alert('Debes indicar el campo \"Motivos\".');\r\n return;\r\n }\r\n if (incident.idFormulario == '2' && (fecha.trim().length == 0 || fechaReposi.trim().length == 0)) { \r\n alert('Debes indicar el campo \"FECHA\" y \"FECHA DE RESPOSICIÓN\".');\r\n return;\r\n }\r\n if (incident.idFormulario == '3' && (fecha.trim().length == 0)) { \r\n alert('Debes indicar el campo \"FECHA\".');\r\n return;\r\n }\r\n }\r\n\r\n let _selectedDays = [];\r\n if (incidentTypeDate === '1') {\r\n _selectedDays = [...selectedDays];\r\n }\r\n if (incidentTypeDate === '2') {\r\n _selectedDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\r\n }\r\n\r\n _selectedDays = _selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\r\n\r\n setDataModal({\r\n title: 'Solicitud de Incidencias',\r\n selectedDays: _selectedDays,\r\n haveComment: false,\r\n buttons: [\r\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\r\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\r\n ]\r\n });\r\n setShowModal(true);\r\n };\r\n\r\n const _handleCloseModal = () => {\r\n setShowModal(false);\r\n setDataModal({title: '', selectedDays: [], buttons: [], });\r\n };\r\n\r\n const handleDropdown = e => {\r\n console.log('OIHB EVENT', e.target.value)\r\n let typesIncident = incidents;\r\n console.log('OIHB typesIncident', typesIncident);\r\n console.log('OIHB IncidenciasKrones', props.incidenciasKronesData.IncidenciasKrones);\r\n setIncident(typesIncident[e.target.value]);\r\n if (process.env.REACT_APP_IS_KRONES == '1') {\r\n setMotivo('')\r\n setFechaReposi('')\r\n setFecha('')\r\n setHoraEstimada('0')\r\n setHoraReal('0')\r\n setHoraSalida('0')\r\n setFile('')\r\n }\r\n };\r\n\r\n const handleDropdownData = (e) => {\r\n setSelectedDays([])\r\n console.log('SELECTED', e.target.value);\r\n\r\n setIncidentTypeDate(e.target.value);\r\n };\r\n\r\n const _renderOptions = () => {\r\n let opt = incidents;\r\n console.log('OIHB Options', opt);\r\n if (opt && opt.length > 0) {\r\n return opt.map((opti, i) => {\r\n return (\r\n <option key={'incidentIdx' + i} value={i}>{opti.descripcion.toUpperCase()}</option>\r\n )\r\n })\r\n }\r\n };\r\n\r\n const renderSelectorTime = (action) => {\r\n let options = time.map((data, i) => {\r\n return (\r\n <option key={'timeIdx' + i} value={data.value} >{data.label}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n className=\"form-control time\"\r\n onChange={(values) => { action(values.target.value) }}>\r\n {options}\r\n </select>\r\n )\r\n };\r\n\r\n const getFile = (file) => {\r\n console.log('FILE', file)\r\n setFile(file)\r\n };\r\n\r\n const renderMotivos = () => {\r\n console.log('OIHB INSIDENT_SELECTED', incident)\r\n if (incident.idFormulario == '1' || incident.idFormulario == '0') {\r\n return (\r\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\r\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">Motivos</label>\r\n <div className=\"col-sm-12 col-12 col-md-12\">\r\n <textarea\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"descripcion\"\r\n rows='3'\r\n value={motivo}\r\n onChange={(val) => { setMotivo(val.target.value) }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n if (incident.idFormulario == '2') {\r\n return (\r\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\r\n <h4 className=\"card-title p-2\">IMPORTANTE: NO SE AUTORIZAN PERMISOS QUE SOLO INDIQUEN MOTIVOS PERSONALES.</h4>\r\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">MOTIVOS</label>\r\n <textarea\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"descripcion\"\r\n rows='3'\r\n value={motivo}\r\n onChange={(val) => { setMotivo(val.target.value) }}\r\n />\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA DE REPOSICIÓN</label>\r\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFechaReposi(value.target.value) }} />\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA</label>\r\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFecha(value.target.value) }} />\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORAS ESTIMADAS</label>\r\n {renderSelectorTime(setHoraEstimada)}\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORAS REALES</label>\r\n {renderSelectorTime(setHoraReal)}\r\n </div>\r\n </div>\r\n )\r\n }\r\n if (incident.idFormulario == '3') {\r\n return (\r\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\r\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">Motivos</label>\r\n <textarea\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"descripcion\"\r\n rows='3'\r\n value={motivo}\r\n onChange={(val) => { setMotivo(val.target.value) }}\r\n />\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA</label>\r\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFecha(value.target.value) }} />\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORA SALIDA</label>\r\n {renderSelectorTime(setHoraSalida)}\r\n </div>\r\n </div>)\r\n }\r\n if (incident.idFormulario == '4') {\r\n return (\r\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\r\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\r\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">NO OLVIDES ADJUNTAR TU RECETA MÉDICA, PARA PODER HACER VÁLIDO EL PERMISO CORRESPONDIENTE.</label>\r\n <FileBase64\r\n multiple={false}\r\n onDone={getFile} />\r\n </div>\r\n </div>\r\n )\r\n }\r\n }\r\n //---------------------------------------------------------------------------------------------\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n\r\n <Modal show={showModal} onHide={_handleCloseModal}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModal.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {/* {dataModal.body} */}\r\n {/* {dataModal.haveComment ? <input\r\n className=\"form-control\"\r\n name=\"company\"\r\n type=\"textarea\"\r\n required=\"\"\r\n placeholder=\"Comentario\"\r\n value={comment}\r\n onChange={handleInput}\r\n autoFocus\r\n /> : null} */}\r\n <label>Se solicitaron los siguientes días de incidencias.</label>\r\n <table className=\"table nowrap table-border\" >\r\n <thead>\r\n <tr>\r\n <th>Día</th>\r\n <th>Fecha</th>\r\n <th>Incidencia</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {(dataModal.selectedDays || []).map((item, idx) => {\r\n return (<tr key={'tr' + idx}>\r\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\r\n <td>{moment(item).format('DD-MM-YYYY')}</td>\r\n <td>{incident.descripcion}</td>\r\n </tr>);\r\n })}\r\n </tbody>\r\n </table>\r\n <br/>\r\n <label>Total de Días: {dataModal.selectedDays.length}</label><br/>\r\n <label>¿Desea seguir con la solicitud de incidencias?</label><br/>\r\n\r\n </Modal.Body>\r\n <Modal.Footer>\r\n {(dataModal.buttons || []).map((item, idx) => {\r\n return (\r\n <Button key={'btnModal' + idx} variant={item.variant} onClick={item.onClick}>\r\n {item.title}\r\n </Button>\r\n );\r\n })}\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Incidencias\" icon=\"mdi mdi-alert-circle-outline\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Trab_ID}\r\n name=\"EMPLEADO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Nombre}\r\n name=\"NOMBRE\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-help-circle-outline text-success\" \r\n value={vacacionDatos.FechaIngreso} \r\n name=\"INGRESO\"\r\n type=\"date\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-briefcase text-success\"\r\n value={vacacionDatos.RFC}\r\n name=\"RFC\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-store-24-hour text-success\"\r\n value={vacacionDatos.IMSS}\r\n name=\"IMSS\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-account-location text-success\" \r\n value={vacacionDatos.CURP} \r\n name=\"CURP\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Puesto}\r\n name=\"PUESTO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Depto}\r\n name=\"DEPARTAMENTO\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-calendar text-purple\" \r\n value={vacacionDatos.Vacaciones} \r\n name=\"TOTAL DÍAS DE VACACIONES\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-calendar-check text-success\"\r\n value={vacacionDatos.Años + (!isNaN(vacacionDatos.Años) ? ' Años' : '')}\r\n name=\"ANTIGÜEDAD\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\" col-md-6 col-12\">\r\n <h4 className=\"card-title\">Crea tu Incidencia</h4>\r\n <div className=\"d-flex flex-wrap justify-content-between\">\r\n <h4 className=\"card-title p-2\">INCIDENCIA</h4>\r\n <select className=\"form-control p-2 col-6\" onChange={handleDropdown} value={incidents.indexOf(incident)}>\r\n <option value='-'>{'SELECCIONE'}</option>\r\n {_renderOptions()}\r\n </select>\r\n {!(process.env.REACT_APP_IS_KRONES == '1') && \r\n <>\r\n <h4 className=\"card-title p-2\">TEMPORALIDAD</h4>\r\n <select className=\"form-control p-2 col-6\" onChange={handleDropdownData} value={incidentTypeDate}>\r\n <option value='0'>{'SELECCIONE'}</option>\r\n <option value='1'>{'FECHAS ÚNICAS'}</option>\r\n <option value='2'>{'RANGO DE FECHAS'}</option>\r\n </select>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {incidentTypeDate === '1' ?\r\n <div className=\"card-body\">\r\n <h4 className=\"card-title p-2\">Seleccione la(s) fecha(s) de su incidencia</h4>\r\n <div className=\"col-12 row\">\r\n <div>\r\n <DatePickerAvaibleSelector \r\n onSelectedDays={(selectedDays) => { setSelectedDays(selectedDays) }} \r\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\r\n selected={selectedDays} \r\n selectedDisabled={selectedDisabled}\r\n skipWeekends={skipWeekends}\r\n vacationsData={vacaciones}\r\n tooltipDates={tooltipDates}\r\n />\r\n </div>\r\n\r\n {selectedDays.length > 0 ?\r\n <div>\r\n <h4 className=\"card-title p-2 col-12\">Días válidos</h4>\r\n {selectedDays.map((day, idx) => {\r\n return (<h4 key={'sd_'+idx} className=\"card-title p-1\" style={{ color: '#93c03f' }}>{moment(day).format('DD-MM-YYYY')}</h4>)\r\n })}\r\n <button type=\"button\" onClick={() => { setSelectedDays([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\r\n </div>\r\n : null}\r\n \r\n {(process.env.REACT_APP_IS_KRONES == '1' && selectedDays && selectedDays.length) > 0 ? renderMotivos() : null}\r\n </div>\r\n </div>\r\n : null}\r\n\r\n {incidentTypeDate === '2' ?\r\n <div className=\"card-body\">\r\n <h4 className=\"card-title p-2\">Seleccione el rango de fechas de su incidencia</h4>\r\n <div className=\"col-12 row\">\r\n <div>\r\n <DatePickerAvaibleMultiSelector\r\n onSelectedInitialDate={(initial) => { setInitialDate(initial) }}\r\n onSelectedFinalDate={(end) => { setFinalDate(end) }}\r\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\r\n selectedDisabled={selectedDisabled}\r\n skipWeekends={skipWeekends}\r\n vacationsData={vacaciones}\r\n tooltipDates={tooltipDates}\r\n resetDates={resetDates}\r\n />\r\n </div>\r\n\r\n {finalDate != '' ?\r\n <div className={process.env.REACT_APP_IS_KRONES == '1' ? 'col-md-3 col-sm-3 col-lg-3' : ''}>\r\n <h4 className=\"card-title p-2 col-12\">Rango válido seleccionado</h4>\r\n <h4 className=\"card-title p-1\" style={{ color: '#93c03f' }}>{\"DE \" + moment(initialDate).format('DD-MM-YYYY') + \" A \" + moment(finalDate).format('DD-MM-YYYY')}</h4>\r\n <button type=\"button\" onClick={() => setResetDates(new Date())} className=\"btn btn-info waves-effect waves-light\">Restaurar</button>\r\n </div>\r\n : null}\r\n \r\n {(process.env.REACT_APP_IS_KRONES == '1' && initialDate != '') ? renderMotivos() : null}\r\n </div>\r\n </div>\r\n : null}\r\n\r\n {incidentTypeDate != '0' ?\r\n <div className=\"card-footer\">\r\n <button type=\"button\" onClick={(localStorage.getItem(\"REACT_APP_CONFIRMA_SOLICITUDES\") != '1' ? _handleSubmitDates : _handleOpenModal)} className=\"btn btn-info waves-effect waves-light pull-right\" >Enviar Incidencia</button>\r\n </div>\r\n : null}\r\n\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\" >\r\n <thead>\r\n <tr>\r\n <th>Tipo Incidencia</th>\r\n <th>Día</th>\r\n <th>Fecha(s) solicitud</th>\r\n <th>Estatus</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {getTBodyIncidencias()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n ctrlVacionEmpleadoDatosData: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosData,\r\n ctrlVacionEmpleadoDatosError: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosError,\r\n\r\n vacationsData: state.vacations.vacationsData,\r\n vacationsError: state.vacations.vacationsError,\r\n\r\n catIncidentsData: state.catIncidents.catIncidentsData,\r\n catIncidentsError: state.catIncidents.catIncidentsError,\r\n\r\n incidenciasKronesData: state.incidenciasKrones.incidenciasKronesData,\r\n incidenciasKronesError: state.incidenciasKrones.incidenciasKronesError,\r\n\r\n\r\n insertIncidentsData: state.insertIncident.insertIncidentsData,\r\n insertIncidentsError: state.insertIncident.insertIncidentsError,\r\n\r\n skipWeekendData: state.skipWeekend.skipWeekendData,\r\n skipWeekendError: state.skipWeekend.skipWeekendError,\r\n\r\n getDiasBloqueadosData: state.getDiasBloqueados.getDiasBloqueadosData,\r\n getDiasBloqueadosError: state.getDiasBloqueados.getDiasBloqueadosError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n CtrlVacionEmpleadoDatosAction,\r\n getCatIncidentsAction,\r\n getVacationsAction,\r\n getCatIncidenciasKronesAction,\r\n getInsertIncidentsAction,\r\n getSkipWeekendAction,\r\n getDiasBloqueadosAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentsV2));","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getInsertIncidentsAction } from '../../api/actions/empleado/InsertIncidentAction';\nimport { getSkipWeekendAction } from '../../api/actions/empleado/SkipWeekendAction';\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\nimport { getCatIncidenciasKronesAction } from '../../api/actions/empleado/IncidenciasKronesAction';\nimport { getVacationsAction } from '../../api/actions/empleado/VacationsAction';\nimport { getDiasBloqueadosAction } from '../../api/actions/systemAdmin/GetDiasBloqueadosAction';\nimport { GetincidenciasAspenAction } from '../../api/actions/empleado/GetincidenciasAspenAction';\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport FileBase64 from 'react-file-base64';\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport moment from 'moment';\nimport DatePicker from '../../components/incident/DatePickerIncident.js';\nimport DatePickerSelector from '../../components/incident/DatePickerSelector';\nimport DatePickerMultiSelector from '../../components/incident/DatePickerMultiSelector';\nimport DatePickerAvaibleSelector from '../../components/incident/DatePickerAvaibleSelector';\nimport DatePickerAvaibleMultiSelector from '../../components/incident/DatePickerAvaibleMultiSelector';\n\nimport { getParams, getDatesInRange } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n// import { data } from 'jquery';\n\n//KRONES\nconst time = [\n\n { value: \"0:00\", label: \"0:00 Hrs\" },\n { value: \"0:30\", label: \"0:30 Hrs\" },\n { value: \"1.0\", label: \"1:00 Hrs\" },\n { value: \"1.3\", label: \"1:30 Hrs\" },\n { value: \"2.0\", label: \"2:00 Hrs\" },\n { value: \"2.3\", label: \"2:30 Hrs\" },\n { value: \"3.0\", label: \"3:00 Hrs\" },\n { value: \"3.3\", label: \"3:30 Hrs\" },\n { value: \"4.0\", label: \"4:00 Hrs\" },\n { value: \"4.3\", label: \"4:30 Hrs\" },\n { value: \"5.0\", label: \"5:00 Hrs\" },\n { value: \"5.3\", label: \"5:30 Hrs\" },\n { value: \"6.0\", label: \"6:00 Hrs\" },\n { value: \"6.3\", label: \"6:30 Hrs\" },\n { value: \"7.0\", label: \"7:00 Hrs\" },\n { value: \"7.3\", label: \"7:30 Hrs\" },\n { value: \"8.00\", label: \"8:00 Hrs\" },\n { value: \"8.30\", label: \"8:30 Hrs\" },\n { value: \"9.00\", label: \"9:00 Hrs\" },\n { value: \"9.30\", label: \"9:30 Hrs\" },\n { value: \"10.00\", label: \"10:00 Hrs\" },\n { value: \"10.3\", label: \"10:30 Hrs\" },\n { value: \"11.0\", label: \"11:00 Hrs\" },\n { value: \"11.3\", label: \"11:30 Hrs\" },\n { value: \"12.0\", label: \"12:00 Hrs\" },\n { value: \"12.3\", label: \"12:30 Hrs\" },\n { value: \"13.0\", label: \"13:00 Hrs\" },\n { value: \"13.3\", label: \"13:30 Hrs\" },\n { value: \"14.0\", label: \"14:00 Hrs\" },\n { value: \"14.3\", label: \"14:30 Hrs\" },\n { value: \"15.0\", label: \"15:00 Hrs\" },\n { value: \"15.3\", label: \"15:30 Hrs\" },\n { value: \"16.0\", label: \"16:00 Hrs\" },\n { value: \"16.3\", label: \"16:30 Hrs\" },\n { value: \"17.0\", label: \"17:00 Hrs\" },\n { value: \"17.3\", label: \"17:30 Hrs\" },\n { value: \"18.0\", label: \"18:00 Hrs\" },\n { value: \"18.3\", label: \"18:30 Hrs\" },\n { value: \"19.0\", label: \"19:00 Hrs\" },\n { value: \"19.3\", label: \"19:30 Hrs\" },\n { value: \"20.0\", label: \"20:00 Hrs\" },\n { value: \"20.3\", label: \"20:30 Hrs\" },\n { value: \"21.0\", label: \"21:00 Hrs\" },\n { value: \"21.3\", label: \"21:30 Hrs\" },\n { value: \"22.0\", label: \"22:00 Hrs\" },\n { value: \"22.3\", label: \"22:30 Hrs\" },\n { value: \"23.0\", label: \"23:00 Hrs\" },\n { value: \"23.3\", label: \"23:30 Hrs\" },\n { value: \"24.0\", label: \"24:00 Hrs\" },\n\n];\n\nconst IncidentRequest = props => {\n\n const [loading, setLoading] = useState(true);\n // const [dates, setDates] = useState([{ date: null, status: null }]);\n\n const [incidents, setIncidents] = useState([]);\n const [incident, setIncident] = useState('-');\n const [incidentTypeDate, setIncidentTypeDate] = useState('0');\n const [valoresConfig, setValoresConfig] = useState([]);\n\n const [selectedDays, setSelectedDays] = useState([]);\n const [selectedDisabled, setSelectedDisabled] = useState([]);\n\n const [initialDate, setInitialDate] = useState('');\n const [finalDate, setFinalDate] = useState('');\n const [skipWeekends, setSkipWeekends] = useState(false);\n\n const [incidenciasAspen, setIncidenciasAspen] = useState([]);\n \n const [formularioIncidencia, setFormularioIncidencia] = useState(false);\n const [diasHorasPermiso, setDiasHorasPermiso] = useState('');\n\n //KRONES\n const [motivo, setMotivo] = useState('');\n const [fechaReposi, setFechaReposi] = useState('');\n const [fecha, setFecha] = useState('');\n const [horaEstimada, setHoraEstimada] = useState('0');\n const [horaReal, setHoraReal] = useState('0');\n const [horaSalida, setHoraSalida] = useState('0');\n const [file, setFile] = useState('');\n\n const [selectedMonth, setSelectedMonth] = useState(null);\n const [vacaciones, setVacaciones] = useState({});\n const [resetDates, setResetDates] = useState(null);\n const [tooltipDates, setTooltipDates] = useState([]);\n\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({title: '', selectedDays: [], buttons: [], });\n const WEEKDAYS_LONG = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miercoles',\n 'Jueves',\n 'Viernes',\n 'Sabado',\n];\n\n const [horasFechasForm5, setHorasFechasForm5] = useState([]); \n\n const filtrosValidos = () => {\n if (incident == undefined || incident == null || incident == '-' || incident == {}) return false;\n if (incident.id == undefined || incident.id == null) return false;\n if (!(incidentTypeDate === '1' || incidentTypeDate === '2')) return false;\n if (incidentTypeDate === '1' && (selectedDays || []).length == 0) return false;\n if (incidentTypeDate === '2' && (initialDate == null || initialDate == '' || finalDate == null || finalDate == '')) return false;\n return true;\n };\n\n useEffect(() => {\n getCatIncidents();\n getVacaciones();\n GetValoresConfig('SICONSULTA');\n }, []);\n\n useEffect(() => {\n if (formularioIncidencia) {\n setIncident({});\n setIncidentTypeDate('2'); \n }\n }, [formularioIncidencia]);\n\n useEffect(() => {\n if (props.catIncidentsData && props.catIncidentsData.isOK) {\n let cat = [...props.catIncidentsData.CatIncidents];\n setIncidents(cat);\n setLoading(false);\n } \n else if (props.catIncidentsError && props.catIncidentsError.isOK === false) {\n setIncidents([]);\n setLoading(false);\n props.getCatIncidentsAction('PURGE', '');\n }\n }, [props.catIncidentsData, props.catIncidentsError]);\n\n useEffect(() => {\n if (props.insertIncidentsData && props.insertIncidentsData.isOK) {\n let InsertIncidents = props.insertIncidentsData.InsertIncidents;\n\n let isDetails = (localStorage.getItem(\"REACT_APP_CONFIRMA_SOLICITUDES\") == '1');\n if (!isDetails) {\n alert('Tu solicitud de incidencias ha sido enviada.');\n }\n else {\n let msg = {\n description: 'Tu solicitud de incidencia ha sido enviada.',\n details: []\n };\n\n if ((InsertIncidents.Details || []).length > 0) {\n msg.details = msg.details.concat(['', 'Detalles:']);\n msg.details = msg.details.concat(InsertIncidents.Details);\n alert(msg, true);\n }\n }\n\n props.getInsertIncidentsAction('PURGE', '');\n setLoading(false);\n props.history.push(`${process.env.PUBLIC_URL}/incidents`);\n } \n else if (props.insertIncidentsError && props.insertIncidentsError.isOK === false) {\n props.getInsertIncidentsAction('PURGE', '');\n setLoading(false);\n if (!formularioIncidencia) {\n props.history.push(`${process.env.PUBLIC_URL}/incidents`);\n }\n }\n }, [props.insertIncidentsData, props.insertIncidentsError]);\n\n useEffect(() => {\n if (formularioIncidencia && incidentTypeDate != '2') {\n setSkipWeekends(false);\n setLoading(false);\n return;\n }\n\n if (props.skipWeekendData && props.skipWeekendData.isOK) {\n setSkipWeekends(props.skipWeekendData.skipWeekend || false);\n } \n else if (props.skipWeekendError && props.skipWeekendError.isOK === false) {\n setSkipWeekends(false);\n props.getSkipWeekendAction('PURGE', '');\n setLoading(false);\n }\n }, [props.skipWeekendData, props.skipWeekendError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK) {\n setSelectedDisabled([]);\n setVacaciones({...props.vacationsData.Vacations});\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n } \n else if (props.vacationsError && props.vacationsError.isOK === false) {\n setSelectedDisabled([]);\n setVacaciones({});\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n }\n }, [props.vacationsData, props.vacationsError]);\n\n useEffect(() => {\n if (props.getDiasBloqueadosData && props.getDiasBloqueadosData.isOK) {\n setSelectedDisabled([]);\n setTooltipDates([]);\n let diasBloqueados = [...props.getDiasBloqueadosData.GetDiasBloqueados];\n\n if (diasBloqueados.length > 0) {\n diasBloqueados = diasBloqueados.filter(item => !item.PermiteSolicitar).map(item => new Date(item.Fecha));\n setSelectedDisabled(diasBloqueados);\n \n let tooltips = [...props.getDiasBloqueadosData.GetDiasBloqueados].filter(item => item.EsFestivo);\n if (tooltips.length > 0) {\n tooltips = tooltips.map(item => { return { Date: new Date(item.Fecha), Tooltip: item.Descripcion } });\n setTooltipDates(tooltips);\n }\n }\n \n setLoading(false);\n } \n else if (props.getDiasBloqueadosError && props.getDiasBloqueadosError.isOK === false) {\n setSelectedDisabled([]);\n setTooltipDates([]);\n props.getDiasBloqueadosAction('PURGE', '');\n setLoading(false);\n }\n }, [props.getDiasBloqueadosData, props.getDiasBloqueadosError]);\n\n useEffect(() => {\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\n if (configuraciones.length > 0) {\n var formulario = configuraciones.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'FormularioIncidencia' && s.Valor == '1'))\n setFormularioIncidencia(process.env.REACT_APP_IS_KRONES == '1' || formulario);\n setValoresConfig(configuraciones);\n\n let _diasHorasPermiso = configuraciones.find(f => f.Seccion == 'SICONSULTA' && f.Variable == 'DiasHorasPermiso');\n if (_diasHorasPermiso != null) {\n setDiasHorasPermiso(_diasHorasPermiso.Valor || '');\n }\n }\n else {\n setValoresConfig([]);\n }\n props.GetValoresConfigAction(\"PURGE\", \"\");\n } \n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setValoresConfig([]);\n setFormularioIncidencia(process.env.REACT_APP_IS_KRONES == '1');\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n\n // ------ INICIO: Para ASPEN ------ //\n let noGetincidenciasAspen1 = null;\n let noGetincidenciasAspen2 = null;\n useEffect(() => {\n if (props.getincidenciasAspenData && props.getincidenciasAspenData.isOK) {\n let incidencias = props.getincidenciasAspenData.GetincidenciasAspen;\n\n if (incidencias == undefined || incidencias == null) {\n incidencias = [];\n }\n\n if (incidencias.length == 0) return;\n\n let _selectDays = [];\n if (incidentTypeDate === '1') {\n _selectDays = [...selectedDays];\n }\n if (incidentTypeDate === '2') {\n _selectDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\n }\n\n _selectDays = _selectDays.reverse();\n incidencias.map((inc, idx) => { inc.Fecha = _selectDays[idx] });\n\n if (incidencias[0].okUltimaFechaSelect == false) {\n if (incidentTypeDate === '1') {\n noGetincidenciasAspen1 = _selectDays[0];\n alert('No hay días disponibles para la fecha ' + moment(noGetincidenciasAspen1).format('DD-MM-YYYY'));\n selectedDays.splice(-1);\n }\n if (incidentTypeDate == '2') {\n noGetincidenciasAspen2 = _selectDays[0];\n alert('No hay días disponibles entre las fechas ' + moment(initialDate).format('DD-MM-YYYY') + ' y ' + moment(finalDate).format('DD-MM-YYYY'));\n setResetDates(new Date());\n }\n }\n\n setIncidenciasAspen(incidencias);\n setLoading(false);\n } \n else if (props.getincidenciasAspenError && props.getincidenciasAspenError.isOK === false) {\n setIncidenciasAspen([]);\n props.GetincidenciasAspenAction('PURGE', '');\n setLoading(false);\n }\n }, [props.getincidenciasAspenData, props.getincidenciasAspenError]);\n // ------ FINAL: Para ASPEN ------ //\n\n useEffect(() => {\n if (selectedMonth) {\n getSkipWeekend();\n getDiasBloqueados(selectedMonth);\n }\n }, [selectedMonth]);\n \n // ------ INICIO: Para ASPEN ------ //\n useEffect(() => {\n monitorearFechasForm5();\n\n setIncidenciasAspen([]);\n }, [incident]);\n\n useEffect(() => {\n monitorearFechasForm5();\n\n setIncidenciasAspen([]);\n }, [incidentTypeDate]);\n\n useEffect(() => {\n monitorearFechasForm5();\n\n if (noGetincidenciasAspen1 != null) {\n noGetincidenciasAspen1 = null;\n return;\n }\n\n setIncidenciasAspen([]);\n if (filtrosValidos()) {\n GetincidenciasAspen(incident.id);\n }\n }, [selectedDays]);\n\n useEffect(() => {\n monitorearFechasForm5();\n \n if (noGetincidenciasAspen2 != null) {\n noGetincidenciasAspen2 = null;\n return;\n }\n \n if (filtrosValidos()) {\n setIncidenciasAspen([]);\n GetincidenciasAspen(incident.id);\n }\n }, [initialDate, finalDate]);\n // ------ FINAL: Para ASPEN ------ //\n\n const getCatIncidents = () => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n };\n \n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1' || sessionStorage.getItem(\"SICONSULTA_ValidaDiasKrones\") == \"1\") {\n _params['tem:TrabID'] = params['tem:TrabID'];\n }\n \n props.getCatIncidentsAction(_params, server);\n };\n\n const getVacaciones = () => {\n setLoading(true);\n let { params, server } = getParams();\n props.getVacationsAction(params, server);\n };\n\n const getSkipWeekend = () => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n //ESTABA DEFINIDO PARA KRONES\n props.getSkipWeekendAction(_params, server); \n };\n\n const getDiasBloqueados = (month) => {\n let { params, server } = getParams();\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_ID': params['tem:TrabID'],\n 'tem:Año': month.getFullYear(),\n 'tem:mes': month.getMonth() + 1,\n };\n //console.log(_params);\n props.getDiasBloqueadosAction(_params, server);\n };\n\n const GetincidenciasAspen = (incidencia_id) => {\n if (localStorage.getItem(\"REACT_APP_DIAS_LIMITE_BLOQ\") == '1' && filtrosValidos()) {\n let strDates = \"\";\n if (incidentTypeDate === '1') {\n strDates = selectedDays.map(d => { return moment(d).format('YYYY-MM-DD') + 'T00:00:00' }).join(',');\n console.log('OIHB Data', selectedDays, strDates);\n }\n if (incidentTypeDate === '2') {\n let arrDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\n strDates = arrDays.map(d => { return moment(d).format('YYYY-MM-DD') + 'T00:00:00' }).join(',');\n console.log('OIHB Data', arrDays, strDates);\n }\n setLoading(true);\n\n let { params, server } = getParams();\n let _params = {\n \"tem:sToken\": params['tem:sToken'], \n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:UserID\": params['tem:TrabID'],\n \"tem:Incidencia\": incidencia_id,\n \"tem:fecha\": strDates\n };\n //console.log(_params);\n props.GetincidenciasAspenAction(_params, server);\n }\n };\n\n const GetValoresConfig = (seccion, variable = '') => {\n let { params, server } = getParams();\n\n let send = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:Seccion\": seccion, \n \"tem:Variable\": variable,\n };\n \n props.GetValoresConfigAction(send, server);\n };\n\n //KRONES\n const swichData = () => {\n let idFormulario = '0';\n if (formularioIncidencia) {\n idFormulario = incident.idFormulario;\n }\n else if (incident.idFormulario == \"5\") {\n idFormulario = \"5\";\n }\n\n switch (idFormulario) {\n case '1':\n return {\n 'wcf:ArchivoBase64': ' ',\n 'wcf:ContentType': ' ',\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": 0,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": motivo,\n 'wcf:NombreArchivo': ' ',\n }\n break;\n case '2':\n return {\n 'wcf:ArchivoBase64': ' ',\n 'wcf:ContentType': ' ',\n 'wcf:Fecha': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\n 'wcf:FechaReposicion': fechaReposi != '' ? moment(fechaReposi).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\n \"wcf:HoraEstimada\": horaEstimada,\n \"wcf:HoraReal\": horaReal,\n \"wcf:HoraSalida\": 0,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": motivo,\n 'wcf:NombreArchivo': ' ',\n }\n break;\n case '3':\n return {\n 'wcf:ArchivoBase64': ' ',\n 'wcf:ContentType': ' ',\n 'wcf:Fecha': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\n 'wcf:FechaReposicion': fecha != '' ? moment(fecha).format('YYYY-MM-DD') + 'T00:00:00' : ' ',\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": horaSalida,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": motivo,\n 'wcf:NombreArchivo': ' ',\n }\n break;\n case '4':\n let img = file.base64;\n let image = img.split(',')\n return {\n 'wcf:ArchivoBase64': image[1],\n 'wcf:ContentType': file.type,\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": 0,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": ' ',\n 'wcf:NombreArchivo': file.name,\n }\n break;\n case '5':\n let horas = horasFechasForm5.map(item => { return parseFloat(item.Horas) }).reduce((a, b) => a + b, 0);\n let horasFechas = horasFechasForm5.map(item => { return item.MomentFecha + ',' + item.Horas }).join('|');\n return {\n \"wcf:ArchivoBase64\": \" \",\n \"wcf:ContentType\": \" \",\n \"wcf:Fecha\": moment(new Date()).format(\"YYYY-MM-DD\") + \"T00:00:00\",\n \"wcf:FechaReposicion\": moment(new Date()).format(\"YYYY-MM-DD\") + \"T00:00:00\",\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": horas,\n \"wcf:HorasFechas\": horasFechas,\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": motivo,\n \"wcf:NombreArchivo\": \" \",\n }\n case '6':\n let img2 = file.base64;\n let image2 = img2.split(',')\n return {\n 'wcf:ArchivoBase64': image2[1],\n 'wcf:ContentType': file.type,\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": 0,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": ' ',\n 'wcf:NombreArchivo': file.name,\n }\n break;\n default:\n return {\n 'wcf:ArchivoBase64': ' ',\n 'wcf:ContentType': ' ',\n 'wcf:Fecha': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n 'wcf:FechaReposicion': moment(new Date()).format('YYYY-MM-DD') + 'T00:00:00',\n \"wcf:HoraEstimada\": 0,\n \"wcf:HoraReal\": 0,\n \"wcf:HoraSalida\": 0,\n \"wcf:HorasFechas\": '',\n \"wcf:IdFormulario\": incident.idFormulario,\n \"wcf:MotivoIncidencia\": motivo,\n 'wcf:NombreArchivo': ' ',\n }\n break;\n }\n };\n\n const _handleSubmitDates = () => {\n if (incident == '-') {\n alert('Selecciona un tipo de incidencia.');\n return;\n }\n if (selectedDays.length == 0 && incidentTypeDate === '1') {\n alert('Debes indicar por lo menos una fecha ha solicitar.')\n return\n }\n if (finalDate.length === 0 && incidentTypeDate === '2') {\n alert('Debes indicar un rango de fechas valido.')\n return\n }\n\n if (formularioIncidencia) \n {\n if (incident.idFormulario != '4' && (motivo.trim().length == 0)) { \n alert('Debes indicar el campo \"Motivos\".');\n return;\n }\n if (incident.idFormulario == '2' && (fecha.trim().length == 0 || fechaReposi.trim().length == 0)) { \n alert('Debes indicar el campo \"FECHA\" y \"FECHA DE RESPOSICIÓN\".');\n return;\n }\n if (incident.idFormulario == '3' && (fecha.trim().length == 0)) { \n alert('Debes indicar el campo \"FECHA\".');\n return;\n }\n }\n else {\n if (incident.idFormulario == '5' && horasFechasForm5.some(item => item.Horas == 0)) { \n alert('Debes indicar las horas que utilizarás en cada fecha solicitada.');\n return;\n }\n }\n\n let { params, server } = getParams();\n\n let requests = [];\n let dates_params = '';\n if (!(selectedDays.length == 0 && incidentTypeDate === '1')) {\n requests = selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\n requests.map((day, i) => {\n if (requests.length === i + 1) {\n dates_params += moment(day).format('DD/MM/YYYY');\n } \n else {\n dates_params += moment(day).format('DD/MM/YYYY') + '|';\n }\n });\n }\n\n setLoading(true);\n\n let dataUser = {}\n if (incidentTypeDate === '1') {\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n //'tem:Incidencia_ID': (formularioIncidencia ? incident.id : incident),\n 'tem:Incidencia_ID': (formularioIncidencia ? incident.id : incident.id),\n 'tem:Fechas': dates_params,\n 'tem:rangoFechas': '0',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n }\n if (incidentTypeDate === '2') {\n dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n //'tem:Incidencia_ID': (formularioIncidencia ? incident.id : incident),\n 'tem:Incidencia_ID': (formularioIncidencia ? incident.id : incident.id),\n 'tem:Fechas': '',\n \"tem:FechaInicio\": moment(initialDate).format('YYYY-MM-DD') + 'T00:00:00',\n \"tem:FechaFinal\": moment(finalDate).format('YYYY-MM-DD') + 'T00:00:00',\n 'tem:rangoFechas': '1',\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n // if (formularioIncidencia) {\n // dataUser['tem:camposIncidencias'] = swichData()\n // }\n }\n dataUser['tem:camposIncidencias'] = swichData();\n \n console.log('SEND_INCIDENCIA', dataUser);\n props.getInsertIncidentsAction(dataUser, server, formularioIncidencia);\n };\n\n const _handleOpenModal = () => {\n if (selectedDays.length == 0 && incidentTypeDate === '1') {\n alert('Debes indicar por lo menos una fecha ha solicitar.');\n return;\n }\n if (finalDate.length === 0 && incidentTypeDate === '2') {\n alert('Debes indicar un rango de fechas valido.');\n return;\n }\n if (formularioIncidencia) \n {\n if (incident.idFormulario != '4' && (motivo.trim().length == 0)) { \n alert('Debes indicar el campo \"Motivos\".');\n return;\n }\n if (incident.idFormulario == '2' && (fecha.trim().length == 0 || fechaReposi.trim().length == 0)) { \n alert('Debes indicar el campo \"FECHA\" y \"FECHA DE RESPOSICIÓN\".');\n return;\n }\n if (incident.idFormulario == '3' && (fecha.trim().length == 0)) { \n alert('Debes indicar el campo \"FECHA\".');\n return;\n }\n }\n\n let _selectedDays = [];\n if (incidentTypeDate === '1') {\n _selectedDays = [...selectedDays];\n }\n if (incidentTypeDate === '2') {\n _selectedDays = getDatesInRange(new Date(initialDate), new Date(finalDate));\n }\n\n _selectedDays = _selectedDays.sort((a, b) => { return new Date(a) - new Date(b); });\n\n if(sessionStorage.getItem(\"SICONSULTA_ValidaDiasKrones\") == \"1\"){\n if(incident.diasPermitidos > 0 && incident.diasPermitidos >= _selectedDays.length){\n setDataModal({\n title: 'Solicitud de Incidencias',\n selectedDays: _selectedDays,\n haveComment: false,\n buttons: [\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\n ]\n });\n setShowModal(true);\n }else{\n let mssg = 'No puedes seleccionar esa cantidad de dias para ese tipo de incidencia. Solo cuentas con ' + incident.diasPermitidos;\n alert(mssg);\n }\n }else{\n setDataModal({\n title: 'Solicitud de Incidencias',\n selectedDays: _selectedDays,\n haveComment: false,\n buttons: [\n {title: 'Enviar', variant: 'primary', onClick: () => { _handleSubmitDates(); _handleCloseModal(); } },\n {title: 'Cancelar', variant: 'danger', onClick: () => { _handleCloseModal() } },\n ]\n });\n setShowModal(true);\n }\n };\n\n const _handleCloseModal = () => {\n setShowModal(false);\n setDataModal({title: '', selectedDays: [], buttons: [], });\n };\n\n const handleDropdown = e => {\n console.log('OIHB EVENT', e.target.value)\n let typesIncident = incidents;\n console.log('OIHB typesIncident', typesIncident);\n setIncident(typesIncident[e.target.value]);\n if (formularioIncidencia) {\n setMotivo('')\n setFechaReposi('')\n setFecha('')\n setHoraEstimada('0')\n setHoraReal('0')\n setHoraSalida('0')\n setFile('')\n }\n }\n\n const handleDropdownData = (e) => {\n setSelectedDays([]);\n console.log('SELECTED', e.target.value);\n setIncidentTypeDate(e.target.value);\n\n getSkipWeekend();\n };\n\n const _renderOptions = () => {\n let opt = incidents;\n console.log('OIHB Options', opt);\n if (opt && opt.length > 0) {\n return opt.map((opti, i) => {\n return (\n <option key={'incidentIdx' + i} value={i}>{opti.descripcion.toUpperCase()}</option>\n )\n })\n }\n };\n\n const renderSelectorTime = (action) => {\n let options = time.map((data, i) => {\n return (\n <option key={'timeIdx' + i} value={data.value} >{data.label}</option>\n )\n })\n return (\n <select\n className=\"form-control time\"\n onChange={(values) => { action(values.target.value) }}>\n {options}\n </select>\n )\n };\n\n const getFile = (file) => {\n console.log('FILE', file)\n setFile(file)\n };\n\n const renderMotivos = () => {\n if (incident == '-' || (selectedDays.length == 0 && finalDate.length === 0)) return null;\n //if (selectedDisabled.length > 0) return null;\n\n console.log('OIHB INSIDENT_SELECTED', incident);\n \n let renderizar = (formularioIncidencia || localStorage.getItem(\"REACT_APP_ESCRIBE_MOTIVO\") == \"1\" || incident.idFormulario == \"5\"); \n if (!renderizar) return null;\n\n let idFormulario = '0';\n if (formularioIncidencia) {\n idFormulario = incident.idFormulario;\n }\n else if (incident.idFormulario == \"5\") {\n idFormulario = \"5\";\n }\n \n if (idFormulario == '1' || idFormulario == '0') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">Motivos</label>\n <div className=\"col-sm-12 col-12 col-md-12\">\n <textarea\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows='3'\n value={motivo}\n onChange={(val) => { setMotivo(val.target.value) }}\n />\n </div>\n </div>\n </div>\n )\n }\n if (idFormulario == '2') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <h4 className=\"card-title p-2\">IMPORTANTE: NO SE AUTORIZAN PERMISOS QUE SOLO INDIQUEN MOTIVOS PERSONALES.</h4>\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">MOTIVOS</label>\n <textarea\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows='3'\n value={motivo}\n onChange={(val) => { setMotivo(val.target.value) }}\n />\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA DE REPOSICIÓN</label>\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFechaReposi(value.target.value) }} />\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA</label>\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFecha(value.target.value) }} />\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORAS ESTIMADAS</label>\n {renderSelectorTime(setHoraEstimada)}\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORAS REALES</label>\n {renderSelectorTime(setHoraReal)}\n </div>\n </div>\n )\n }\n if (idFormulario == '3') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">Motivos</label>\n <textarea\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows='3'\n value={motivo}\n onChange={(val) => { setMotivo(val.target.value) }}\n />\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">FECHA</label>\n <input type=\"date\" className=\"form-control\" onChange={(value) => { setFecha(value.target.value) }} />\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">HORA SALIDA</label>\n {renderSelectorTime(setHoraSalida)}\n </div>\n </div>)\n }\n if (idFormulario == '4') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">NO OLVIDES ADJUNTAR TU RECETA MÉDICA, PARA PODER HACER VÁLIDO EL PERMISO CORRESPONDIENTE.</label>\n <FileBase64\n multiple={false}\n onDone={getFile} />\n </div>\n </div>\n )\n }\n if (idFormulario == '5') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n {/* <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">MOTIVOS</label>\n <textarea\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows='3'\n value={motivo}\n onChange={(val) => { setMotivo(val.target.value) }}\n />\n <br/> */}\n <table className=\"table nowrap stylish-table\">\n <tbody>\n {horasFechasForm5.map((item, idx) => {\n return (\n <tr key={'tr_fecha_' + idx}> \n <td>{moment(item.Fecha).format('DD-MM-YYYY')}</td>\n <td>HORAS  </td>\n <td>\n <input type=\"number\" \n min=\"1\" max={maxHorasPermiso()} \n pattern=\"^[0-9]+\" \n onKeyPress={(evt) => {\n if (evt.which != 8 && evt.which != 0 && evt.which < 48 || evt.which > 57) { evt.preventDefault(); }\n }} \n className=\"form-control\" \n style={ {width: '80px'} } \n value={item.Horas} \n onChange={(e) => { \n var number = parseInt(e.target.value);\n if (!(number >= 1 && number <= maxHorasPermiso())) {\n e.preventDefault();\n return;\n }\n \n handleFechasForm5(e, item) \n }} \n />\n </td>\n </tr>);\n })}\n </tbody>\n </table>\n\n </div>\n </div>\n )\n }\n\n if (incident.idFormulario == '6') {\n return (\n <div className=\"col-12 col-md-5 col-sm-5 col-lg-5\">\n <div className=\"col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">Motivos</label>\n <textarea\n type=\"text\"\n className=\"form-control\"\n name=\"descripcion\"\n rows='3'\n value={motivo}\n onChange={(val) => { setMotivo(val.target.value) }}\n />\n </div>\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\n <label htmlFor=\"staticEmail\" className=\"col-sm-12 col-form-label\">NO OLVIDES ADJUNTAR ALGUNA FOTO DEL DOCUMENTO PARA PODER HACER VÁLIDO EL PERMISO CORRESPONDIENTE.</label>\n <FileBase64\n multiple={false}\n onDone={getFile} />\n </div>\n </div>\n )\n }\n\n return null;\n };\n \n const getFechasSeleccionadas = () => {\n let fechas = [];\n if (incident == '-' || (selectedDays.length == 0 && finalDate.length === 0)) return fechas;\n //if (selectedDisabled.length > 0) return null;\n\n if (incidentTypeDate === '1' && !(selectedDays.length == 0)) {\n let requests = [...selectedDays].sort((a, b) => { return new Date(a) - new Date(b) });\n fechas = requests;\n }\n else if (incidentTypeDate === '2' && !(finalDate.length === 0)) {\n fechas = getDatesInRange(initialDate, finalDate);\n }\n return fechas;\n };\n\n const monitorearFechasForm5 = () => {\n let horasFechas = [...horasFechasForm5];\n setHorasFechasForm5([]);\n\n if (incident == '-' || (selectedDays.length == 0 && finalDate.length === 0)) return;\n // if (selectedDisabled.length > 0) return;\n\n let renderizar = (incident.idFormulario == \"5\"); \n if (!renderizar) return;\n\n let fechas = getFechasSeleccionadas();\n fechas = fechas.map((item) => { \n let nvoItem = { MomentFecha: moment(item).format('YYYY-MM-DD') + 'T00:00:00.000', LabelFecha: moment(item).format('DD-MM-YYYY'), Fecha: item, Horas: 1 };\n \n let fnItem = horasFechas.find(fn => fn.LabelFecha === nvoItem.LabelFecha);\n if (fnItem != null) nvoItem.Horas = fnItem.Horas;\n\n return nvoItem;\n });\n \n fechas = fechas.filter(fl => !selectedDisabled.some(sm => moment(sm).format('DD-MM-YYYY') == fl.LabelFecha));\n \n setHorasFechasForm5(fechas);\n };\n \n const handleFechasForm5 = (element, item) => {\n let valor = element.target.value;\n let fechas = [...horasFechasForm5];\n let fecha = fechas.find(fn => fn.LabelFecha == item.LabelFecha);\n if (fecha != null) fecha.Horas = valor;\n setHorasFechasForm5(fechas);\n };\n\n const maxHorasPermiso = () => {\n let maximo = 8;\n let _diasHorasPermiso = (diasHorasPermiso || '').trim();\n if (_diasHorasPermiso.length == 0) return maximo;\n\n let arrStr = _diasHorasPermiso.split('=');\n if (arrStr.length != 2) return maximo;\n \n arrStr = arrStr[1].split(',');\n if (arrStr.length != 2) return maximo;\n\n if(!isNaN(arrStr[1])) maximo = parseInt(arrStr[1]);\n return maximo;\n };\n \n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else {\n return (\n <div id=\"main-wrapper\">\n\n <Modal show={showModal} onHide={_handleCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {/* {dataModal.body} */}\n {/* {dataModal.haveComment ? <input\n className=\"form-control\"\n name=\"company\"\n type=\"textarea\"\n required=\"\"\n placeholder=\"Comentario\"\n value={comment}\n onChange={handleInput}\n autoFocus\n /> : null} */}\n <label>Se solicitaron los siguientes días de incidencias.</label>\n <table className=\"table nowrap table-border\" >\n <thead>\n <tr>\n <th>Día</th>\n <th>Fecha</th>\n <th>Incidencia</th>\n </tr>\n </thead>\n <tbody>\n {(dataModal.selectedDays || []).map((item, idx) => {\n return (<tr key={'tr' + idx}>\n <td>{WEEKDAYS_LONG[item.getDay()]}</td>\n <td>{moment(item).format('DD-MM-YYYY')}</td>\n <td>{incident.descripcion}</td>\n </tr>);\n })}\n </tbody>\n </table>\n <br/>\n <label>Total de Días: {dataModal.selectedDays.length}</label><br/>\n <label>¿Desea seguir con la solicitud de incidencias?</label><br/>\n\n </Modal.Body>\n <Modal.Footer>\n {(dataModal.buttons || []).map((item, idx) => {\n return (\n <Button key={'btnModal' + idx} variant={item.variant} onClick={item.onClick}>\n {item.title}\n </Button>\n );\n })}\n </Modal.Footer>\n </Modal>\n\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Nueva Incidencia\" icon=\"mdi mdi-alert-circle-outline\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\" col-md-6 col-12\">\n <h4 className=\"card-title\">Crea tu Incidencia</h4>\n <div className=\"d-flex flex-wrap justify-content-between\">\n <h4 className=\"card-title p-2\">INCIDENCIA</h4>\n <select className=\"form-control p-2 col-6\" onChange={handleDropdown}>\n <option value='-'>{'SELECCIONE'}</option>\n {_renderOptions()}\n </select>\n {!(formularioIncidencia) && \n <>\n <h4 className=\"card-title p-2\">TEMPORALIDAD</h4>\n <select className=\"form-control p-2 col-6\" onChange={handleDropdownData}>\n <option value='0'>{'SELECCIONE'}</option>\n <option value='1'>{'FECHAS ÚNICAS'}</option>\n <option value='2'>{'RANGO DE FECHAS'}</option>\n </select>\n </>\n }\n </div>\n </div>\n </div>\n </div>\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") !== '1' && !(incident == undefined || incident == null) && incidentTypeDate === '1' ?\n <div className=\"card-body\">\n <h4 className=\"card-title p-2\">Seleccione la(s) fecha(s) de su incidencia</h4>\n <div className=\"col-12 row\">\n <div>\n <DatePickerSelector\n selected={selectedDays}\n ivalid={selectedDisabled}\n selectedDays={(selectedDays) => { setSelectedDays(selectedDays) }}\n selectedDisabled={(disabled) => { setSelectedDisabled(disabled) }}\n vacationsData={vacaciones}\n />\n </div>\n\n {selectedDays.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días válidos</h4>\n {selectedDays.map((day, i) => {\n let formatedDate = moment(day).format('DD-MM-YYYY')\n return (<h4 key={'V1_'+i} className=\"card-title p-1\" style={{ color: '#93c03f' }}>{formatedDate}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDays([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n\n {selectedDisabled.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días no válidos</h4>\n {selectedDisabled.map((day, i) => {\n let formatedDate = moment(day).format('DD-MM-YYYY')\n return (<h4 key={'I1_' + i} className=\"card-title p-1\" style={{ color: '#be2b71' }}>{formatedDate}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDisabled([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n {(/*formularioIncidencia &&*/ selectedDays && selectedDays.length) > 0 ? renderMotivos() : null}\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") !== '1' && !(incident == undefined || incident == null) && incidentTypeDate === '2' ?\n <div className=\"card-body\">\n <div className=\"col-8\" >\n <h4 className=\"card-title p-2\">Seleccione el rango de fechas de su incidencia</h4>\n <div className=\"row col-12\">\n <div>\n <DatePickerMultiSelector\n isKrones={formularioIncidencia}\n setInitialDate={(initial) => { setInitialDate(initial) }}\n setFinalDate={(end) => { setFinalDate(end) }}\n skipWeekends={skipWeekends}\n vacationsData={vacaciones} \n resetDates={resetDates}\n />\n </div>\n\n {finalDate != '' ?\n <div className={formularioIncidencia ? 'col-md-3 col-sm-3 col-lg-3' : ''}>\n <h4 className=\"card-title p-2 col-12\">Rango válido seleccionado</h4>\n <div className='row'>\n <h4 className=\"card-title p-2\">DE</h4>\n <h4 className=\"card-title p-2\">{moment(initialDate).format('DD-MM-YYYY')}</h4>\n <h4 className=\"card-title p-2\">A</h4>\n <h4 className=\"card-title p-2\">{moment(finalDate).format('DD-MM-YYYY')}</h4>\n </div>\n </div>\n : null}\n\n {(/*formularioIncidencia &&*/ initialDate != '') ? renderMotivos() : null}\n </div>\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") === '1' && incidentTypeDate === '1' ?\n <div className=\"card-body\">\n <h4 className=\"card-title p-2\">Seleccione la(s) fecha(s) de su incidencia</h4>\n <div className=\"col-12 row\">\n <div>\n <DatePickerAvaibleSelector\n onSelectedDays={(selectedDays) => { setSelectedDays(selectedDays) }}\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\n selected={selectedDays} \n selectedDisabled={selectedDisabled}\n skipWeekends={skipWeekends}\n vacationsData={vacaciones}\n tooltipDates={tooltipDates}\n />\n </div>\n\n {selectedDays.length > 0 ?\n <div>\n <h4 className=\"card-title p-2 col-12\">Días válidos</h4>\n {selectedDays.map((day, idx) => {\n return (<h4 key={'V2_'+idx} className=\"card-title p-1\" style={{ color: '#93c03f' }}>{moment(day).format('DD-MM-YYYY')}</h4>)\n })}\n <button type=\"button\" onClick={() => { setSelectedDays([]) }} className=\"btn btn-info waves-effect waves-light pull-right\" >Restaurar</button>\n </div>\n : null}\n \n {(/*formularioIncidencia &&*/ selectedDays && selectedDays.length) > 0 ? renderMotivos() : null}\n </div>\n </div>\n : null}\n\n {localStorage.getItem(\"REACT_APP_CALENDARIO_SEMAFORO\") === '1' && incidentTypeDate === '2' ?\n <div className=\"card-body\">\n <h4 className=\"card-title p-2\">Seleccione el rango de fechas de su incidencia</h4>\n <div className=\"col-12 row\">\n <div>\n <DatePickerAvaibleMultiSelector\n isKrones={formularioIncidencia}\n onSelectedInitialDate={(initial) => { setInitialDate(initial) }}\n onSelectedFinalDate={(end) => { setFinalDate(end) }}\n onSelectedMonth={(month) => { setSelectedMonth(month) }}\n selectedDisabled={selectedDisabled}\n skipWeekends={skipWeekends}\n vacationsData={vacaciones}\n tooltipDates={tooltipDates}\n resetDates={resetDates}\n />\n </div>\n\n {finalDate != '' ?\n <div className={formularioIncidencia ? 'col-md-3 col-sm-3 col-lg-3' : ''}>\n <h4 className=\"card-title p-2 col-12\">Rango válido seleccionado</h4>\n <h4 className=\"card-title p-1\" style={{ color: '#93c03f' }}>{\"DE \" + moment(initialDate).format('DD-MM-YYYY') + \" A \" + moment(finalDate).format('DD-MM-YYYY')}</h4>\n <button type=\"button\" onClick={() => setResetDates(new Date())} className=\"btn btn-info waves-effect waves-light\">Restaurar</button>\n </div>\n : null}\n \n {(/*formularioIncidencia &&*/ initialDate != '') ? renderMotivos() : null}\n </div>\n </div>\n : null}\n\n {incidentTypeDate != '0' ?\n <div className=\"card-footer\">\n <button type=\"button\" onClick={(localStorage.getItem(\"REACT_APP_CONFIRMA_SOLICITUDES\") != '1' ? _handleSubmitDates : _handleOpenModal)} className=\"btn btn-info waves-effect waves-light pull-right\" >Enviar Incidencia</button>\n </div>\n : null}\n\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n insertIncidentsData: state.insertIncident.insertIncidentsData,\n insertIncidentsError: state.insertIncident.insertIncidentsError,\n\n skipWeekendData: state.skipWeekend.skipWeekendData,\n skipWeekendError: state.skipWeekend.skipWeekendError,\n\n catIncidentsData: state.catIncidents.catIncidentsData,\n catIncidentsError: state.catIncidents.catIncidentsError,\n\n incidenciasKronesData: state.incidenciasKrones.incidenciasKronesData,\n incidenciasKronesError: state.incidenciasKrones.incidenciasKronesError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n\n getDiasBloqueadosData: state.getDiasBloqueados.getDiasBloqueadosData,\n getDiasBloqueadosError: state.getDiasBloqueados.getDiasBloqueadosError,\n\n getincidenciasAspenData: state.GetincidenciasAspen.getincidenciasAspenData,\n getincidenciasAspenError: state.GetincidenciasAspen.getincidenciasAspenError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n getInsertIncidentsAction,\n getSkipWeekendAction,\n getCatIncidentsAction,\n getCatIncidenciasKronesAction,\n getVacationsAction,\n getDiasBloqueadosAction,\n GetincidenciasAspenAction, \n GetValoresConfigAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentRequest));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport CryptoJS from 'crypto-js';\n\nimport { validDateIncidentAction } from '../../api/endpoints';\n\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport moment from 'moment';\n\nconst DatePickerIncident = props => {\n\n const [date, setDate] = useState(props.date);\n const [showDelete, setShowDelete] = useState(props.showDelete)\n const [status, setStatus] = useState({});\n\n useEffect(() => {\n\n if (date) {\n let params = sessionStorage.getItem('params');\n\n if (params == null) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let formatedDate = moment(date).format('YYYY-MM-DD') + 'T00:00:00';\n\n let dataUser = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Fecha': formatedDate,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n\n\n validDateIncidentAction(dataUser, server).then(valid => {\n if (valid) {\n setStatus({ status: 'Fecha Válida', icon: 'mdi mdi-check', class: '#93c03f' });\n props.onChangeDate({ date: date, status: true });\n\n } else {\n setStatus({ status: 'Fecha Inválida', icon: 'mdi mdi-close', class: '#be2b71' });\n props.onChangeDate({ date: date, status: false });\n\n }\n })\n }\n }\n\n }, [date]);\n\n useEffect(() => {\n setDate(props.date);\n }, [props.date])\n\n return (\n <div className=\"row form-group\">\n {!showDelete ? <div className=\"col-md-1\">\n <button type=\"button\" className=\"btn btn-default waves-effect waves-light pull-right\" onClick={props.remove}><i className=\"mdi mdi-close\" /></button>\n </div> : null}\n <div className=\"col-md-7\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Selecciona una fecha\"\n selected={props.date}\n onChange={new_date => setDate(new_date)}\n />\n </div>\n <div className=\"col-md-4\">\n <b><p style={{ 'color': status.class }}><i className={status.icon}></i> {status.status}</p></b>\n </div>\n </div>\n );\n\n};\n\nexport default withRouter(DatePickerIncident);\n","import { changeXml, GetincidenciasAspenResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_INCIDENCIAS_ASPEN_SUCCESS,\r\n GET_INCIDENCIAS_ASPEN_ERROR,\r\n GET_INCIDENCIAS_ASPEN_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\nexport const GetincidenciasAspenAction = (data, server) => {\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + \"wcfKioscoReportes.svc\";\r\n\r\n let configJson = {\r\n 'tem:GetincidenciasAspen': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoReportes/GetincidenciasAspen\",\r\n 'Server': directServer\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n console.log('TEST REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_INCIDENCIAS_ASPEN_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GET_INCIDENCIAS_ASPEN_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GET_INCIDENCIAS_ASPEN_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n GetincidenciasAspen: GetincidenciasAspenResponse(body)\r\n };\r\n\r\n console.log(body);\r\n\r\n console.log('RESPONSE GET_INCIDENCIAS_ASPEN DATA: ', response);\r\n dispatch({ type: GET_INCIDENCIAS_ASPEN_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GET_INCIDENCIAS_ASPEN DATA: ', response);\r\n dispatch({ type: GET_INCIDENCIAS_ASPEN_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GET_INCIDENCIAS_ASPEN DATA: ', responseError);\r\n dispatch({ type: GET_INCIDENCIAS_ASPEN_ERROR, payload: responseError });\r\n });\r\n }\r\n }\r\n};","import { changeXml, ConsultaArchivos } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n CONSULTA_ARCHIVO_SUCCESS,\n CONSULTA_ARCHIVO_ERROR,\n CONSULTA_ARCHIVO_PURGE,\n VALIDATE_ERROR,\n} from \"../../types\";\n\nexport const getConsultaArchivosAction = (data, server) => {\n let configJson = {\n \"tem:ConsultaArchivos\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaArchivos\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: CONSULTA_ARCHIVO_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: CONSULTA_ARCHIVO_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ConsultaArchivos: ConsultaArchivos(body),\n };\n\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\n dispatch({ type: CONSULTA_ARCHIVO_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\n dispatch({ type: CONSULTA_ARCHIVO_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\n responseError\n );\n dispatch({ type: CONSULTA_ARCHIVO_ERROR, payload: responseError });\n });\n }\n };\n};","import React, { useEffect, useState, useRef } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport { getConsultaArchivosAction } from \"../../api/actions/systemAdmin/ConsultaArchivosAction\";\nimport { getLog_RegistraDescargaArchivoAction } from \"../../api/actions/empleado/Log_RegistraDescargaArchivo\";\n\nimport { getParams } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\n\nconst UploadFiles = (props) => {\n const [loading, setLoading] = useState(true);\n\n let consultArchivos = () => {\n setLoading(true);\n props.getConsultaArchivosAction(\"PURGE\", \"\");\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getConsultaArchivosAction(params, server);\n };\n\n let downloadBase64 = (base64, fileName) => {\n\tlogDownload(fileName)\n const downloadLink = document.createElement(\"a\");\n\n downloadLink.href = base64;\n downloadLink.download = fileName;\n downloadLink.click();\n };\n\n let logDownload = fileName => {\n\tlet { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:Archivo\": fileName,\n \"tem:TrabID\": params[\"tem:TrabID\"],\n };\n\n\tprops.getLog_RegistraDescargaArchivoAction(params, server);\n }\n\n useEffect(() => {\n consultArchivos();\n }, []);\n\n useEffect(() => {\n if (\n props.consultaArchivosData &&\n props.consultaArchivosData.isOK === true\n ) {\n setLoading(false);\n } else if (\n props.consultaArchivosError &&\n props.consultaArchivosError.isOK === false\n ) {\n props.getConsultaArchivosAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.consultaArchivosData, props.consultaArchivosError]);\n\n function data_table() {\n let table = [];\n let info = props.consultaArchivosData?.ConsultaArchivos || [];\n\n if (!info || info.length <= 0) {\n table.push(\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\n <td>No hay información para mostrar.</td>\n </tr>\n );\n } else {\n info.map((item, i) => {\n table.push(\n <tr key={i}>\n <td>{item[\"Nombre\"]}</td>\n <td>\n <button\n onClick={() =>\n downloadBase64(item[\"Contenido\"], item[\"Nombre\"])\n }\n className=\"btn btn-primary form-control text-white\"\n >\n Descargar AS\n </button>\n </td>\n </tr>\n );\n });\n }\n\n return table;\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"CARGAR ARCHIVOS\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"card-title text-white\">Archivos subidos</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th style={{ width: 80 + \"%\" }}>Nombre</th>\n <th></th>\n </tr>\n </thead>\n\n <tbody>{data_table()}</tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n consultaArchivosData: state.consultaArchivos.consultaArchivosData,\n consultaArchivosError: state.consultaArchivos.consultaArchivosError,\n\n\tlog_RegistraDescargaArchivoData: state.log_RegistraDescargaArchivo.log_RegistraDescargaArchivoData,\n log_RegistraDescargaArchivoError: state.log_RegistraDescargaArchivo.log_RegistraDescargaArchivoError,\n };\n};\n\nconst mapDispatchToProps = {\n getConsultaArchivosAction,\n getLog_RegistraDescargaArchivoAction\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UploadFiles)\n);\n","import { changeXml, Log_RegistraDescargaArchivo } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS,\n ACTUALIZA_DOWNLOAD_REPORTS_ERROR,\n ACTUALIZA_DOWNLOAD_REPORTS_PURGE,\n VALIDATE_ERROR,\n} from \"../../types\";\n\nexport const getLog_RegistraDescargaArchivoAction = (data, server) => {\n let configJson = {\n \"tem:Log_RegistraDescargaArchivo\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/Log_RegistraDescargaArchivo\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: ACTUALIZA_DOWNLOAD_REPORTS_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET ACTUALIZA_DOWNLOAD_REPORTS_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: ACTUALIZA_DOWNLOAD_REPORTS_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n Log_RegistraDescargaArchivo: Log_RegistraDescargaArchivo(body),\n };\n\n console.log(\"RESPONSE ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS DATA: \", response);\n dispatch({ type: ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET ACTUALIZA_DOWNLOAD_REPORTS_ERROR DATA: \", response);\n dispatch({ type: ACTUALIZA_DOWNLOAD_REPORTS_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET ACTUALIZA_DOWNLOAD_REPORTS_ERROR DATA: \",\n responseError\n );\n dispatch({ type: ACTUALIZA_DOWNLOAD_REPORTS_ERROR, payload: responseError });\n });\n }\n };\n};","import React, { useEffect, useState } from \"react\";\nimport { NavLink, withRouter } from 'react-router-dom';\n//import logo from '../../assets/images/Logo.png';\nimport QR from '../layout/QRCode.js';\nimport { connect } from \"react-redux\";\n\nconst Leftsidebar = props => {\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\n\n const [showModalQR, setShowModalQR] = useState(false);\n\n return (\n <>\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR showModalQR={showModalQR} onClosed={() => setShowModalQR(false)} /> : null}\n <aside className=\"left-sidebar\">\n <div className=\"scroll-sidebar\">\n <nav className=\"sidebar-nav\">\n <ul id=\"sidebarnav\">\n <li className=\"nav-devider\"></li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-bar\"></i><span className=\"hide-menu\">INICIO</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/access`} aria-expanded=\"false\"><i className=\"mdi mdi-account-key\"></i><span className=\"hide-menu\">MÉTODO DE INGRESO</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/passwords`} aria-expanded=\"false\"><i className=\"mdi mdi-key\"></i><span className=\"hide-menu\">REINICIO CONTRASEÑAS</span></NavLink>\n </li>\n {process.env.REACT_APP_IS_KRONES == '1' && \n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/payrolls`} aria-expanded=\"false\"><i className=\"mdi mdi-cash-usd\"></i><span className=\"hide-menu\">PAGO DE NÓMINA</span></NavLink>\n </li>\n }\n {/* <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/calculate-payrolls`} aria-expanded=\"false\"><i className=\"mdi mdi-library-plus\"></i><span className=\"hide-menu\">CÁLCULO DE NÓMINA</span></NavLink>\n </li> */}\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/fields`} aria-expanded=\"false\"><i className=\"mdi mdi-file-document\"></i><span className=\"hide-menu\">CAMPOS ADICIONALES</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/payroll`} aria-expanded=\"false\"><i className=\"mdi mdi-bank\"></i><span className=\"hide-menu\">RECIBOS GENERADOS POR EMPLEADO</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/requests`} aria-expanded=\"false\"><i className=\"mdi mdi-account-multiple\"></i><span className=\"hide-menu\">RH TE ESCUCHA</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/messages`} aria-expanded=\"false\"><i className=\"mdi mdi-message-alert\"></i><span className=\"hide-menu\">MENSAJES AL PERSONAL</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/complaints`} aria-expanded=\"false\"><i className=\"mdi mdi-message-bulleted-off\"></i><span className=\"hide-menu\">BUZÓN DE QUEJAS</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/menu`} aria-expanded=\"false\"><i className=\"mdi mdi-menu\"></i><span className=\"hide-menu\">MENU</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/calendar`} aria-expanded=\"false\"><i className=\"mdi mdi-calendar\"></i><span className=\"hide-menu\">CALENDARIO</span></NavLink>\n </li>\n {process.env.REACT_APP_IS_KRONES == '1' && \n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacations`} aria-expanded=\"false\"><i className=\"mdi mdi-beach\"></i><span className=\"hide-menu\">VACACIONES</span></NavLink>\n </li>\n }\n\n {((sessionStorage.getItem('SICONSULTA_LigaFondoOperador') || '').trim().length > 0) &&\n <li>\n <NavLink\n activeClassName=\"active\"\n className=\"waves-effect waves-dark\"\n to={`${process.env.PUBLIC_URL}/caja-ahorro`}\n aria-expanded=\"false\"\n >\n <i className=\"mdi mdi-square-inc-cash\"></i>\n <span className=\"hide-menu\">CAJA DE AHORRO</span>\n </NavLink>\n </li>\n }\n\n {((sessionStorage.getItem('SICONSULTA_LigaCajaAHistOperador') || '').trim().length > 0) &&\n <li>\n <NavLink\n activeClassName=\"active\"\n className=\"waves-effect waves-dark\"\n to={`${process.env.PUBLIC_URL}/caja-ahorro-historico`}\n aria-expanded=\"false\"\n >\n <i className=\"mdi mdi-square-inc-cash\"></i>\n <span className=\"hide-menu\">CAJA DE AHORRO HISTORICO</span>\n </NavLink>\n </li>\n }\n\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <li>\n {/* <a className=\"waves-effect waves-dark\" data-toggle=\"modal\" data-target=\".qr-code\" aria-expanded=\"false\"><i className=\"mdi mdi-qrcode\"></i><span className=\"hide-menu\">VER CÓDIGO QR</span></a> */}\n <a className=\"waves-effect waves-dark\" onClick={() => setShowModalQR(true)}><i className=\"mdi mdi-qrcode\"></i><span className=\"hide-menu\">VER CÓDIGO QR</span></a>\n </li> : null}\n <li>\n\n {(sessionStorage.getItem(\"SICONSULTA_ReporteVacIncidencias\") == '1' ) && \n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/requested-vacations-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-account-alert\"></i><span className=\"hide-menu\">VACACIONES E INCIDENCIAS PENDIENTES POR AUTORIZAR</span></NavLink>\n </li>\n }\n\n <div className=\"text-center\" aria-expanded=\"false\">\n <img width=\"90\" src={logo} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\n </div>\n </li>\n </ul>\n </nav>\n </div>\n </aside>\n </>\n );\n}\n\nconst mapStateToProps = (state) => {\n return {\n\n };\n};\n\nconst mapDispatchToProps = {\n \n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Leftsidebar);\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction.js\";\r\n\r\nimport { getParams, getDatesInRange, getSesionStorage } from '../../utils/index.js';\r\nimport { alert, confirm } from '../../utils/common/alert.js';\r\nimport Card from '../../components/shared/Card.js';\r\nimport Row from '../../components/row/Row.js';\r\nimport FileBase64 from 'react-file-base64';\r\n\r\nimport EmployeeLeftsidebar from \"../layout/EmployeeLeftsidebar.js\";\r\nimport OperatorLeftsidebar from \"../layout/OperatorLeftsidebar.js\";\r\n\r\nconst FondoAhorro = props => {\r\n const { params, server } = getParams();\r\n const [ loading, setLoading ] = useState(false);\r\n // const [valoresConfig, setValoresConfig] = useState([]);\r\n //---------------------------------------------------------------------------------------------\r\n // useEffect(() => {\r\n // GetValoresConfig('SICONSULTA');\r\n // }, []);\r\n \r\n // useEffect(() => {\r\n // if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\r\n // let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\r\n // if (configuraciones.length > 0) {\r\n // setValoresConfig(configuraciones);\r\n // }\r\n // else {\r\n // setValoresConfig([]);\r\n // }\r\n // props.GetValoresConfigAction(\"PURGE\", \"\");\r\n // } \r\n // else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\r\n // setValoresConfig([]);\r\n // props.GetValoresConfigAction(\"PURGE\", \"\");\r\n // }\r\n // }, [props.getValoresConfigData, props.getValoresConfigError]);\r\n \r\n // const GetValoresConfig = (seccion, variable = '') => {\r\n // let { params, server } = getParams();\r\n\r\n // let send = {\r\n // \"tem:sToken\": params['tem:sToken'],\r\n // \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n // \"tem:Seccion\": seccion, \r\n // \"tem:Variable\": variable,\r\n // };\r\n \r\n // props.GetValoresConfigAction(send, server);\r\n // };\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 3:\r\n return <OperatorLeftsidebar />;\r\n break;\r\n default:\r\n return <EmployeeLeftsidebar />;\r\n }\r\n };\r\n\r\n const url = () => {\r\n let sToken = params['tem:sToken'] || '';\r\n let IdEmpresa = params['tem:IdEmpresa'] || '';\r\n let TrabID = params['tem:TrabID'] || '';\r\n let result = '';\r\n \r\n // let LigaFondoEmpleado = valoresConfig.find(f => f.Seccion == 'SICONSULTA' && f.Variable == 'LigaFondoEmpleado');\r\n // let LigaFondoEmpleadoJefe = valoresConfig.find(f => f.Seccion == 'SICONSULTA' && f.Variable == 'LigaFondoEmpleadoJefe');\r\n // let LigaFondoOperador = valoresConfig.find(f => f.Seccion == 'SICONSULTA' && f.Variable == 'LigaFondoOperador');\r\n\r\n let LigaFondoEmpleado = (sessionStorage.getItem('SICONSULTA_LigaFondoEmpleado') || 'localhost').trim(); \r\n let LigaFondoEmpleadoJefe = (sessionStorage.getItem('SICONSULTA_LigaFondoEmpleadoJefe') || 'localhost').trim();\r\n let LigaFondoOperador = (sessionStorage.getItem('SICONSULTA_LigaFondoOperador') || 'localhost').trim();\r\n \r\n let storage = getSesionStorage('userType');\r\n switch (storage.typeUser) {\r\n case 1:\r\n result = LigaFondoEmpleado\r\n break;\r\n case 2:\r\n result = LigaFondoEmpleadoJefe\r\n break;\r\n case 3:\r\n result = LigaFondoOperador\r\n break;\r\n default:\r\n result = 'localhost'\r\n break;\r\n }\r\n\r\n console.log('OIHB RESULT', storage.typeUser, result);\r\n\r\n return result.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Fondo de Ahorro\" icon=\"mdi mdi-routes\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\r\n marginTop: -29 + 'px',\r\n WebkitOverflowScrolling: 'touch',\r\n paddingBottom: 0,\r\n overflowY: 'scroll'\r\n }}>\r\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n // getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n // getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n // GetValoresConfigAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(FondoAhorro));","import { changeXml, DeletePersonalFiles } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VALIDATE_ERROR,\r\n DELETE_PERSOFILES_SUCCESS,\r\n DELETE_PERSOFILES_ERROR,\r\n DELETE_PERSOFILES_PURGE,\r\n} from '../../types'\r\n\r\n\r\nexport const getDeletePersonalFilesAction = (data, server) => {\r\n let configJson = {\r\n 'tem:DeletePersonalFiles': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DeletePersonalFiles\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('TEST REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: DELETE_PERSOFILES_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET DELETE_FILES_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: DELETE_PERSOFILES_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n DeletePersonalFiles: DeletePersonalFiles(body)\r\n }\r\n\r\n console.log('RESPONSE DELETE_ADD_FIELDS DATA: ', response);\r\n dispatch({ type: DELETE_PERSOFILES_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET DELETE_ADD_FIELDS DATA: ', response);\r\n dispatch({ type: DELETE_PERSOFILES_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET DELETE_ADD_FIELDS DATA: ', responseError);\r\n dispatch({ type: DELETE_PERSOFILES_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom'; \r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport CryptoJS from 'crypto-js';\r\nimport { getConsultaArchivosPersonalesPorTrabajadorAction } from '../../api/actions/empleado/ConsultaArchivosPersonalesPorTrabajador.js';\r\nimport { insertGuardaArchivoPersonalAction } from '../../api/actions/empleado/GuardaArchivoPersonalAction.js';\r\nimport { getDeletePersonalFilesAction} from '../../api/actions/empleado/DeletePersonalFilesAction.js';\r\nimport { getDocumentsTypeAction } from '../../api/actions/empleado/DocumentTypeAction.js';\r\nimport { getParams } from '../../utils/index.js';\r\n\r\nconst typeOfFilesAccepted1 =\r\n \".gif, .png, .jpeg, .jpg, .doc, .docx, .xls, .pdf, .txt, .xml, .zip\";\r\nconst typeOfFilesAccepted2 = \".pdf\";\r\n\r\nconst UploadFiles2 = (props) => {\r\n\r\n var encryptedData = sessionStorage.getItem(\"params\");\r\n if (encryptedData) {\r\n var decryptedData = CryptoJS.AES.decrypt(encryptedData, process.env.REACT_APP_HASH_SECRET);\r\n var decryptedJson = decryptedData.toString(CryptoJS.enc.Utf8);\r\n var parsedData = JSON.parse(decryptedJson);\r\n var trabIdValue = parsedData[\"tem:TrabID\"];\r\n console.log(trabIdValue);\r\n } else {\r\n console.log(\"Not sessionStorage data found.\");\r\n }\r\n\r\n let userString = sessionStorage.getItem(\"userSaved\");\r\n let user = JSON.parse(userString);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [uploadType, setUploadType] = useState(null);\r\n const [fileName, setFileName] = useState(\"\");\r\n const [fileBased64, setFileBased64] = useState(\"\");\r\n const [existFiles, setExistFiles] = useState(false);\r\n const [dataDocumentType, setDataDocumentType] = useState([]);\r\n const [selectedValue, setSelectedValue] = useState(\"0\");\r\n const [fileUploaded, setFileUploaded] = useState(false);\r\n \r\n\r\n let defaultOption = [{id:\"0\", nombre:\"--SELECCIONAR--\"}]\r\n \r\n let handleSubmit = (event) => {\r\n event.preventDefault();\r\n savePersonalArchivos(fileBased64, fileName);\r\n setSelectedValue(dataDocumentType[0]);\r\n setFileUploaded(true)\r\n };\r\n\r\n let handleChangeInputFile = (event) => {\r\n event.preventDefault();\r\n getBase64(event.target.files[0]);\r\n setFileName(event.target.files[0].name);\r\n };\r\n\r\n let getBase64 = (file) => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n setFileBased64(reader.result);\r\n };\r\n };\r\n\r\n let consultPersonalArchivos = () => {\r\n setLoading(true);\r\n props.getConsultaArchivosPersonalesPorTrabajadorAction(\"PURGE\", \"\");\r\n let { params, server } = getParams();\r\n\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Trab_id\": trabIdValue\r\n };\r\n\r\n props.getConsultaArchivosPersonalesPorTrabajadorAction(params, server);\r\n };\r\n\r\n\r\n let savePersonalArchivos = (file64, fileName) => {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Archivo\": file64,\r\n \"tem:NombreArchivo\": fileName,\r\n \"tem:Tipo\": selectedValue,\r\n \"tem:Trab_id\": trabIdValue, \r\n \"tem:NombreTrabajador\": user.nombre,\r\n \"tem:Paterno\": user.paterno,\r\n \"tem:Materno\": user.materno,\r\n };\r\n\r\n props.insertGuardaArchivoPersonalAction(params, server);\r\n };\r\n\r\n let deletePersonalFilesFunc = (idxFile, deleteMany) => {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Idx_Archivo\": idxFile,\r\n \"tem:Trab_id\": trabIdValue,\r\n \"tem:Todos\": deleteMany,\r\n };\r\n\r\n props.getDeletePersonalFilesAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n consultPersonalArchivos();\r\n docType()\r\n }, []);\r\n\r\n let docType = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getDocumentsTypeAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n if ((props.documentTypeData || {isOK:false}).isOK)\r\n {\r\n \r\n let arrdocs = [ ...props.documentTypeData.ObtenerTipoDocumento];\r\n \r\n setDataDocumentType(defaultOption.concat(arrdocs));\r\n props.getDocumentsTypeAction(\"PURGE\", \"\");\r\n \r\n }\r\n else if (props.documentTypeError && props.documentTypeError.isOK == false) {\r\n setDataDocumentType([]);\r\n setLoading(false);\r\n props.getDocumentsTypeAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.documentTypeData,\r\n props.documentTypeError,\r\n ]);\r\n\r\n\r\n \r\n useEffect(() => {\r\n if (\r\n props.consultaArchivosPersonalesPorTrabajadorData &&\r\n props.consultaArchivosPersonalesPorTrabajadorData.isOK === true\r\n ) {\r\n setExistFiles(true);\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n } else if (\r\n props.consultaArchivosPersonalesPorTrabajadorError &&\r\n props.consultaArchivosPersonalesPorTrabajadorError.isOK === false\r\n ) {\r\n setExistFiles(false);\r\n props.getConsultaArchivosPersonalesPorTrabajadorAction(\"PURGE\", \"\");\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n }\r\n }, [props.consultaArchivosPersonalesPorTrabajadorData, props.consultaArchivosPersonalesPorTrabajadorError]);\r\n\r\n useEffect(() => {\r\n if (props.deletePersonalFilesData && props.deletePersonalFilesData.isOK === true) {\r\n consultPersonalArchivos();\r\n } else if (\r\n props.deletePersonalFilesError &&\r\n props.deletePersonalFilesError.isOK === false\r\n ) {\r\n props.getDeletePersonalFilesAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.deletePersonalFilesData, props.deletePersonalFilesError]);\r\n\r\n useEffect(() => {\r\n if (props.guardaArchivosPersonalesData && props.guardaArchivosPersonalesData.isOK === true) {\r\n consultPersonalArchivos();\r\n } else if (\r\n props.guardaArchivosPersonalesError &&\r\n props.guardaArchivosPersonalesError.isOK === false\r\n ) {\r\n props.insertGuardaArchivoPersonalAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.guardaArchivosPersonalesData, props.guardaArchivosPersonalesData]);\r\n\r\n\r\n const handleSelectChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n setFileUploaded(false);\r\n };\r\n\r\n\r\n function data_table() {\r\n let table = [];\r\n let info = props.consultaArchivosPersonalesPorTrabajadorData?.ConsultaArchivosPersonalesPorTrabajador || [];\r\n\r\n if (!info || info.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay archivos para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n info.map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item[\"Tipo\"]}</td>\r\n <td>{item[\"Nombre\"]}</td>\r\n <td>\r\n <button\r\n onClick={() => deletePersonalFilesFunc(item[\"Idx_Archivo\"], \"0\")}\r\n className=\"btn btn-danger form-control text-white\"\r\n >\r\n Eliminar\r\n </button>\r\n </td>\r\n </tr>\r\n );\r\n });\r\n }\r\n\r\n return table;\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CARGAR ARCHIVOS\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title text-white\">\r\n Añade el archivo\r\n </h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row align-items-center\">\r\n <div className=\"col-md-12 mb-2 mx-4 row\">\r\n Se aceptan únicamente archivos con extensión: {typeOfFilesAccepted1}\r\n </div>\r\n <div className=\"col-md-12 my-2 mx-4 row\">\r\n <h4 className=\"card-title p-2\">TIPO DE DOCUMENTO</h4>\r\n <select className=\"form-control p-2 col-3\" value={selectedValue} onChange={handleSelectChange}>\r\n {dataDocumentType.map((item) => (\r\n <option key={item.id} value={item.nombre}>\r\n {item.nombre}\r\n </option>\r\n ))}\r\n </select>\r\n <div className=\"mb-10\" /> \r\n <input\r\n type=\"file\"\r\n onChange={handleChangeInputFile}\r\n accept={uploadType}\r\n className=\"ml-4 mt-1\"\r\n disabled={selectedValue === \"0\" || fileUploaded}\r\n />\r\n </div>\r\n <div className=\"col-md-3 my-2 mx-4 row mx-auto\">\r\n <button\r\n className=\"btn btn-info form-control\"\r\n onClick={handleSubmit}\r\n disabled={!fileBased64}\r\n >\r\n Subir Archivo\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Archivos subidos</h4>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th style={{ width: 40 + \"%\" }}>Tipo de documento</th>\r\n <th style={{ width: 40 + \"%\" }}>Nombre</th>\r\n <th colSpan={2}>\r\n {existFiles && (\r\n <button\r\n onClick={() => deletePersonalFilesFunc(\"0\", \"1\")}\r\n className=\"btn btn-danger form-control text-white\"\r\n >\r\n Eliminar Todo\r\n </button>\r\n )}\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>{data_table()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n\r\n documentTypeData: state.documentType.documentTypeData,\r\n documentTypeError: state.documentType.documentTypeError,\r\n consultaArchivosPersonalesPorTrabajadorData: state.consultaArchivosPersonalesPorTrabajador.consultaArchivosPersonalesPorTrabajadorData,\r\n consultaArchivosPersonalesPorTrabajadorError: state.consultaArchivosPersonalesPorTrabajador.consultaArchivosPersonalesPorTrabajadorError,\r\n\r\n deletePersonalFilesData: state.deletePersonalFiles.deletePersonalFilesData,\r\n deletePersonalFilesError: state.deletePersonalFiles.deletePersonalFilesError,\r\n\r\n guardaArchivosPersonalesData: state.guardaArchivosPersonales.guardaArchivosPersonalesData,\r\n guardaArchivosPersonalesError: state.guardaArchivosPersonales.guardaArchivosPersonalesError,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDocumentsTypeAction,\r\n getConsultaArchivosPersonalesPorTrabajadorAction,\r\n getDeletePersonalFilesAction,\r\n insertGuardaArchivoPersonalAction,\r\n\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(UploadFiles2)\r\n);\r\n","import { changeXml, obtenerTipoDocumento } from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\nDOCUMENT_TYPE_SUCCESS,\r\nDOCUMENT_TYPE_ERROR,\r\nDOCUMENT_TYPE_PURGE,\r\nVALIDATE_ERROR,\r\n} from \"../../types\";\r\n\r\n\r\nexport const getDocumentsTypeAction = (data, server) => {\r\n let configJson = {\r\n \"tem:ObtenerTipoDocumento\": {\r\n ...data,\r\n },\r\n };\r\n \r\n let obj = changeXml(configJson);\r\n \r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ObtenerTipoDocumento\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n \r\n\r\n console.log('REQUEST:', data, config);\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: DOCUMENT_TYPE_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET DOCUMENT_TYPE_ERROR DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: DOCUMENT_TYPE_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ObtenerTipoDocumento: obtenerTipoDocumento(body),\r\n };\r\n \r\n console.log(\"RESPONSE DOCUMENT_TYPE DATA: \", response);\r\n dispatch({ type: DOCUMENT_TYPE_SUCCESS, payload: response });\r\n }\r\n }\r\n \r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET DOCUMENT_TYPE DATA: \", response);\r\n dispatch({ type: DOCUMENT_TYPE_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET DOCUMENT_TYPE DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: DOCUMENT_TYPE_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n };\r\n","import { changeXml, ConsultaArchivosPersonales, ConsultaArchivosPersonalesPorTrabajador } from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n CONSULTA_ARCHIVOPERSO_SUCCESS,\r\n CONSULTA_ARCHIVOPERSO_ERROR,\r\n CONSULTA_ARCHIVOPERSO_PURGE,\r\n VALIDATE_ERROR,\r\n} from \"../../types\";\r\n\r\nexport const getConsultaArchivosPersonalesPorTrabajadorAction = (data, server) => {\r\n let configJson = {\r\n \"tem:ConsultaArchivosPersonalesPorTrabajador\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaArchivosPersonalesPorTrabajador\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ConsultaArchivosPersonalesPorTrabajador: ConsultaArchivosPersonalesPorTrabajador(body),\r\n };\r\n\r\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import { changeXml, GuardaArchivoPersonal } from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n VALIDATE_ERROR,\r\n SAVE_ARCHIVOPERSO_SUCCESS,\r\n SAVE_ARCHIVOPERSO_ERROR,\r\n SAVE_ARCHIVOPERSO_PURGE,\r\n} from \"../../types\";\r\n\r\nexport const insertGuardaArchivoPersonalAction = (data, server) => {\r\n let configJson = {\r\n \"tem:GuardaArchivoPersonal\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/GuardaArchivoPersonal\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: SAVE_ARCHIVOPERSO_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: SAVE_ARCHIVOPERSO_SUCCESS, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n GuardaArchivoPersonal: GuardaArchivoPersonal(body),\r\n };\r\n\r\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: SAVE_ARCHIVOPERSO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: SAVE_ARCHIVOPERSO_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: SAVE_ARCHIVOPERSO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import {TYPE_USER} from '../../types'\n\nexport const changeUserType= (data) => {\n return ( dispatch ) => {\n dispatch( { type: TYPE_USER, payload: data} )\n }\n};","import { changeXml, RecoveryPasswordSuccess } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n RECOVERY_PASSWORD_SUCCESS,\n RECOVERY_PASSWORD_ERROR,\n RECOVERY_PASSWORD_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const geRecoveryPasswordAction = (data, server) => {\n let configJson = {\n 'tem:RecuperacionPass': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/RecuperacionPass\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: RECOVERY_PASSWORD_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET RECOVERY_PASSWORD_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: RECOVERY_PASSWORD_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RecoveryPassword: RecoveryPasswordSuccess(body)\n }\n\n console.log('RESPONSE RECOVERY_PASSWORD DATA: ', response);\n dispatch({ type: RECOVERY_PASSWORD_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET RECOVERY_PASSWORD DATA: ', response);\n dispatch({ type: RECOVERY_PASSWORD_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET RECOVERY_PASSWORD DATA: ', responseError);\n dispatch({ type: RECOVERY_PASSWORD_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import config from \"../../../data/config\";\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------\r\n\r\n//let xEnableSecPol = true;\r\n//let xURL_Identity = \"https://localhost:44379/v2/\";\r\n//let xURL_Permisos = \"https://localhost:44350/v2/\";\r\n//let xToken = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiI1MmNjOWQxYS05ZWJjLTQ5OGQtODFhNy0zNTk4MTVhZjhhZDgiLCJlbWFpbCI6ImFwYWNoZWNvQHNpY29zcy5jb20ubXgiLCJuYW1lIjoiQWxlamFuZHJvIiwiZmFtaWx5X25hbWUiOiJQYWNoZWNvIiwibmJmIjoxNjY5NDk2NjY3LCJleHAiOjE2Njk1ODMwNjcsImlhdCI6MTY2OTQ5NjY2N30.E9qzBAFU6qoCukQMWQYZ3aFW3Gx4P7qaVroDe6II848\";\r\nlet xNA = \"N/A\";\r\nlet xPWD = \"T45%T45%\";\r\nlet xROLUSER = \"usuario\";\r\nlet xTakeLastUsedPwd = 15;\r\nlet xPwdChangesPerDay = 1;\r\nlet xPwdValidityDays = 180;\r\nlet xInactiveDaysLimit = 60;\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------\r\n\r\nconst isJson = (str) => {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport const dateWithOutTime = (date, isTrue = true) => {\r\n let result = new Date(Date.parse(date));\r\n //if (!str.endsWith('Z')) str = str + 'Z';\r\n //var date = new Date(str);\r\n if (isTrue) {\r\n result.setHours(0, 0, 0, 0);\r\n }\r\n return result.toISOString();\r\n};\r\n\r\nexport const diffDaysBetweenTwoDates = (startDate, endDate) => {\r\n startDate = new Date(Date.parse(startDate));\r\n endDate = new Date(Date.parse(endDate));\r\n const diffTime = Math.abs(endDate - startDate);\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); \r\n return diffDays;\r\n};\r\n\r\nexport const enableSecurityPolicy = () => {\r\n return (localStorage.getItem(\"REACT_APP_SECURITY_POLICY\") == '1');\r\n};\r\n\r\nexport const urlApiIdentity = () => {\r\n return localStorage.getItem(\"REACT_APP_URL_IDENTITY\");\r\n};\r\n\r\nexport const urlApiPermisos = () => {\r\n return localStorage.getItem(\"REACT_APP_URL_PERMISOS\");\r\n};\r\n\r\nexport const defaultPassword = (eightCharacters) => {\r\n return (eightCharacters ? xPWD : xPWD.substring(0, 4));\r\n};\r\n\r\nexport const simplifyEmail = (emp, trabId) => {\r\n return emp.replace(' ', '').replace('.', '').replace('_', '') .replace('-', '').toLowerCase() + '.' + trabId + '@siconsulta.com.mx';\r\n};\r\n\r\nexport const callWebApi = async (url, controller, method, token, data, middleUrl = null, middleMethod = null) => {\r\n // middleUrl = \"https://localhost:44302/weatherforecast/\";\r\n\r\n let result = {\r\n status: 0, \r\n success: false,\r\n response: {\r\n esExitosa: false,\r\n mensaje: \"Sin procesar\",\r\n tipoError: 0,\r\n },\r\n };\r\n\r\n let urlRequest = url + controller;\r\n let json = \"\";\r\n if (data != null) json = JSON.stringify(data);\r\n\r\n var headers = { };\r\n headers['Content-Type'] = 'application/json';\r\n\r\n if (token.trim().length > 0) {\r\n headers['Authorization'] = 'Bearer ' + token;\r\n }\r\n\r\n if (middleUrl != null) {\r\n headers['Api-Server'] = urlRequest;\r\n headers['Api-Method'] = (middleMethod != null ? middleMethod : method);\r\n urlRequest = middleUrl;\r\n }\r\n\r\n var initOptions = { \r\n method: method, \r\n headers: headers, \r\n redirect: 'follow', \r\n };\r\n\r\n if (method.toUpperCase() != \"GET\") {\r\n initOptions[\"body\"] = json;\r\n }\r\n\r\n console.log('Identity ', method.toUpperCase(), urlRequest, initOptions);\r\n\r\n await fetch(urlRequest, initOptions).then(response => {\r\n result.status = response.status;\r\n return response.text();\r\n })\r\n .then(ok => {\r\n if (isJson(ok)) \r\n {\r\n result.response = JSON.parse(ok);\r\n if ('error' in result.response) {\r\n result.response = {\r\n ...result.response, \r\n esExitosa: false,\r\n mensaje: result.response.error,\r\n tipoError: 0 \r\n }\r\n }\r\n if ('errors' in result.response) {\r\n result.response = {\r\n ...result.response, \r\n esExitosa: false,\r\n mensaje: 'Varios errores',\r\n errors: result.response.errors,\r\n tipoError: 0\r\n }\r\n }\r\n else {\r\n result.success = true;\r\n }\r\n }\r\n })\r\n .catch(error => { \r\n //console.log('Identity Fetch Error', error);\r\n result.response.mensaje = error;\r\n });\r\n\r\n console.log('Identity', 'RESPONSE', result);\r\n \r\n if (result.status == 401) {\r\n let auth = await identityAuthentication({\r\n userName: config.xUserAdmin,\r\n email: config.xEmailAdmin,\r\n password: config.xPasswordAdmin,\r\n });\r\n if (auth.success && auth.response.esExitosa) {\r\n if (!(auth.response['datos'] == undefined || auth.response['datos'] == null)) {\r\n let datos = auth.response['datos'];\r\n if (!(datos['accessToken'] == undefined || datos['accessToken'] == null)) {\r\n token = datos['accessToken'];\r\n config.xToken = datos['accessToken'];\r\n return await callWebApi(url, controller, method, token, data, middleUrl, middleMethod);\r\n }\r\n }\r\n }\r\n }\r\n \r\n return result;\r\n};\r\n\r\nexport const unifiedResponseErrors = (result, response = 'response', errors = 'errors') => {\r\n let _errors = [];\r\n if (response in result) {\r\n if (errors in result[response]) {\r\n Object.values(result[response][errors]).forEach(val => {\r\n if (Array.isArray(val)) {\r\n val.forEach((item) => _errors.push(item));\r\n }\r\n else {\r\n _errors.push(val);\r\n }\r\n });\r\n }\r\n }\r\n return _errors;\r\n};\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------\r\n// LAS SIGUIENTES FUNCIONES SON CONSUMOS DE API\r\nexport const identityGetEmail = async (token, email) => {\r\n let result = await callWebApi(urlApiIdentity(), 'identity/getemail/' + email, 'GET', token, { });\r\n return result;\r\n};\r\n\r\nexport const identityGet = async (token, id) => {\r\n let result = await callWebApi(urlApiIdentity(), 'identity/' + id, 'GET', token, { });\r\n return result;\r\n};\r\n\r\nexport const identityCreate = async (token, data) => {\r\n let vigencia = new Date();\r\n vigencia.setFullYear(vigencia.getFullYear() + 1);\r\n if (data['vigencia'] == null || data['vigencia' == undefined]) data.vigencia = vigencia;\r\n let result = await callWebApi(urlApiIdentity(), 'identity/', 'POST', token, data);\r\n return result;\r\n};\r\n\r\nexport const identityEliminar = async (token, userId) => {\r\n let result = await callWebApi(urlApiIdentity(), 'identity/' + userId, 'DELETE', token, {});\r\n return result;\r\n};\r\n\r\nexport const identityAuthentication = async (data) => {\r\n let result = await callWebApi(urlApiIdentity(), 'identity/authentication/', 'POST', \"\", data);\r\n return result;\r\n};\r\n\r\nexport const identityUpdatePassword = async (token, data) => {\r\n // {\r\n // \"token\": \"Abc.123\",\r\n // \"email\": \"emp002.502734@siconsulta.com.mx\",\r\n // \"currentPassword\": \"Abc.123\",\r\n // \"newPassword\": \"T45%T45%\",\r\n // \"confirmPassword\": \"T45%T45%\",\r\n // \"validatePassword\": \"false\"\r\n // }\r\n if (data['token'] == null || data['token' == undefined]) data.token = xNA;\r\n if (data['currentPassword'] == null || data['currentPassword' == undefined]) data.currentPassword = xNA;\r\n if (data['validateCurrentPassword'] == null || data['validateCurrentPassword' == undefined]) data.validateCurrentPassword = false;\r\n if (data['validateNewPassword'] == null || data['validateNewPassword' == undefined]) data.validateNewPassword = false;\r\n if (data['ValidateHistoryPassword'] == null || data['ValidateHistoryPassword' == undefined]) data.ValidateHistoryPassword = false;\r\n if (data['TakeHistoryPassword'] == null || data['TakeHistoryPassword' == undefined]) data.TakeHistoryPassword = 0;\r\n if (data['ValidateContinuosCharsPassword'] == null || data['ValidateContinuosCharsPassword' == undefined]) data.ValidateContinuosCharsPassword = false;\r\n if (data['ValidateConsecutiveCharsPassword'] == null || data['ValidateConsecutiveCharsPassword' == undefined]) data.ValidateConsecutiveCharsPassword = false;\r\n let result = await callWebApi(urlApiIdentity(), 'identity/updatepassword', 'POST', token, data);\r\n return result;\r\n};\r\n\r\nexport const identityAddUserRole = async (token, email, role) => {\r\n let result = await callWebApi(urlApiIdentity(), 'identity/adduserrole/' + email + '/' + role, 'POST', token, {});\r\n return result;\r\n};\r\n\r\nexport const rolesGetRolesUser = async (token, userId) => {\r\n let result = await callWebApi(urlApiIdentity(), 'roles/getrolesuser/' + userId, 'GET', token, { });\r\n return result;\r\n};\r\n\r\nexport const sicossHistoricoPWDGet = async (token, id) => {\r\n let result = await callWebApi(urlApiPermisos(), 'SicossHistoricoPWD/' + id, 'GET', token, {});\r\n return result;\r\n};\r\n\r\nexport const sicossHistoricoPWDCreate = async (token, data) => {\r\n // {\r\n // \"idx\": 0,\r\n // \"userIdentity\": \"string\",\r\n // \"userSicoss\": \"string\",\r\n // \"fechaPwd\": \"2022-11-22T15:41:50.385Z\",\r\n // \"pwdh\": \"string\"\r\n // }\r\n let hoy = new Date();\r\n if (data['fechaPwd'] == null || data['fechaPwd'] == undefined) data.fechaPwd = hoy;\r\n let result = await callWebApi(urlApiPermisos(), 'SicossHistoricoPWD/', 'POST', token, data);\r\n return result;\r\n};\r\n\r\nexport const usuariosList = async (token) => {\r\n let result = await callWebApi(urlApiPermisos(), 'usuarios/', 'GET', token, {});\r\n return result;\r\n};\r\n\r\nexport const usuariosCreate = async (token, data) => {\r\n // let data = {\r\n // \"id\": 0,\r\n // \"clienteId\": \"string\",\r\n // \"userIdentity\": \"string\",\r\n // \"userSicoss\": \"string\",\r\n // \"pwd\": \"string\",\r\n // \"nombre\": \"string\",\r\n // \"sexo\": \"s\",\r\n // \"vigencia\": \"2022-11-14T18:18:27.406Z\",\r\n // \"forzarCambioPwd\": true,\r\n // \"fechaAlta\": \"2022-11-14T18:18:27.406Z\",\r\n // \"fechaCambioPwd\": \"2022-11-14T18:18:27.406Z\",\r\n // \"diasVigenciaPwd\": 0,\r\n // \"politicaS\": true,\r\n // \"estatus\": true,\r\n // };\r\n let today = new Date();\r\n let vigencia = new Date();\r\n vigencia.setFullYear(vigencia.getFullYear() + 1);\r\n if (data['sexo'] == null || data['sexo' == undefined]) data.sexo = 'i';\r\n if (data['vigencia'] == null || data['vigencia' == undefined]) data.vigencia = vigencia;\r\n if (data['forzarCambioPwd'] == null || data['forzarCambioPwd' == undefined]) data.forzarCambioPwd = false;\r\n if (data['fechaAlta'] == null || data['fechaAlta' == undefined]) data.fechaAlta = today;\r\n if (data['fechaCambioPwd'] == null || data['fechaCambioPwd' == undefined]) data.fechaCambioPwd = today;\r\n if (data['diasVigenciaPwd'] == null || data['diasVigenciaPwd' == undefined]) data.diasVigenciaPwd = xPwdValidityDays;\r\n if (data['estatus'] == null || data['estatus' == undefined]) data.estatus = true;\r\n\r\n if (data['forzarDiasInactivo'] == null || data['forzarDiasInactivo' == undefined]) data.forzarDiasInactivo = false;\r\n if (data['limiteDiasInactivo'] == null || data['limiteDiasInactivo' == undefined]) data.limiteDiasInactivo = 0;\r\n if (data['ultimaActividad'] == null || data['ultimaActividad' == undefined]) data.ultimaActividad = today;\r\n let result = await callWebApi(urlApiPermisos(), 'usuarios/', 'POST', token, data);\r\n return result;\r\n};\r\n\r\nexport const usuariosUpdatePWD = async (token, data) => {\r\n data.estatus = false;\r\n data.userSicoss = xNA;\r\n data.userIdentity = xNA;\r\n let result = await callWebApi(urlApiPermisos(), 'usuarios/updatepwd', 'PUT', token, data);\r\n return result;\r\n};\r\n\r\nexport const usuariosUpdateUltimaActividad = async (token, data) => {\r\n data.estatus = false;\r\n data.userSicoss = xNA;\r\n data.userIdentity = xNA;\r\n data.pwd = xNA;\r\n let result = await callWebApi(urlApiPermisos(), 'usuarios/updateultimaactividad', 'PUT', token, data);\r\n return result;\r\n};\r\n\r\nexport const usuariosUpdateUserInfo = async (token, data) => {\r\n data.estatus = false;\r\n data.userSicoss = xNA;\r\n data.userIdentity = xNA;\r\n data.pwd = xNA;\r\n let result = await callWebApi(urlApiPermisos(), 'usuarios/updateuserinfo', 'PUT', token, data);\r\n return result;\r\n};\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------\r\n// LAS SIGUIENTES FUNCIONES SON COMODINES QUE RETORNA EL VALOR DESEADO MÁS NO UN DETALLE DE ERROR\r\n\r\nexport const getSicossUsuarios = async () => {\r\n let call = await usuariosList(config.xToken);\r\n if (!call.success) return [];\r\n if (!call.response.esExitosa) return [];\r\n if (call.response.datos == undefined || call.response.datos == null) return [];\r\n if (!Array.isArray(call.response.datos)) return [];\r\n return call.response.datos;\r\n};\r\n\r\nexport const getDatosSicossUsuario = async (company, user) => {\r\n let usuarios = await getSicossUsuarios();\r\n usuarios = usuarios.find(s => s.clienteId === company && (s.userSicoss === user || s.curp === user || s.rfc === user || s.nss === user));\r\n if (!usuarios) {\r\n console.log('Identity', 'No se encontró al usuario ' + user + ' de la empresa ' + company);\r\n return null;\r\n }\r\n \r\n let call = await identityGet(config.xToken, usuarios.userIdentity);\r\n if (!call.success) return null;\r\n if (!call.response.esExitosa) return null;\r\n if (call.response.datos == undefined || call.response.datos == null) return null;\r\n //if (call.response.datos[valueToGet] == undefined || call.response.datos[valueToGet] == null) return \"\";\r\n //return call.response.datos[valueToGet];\r\n return { \r\n ...usuarios,\r\n userName: call.response.datos.userName,\r\n email: call.response.datos.email,\r\n // ...call.response.datos, \r\n // diasVigenciaPwd: usuarios.diasVigenciaPwd, \r\n // fechaCambioPwd: usuarios.fechaCambioPwd, \r\n // pwd: usuarios.pwd \r\n };\r\n};\r\n\r\nexport const updateLastActivity = async(company, user) => {\r\n let sicossUsuario = await getDatosSicossUsuario(company, user);\r\n if (!sicossUsuario) {\r\n return false;\r\n }\r\n\r\n if (sicossUsuario.forzarDiasInactivo) {\r\n let today = new Date();\r\n let data = {\r\n id: sicossUsuario.id, \r\n //forzarDiasInactivo: true,\r\n //limiteDiasInactivo: xInactiveDaysLimit,\r\n ultimaActividad: today\r\n };\r\n let updateUltAct = await usuariosUpdateUltimaActividad(config.xToken, data);\r\n if (!updateUltAct.success || !updateUltAct.response.esExitosa) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------\r\n// LAS SIGUIENTES FUNCIONES SON PROCESOS COMPLEJOS PARA REALIZAR UNA CONFIGURACIÓN PERSONALIZADA \r\n\r\n//Configura un nuevo Identity solo si no existe registro de él, (Necesario para iniciar sesión).\r\nexport const configureIdentity = async(loginData, form, userData, firstAccessOrReset = false) => {\r\n console.log('Identity PROCESO', 'configureIdentity');\r\n if (!loginData || !form) return false;\r\n if (!loginData.Login) return false;\r\n if (!(loginData.Login.tipoUser === 1 || loginData.Login.tipoUser === 2)) return true;\r\n\r\n console.log('Identity Config loginData', loginData);\r\n console.log('Identity Config userData', userData);\r\n\r\n let data = \r\n {\r\n firstName: loginData.Login.nombre,\r\n lastName: loginData.Login.paterno + ' ' + loginData.Login.materno,\r\n userName: loginData.Login.idTra,\r\n email: simplifyEmail(form.company, loginData.Login.idTra),\r\n password: form.passwordDec,\r\n userSicoss: loginData.Login.idTra,\r\n clienteId: form.company,\r\n estatus: true,\r\n validatePassword: false\r\n };\r\n \r\n let call = await getDatosSicossUsuario(form.company, data.userName);\r\n let userIdentity = (call ? call.userIdentity : '');\r\n if (!call) {\r\n console.log('Identity', 'No existe el email, se creará un identity...');\r\n call = await identityCreate(config.xToken, data);\r\n if (!call.response.esExitosa) {\r\n return false;\r\n }\r\n userIdentity = call.response.datos.id;\r\n }\r\n\r\n let confUser = await configureUsuario(userIdentity, loginData, form, userData, firstAccessOrReset);\r\n if (!confUser) { \r\n return false;\r\n }\r\n \r\n call = await rolesGetRolesUser(config.xToken, userIdentity);\r\n if (!call.response.esExitosa) {\r\n return false;\r\n }\r\n \r\n if (!call.response.datos.some(sm => sm.name === xROLUSER)) {\r\n call = await identityAddUserRole(config.xToken, data.userName, xROLUSER);\r\n if (!call.response.esExitosa) { \r\n return false;\r\n }\r\n }\r\n\r\n if (firstAccessOrReset) { \r\n data = {\r\n userName: loginData.Login.idTra,\r\n email: simplifyEmail(form.company, loginData.Login.idTra),\r\n newPassword: form.passwordDec,\r\n confirmPassword: form.passwordDec\r\n };\r\n\r\n call = await identityUpdatePassword(config.xToken, data);\r\n if (!call.response.esExitosa) { \r\n return false;\r\n }\r\n }\r\n \r\n return true;\r\n};\r\n\r\n//Configura un nuevo Usuario que se vincula con un Identity (Necesario para iniciar sesión)\r\nexport const configureUsuario = async(userIdentity, loginData, form, userData, firstAccessOrReset = false) => {\r\n console.log('Identity PROCESO', 'configureUsuario');\r\n if (!loginData || !form) return false;\r\n if (!loginData.Login) return false;\r\n if (!(loginData.Login.tipoUser === 1 || loginData.Login.tipoUser === 2)) return true;\r\n\r\n let data = \r\n {\r\n clienteId: form.company,\r\n userIdentity: userIdentity,\r\n userSicoss: loginData.Login.idTra,\r\n pwd: form.passwordDec,\r\n nombre: loginData.Login.nombre + ' ' + loginData.Login.paterno + ' ' + loginData.Login.materno,\r\n politicaS: true,\r\n estatus: true,\r\n forzarCambioPwd: true,\r\n forzarDiasInactivo: true,\r\n limiteDiasInactivo: xInactiveDaysLimit\r\n };\r\n\r\n if (userData != undefined && userData != null) {\r\n if (userData.DataUser != undefined && userData.DataUser != null) {\r\n data.curp = userData.DataUser.curp;\r\n data.rfc = userData.DataUser.rfc;\r\n data.nss = userData.DataUser.nss;\r\n }\r\n }\r\n\r\n console.log('Identity Config User', data);\r\n \r\n let call = await usuariosList(config.xToken);\r\n if (!call.success) return false;\r\n if (!call.response.esExitosa) return false;\r\n \r\n let usuarios = call.response.datos.find(s => s.clienteId === data.clienteId && s.userSicoss === data.userSicoss);\r\n if (!usuarios) { \r\n call = await usuariosCreate(config.xToken, data);\r\n if (!call.success) return false;\r\n if (!call.response.esExitosa) return false;\r\n }\r\n else {\r\n if (userData != undefined && userData != null) {\r\n if (userData.DataUser != undefined && userData.DataUser != null) {\r\n let data = {\r\n id: (usuarios != null ? usuarios.id : call.response.datos.id),\r\n curp: userData.DataUser.curp,\r\n rfc: userData.DataUser.rfc,\r\n nss: userData.DataUser.nss\r\n };\r\n call = await usuariosUpdateUserInfo(config.xToken, data);\r\n if (!call.success) return false;\r\n if (!call.response.esExitosa) return false;\r\n }\r\n }\r\n }\r\n\r\n if (firstAccessOrReset) {\r\n data = {\r\n id: (usuarios != null ? usuarios.id : call.response.datos.id),\r\n pwd: form.passwordDec\r\n };\r\n\r\n call = await usuariosUpdatePWD(config.xToken, data);\r\n if (!call.response.esExitosa) { \r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\n//Configura una nueva password para el Identity y Usuario\r\nexport const configureNewPassword = async(company, user, currentPassword, newPassword, confirmNewPassword, siConsultaPwd = '', validateCurrentPassword = true, validateNewPassword = true) => {\r\n console.log('Identity PROCESO', 'configureNewPassword');\r\n let email = simplifyEmail(company, user);\r\n if (siConsultaPwd == null) siConsultaPwd = '';\r\n\r\n let getEmail = await identityGetEmail(config.xToken, email);\r\n if (!getEmail.success) {\r\n return {\r\n exito: false, \r\n errors: ['Se genero un error interno al recuperar la identidad del usuario.']\r\n };\r\n }\r\n\r\n if (validateNewPassword) {\r\n let historicoPwd = await sicossHistoricoPWDGet(config.xToken, getEmail.response.datos.id);\r\n if (!historicoPwd.success || !historicoPwd.response.esExitosa) {\r\n return {\r\n exito: false, \r\n errors: ['Se genero un error interno al recuperar el historial de contraseñas del usuario.']\r\n };\r\n }\r\n\r\n let pwds = historicoPwd.response.datos.sort((a,b) => {\r\n return dateWithOutTime(b.fechaPwd, false) - dateWithOutTime(a.fechaPwd, false);\r\n }).slice(0, xTakeLastUsedPwd);\r\n \r\n let taked = pwds.filter(s => dateWithOutTime(s.fechaPwd) == dateWithOutTime(new Date()));\r\n if (taked.length >= xPwdChangesPerDay) {\r\n return {\r\n exito: false, \r\n errors: ['La contraseña solo se puede actualizar ' + xPwdChangesPerDay + (xPwdChangesPerDay == 1 ? ' vez' : ' veces') + ' al día.']\r\n };\r\n }\r\n }\r\n \r\n let data = {\r\n userName: user,\r\n email: email,\r\n currentPassword: currentPassword,\r\n newPassword: newPassword,\r\n confirmPassword: confirmNewPassword,\r\n validateCurrentPassword: validateCurrentPassword,\r\n validateNewPassword: true,\r\n ValidateHistoryPassword: true,\r\n TakeHistoryPassword: xTakeLastUsedPwd,\r\n ValidateContinuosCharsPassword: true,\r\n ValidateConsecutiveCharsPassword: true \r\n };\r\n let updatePwd = await identityUpdatePassword(config.xToken, data);\r\n if (!updatePwd.success) {\r\n let errors = unifiedResponseErrors(updatePwd);\r\n\r\n if (errors.length == 0) {\r\n errors.push('Se genero un error interno al actualizar la contraseña del usuario.');\r\n }\r\n\r\n return {\r\n exito: false, \r\n errors: errors\r\n };\r\n }\r\n\r\n if (!updatePwd.response.esExitosa) { \r\n return {\r\n exito: false,\r\n errors: updatePwd.response.datos.map(m => { return m.description; })\r\n };\r\n }\r\n\r\n data = {\r\n userIdentity: getEmail.response.datos.id,\r\n userSicoss: user,\r\n pwdh: newPassword \r\n };\r\n let historicoPwdCreate = await sicossHistoricoPWDCreate(config.xToken, data);\r\n\r\n let sicossUsuario = await getDatosSicossUsuario(company, user);\r\n if (sicossUsuario) { \r\n data = {\r\n id: sicossUsuario.id,\r\n pwd: (siConsultaPwd.trim().length > 0) ? siConsultaPwd : sicossUsuario.pwd,\r\n forzarCambioPwd: true,\r\n diasVigenciaPwd: xPwdValidityDays\r\n };\r\n updatePwd = await usuariosUpdatePWD(config.xToken, data);\r\n }\r\n \r\n return {\r\n exito: true,\r\n errors: []\r\n };\r\n}\r\n\r\n//---------------------------------------------------------------------------------------------------------------------------","import React, { useEffect, useState } from 'react'\nimport { connect } from 'react-redux';\nimport { getTermCondAction } from '../../api/actions/common/TermCondAction.js';\nimport CryptoJS from 'crypto-js';\n\nconst Terms = props => {\n\n const [ terms, setTerms ] = useState('');\n\n useEffect(() => {\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getTermCondAction({}, server);\n\n }, []);\n\n useEffect(() => {\n\n\n if( props.termData.TermsCond != undefined ){\n\n let terms = props.termData.TermsCond.TermCond;\n terms = terms.split('\\r');\n terms = terms.flatMap(\n (value, index, array) =>\n array.length - 1 !== index\n ? [value, <br key={index} />]\n : value,\n );\n setTerms(terms);\n }\n\n }, [ props.termData ]);\n\n return (\n <div className=\"modal fade terminos-y-condiciones\" tabIndex=\"-1\" role=\"dialog\" aria-labelledby=\"myLargeModalLabel\" aria-hidden=\"true\" style={{display: 'none'}}>\n <div className=\"modal-dialog modal-xl\">\n <div className=\"modal-content\">\n <div className=\"modal-header\">\n <h4 className=\"modal-title\" id=\"myLargeModalLabel\">Términos y Condiciones</h4>\n <button type=\"button\" className=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">×</button>\n </div>\n <div className=\"modal-body\">\n { terms }\n </div>\n <div className=\"modal-footer\">\n <button type=\"button\" className=\"btn btn-danger waves-effect text-left\" data-dismiss=\"modal\">Cerrar</button>\n </div>\n </div>\n </div>\n </div>\n );\n\n};\n\nconst mapStateToProps = state => {\n return {\n termData:state.termCond.termData,\n termError:state.termCond.termError,\n }\n};\n\nconst mapDispatchToProps = {\n getTermCondAction\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Terms);\n","import { changeXml, termsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n TERM_SUCCESS,\n TERM_ERROR,\n TERM_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getTermCondAction = (data, server) => {\n let configJson = {\n 'tem:TermCond': data\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/TermCond\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: TERM_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET TERM_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: TERM_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n TermsCond: termsResponse(body)\n }\n\n console.log('RESPONSE TERM DATA: ', response);\n dispatch({ type: TERM_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET TERM DATA: ', response);\n dispatch({ type: TERM_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET TERM DATA: ', responseError);\n dispatch({ type: TERM_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from 'react'\nimport { connect } from 'react-redux';\nimport { getPrivacyNoticeAction } from '../../api/actions/common/PrivacyNoticeAction.js';\nimport CryptoJS from 'crypto-js';\n\nconst Privacy = props => {\n\n const [ aviso, setAviso ] = useState('');\n\n useEffect(() => {\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getPrivacyNoticeAction({}, server);\n\n }, []);\n\n useEffect(() => {\n\n if( props.avisoData.AvisoPriv != undefined ){\n let avisoTmp = props.avisoData.AvisoPriv.AvisoPriv;\n avisoTmp = avisoTmp.split('\\r');\n avisoTmp = avisoTmp.flatMap(\n (value, index, array) =>\n array.length - 1 !== index\n ? [value, <br key={index} />]\n : value,\n );\n setAviso(avisoTmp);\n }\n\n }, [ props.avisoData ]);\n\n return (\n <div className=\"modal fade aviso-de-privacidad\" tabIndex=\"-1\" role=\"dialog\" aria-labelledby=\"myLargeModalLabel\" aria-hidden=\"true\" style={{display: 'none'}}>\n <div className=\"modal-dialog modal-xl\">\n <div className=\"modal-content\">\n <div className=\"modal-header\">\n <h4 className=\"modal-title\" id=\"myLargeModalLabel\">Aviso de Privacidad</h4>\n <button type=\"button\" className=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">×</button>\n </div>\n <div className=\"modal-body\">\n { aviso }\n </div>\n <div className=\"modal-footer\">\n <button type=\"button\" className=\"btn btn-danger waves-effect text-left\" data-dismiss=\"modal\">Cerrar</button>\n </div>\n </div>\n </div>\n </div>\n );\n\n};\n\nconst mapStateToProps = state => {\n return {\n avisoData: state.privacyNotice.avisoData,\n avisoError: state.privacyNotice.avisoError,\n }\n};\n\nconst mapDispatchToProps = {\n getPrivacyNoticeAction\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Privacy);\n","import { changeXml, PrivacyResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AVISO_SUCCESS,\n AVISO_ERROR,\n AVISO_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getPrivacyNoticeAction = (data, server) => {\n let configJson = {\n 'tem:AvisoPriv': data\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AvisoPriv\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('REQUEST PRIVACY', config)\n console.log('REQUEST PRIVACY:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AVISO_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET AVISO_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AVISO_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AvisoPriv: PrivacyResponse(body)\n }\n\n console.log('RESPONSE AVISO DATA: ', response);\n dispatch({ type: AVISO_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AVISO DATA: ', response);\n dispatch({ type: AVISO_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AVISO DATA: ', responseError);\n dispatch({ type: AVISO_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { React } from 'react';\nimport { Redirect, withRouter } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport CryptoJS from 'crypto-js';\n\nimport { parseString } from 'react-native-xml2js'\nimport { changeXml, loginResponse } from '../../api/endpoints';\nimport { getParams } from '../../utils';\nimport { ValidationNoAuthorization } from '../../api/endpoints/ValidateError';\n\n//export let logInExpiredModal = false;\n\nexport const expiredSession = str => {\n if(str == 'Acceso no autorizado') {\n // alert('Ha expirado la sesión. Por favor inicia sesión de nuevo.');\n return true;\n } \n else {\n return false;\n }\n};\n\nexport const getDateAddSeconds = (numOfSeconds = 0, date = new Date()) => {\n date.setSeconds(date.getSeconds() + numOfSeconds);\n return date;\n};\n\nexport const clearItemsExp = () => {\n //localStorage.removeItem('refusedLogIn');\n //localStorage.removeItem('reLogIn');\n localStorage.removeItem('logInExpired');\n localStorage.removeItem('logInExpiredModal');\n localStorage.removeItem('logInDate');\n localStorage.removeItem('logInExpiration');\n localStorage.removeItem('logInWaitSeconds');\n};\n\nexport const getItemExp = (_key, _default = false) => {\n let item = localStorage.getItem(_key);\n return (item == null || item == undefined) ? _default : item;\n};\n\nexport const setItemExp = (_key, _value) => {\n localStorage.setItem(_key, _value);\n};\n\nexport const isExpiredDates = () => {\n let date = new Date();\n let logInExpiration = localStorage.getItem('logInExpiration');\n if (logInExpiration) {\n logInExpiration = new Date(logInExpiration);\n if (date > logInExpiration) {\n localStorage.setItem('logInExpired', true);\n return true;\n }\n }\n return false;\n};\n\nexport const setLogInDateAndExpiration = (segundos = 300) => {\n let date = new Date();\n let info = { \n logInDate: date,\n logInExpiration: getDateAddSeconds(segundos, date)\n };\n localStorage.setItem('logInDate', info.logInDate);\n localStorage.setItem('logInExpiration', info.logInExpiration);\n\n console.log('OIHB ESP',\n 'logInDate: ' + localStorage.getItem('logInDate'),\n 'logInExpiration: ' + localStorage.getItem('logInExpiration')\n );\n return info;\n};\n\nexport const AutoLogin = async () => {\n let isLogged = false;\n let { params, server, others_params } = getParams();\n if (params && server) {\n let _params = {\n 'tem:sUser': params['tem:TrabID'], \n 'tem:sPass': others_params['tem:sPass'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n };\n isLogged = await LoginV2Action(_params, server);\n }\n return isLogged;\n};\n\nexport const checkExpiration = async () => {\n let { params, server } = getParams();\n if (params && server) {\n \n let sessionExpired = localStorage.getItem('sessionExpired');\n let modalSessionExpired = localStorage.getItem('modalSessionExpired');\n if (sessionExpired) { \n if (!modalSessionExpired) {\n localStorage.setItem('modalSessionExpired', true);\n localStorage.setItem('countModalSessionExpired', 1);\n //count = 0;\n }\n }\n else {\n let _params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n };\n await CheckForUnauthorizedAccessAction(_params, server);\n }\n }\n};\n\nconst LoginV2Action = async (data, server) => {\n let isLogged = false;\n \n let configJson = {\n 'tem:LoginV2': {\n ...data\n }\n };\n \n let obj = changeXml(configJson);\n //console.log('OIHB Exp', obj);\n \n let config = {\n method: 'POST',\n body: obj,\n headers: {\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/LoginV2\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n \n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n };\n config.headers = headers;\n }\n \n await fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let body = {};\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope'];\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('OIHB Exp', 'Login ERROR DE RESPUESTA');\n }\n else {\n let Login = loginResponse(body);\n if (Login.error == \"\") {\n console.log('OIHB Exp', Login);\n let info = setLogInDateAndExpiration(parseInt(localStorage.getItem(\"REACT_APP_LOGIN_SECONDS_EXPIRATION\")));\n let dataToSave = {\n \"tem:sToken\": Login.token,\n \"tem:TrabID\": data[\"tem:sUser\"],\n \"tem:IdEmpresa\": data[\"tem:IdEmpresa\"],\n \"tem:sPass\": data[\"tem:sPass\"],\n };\n console.log('OIHB Exp', dataToSave);\n dataToSave = JSON.stringify(dataToSave);\n dataToSave = CryptoJS.AES.encrypt(dataToSave,process.env.REACT_APP_HASH_SECRET);\n sessionStorage.setItem(\"params\", dataToSave);\n isLogged = true;\n }\n }\n }\n }\n }\n })\n })\n .catch((error) => {\n console.log('OIHB Exp', '\"tem:LoginV2\": ' + error);\n });\n return isLogged;\n};\n\nconst CheckForUnauthorizedAccessAction = async (data, server) => {\n let configJson = {\n 'tem:MensajeBienvenida': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajeBienvenida\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config.headers = headers;\n }\n\n await fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope'];\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) { console.log('OIHB Exp', 'Error de respuesta'); }\n }\n else {\n response = { isOK: false, error: 'No hay datos', };\n }\n }\n\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n response = { isOK: false, error: valid.error };\n if (valid.reset) {\n localStorage.setItem('sessionExpired', true);\n }\n } \n else {\n response = { isOK: true, error: 'Ninguno', }\n }\n console.log('OIHB Exp', response);\n }\n })\n })\n .catch((error) => {\n console.log('OIHB Exp', error);\n });\n};","import React, { useState, useEffect } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport useScript from \"../../hooks/useScript\";\nimport { connect } from \"react-redux\";\n\nimport { getLoginAction } from \"../../api/actions/common/LoginAction.js\";\nimport { resetStore } from \"../../api/actions/common/ResetAllStoreAction\";\nimport { changeUserType } from \"../../api/actions/common/ChangeUserTypeAction.js\";\nimport { geRecoveryPasswordAction } from \"../../api/actions/common/RecoveryPasswordAction\";\nimport { getBlockUserAction } from \"../../api/actions/systemAdmin/BlockUserAction\";\nimport { getCompaniesListAction } from \"../../api/actions/systemAdmin/CompaniesListAction\";\nimport { recoverPwdByEmailAction } from \"../../api/actions/common/RecoverPwdByEmailAction\";\nimport { enableSecurityPolicy, configureIdentity, getDatosSicossUsuario, identityAuthentication } from \"../../api/actions/securityPolicy/CallApiIdentity\";\nimport { getDataUserAction } from '../../api/actions/common/DataUserAction.js';\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\nimport { getVersionAction } from '../../api/endpoints';\nimport { getNotificacionCorreo } from \"../../api/actions/empleado/NotificaciónCorreoVencAction\";\n\nimport CryptoJS from \"crypto-js\";\nimport TerminosCondiciones from \"../policies/terms.js\";\nimport AvisoPrivacidad from \"../policies/privacy.js\";\nimport { alert } from \"../../utils/common/alert\";\nimport { clearItemsExp, setLogInDateAndExpiration } from \"../../utils/common/expiredSession\";\n\nString.prototype.toHtmlEntities = function () {\n return this.replace(/./gm, function (s) {\n return \"&#\" + s.charCodeAt(0) + \";\";\n });\n};\n\nconst Login = (props) => {\n const logoSiConsulta = process.env.PUBLIC_URL + '/assets/images/Si_logo_full.png';\n\n const { loginData, loginError } = props;\n const { recoveryPasswordData, recoveryPasswordError } = props;\n const { recoverPwdByEmailData, recoverPwdByEmailError } = props;\n const { dataUserData, dataUserError } = props;\n // const [form, setValues] = useState({ company: 'MCPLASTICOSQA', user: '10005228' });\n const [form, setValues] = useState({ company: '', user: '' });\n const [formReset, setResetValues] = useState({});\n const [script, setScript] = useState(\"/assets/js/custom.js\");\n\n const [loading, setLoading] = useState(false);\n const [sicossUsuario, setSicossUsuario] = useState(null);\n const [identitySuccessLogIn, setIdentitySuccessLogIn] = useState(false);\n const [attemptsLogInSP, setAttemptsLogInSP] = useState(0);\n\n const [valoresConfig, setValoresConfig] = useState([]);\n const [versionWcf, setVersionWcf] = useState({ respuesta: '', version: '' });\n\n const alertValue = localStorage.getItem(\"REACT_APP_ALERTA_PROX_VENC\");\n \n useScript(script);\n\n useEffect(() => {\n props.getLoginAction('PURGE', '');\n props.getDataUserAction('PURGE', '');\n props.geRecoveryPasswordAction('PURGE', '');\n props.recoverPwdByEmailAction('PURGE', '');\n props.resetStore();\n sessionStorage.clear();\n // localStorage.clear();\n \n clearItemsExp();\n \n getCompaniesList();\n getVersionWcf();\n }, []);\n\n useEffect(() => {\n if (loginData && loginData.isOK == false) {\n alert(\"Oops! Parece que hubo un error. Intenta de nuevo mas tarde.\");\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n props.getLoginAction('PURGE', '');\n return;\n }\n\n if (loginData && loginData.isOK && loginData.Login) {\n if (loginData.Login.error === \"\") {\n if (!valoresConfig.some(item => item.Seccion=='SICONSULTA')) {\n GetValoresConfig(loginData.Login.token, form.company, 'SICONSULTA');\n return;\n }\n\n if (enableSecurityPolicy() && (loginData.Login.tipoUser == 1 || loginData.Login.tipoUser == 2)) {\n let params = {\n \"tem:sToken\": loginData.Login.token,\n \"tem:TrabID\": loginData.Login.idTra,\n \"tem:IdEmpresa\": form.company,\n };\n \n props.getDataUserAction(params, localStorage.getItem(\"REACT_APP_SERVER\"));\n }\n else {\n whenLogInSuccess();\n }\n } \n else {\n whenLogInError();\n }\n }\n }, [loginData, loginError, valoresConfig]);\n\n useEffect(() => {\n if ((loginData && loginData.isOK && loginData.Login) && (dataUserData && dataUserData.isOK && dataUserData.DataUser)) \n {\n if (loginData.Login.error === \"\") {\n whenLogInSuccess();\n }\n }\n }, [dataUserData, dataUserError]);\n\n useEffect(() => {\n if (recoveryPasswordData && recoveryPasswordData.isOK) {\n props.history.push(`${process.env.PUBLIC_URL}/recover`, {\n ...recoveryPasswordData.RecoveryPassword,\n user: formReset.user,\n company: formReset.company,\n });\n } \n else if (recoveryPasswordError && recoveryPasswordError.isOK === false) {\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n props.geRecoveryPasswordAction('PURGE', '');\n }\n\n return;\n }, [recoveryPasswordData, recoveryPasswordError]);\n\n useEffect(() => {\n if (recoverPwdByEmailData && recoverPwdByEmailData.isOK) {\n setLoading(false);\n alert(recoverPwdByEmailData.RecoverPwdByEmail.Resultado);\n sessionStorage.clear();\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n props.recoverPwdByEmailAction('PURGE', '');\n setScript(\"/assets/js/slideUpRecover.js\");\n } \n else if (recoverPwdByEmailError && recoverPwdByEmailError.isOK === false) {\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n props.recoverPwdByEmailAction('PURGE', '');\n }\n\n return;\n }, [recoverPwdByEmailData, recoverPwdByEmailError]);\n\n useEffect(() => {\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\n if (configuraciones.length > 0) {\n configuraciones.map(item => {\n sessionStorage.setItem(item.Seccion + '_' + item.Variable, item.Valor);\n });\n setValoresConfig(configuraciones);\n }\n else {\n setValoresConfig([]);\n }\n // props.GetValoresConfigAction(\"PURGE\", \"\");\n } \n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setValoresConfig([]);\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n \n const GetValoresConfig = (sToken, IdEmpresa, Seccion, Variable = '') => {\n let params = {\n \"tem:sToken\": sToken,\n \"tem:IdEmpresa\": IdEmpresa,\n \"tem:Seccion\": Seccion, \n \"tem:Variable\": Variable,\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.GetValoresConfigAction(params, server);\n };\n \n const getCompaniesList = () => {\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getCompaniesListAction({}, server);\n };\n\n const getVersionWcf = async () => {\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n let request = await getVersionAction('', server);\n if (request && request.isOK) { \n setVersionWcf(request.GetVersion);\n }\n else {\n setVersionWcf({ respuesta: '', version: 'XXXX.XX.XX.XX' });\n }\n };\n\n const whenLogInSuccess = async () => {\n localStorage.removeItem(form.user + \"~\" + form.company);\n \n var secondsExpiration = parseInt(localStorage.getItem(\"REACT_APP_LOGIN_SECONDS_EXPIRATION\"));\n if (localStorage.getItem(\"REACT_APP_IS_LOGIN_EXPIRATION\") == '1' && secondsExpiration > 0) { \n let info = setLogInDateAndExpiration(secondsExpiration);\n }\n\n let dataToSave = {\n \"tem:sToken\": loginData.Login.token,\n \"tem:TrabID\": loginData.Login.idTra,\n \"tem:IdEmpresa\": form.company,\n };\n let dataToSave2 = {\n \"tem:sPass\": form.password,\n \"tem:sPassDec\": form.passwordDec,\n // \"valoresConfig\": valoresConfig, \n };\n let user = {\n nombre: loginData.Login.nombre,\n paterno: loginData.Login.paterno,\n materno: loginData.Login.materno,\n };\n\n dataToSave = JSON.stringify(dataToSave);\n dataToSave2 = JSON.stringify(dataToSave2);\n user = JSON.stringify(user);\n\n dataToSave = CryptoJS.AES.encrypt(dataToSave, process.env.REACT_APP_HASH_SECRET);\n dataToSave2 = CryptoJS.AES.encrypt(dataToSave2, process.env.REACT_APP_HASH_SECRET);\n\n sessionStorage.setItem(\"params\", dataToSave);\n sessionStorage.setItem(\"userSaved\", user);\n sessionStorage.setItem(\"others_params\", dataToSave2);\n\n let employeeType = loginData.Login?.tipoEmpleado;\n\n employeeType = JSON.stringify(employeeType);\n employeeType = CryptoJS.AES.encrypt(\n employeeType,\n process.env.REACT_APP_HASH_SECRET\n );\n sessionStorage.setItem(\"employeeType\", employeeType);\n\n let authorizerType = loginData.Login?.tipoAutorizador;\n\n authorizerType = JSON.stringify(authorizerType);\n authorizerType = CryptoJS.AES.encrypt(\n authorizerType,\n process.env.REACT_APP_HASH_SECRET\n );\n sessionStorage.setItem(\"authorizerType\", authorizerType);\n\n let firstAccess = loginData?.Login?.primerAcceso;\n let firstChange = loginData?.Login?.primerCambio;\n let typeUser = loginData?.Login?.tipoUser;\n\n if (enableSecurityPolicy()) {\n let firstAccessOrReset = ((firstAccess === 0 && firstChange) || (typeUser !== 1 && typeUser !== 2)) ? false : true;\n\n let configure = await configureIdentity(loginData, form, dataUserData, firstAccessOrReset);\n if (!configure) {\n sessionStorage.clear();\n setLoading(false);\n alert('Ha ocurrido un error al intentar configurar el Identity');\n //props.history.push(`${process.env.PUBLIC_URL}/login`);\n //document.location.href = `${process.env.PUBLIC_URL}/login`;\n return;\n }\n \n let _sicossUsuario = sicossUsuario;\n if (!_sicossUsuario) {\n _sicossUsuario = await getDatosSicossUsuario(form.company, form.user);\n setSicossUsuario(_sicossUsuario ? _sicossUsuario : null); \n }\n\n if (!firstAccessOrReset && _sicossUsuario) {\n let data = {\n userName: _sicossUsuario.userName,\n email: _sicossUsuario.email,\n password: form.passwordDec,\n };\n\n if (!identitySuccessLogIn) {\n let auth = await identityAuthentication(data);\n if (!auth.success) {\n alert(\"Oops! Parece que hubo un error. Intenta de nuevo mas tarde.\");\n sessionStorage.clear();\n setLoading(false);\n return;\n }\n \n if (!auth.response.esExitosa) {\n alert(auth.response.mensaje);\n sessionStorage.clear();\n setLoading(false);\n return;\n }\n\n setIdentitySuccessLogIn(false);\n }\n\n // let sicossUsuario = await getDatosSicossUsuario(form.company, form.user);\n // if (!sicossUsuario)\n // {\n // alert('Se genero un error interno al recuperar los datos del usuario.');\n // sessionStorage.clear();\n // setLoading(false);\n // return;\n // }\n \n let today = new Date();\n let fechaCambioPwd = new Date(Date.parse(_sicossUsuario.fechaCambioPwd));\n if (today >= fechaCambioPwd) {\n alert('La contraseña ha caducado, configure una nueva.');\n setLoading(false);\n openFirstAccessOrChange(0, true);\n return;\n }\n }\n }\n\n if (sessionStorage.getItem(\"SICONSULTA_EnviaCorreoVencimiento\") == '1') {\n let params = {\n 'tem:sToken': loginData.Login.token,\n 'tem:IdEmpresa': form.company,\n 'tem:TrabID': loginData.Login.idTra,\n };\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props. getNotificacionCorreo(params, server)\n }\n\n if (\n (firstAccess === 0 && firstChange) ||\n (typeUser !== 1 && typeUser !== 2)\n ) {\n props.changeUserType(typeUser);\n\n typeUser = JSON.stringify({ typeUser: typeUser });\n typeUser = CryptoJS.AES.encrypt(\n typeUser,\n process.env.REACT_APP_HASH_SECRET\n );\n sessionStorage.setItem(\"userType\", typeUser);\n\n let InfoUserLogin = JSON.stringify(loginData.Login);\n InfoUserLogin = CryptoJS.AES.encrypt(InfoUserLogin, process.env.REACT_APP_HASH_SECRET);\n sessionStorage.setItem(\"InfoUserLogin\", InfoUserLogin);\n \n props.history.push(`${process.env.PUBLIC_URL}/`);\n } \n else {\n openFirstAccessOrChange(firstAccess);\n }\n };\n\n const whenLogInError = async() => {\n if (enableSecurityPolicy() && sicossUsuario) {\n if (attemptsLogInSP > 0) {\n setAttemptsLogInSP(0);\n alert('Usuario o Contraseña incorrectos');\n setLoading(false);\n return;\n }\n\n let data = {\n userName: sicossUsuario.userName,\n email: sicossUsuario.email,\n password: form.passwordDec,\n };\n\n let auth = await identityAuthentication(data);\n if (!auth.success) {\n alert(\"Oops! Parece que hubo un error. Intenta de nuevo mas tarde.\");\n setLoading(false);\n return;\n }\n\n if (!auth.response.esExitosa) {\n alert(auth.response.mensaje);\n setLoading(false);\n return;\n }\n\n setIdentitySuccessLogIn(true);\n setAttemptsLogInSP(attemptsLogInSP+1);\n \n data = {\n \"tem:sUser\": form.user,\n \"tem:sPass\": sicossUsuario.pwd,\n \"tem:IdEmpresa\": form.company,\n };\n props.getLoginAction(data, localStorage.getItem(\"REACT_APP_SERVER\"));\n return;\n }\n\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n let error = (loginData.Login.error || \"\").trim();\n\n if (!(process.env.REACT_APP_INHABILITA_INTENTOS == \"1\")) {\n let exists = localStorage.getItem(form.user + \"~\" + form.company);\n console.log('OIHB', 'Type COUNT FAILS LOGIN: ' + (typeof exists));\n if ((exists || \"\").length == 0) {\n localStorage.setItem(form.user + \"~\" + form.company, 0);\n exists = 0;\n }\n exists = parseInt(exists);\n console.log('OIHB', 'COUNT FAILS LOGIN value: ' + exists + ', next value: ' + (exists+1));\n exists += 1;\n\n //console.log('COUNT FAILS LOGIN', parseInt(exists))\n if (exists == parseInt(process.env.REACT_APP_LIMITE_INTENTOS)) {\n let data = {\n \"tem:IdEmpresa\": form.company,\n \"tem:Trab_id\": form.user,\n };\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getBlockUserAction(data, server);\n localStorage.removeItem(form.user + \"~\" + form.company);\n error += \", se bloqueará tú usuario\";\n } \n else {\n localStorage.setItem(form.user + \"~\" + form.company, exists);\n }\n\n props.getLoginAction(\"PURGE\", \"\");\n }\n\n // Mostrar mensaje de error\n if (error.length > 0) { \n alert(error);\n }\n };\n\n const openFirstAccessOrChange = (firstAccess, byExpired = false) => {\n let typeUser = \"firstAccess\";\n let eightPassword = loginData?.Login?.ochoCaracteresPassword ? 8 : 4;\n\n props.changeUserType(typeUser);\n\n typeUser = JSON.stringify({ typeUser: typeUser });\n typeUser = CryptoJS.AES.encrypt(\n typeUser,\n process.env.REACT_APP_HASH_SECRET\n );\n sessionStorage.setItem(\"userType\", typeUser);\n\n\n eightPassword = JSON.stringify({ pwd_length: eightPassword });\n eightPassword = CryptoJS.AES.encrypt(\n eightPassword,\n process.env.REACT_APP_HASH_SECRET\n );\n sessionStorage.setItem(\"pwd_length\", eightPassword);\n\n\n let encByExpired = CryptoJS.AES.encrypt(JSON.stringify({ byExpired: byExpired }), process.env.REACT_APP_HASH_SECRET);\n sessionStorage.setItem(\"encByExpired\", encByExpired);\n\n if (firstAccess === 0) {\n props.history.push(`${process.env.PUBLIC_URL}/modify-pwd`);\n } \n else {\n props.history.push(`${process.env.PUBLIC_URL}/secret`);\n }\n };\n\n const handleInput = (event) => {\n\n var name = event.target.name;\n var value = event.target.value;\n var passDec = \"\";\n\n if (name == \"password\") {\n passDec = value;\n value = value.toHtmlEntities();\n }\n\n if (name == \"company\") {\n GetValoresConfig('', value, 'SICONSULTA-ENV');\n }\n\n setValues({\n ...form,\n [event.target.name]: value,\n passwordDec: passDec\n });\n };\n\n const handleInput2 = (event) => {\n setResetValues({\n ...formReset,\n [event.target.name]: event.target.value,\n });\n };\n\n const _login = async (e) => {\n e.preventDefault();\n setLoading(true);\n\n if (\n form.user == undefined ||\n form.password == undefined ||\n form.company == undefined\n ) {\n alert(\"Por favor llena el campo de empresa, usuario y contraseña.\");\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n\n return;\n }\n\n if (enableSecurityPolicy()) {\n let sicossUsuario = await getDatosSicossUsuario(form.company, form.user);\n if (sicossUsuario) setSicossUsuario(sicossUsuario); \n else setSicossUsuario(null);\n }\n\n let data = {\n \"tem:sUser\": form.user,\n \"tem:sPass\": form.password,\n \"tem:IdEmpresa\": form.company,\n };\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n props.getLoginAction(data, server);\n };\n\n const _reset = (e) => {\n e.preventDefault();\n setLoading(true);\n\n if (formReset.user == undefined) {\n alert(\"Por favor llena el campo de usuario.\");\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n\n return;\n }\n\n let data = {\n \"tem:IdEmpresa\": formReset.company,\n \"tem:TrabID\": formReset.user,\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.geRecoveryPasswordAction(data, server);\n };\n\n const _resetEmail = (e) => {\n e.preventDefault();\n setLoading(true);\n\n if (formReset.company == undefined || formReset.user == undefined) {\n alert(\"Por favor llena el campo de empresa y usuario.\");\n setLoading(false);\n setScript(\"/assets/js/slideUpRecover.js\");\n\n return;\n }\n\n let data = {\n \"tem:IdEmpresa\": formReset.company,\n \"tem:TrabID\": (formReset.user.indexOf('@') >= 0 ? '' : formReset.user),\n \"tem:Correo\": (formReset.user.indexOf('@') >= 0 ? formReset.user : ''),\n \"tem:Nueva\": true,\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.recoverPwdByEmailAction(data, server);\n };\n\n if (loading) {\n return (\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n );\n } \n else {\n return (\n <>\n <TerminosCondiciones />\n <AvisoPrivacidad />\n <section\n id=\"wrapper\"\n className=\"login-register login-sidebar text-center\"\n style={{\n backgroundImage: `url(${process.env.PUBLIC_URL}/assets/images/background/portadaDefault.png)`,\n backgroundPosition: \"top\",\n }}\n >\n <div style={{position: \"absolute\", left: \"5px\", top: \"5px\", fontWeight: \"bold\", fontSize: \"12px\"}}>\n v{process.env.REACT_APP_VERSION_CODE}-{versionWcf.version}\n </div>\n <div className=\"login-box card\">\n <div className=\"card-body\">\n <form\n className=\"form-horizontal form-material\"\n id=\"loginform\"\n onSubmit={_login}\n >\n <br />\n <img\n width=\"120\"\n src={logoSiConsulta}\n alt=\"Home\"\n />\n <br />\n <div className=\"form-group m-t-40\">\n <div className=\"col-xs-12\">\n <input\n className=\"form-control\"\n name=\"company\"\n type=\"text\"\n required=\"\"\n placeholder=\"Empresa\"\n value={form.company}\n onChange={handleInput}\n autoFocus\n />\n </div>\n </div>\n <div className=\"form-group\">\n <div className=\"col-xs-12\">\n <input\n className=\"form-control\"\n name=\"user\"\n type=\"text\"\n required=\"\"\n placeholder=\"Usuario\"\n value={form.user}\n onChange={handleInput}\n />\n </div>\n </div>\n <div className=\"form-group\">\n <div className=\"col-xs-12\">\n <input\n className=\"form-control\"\n name=\"password\"\n type=\"password\"\n required=\"\"\n placeholder=\"Contraseña\"\n onChange={handleInput}\n />\n </div>\n </div>\n <div className=\"form-group\">\n <div className=\"col-md-12\">\n <br />\n <br />\n <a\n href=\"#\"\n id=\"to-recover\"\n className=\"text-dark pull-right\"\n >\n <i className=\"fa fa-lock m-r-5\"></i>¿Olvidaste tu\n Contraseña?\n </a>\n </div>\n </div>\n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <button\n type=\"submit\"\n className=\"btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light\"\n >\n Iniciar Sesión\n </button>\n </div>\n <br />\n <a\n href=\"#\"\n id=\"\"\n className=\"text-dark text-center\"\n data-toggle=\"modal\"\n data-target=\".terminos-y-condiciones\"\n >\n Términos y Condiciones\n </a>\n <br />\n <a\n href=\"#\"\n id=\"\"\n className=\"text-dark text-center\"\n data-toggle=\"modal\"\n data-target=\".aviso-de-privacidad\"\n >\n Aviso de Privacidad\n </a>\n <br />\n <br />\n <br />\n <img\n width=\"220\"\n src={`${process.env.PUBLIC_URL}/assets/images/Powered_by.png`}\n alt=\"Home\"\n />\n </div>\n </form>\n\n <form\n className=\"form-horizontal\"\n id=\"recoverform\"\n \n >\n <div className=\"form-group\">\n <div className=\"col-xs-12\">\n <br />\n <br />\n <div className=\"d-flex justify-content-around mb-5\">\n <a href=\"#\" id=\"return-login\" className=\"text-dark\">\n <i\n style={{ fontSize: 20 }}\n className=\"mdi mdi-arrow-left mr-3\"\n ></i>\n </a>\n <h3>¿OLVIDASTE TU CONTRASEÑA?</h3>\n </div>\n <p className=\"text-muted\">Favor de ingresar tu usuario: </p>\n </div>\n </div>\n <div className=\"form-group \">\n <div className=\"col-xs-12\">\n <input\n className=\"form-control\"\n type=\"text\"\n required=\"\"\n name=\"company\"\n placeholder=\"Empresa\"\n onChange={handleInput2}\n />\n </div>\n </div>\n <div className=\"form-group \">\n <div className=\"col-xs-12\">\n <input\n className=\"form-control\"\n type=\"text\"\n required=\"\"\n name=\"user\"\n placeholder={\"Usuario\"}\n onChange={handleInput2}\n />\n </div>\n </div>\n\n {localStorage.getItem(\"REACT_APP_RECUPERA_CONTRA_EMAIL\") == '1' ? \n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <br />\n <br />\n <p className=\"text-muted text-justify\">Eliga el método de recuperación: </p>\n </div>\n <div className=\"col-xs-12\">\n <br/>\n <button\n className=\"btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light\"\n onClick={_reset}\n >\n Pregunta secreta\n </button>\n </div>\n <div className=\"col-xs-12\">\n <br/>\n <button\n className=\"btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light\" \n onClick={_resetEmail}\n >\n Correo electrónico\n </button>\n </div>\n </div>\n : \n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <br/>\n <br/>\n <button\n className=\"btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light\"\n onClick={_reset}\n >\n Reestablecer Contraseña\n </button>\n </div>\n </div>\n }\n </form>\n </div>\n </div>\n </section>\n </>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n loginData: state.login.loginData,\n loginError: state.login.loginError,\n\n companiesData: state.companies.companiesData,\n companiesError: state.companies.companiesError,\n\n recoveryPasswordData: state.recoveryPassword.recoveryPasswordData,\n recoveryPasswordError: state.recoveryPassword.recoveryPasswordError,\n\n blockUserData: state.blockUser.blockUserData,\n blockUserError: state.blockUser.blockUserError,\n\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n\n recoverPwdByEmailData: state.recoverPwdByEmail.recoverPwdByEmailData,\n recoverPwdByEmailError: state.recoverPwdByEmail.recoverPwdByEmailError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n getLoginAction,\n changeUserType,\n geRecoveryPasswordAction,\n getBlockUserAction,\n resetStore,\n getCompaniesListAction,\n getDataUserAction,\n recoverPwdByEmailAction,\n GetValoresConfigAction,\n getNotificacionCorreo,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Login));\n","import { changeXml, BlockUser } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n BLOCK_USER_SUCCESS,\n BLOCK_USER_ERROR,\n BLOCK_USER_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getBlockUserAction = (data, server) => {\n let configJson = {\n 'tem:BloqueodeUsuario': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BloqueodeUsuario\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: BLOCK_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET BLOCK_USER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: BLOCK_USER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n BlockUser: BlockUser(body)\n }\n\n console.log('RESPONSE BLOCK_USER DATA: ', response);\n dispatch({ type: BLOCK_USER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET BLOCK_USER DATA: ', response);\n dispatch({ type: BLOCK_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET BLOCK_USER DATA: ', responseError);\n dispatch({ type: BLOCK_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, CompaniesList } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n COMPANIES_LIST_SUCCESS,\n COMPANIES_LIST_ERROR,\n COMPANIES_LIST_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCompaniesListAction = (data, server) => {\n let configJson = {\n 'tem:ListaEmpresasLogin': ''\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ListaEmpresasLogin\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: COMPANIES_LIST_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET COMPANIES_LIST_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: COMPANIES_LIST_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CompaniesList: CompaniesList(body)\n }\n\n console.log('RESPONSE COMPANIES_LIST DATA: ', response);\n dispatch({ type: COMPANIES_LIST_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET COMPANIES_LIST DATA: ', response);\n dispatch({ type: COMPANIES_LIST_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET COMPANIES_LIST DATA: ', responseError);\n dispatch({ type: COMPANIES_LIST_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, RecoverPwdByEmailResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n RECOVER_PWD_EMAIL_SUCCESS,\r\n RECOVER_PWD_EMAIL_ERROR,\r\n RECOVER_PWD_EMAIL_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\nexport const recoverPwdByEmailAction = (data, server) => {\r\n // return (dispatch) => {\r\n // if (data === 'PURGE') {\r\n // dispatch({ type: RECOVER_PWD_EMAIL_PURGE, payload: 'PURGE' });\r\n // } \r\n // else {\r\n // const promesa = new Promise((resolve) => { setTimeout(() => { resolve(true); }, 2000); });\r\n // promesa.then((success) => {\r\n // let response = {\r\n // isOK: true,\r\n // RecoverPwdByEmail: success,\r\n // };\r\n \r\n // console.log('RESPONSE RECOVER_PWD_EMAIL DATA: ', response);\r\n // dispatch({ type: RECOVER_PWD_EMAIL_SUCCESS, payload: response });\r\n // });\r\n // }\r\n // };\r\n\r\n let nameService = 'wcfKioscoSicoss';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {\r\n 'tem:RecuperacionPassCorreo': {\r\n ...data\r\n }\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n console.log('OIHB Data',obj);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/RecuperacionPassCorreo\",\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: RECOVER_PWD_EMAIL_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n }\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n\r\n console.log('ERROR GET RECOVER_PWD_EMAIL_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: RECOVER_PWD_EMAIL_ERROR, payload: response });\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n RecoverPwdByEmail: RecoverPwdByEmailResponse(body)\r\n };\r\n\r\n console.log('RESPONSE RECOVER_PWD_EMAIL DATA: ', response);\r\n dispatch({ type: RECOVER_PWD_EMAIL_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n\r\n console.log('ERROR GET RECOVER_PWD_EMAIL DATA: ', response);\r\n dispatch({ type: RECOVER_PWD_EMAIL_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n\r\n console.log('ERROR NOT RESPONSE GET RECOVER_PWD_EMAIL DATA: ', responseError);\r\n dispatch({ type: RECOVER_PWD_EMAIL_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React from 'react';\nimport { NavLink } from 'react-router-dom';\n//import logo from '../../assets/images/Logo.png';\nimport { connect } from 'react-redux';\n\nconst Leftsidebar = props => {\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\n\n return (\n <>\n <aside className=\"left-sidebar\">\n <div className=\"scroll-sidebar\">\n <nav className=\"sidebar-nav\">\n <ul id=\"sidebarnav\">\n <li className=\"nav-devider\"></li>\n <li> <NavLink exact activeClassName=\"active\" className=\"waves-effect waves-dark\" to={props.pwd ? `${process.env.PUBLIC_URL}/modify-pwd` : `${process.env.PUBLIC_URL}/secret`} aria-expanded=\"false\"><i className={props.pwd ? 'mdi mdi-pencil' : 'mdi mdi-help-circle'}></i><span className=\"hide-menu\">{props.pwd ? 'CAMBIA TU CONTRASEÑA' : 'PREGUNTA SECRETA'}</span></NavLink>\n </li>\n <li>\n <div className=\"text-center\" aria-expanded=\"false\">\n <img width=\"90\" src={logo} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\n </div>\n </li>\n </ul>\n </nav>\n </div>\n </aside>\n </>\n );\n}\n\nconst mapStateToProps = state => {\n return {\n typeUserSelected: state.changeUserType.typeUserSelected,\n };\n};\n\nexport default connect(mapStateToProps, null)(Leftsidebar);\n","export const validateFormatPassword = (str): boolean => {\n if (hasUpperCase(str)) {\n if (hasNumber(str)) {\n if (containCharacter(str)) {\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n } else {\n return false\n }\n \n};\n\nconst hasLowerCase = (str): boolean => {\n return str.toUpperCase() !== str;\n};\nconst hasUpperCase = (str): boolean => {\n return str.toLowerCase() !== str;\n};\nconst hasNumber = (str): boolean => {\n return /\\d/.test(str);\n};\n\nconst containCharacter = (str): boolean => {\n let character = /[ -.!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]/;\n return character.test(str);\n};\n\nexport const convertDay = (d) => {\n let days = ['DOM', 'LUN', 'MAR', 'MIE', 'JUE', 'VIE', 'SAB'];\n let dayName = days[d.getDay()];\n return dayName\n}\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SecretQuestionLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { validateFormatPassword } from '../../utils/CommonFunctions.js';\nimport { uploadPasswordAction } from '../../api/actions/common/UpdatePasswordAction';\nimport { geRecoveryPasswordAction } from '../../api/actions/common/RecoveryPasswordAction';\n\nimport { alert } from '../../utils/common/alert';\n\nimport { enableSecurityPolicy, getDatosSicossUsuario, configureIdentity, configureNewPassword, defaultPassword } from \"../../api/actions/securityPolicy/CallApiIdentity\";\nimport { getDataUserAction } from '../../api/actions/common/DataUserAction.js';\n\nconst ChangePwd = props => {\n const { dataUserData, dataUserError } = props;\n const { Pregunta, OchoCaracteres, Token, user, company } = props.location.state;\n const [loading, setLoading] = useState(true);\n const [form, setValues] = useState({});\n const [sicossUsuario, setSicossUsuario] = useState(null);\n const [processSuccess, setProcessSuccess] = useState(false);\n\n useEffect(() => {\n let params = {\n \"tem:sToken\": Token,\n \"tem:TrabID\": user,\n \"tem:IdEmpresa\": company,\n };\n \n props.getDataUserAction(params, localStorage.getItem(\"REACT_APP_SERVER\"));\n }, []);\n\n useEffect(() => {\n if (props.dataUserData && props.dataUserData.isOK) {\n setLoading(false);\n } \n else if (props.dataUserError && props.dataUserError.isOK === false) {\n setLoading(false);\n }\n }, [props.dataUserData, props.dataUserError]);\n\n useEffect(() => {\n \n if (props.uploadPasswordData && props.uploadPasswordData.isOK) {\n setTimeout(async () => {\n if (enableSecurityPolicy() && sicossUsuario) {\n const { confirm_password, new_password } = form;\n \n let configure = await configureNewPassword(company, user, 'N/A', new_password, confirm_password, new_password, false);\n if (!configure.exito) { \n alert({ description: 'No se cambio la contraseña por las siguientes razones:', details: configure.errors }, true);\n setLoading(false);\n return;\n }\n }\n\n setProcessSuccess(true);\n return;\n }, 10);\n } else if (props.uploadPasswordError && props.uploadPasswordError.isOK === false) {\n props.geRecoveryPasswordAction('PURGE', '');\n props.uploadPasswordAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.uploadPasswordData, props.uploadPasswordError]);\n\n useEffect(() => { \n if (processSuccess) {\n props.geRecoveryPasswordAction('PURGE', '');\n props.uploadPasswordAction('PURGE', '');\n alert('Contraseña modificada exitosamente. Por favor inicia sesión');\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n }\n }, [processSuccess]);\n\n const _handleInput = event => {\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n\n const { new_password, confirm_password } = form;\n const eightPassword = OchoCaracteres === \"1\" ? 8 : 4;\n\n if (new_password === confirm_password) {\n if (new_password.length === eightPassword) {\n if (validateFormatPassword(new_password)) {\n _getUserInfo();\n } else {\n alert('La nueva contraseña debe de contener al menos una letra mayúscula, un número y un caracter especial');\n setLoading(false);\n return;\n }\n } else {\n alert('La nueva contraseña tiene que ser de ' + eightPassword + ' caracteres');\n setLoading(false);\n return;\n }\n } else {\n alert('La nueva contraseña y la confirmación no son iguales');\n setLoading(false);\n return;\n }\n };\n\n const _getUserInfo = () => {\n\n const { new_password, answer } = form;\n\n String.prototype.toHtmlEntities = function () {\n return this.replace(/./gm, function (s) {\n return \"&#\" + s.charCodeAt(0) + \";\";\n });\n };\n\n let params = {\n 'tem:sToken': Token,\n 'tem:IdEmpresa': company,\n 'tem:TrabID': user,\n 'tem:Respuesta': answer,\n 'tem:NuevoPass': new_password\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n props.uploadPasswordAction(params, server);\n\n\n };\n\n const _handleSecurityPolicy = async (e) => {\n e.preventDefault();\n setLoading(true);\n\n let _loginData = { \n Login: { \n idTra: user,\n nombre: 'Nombre', \n paterno: 'Paterno', \n materno: 'Materno', \n tipoUser: 2 \n } \n };\n let _form = { \n company: company, \n user: user, \n passwordDec: defaultPassword(OchoCaracteres) \n };\n\n if (!sicossUsuario) {\n let configure = await configureIdentity(_loginData, _form, dataUserData, false);\n if (!configure) {\n setLoading(false);\n alert('Ha ocurrido un error al intentar configurar el Identity');\n return;\n }\n }\n\n let usuario = await getDatosSicossUsuario(company, user);\n if (usuario) setSicossUsuario(usuario); \n else {\n setLoading(false);\n alert('No se encontro el usuario Identity');\n return;\n }\n\n const { answer } = form;\n\n let params = {\n 'tem:sToken': Token,\n 'tem:IdEmpresa': company,\n 'tem:TrabID': user,\n 'tem:Respuesta': answer,\n 'tem:NuevoPass': usuario.pwd\n };\n \n props.uploadPasswordAction(params, localStorage.getItem(\"REACT_APP_SERVER\"));\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar pwd={true} />\n </div>\n </>\n );\n } else {\n\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar pwd={true} />\n <div className=\"page-wrapper\">\n <Title actual=\"Home\" icon=\"mdi mdi-chart-bar\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n RECUPERA TU CONTRASEÑA\n </div>\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div className=\"\">\n <form>\n <div className=\"form-group\">\n <label>{Pregunta}</label>\n <input type=\"text\" onChange={_handleInput} name=\"answer\" className=\"form-control\" placeholder=\"\" />\n </div>\n <p className=\"m-b-20 text-justify\">\n Por seguridad, es necesario verificar que eres tu. A continuación, te pedimos que escribas tu respuesta a tu pregunta secreta, así como tu nueva contraseña. {!enableSecurityPolicy() && <>La contraseña debe de ser de {OchoCaracteres === \"1\" ? 8 : 4} caracteres y debe de contener al menos una letra mayúscula, un número y un caracter especial ($%#,/.-{'\"'}) Ejemplos: {OchoCaracteres === \"1\" ? \"$Ic01#Rh, Zb#2MLoT, etc.\" : \"Ab%5, 1#Rh, etc.\"}</>}\n </p>\n {enableSecurityPolicy() &&\n <p>\n La nueva contraseña debe contemplar lo siguiente:<br/>\n •\tLongitud mínima de la contraseña: 10 caracteres<br/>\n •\tAl menos una letra mayuscula<br/>\n •\tAl menos una letra minúscula<br/>\n •\tAl menos un número<br/>\n •\tAl menos un carácter no alfanumérico como $, % o espacio<br/>\n •\tTiempo mínimo entre cambios de contraseña: 1 día<br/><br/>\n </p>\n }\n <div className=\"form-group\">\n <label>NUEVA CONTRASEÑA </label>\n <input type=\"password\" onChange={_handleInput} name=\"new_password\" className=\"form-control\" placeholder=\"\" />\n </div>\n <div className=\"form-group\">\n <label>CONFIRMAR NUEVA CONTRASEÑA </label>\n <input type=\"password\" onChange={_handleInput} name=\"confirm_password\" className=\"form-control\" placeholder=\"\" />\n </div>\n <button type=\"submit\" onClick={ enableSecurityPolicy() ? _handleSecurityPolicy : _handleSubmit } className=\"btn btn-info\">Enviar</button>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <br />\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n uploadPasswordData: state.updatePassword.uploadPasswordData,\n uploadPasswordError: state.updatePassword.uploadPasswordError,\n\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n };\n};\n\nconst mapDispatchToProps = {\n uploadPasswordAction,\n geRecoveryPasswordAction,\n getDataUserAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ChangePwd));\n","import { changeXml, UploadPasswordSuccess } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n UPDATE_PASSWORD_SUCCESS,\n UPDATE_PASSWORD_ERROR,\n UPDATE_PASSWORD_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const uploadPasswordAction = (data, server) => {\n let configJson = {\n 'tem:CambioPassRec': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CambioPassRec\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: UPDATE_PASSWORD_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET UPDATE_PASSWORD DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: UPDATE_PASSWORD_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n UpdatePassword: UploadPasswordSuccess(body)\n }\n\n console.log('RESPONSE UPDATE_PASSWORD DATA: ', response);\n dispatch({ type: UPDATE_PASSWORD_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET UPDATE_PASSWORD DATA: ', response);\n dispatch({ type: UPDATE_PASSWORD_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET UPDATE_PASSWORD DATA: ', responseError);\n dispatch({ type: UPDATE_PASSWORD_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport useScript from '../../hooks/useScript';\nimport Footer from '../layout/Footer.js';\n\nconst Error404 = props => {\n\n useScript('/assets/js/custom.js');\n\n return (\n <section id=\"wrapper\" className=\"error-page\">\n <div className=\"error-box\">\n <div className=\"error-body text-center\">\n <h1>404</h1>\n <h3 className=\"text-uppercase\">¡ Página no Encontrada !</h3>\n <p className=\"text-muted m-t-30 m-b-30\">PARECES ESTAR TRATANDO DE ENCONTRAR TU CAMINO A CASA</p>\n <Link to={`${process.env.PUBLIC_URL}/`} className=\"btn btn-info btn-rounded waves-effect waves-light m-b-40\">Regreso a Inicio</Link>\n </div>\n <div className=\"text-center\">\n <Footer />\n </div>\n </div>\n </section>\n );\n};\n\nexport default withRouter(Error404);\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { getMyMessagesARHAction } from '../../api/actions/empleado/MyMessagesRhAction';\r\n\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport moment from 'moment';\r\n\r\nimport { getParams } from '../../utils';\r\n\r\n\r\nconst Requests = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Queja': true,\r\n }\r\n props.getMyMessagesARHAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.myMessagesRhData && props.myMessagesRhData.isOK) {\r\n setLoading(false);\r\n } else if (props.myMessagesRhError && props.myMessagesRhError.isOK === false) {\r\n props.getMyMessagesARHAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n\r\n }, [props.myMessagesRhData, props.myMessagesRhError]);\r\n\r\n const requests_table = () => {\r\n\r\n let table = [];\r\n let movimientos = props.myMessagesRhData.MyMessagesARh;\r\n\r\n if (movimientos && movimientos.length >= 0) {\r\n if (movimientos.length <= 0) {\r\n table.push(\r\n <tr key={'error'} style={{ cursor: 'default' }}>\r\n <td>No hay solicitudes para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n movimientos = movimientos.sort((a, b) => {\r\n return b.Id - a.Id;\r\n });\r\n\r\n movimientos.map((item, i) => {\r\n table.push(\r\n <tr key={item.Id} onClick={() => _handleRowClick(item.Id, item.Titulo, item.Mensaje, item.Respuesta)} className=\"\" style={{ cursor: 'pointer' }}>\r\n <td><h3>#{item.Id}</h3></td>\r\n <td>{item.Titulo}</td>\r\n <td>{moment(item.FechaCap).format('DD/MM/YYYY')}</td>\r\n <td>Detalle<i className=\"mdi mdi-chevron-right\"></i></td>\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n } else {\r\n table.push(\r\n <tr className=\"unread\">\r\n <td>No hay solicitudes para mostrar.</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n );\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const _handleRowClick = (id, title, msg, rpns ) => {\r\n props.history.push(`${process.env.PUBLIC_URL}/detalle-queja/${id}`, { 'title': title, 'msg': msg, 'rpns': rpns, 'id': id });\r\n };\r\n\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"HISTORIAL DE QUEJAS\" icon=\"mdi mdi-account-multiple\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">LISTADO DE QUEJAS</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n <Link to={`${process.env.PUBLIC_URL}/nueva-queja`}>\r\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\">Agregar</button>\r\n </Link>\r\n </div> \r\n </div>\r\n </div>\r\n <div className=\"card-body\"> \r\n <div className=\"d-flex no-block\"> \r\n </div>\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>ID</th>\r\n <th>Solicitud</th>\r\n <th>Fecha</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {requests_table()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n myMessagesRhData: state.myMessagesRh.myMessagesRhData,\r\n myMessagesRhError: state.myMessagesRh.myMessagesRhError\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getMyMessagesARHAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Requests));\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\n\r\nconst ComplaintHistoryDetail = props => {\r\n\r\n const customTransform = (text) => {\r\n var regEx = /(https?:\\/\\/[^\\s]+)/g;\r\n let newText = text.replace(regEx, function(txt) { \r\n return '<a href=\"' + txt + '\" target=\"_blank\">' + txt + '</a>';\r\n });\r\n\r\n regEx = /\\r?\\n|\\r/;\r\n newText = newText.replace(regEx, function(txt) { \r\n return '<br />';\r\n });\r\n\r\n regEx = /\\r?\\n|\\r/g;\r\n newText = newText.replace(regEx, function(url) { \r\n return '<br />';\r\n });\r\n\r\n return newText;\r\n };\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar/>\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title path=\"HISTORIAL DE QUEJAS\" redirect=\"/historial-quejas\" actual={ props.location.state.id } icon=\"mdi mdi-account-multiple\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <form className=\"form-material m-t-40\">\r\n <div className=\"form-group\">\r\n <label>Título de la Solicitud</label>\r\n <input type=\"text\" className=\"form-control\" value={ props.location.state.title } readOnly />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Detalle de la Solicitud</label>\r\n {localStorage.getItem(\"REACT_APP_ENLACES_RH_ESCUCHA\") == '1' ? \r\n <div dangerouslySetInnerHTML={{ __html: customTransform(props.location.state.msg || '') }} style={ {width: '100%', height: '100px', overflow: 'auto'} }>\r\n </div>\r\n : \r\n <textarea className=\"form-control\" rows=\"3\" value={ props.location.state.msg } readOnly />\r\n }\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Respuesta</label>\r\n <textarea className=\"form-control\" rows=\"3\" value={ props.location.state.rpns } readOnly />\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n };\r\n \r\n export default withRouter(connect(null, null)(ComplaintHistoryDetail));","import { changeXml, AdminMenu } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ADMIN_MENU_SUCCESS,\n ADMIN_MENU_ERROR,\n ADMIN_MENU_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getAdminMenuAction = (data, server) => {\n let configJson = {\n 'tem:MenuSICONSULTA': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MenuSICONSULTA\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ADMIN_MENU_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ADMIN_MENU_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AdminMenu: AdminMenu(body)\n }\n\n console.log('RESPONSE ADMIN_MENU DATA: ', response);\n dispatch({ type: ADMIN_MENU_SUCCESS, payload: response })\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ADMIN_MENU DATA: ', response);\n dispatch({ type: ADMIN_MENU_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ADMIN_MENU DATA: ', responseError);\n dispatch({ type: ADMIN_MENU_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport Home from '../pages/employee/Home.js';\nimport AdditionalFields from '../pages/employee/AdditionalFields.js';\nimport Payroll from '../pages/employee/Payroll';\nimport PayrollDetail from '../pages/employee/PayrollDetail';\nimport Imss from '../pages/employee/Imss';\nimport ImssDetail from '../pages/employee/ImssDetail';\nimport Infonavit from '../pages/employee/Infonavit';\nimport InfonavitDetail from '../pages/employee/InfonavitDetail';\nimport Messages from '../pages/employee/Messages';\nimport MessagesDetail from '../pages/employee/MessagesDetail';\nimport Requests from '../pages/employee/Requests';\nimport RequestsCreate from '../pages/employee/RequestCreate';\nimport RequestsDetail from '../pages/employee/RequestsDetail';\nimport Sibalance from '../pages/employee/Sibalance';\nimport Vacations from '../pages/employee/Vacations';\nimport VacationsRequest from '../pages/employee/VacationsRequest';\nimport VacationsControl from '../pages/employee/VacationsControl';\nimport VacationsControlV2 from '../pages/employee/VacationsControlV2';\nimport Complaints from '../pages/employee/Complaints';\nimport ReportControl from '../pages/employee/chief/ReportControl';\nimport ReportServiceEmpleado from '../pages/employee/chief/ReportServiceEmpleado';\nimport AfilIndividualizado from '../pages/employee/AfilIndividualizado';\n\n\nimport ReportService from '../pages/employee/ReportService';\nimport DetailReport from '../pages/employee/DetailReport';\n\nimport Incidents from '../pages/employee/Incidents';\nimport IncidentsV2 from '../pages/employee/IncidentsV2';\nimport IncidentRequest from '../pages/employee/IncidentRequest';\nimport DownloadFiles from \"../pages/employee/DownloadFiles\";\nimport CajaAhorro from \"../pages/common/CajaAhorro\";\nimport UploadFiles2 from '../pages/employee/UploadFiles2';\n\n\nimport Login from '../pages/login/Login.js';\nimport RecoverPassword from '../pages/login/RecoverPassword';\nimport Error404 from '../pages/errors/Error404.js';\n\nimport ComplaintHistory from '../pages/employee/ComplaintHistory';\nimport ComplaintHistoryDetail from '../pages/employee/ComplaintHistoryDetail.js';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\nimport { getNextInfoUserAction } from '../api/actions/systemAdmin/NextInfoUserAction';\n\nimport { getParams, getEmployeeType, getInfoUserLogin } from '../utils';\n\n\nconst EmployeeRoutes = props => {\n\n const [loading, setLoading] = useState(true);\n const [menu, setMenu] = useState([]);\n const [employeeType, setEmployeeType] = useState(null);\n const [infoLogin, setInfoLogin] = useState(null);\n const [menuPorTipoNomina, setMenuPorTipoNomina] = useState([]);\n\n useEffect(() => {\n setEmployeeType(getEmployeeType());\n setInfoLogin(getInfoUserLogin());\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n \n props.getAdminMenuAction(params, server);\n getInfoExtra();\n \n let Valor = sessionStorage.getItem(\"SICONSULTA_MenuPorTipoNomina\");\n let menu = formalizaMenuPorTipoNomina(Valor);\n setMenuPorTipoNomina(menu);\n console.log(\"OIHB PV chief\", Valor, menu, props.loginData);\n }, []);\n\n useEffect(() => {\n if (props.adminMenuData && props.adminMenuData.isOK) {\n setMenu([...props.adminMenuData.AdminMenu]);\n setLoading(false);\n } \n else if (props.adminMenuError && props.adminMenuError.isOK === false) {\n setMenu([]);\n props.getAdminMenuAction('PURGE', '');\n setLoading(false);\n }\n }, [props.adminMenuData, props.adminMenuError]);\n\n const formalizaMenuPorTipoNomina = (Valor) => {\n let list = [];\n Valor = (Valor || '').trim();\n\n Valor.split('|').forEach(m1 => { \n let obj = { MenuID: 0, PeriodosID: [] };\n\n let items = m1.trim().split('=');\n if (items.length == 2) {\n obj.MenuID = items[0];\n obj.PeriodosID = (items[1] || '').trim().split(',');\n list.push(obj);\n }\n });\n \n return list;\n };\n\n const permiteMenu = (nombreMenu) => {\n let MenuID = '0';\n let permite = false;\n \n if (menu.length > 0) {\n let find = menu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\n if (find) {\n permite = true;\n MenuID = find.MenuID;\n }\n }\n\n //Men� por tipo de n�mina\n if (localStorage.getItem(\"REACT_APP_MENU_POR_NOMINAS\") == \"1\" && infoLogin) {\n //let Login = props.loginData.Login;\n let find = menuPorTipoNomina.find(fn => fn.MenuID == MenuID && (fn.PeriodosID || []).length > 0);\n if (find) {\n permite = find.PeriodosID.some(sm => sm == infoLogin.periodo_ID);\n }\n }\n\n return permite;\n };\n\n const getInfoExtra = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:OmitirCamposEsp': false,\n }\n\n props.getNextInfoUserAction(params, server);\n };\n\n\n if (loading) {\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\n <></>\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\n <RecoverPassword />\n </Route>\n\n <Route>\n <Error404 />\n </Route>\n </Switch>\n );\n } else {\n let info = [];\n if ('NextInfoUser' in props.nextInfoUserData) {\n info = [...props.nextInfoUserData.NextInfoUser];\n }\n\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\n <Home />\n </Route>\n\n {permiteMenu(\"informacion-adicional\") &&\n <Route path={`${process.env.PUBLIC_URL}/informacion-adicional`} exact >\n <AdditionalFields />\n </Route>}\n\n {permiteMenu(\"nominas\") && \n <Route path={`${process.env.PUBLIC_URL}/nominas`} exact >\n <Payroll />\n </Route>}\n\n {permiteMenu(\"nominas\") && \n <Route path={`${process.env.PUBLIC_URL}/nominas/detalle`} >\n <PayrollDetail />\n </Route>}\n\n {permiteMenu(\"imss\") && \n <Route path={`${process.env.PUBLIC_URL}/imss`} exact >\n <Imss />\n </Route>}\n\n {permiteMenu(\"imss\") && \n <Route path={`${process.env.PUBLIC_URL}/imss/:id`} >\n <ImssDetail />\n </Route>}\n\n {permiteMenu(\"infonavit\") && \n <Route path={`${process.env.PUBLIC_URL}/infonavit`} exact >\n <Infonavit />\n </Route>}\n\n {permiteMenu(\"infonavit\") && \n <Route path={`${process.env.PUBLIC_URL}/infonavit/:id`} >\n <InfonavitDetail />\n </Route>}\n\n {permiteMenu(\"vacaciones\") && \n <Route path={`${process.env.PUBLIC_URL}/vacaciones`} exact >\n <Vacations />\n </Route>}\n\n {permiteMenu(\"vacaciones\") && employeeType != 1 &&\n <Route path={`${process.env.PUBLIC_URL}/vacaciones/solicitud`} exact >\n <VacationsRequest />\n </Route>}\n\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '0' && permiteMenu(\"control-vacaciones\") &&\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones`} exact >\n <VacationsControl />\n </Route>}\n\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '1' && permiteMenu(\"control-vacaciones\") &&\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones`} exact >\n <VacationsControlV2 />\n </Route>}\n\n <Route path={`${process.env.PUBLIC_URL}/si-balance`} >\n <Sibalance />\n </Route>\n\n {permiteMenu(\"solicitudes\") && \n <Route path={`${process.env.PUBLIC_URL}/solicitudes`} exact >\n <Requests />\n </Route>}\n\n {permiteMenu(\"solicitudes\") && \n <Route path={`${process.env.PUBLIC_URL}/solicitudes/nueva`} exact >\n <RequestsCreate />\n </Route>}\n\n {permiteMenu(\"solicitudes\") && \n <Route path={`${process.env.PUBLIC_URL}/solicitudes/:id`} >\n <RequestsDetail />\n </Route>}\n\n {permiteMenu(\"mensajes\") && \n <Route path={`${process.env.PUBLIC_URL}/mensajes`} exact >\n <Messages />\n </Route>}\n\n {permiteMenu(\"mensajes\") && \n <Route path={`${process.env.PUBLIC_URL}/mensajes/:id`} >\n <MessagesDetail />\n </Route>}\n\n {permiteMenu(\"quejas\") && \n <Route path={`${process.env.PUBLIC_URL}/quejas`} exact >\n <Complaints />\n </Route>}\n\n\n {localStorage.getItem(\"REACT_APP_HISTORIAL_QUEJA_USER\") == '1' && menu.filter(el => el.NombreMenu == 'quejas').length > 0 && menu.filter(el => el.NombreMenu == 'quejas')[0].Habilitado == 'true' &&\n <Route path={`${process.env.PUBLIC_URL}/historial-quejas`} exact >\n <ComplaintHistory />\n </Route>}\n\n {localStorage.getItem(\"REACT_APP_HISTORIAL_QUEJA_USER\") == '1' && menu.filter(el => el.NombreMenu == 'quejas').length > 0 && menu.filter(el => el.NombreMenu == 'quejas')[0].Habilitado == 'true' &&\n <Route path={`${process.env.PUBLIC_URL}/detalle-queja/:id`} exact >\n <ComplaintHistoryDetail />\n </Route>}\n\n {permiteMenu(\"Afil\") && \n <Route path={`${process.env.PUBLIC_URL}/afil-individualizado`} exact >\n <AfilIndividualizado />\n </Route>}\n\n <Route path={`${process.env.PUBLIC_URL}/reporte-tecnico`} exact >\n <ReportService />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/reporte-users/reporte-tecnico`} exact >\n <ReportServiceEmpleado />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/reporte-users`} exact >\n <ReportControl />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/reporte-tecnico/detalle-reporte`} exact >\n <DetailReport />\n </Route>\n\n {localStorage.getItem(\"REACT_APP_CONTROL_INCIDENCIAS_V2\") == '0' && permiteMenu(\"incidencias\") && \n <Route path={`${process.env.PUBLIC_URL}/incidents`} exact >\n <Incidents />\n </Route>\n }\n\n {localStorage.getItem(\"REACT_APP_CONTROL_INCIDENCIAS_V2\") == '1' && permiteMenu(\"incidencias\") && \n <Route path={`${process.env.PUBLIC_URL}/incidents`} exact >\n <IncidentsV2 />\n </Route>\n }\n\n {permiteMenu(\"incidencias\") && \n <Route path={`${process.env.PUBLIC_URL}/incidents/newincident`} exact >\n <IncidentRequest />\n </Route>\n }\n\n <Route path={`${process.env.PUBLIC_URL}/consult-documents`} exact >\n <DownloadFiles />\n </Route>\n\n {info.some(el => el.id.trim().toLowerCase() == 'fondoahorro' && (el.informacion == \"true\" || el.informacion == \"1\")) && \n <Route path={`${process.env.PUBLIC_URL}/caja-ahorro`} exact >\n <CajaAhorro />\n </Route>\n }\n\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\n <RecoverPassword />\n </Route>\n\n {localStorage.getItem(\"REACT_APP_CARGA_ARCHIVOS_PERSONALES\") == '1' && \n <Route path={`${process.env.PUBLIC_URL}/upload`} exact >\n <UploadFiles2 />\n </Route>\n }\n\n <Route>\n <Error404 />\n </Route>\n </Switch>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n adminMenuData: state.adminMenu.adminMenuData,\n adminMenuError: state.adminMenu.adminMenuError,\n\n nextInfoUserData: state.nextInfoUser.nextInfoUserData,\n nextInfoUserError: state.nextInfoUser.nextInfoUserError,\n\n loginData: state.login.loginData,\n loginError: state.login.loginError,\n }\n};\n\nconst mapDispatchToProps = {\n getAdminMenuAction,\n getNextInfoUserAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmployeeRoutes));\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar';\r\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\n\r\nconst HomeForeign = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [msgData, setMsgData] = useState({});\r\n\r\n useEffect(() => {\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n props.getWelcomeMessageAction(params, server);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\r\n setMsgData({\r\n titulo: props.welcomeMessageData.WelcomeMessage.titulo,\r\n msg: props.welcomeMessageData.WelcomeMessage.mensaje\r\n });\r\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\r\n setMsgData({\r\n titulo: '',\r\n msg: ''\r\n });\r\n props.getWelcomeMessageAction('PURGE', '');\r\n }\r\n\r\n setLoading(false);\r\n\r\n }, [props.welcomeMessageData, props.welcomeMessageError]);\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Inicio\" icon=\"mdi mdi-home\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card \">\r\n <div className=\"card-header\">\r\n \r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"text-center\">\r\n <h3 className=\"mb-3\">{msgData.titulo}</h3>\r\n </div>\r\n <div>\r\n <ReactQuill\r\n theme=\"bubble\"\r\n readOnly={true}\r\n value={msgData.msg}\r\n modules={{ toolbar: false }}\r\n // formats={configEditor.formats}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\r\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getWelcomeMessageAction,\r\n\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(HomeForeign));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { NavLink } from 'react-router-dom';\r\n//import logo from '../../assets/images/Logo.png';\r\nimport QR from './QRCode.js';\r\nimport { connect } from 'react-redux';\r\nimport { getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from \"../../utils\";\r\n\r\nconst Leftsidebar = props => {\r\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\r\n\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [menu, setMenu] = useState([]);\r\n\r\n useEffect(() => {\r\n setEmployeeType(getEmployeeType());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.adminMenuData && props.adminMenuData.isOK) {\r\n setMenu([...props.adminMenuData.AdminMenu].filter(fl => fl.IdRol == 5));\r\n }\r\n }, [props.adminMenuData]);\r\n\r\n useEffect(() => {\r\n console.log('OIHB DATA MENU', menu);\r\n }, [menu]);\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n if (sessionStorage.getUserType == \"10\"){\r\n if (nombreMenu == \"\" || nombreMenu == \"messages\" || nombreMenu == \"requests\" || nombreMenu == \"complaints\"\r\n || nombreMenu == \"fields\" || nombreMenu == \"payroll\" || nombreMenu == \"reports\" || nombreMenu == \"upload\"){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n }\r\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") != \"1\") return true;\r\n\r\n if ((nombreMenu || \"\").trim().length == 0) return true;\r\n \r\n let MenuID = '0';\r\n let permite = false;\r\n\r\n if (menu.length > 0) {\r\n let find = menu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR /> : null}\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n\r\n <li className=\"nav-devider\"></li>\r\n\r\n {permiteMenu(\"\") && <li> <NavLink exact activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-home\"></i><span className=\"hide-menu\">INICIO</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"access\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/access`} aria-expanded=\"false\"><i className=\"mdi mdi-account-key\"></i><span className=\"hide-menu\">MÉTODO DE INGRESO</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"passwords\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/passwords`} aria-expanded=\"false\"><i className=\"mdi mdi-key\"></i><span className=\"hide-menu\">REINICIO CONTRASEÑAS</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"messages\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/messages`} aria-expanded=\"false\"><i className=\"mdi mdi-message\"></i><span className=\"hide-menu\">MENSAJES AL PERSONAL</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"requests\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/requests`} aria-expanded=\"false\"><i className=\"mdi mdi-account-multiple\"></i><span className=\"hide-menu\">RH TE ESCUCHA</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"complaints\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/complaints`} aria-expanded=\"false\"><i className=\"mdi mdi-message-bulleted-off\"></i><span className=\"hide-menu\">BUZÓN DE QUEJAS</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"users\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/users`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">CONTROL DE USUARIOS</span></NavLink>\r\n </li>}\r\n {\r\n localStorage.getItem(\"REACT_APP_SECURITY_POLICY\") == '1' && \r\n permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/users-security-policy`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">USUARIOS POLITICA</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_CONF_TIPOEMPLEADO\") == '1' && \r\n permiteMenu(\"typeEmployee\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/typeEmployee`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">CONTROL DE TIPO EMPLEADO</span></NavLink>\r\n </li>\r\n }\r\n {localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1' && \r\n permiteMenu(\"incidentTypeEmployee\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/incidentTypeEmployee`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">CONTROL DE FILTRADO INCIDENCIAS</span></NavLink>\r\n </li>\r\n }\r\n {localStorage.getItem(\"REACT_APP_CONF_TABULADOR_FALTA\") == '1' && \r\n permiteMenu(\"tabFalta\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/tabFalta`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">TABULADOR DE FALTAS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_CONF_TABULADOR_AF\") == '1' && \r\n permiteMenu(\"tabAutorizadorFijo\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/tabAutorizadorFijo`} aria-expanded=\"false\"><i className=\"mdi mdi-account-edit\"></i><span className=\"hide-menu\">TABULADOR DE AUTORIZADOR FIJO</span></NavLink>\r\n </li>\r\n }\r\n\r\n {permiteMenu(\"fields\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/fields`} aria-expanded=\"false\"><i className=\"mdi mdi-file-document\"></i><span className=\"hide-menu\">CAMPOS ADICIONALES</span></NavLink>\r\n </li>}\r\n\r\n {process.env.REACT_APP_IS_KRONES == '1' && <>\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacation-calendar`} aria-expanded=\"false\"><i className=\"mdi mdi-calendar-text\"></i><span className=\"hide-menu\">CALENDARIO VACACIONES</span></NavLink>\r\n </li>}\r\n\r\n {process.env.REACT_APP_IS_KRONES_PERDIEM == '1' && <>\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-accounting`} aria-expanded=\"false\"><i className=\"mdi mdi-calculator\"></i><span className=\"hide-menu\">CONCENTRADO CONTABILIDAD</span></NavLink>\r\n </li>}\r\n\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-services`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO REPORTES</span></NavLink>\r\n </li>}\r\n \r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/technical-services-concentrate`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO SERVICIOS TÉCNICOS</span></NavLink>\r\n </li>}\r\n </>}\r\n\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/report-vacations-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">REPORTE VACACIONES E INCIDENCIAS</span></NavLink>\r\n </li>}\r\n </>}\r\n\r\n {localStorage.getItem(\"REACT_APP_REPORTE_INCIDENCIAS\") == '1' && \r\n permiteMenu(\"report-requests-incidents\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/report-requests-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">REPORTE SOLICITUDES INCIDENCIAS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_REPORTE_ARCHADJINCI\") == '1' && \r\n permiteMenu(\"report-requests-incidents-attached-file\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/report-requests-incidents-attached-file`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">REPORTE ARCHIVO ADJUNTO EN INCIDENCIAS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/menu`} aria-expanded=\"false\"><i className=\"mdi mdi-menu\"></i><span className=\"hide-menu\">MENU</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"payroll\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/payroll`} aria-expanded=\"false\"><i className=\"mdi mdi-bank\"></i><span className=\"hide-menu\">RECIBOS GENERADOS POR EMPLEADO</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"reports\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/reports`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">DESCARGAR REPORTES</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"upload\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/upload`} aria-expanded=\"false\"><i className=\"mdi mdi-upload\"></i><span className=\"hide-menu\">CARGAR ARCHIVOS</span></NavLink>\r\n </li>}\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_CONF_NOM035\") == '1' && \r\n permiteMenu(\"suveryNom035\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/suveryNom035`} aria-expanded=\"false\"><i className=\"mdi mdi-file\"></i><span className=\"hide-menu\">ENCUESTAS NOM 035</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\") == '1' &&\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/downloadPersonalDocs`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">DESCARGAR ARCHIVOS EMPLEADOS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_REPORTE_INCIDENCIAS\") == '1' &&\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/downloadIncidentsReport`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">GENERAR REPORTE INCIDENCIAS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1' ) && (\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/incidentsauthorization`}\r\n aria-expanded=\"false\">\r\n <i className=\"mdi mdi-account-alert\"></i>\r\n <span className=\"hide-menu\"> AUTORIZAR INCIDENCIAS</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1' ) && (\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\"\r\n to={`${process.env.PUBLIC_URL}/vacaciones-autorizar`}\r\n aria-expanded=\"false\">\r\n <i className=\"mdi mdi-briefcase-check\"></i>\r\n <span className=\"hide-menu\"> AUTORIZAR VACACIONES</span>\r\n </NavLink>\r\n </li>\r\n )}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_ReporteIncidenciasSol\") == '1' ) && \r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/incidencias-solicitadas`} aria-expanded=\"false\"><i className=\"mdi mdi-bank\"></i><span className=\"hide-menu\">CONSULTAR INCIDENCIAS SOLICITADAS</span></NavLink>\r\n </li>\r\n }\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_ReporteVacIncidencias\") == '1' ) && \r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/requested-vacations-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-account-alert\"></i><span className=\"hide-menu\">VACACIONES E INCIDENCIAS PENDIENTES POR AUTORIZAR</span></NavLink>\r\n </li>\r\n }\r\n\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img width=\"90\" src={logo} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n typeUserSelected: state.changeUserType.typeUserSelected,\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(Leftsidebar);\r\n","import { changeXml, RequestVacationsAllResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REQUEST_VACATIONS_ALL_SUCCESS,\n REQUEST_VACATIONS_ALL_ERROR,\n REQUEST_VACATIONS_ALL_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getRequestVacationsAllAction = (data, server) => {\n let configJson = {\n 'tem:SolicitudVacacionesAll': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SolicitudVacacionesAll\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REQUEST_VACATIONS_ALL_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET REQUEST_VACATIONS_ALL_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REQUEST_VACATIONS_ALL_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RecuestVacationsAll: RequestVacationsAllResponse(body)\n }\n\n console.log('RESPONSE REQUEST_VACATIONS_ALL DATA: ', response);\n dispatch({ type: REQUEST_VACATIONS_ALL_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REQUEST_VACATIONS_ALL DATA: ', response);\n dispatch({ type: REQUEST_VACATIONS_ALL_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REQUEST_VACATIONS_ALL DATA: ', responseError);\n dispatch({ type: REQUEST_VACATIONS_ALL_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, AuthorizeVacationsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AUTHORIZE_VACATIONS_SUCCESS,\n AUTHORIZE_VACATIONS_ERROR,\n AUTHORIZE_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const AuthorizeVacationsAction = (data, server) => {\n let configJson = {\n 'tem:AutorizacionVacaciones': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/AutorizacionVacaciones\",\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\n\n console.log('REQUEST AuthorizeVacationsAction:', data, config, String(obj));\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AUTHORIZE_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(newSever, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET AUTHORIZE_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AUTHORIZE_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AuthorizeVacations: AuthorizeVacationsResponse(body)\n }\n\n console.log('RESPONSE AUTHORIZE_VACATIONS DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AUTHORIZE_VACATIONS DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_VACATIONS DATA: ', responseError);\n dispatch({ type: AUTHORIZE_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, RejectVacationsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REJECT_VACATIONS_SUCCESS,\n REJECT_VACATIONS_ERROR,\n REJECT_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const RejectVacationsAction = (data, server) => {\n let configJson = {\n 'tem:RechazoVacaciones': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/RechazoVacaciones\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REJECT_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET REJECT_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REJECT_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RejectVacations: RejectVacationsResponse(body)\n }\n\n console.log('RESPONSE REJECT_VACATIONS DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REJECT_VACATIONS DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REJECT_VACATIONS DATA: ', responseError);\n dispatch({ type: REJECT_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../../layout/EmployeeLeftsidebar.js';\nimport SystemAdminLeftsidebar from '../../layout/SystemAdminLeftsidebar.js';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\n\nimport { getRequestVacationsAllAction } from '../../../api/actions/jefe/RequestedVacationsAllAction';\nimport { AuthorizeVacationsAction } from '../../../api/actions/jefe/AuthorizeVacationsAction';\nimport { RejectVacationsAction } from '../../../api/actions/jefe/RejectVacationsAction';\nimport { getVacationsAction } from '../../../api/actions/empleado/VacationsAction';\nimport { getParams, getSesionStorage } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\nconst VacationsAuthorization = props => {\n\n const [loading, setLoading] = useState(true);\n const [allRequests, setAllRequests] = useState(null);\n\n const loadInfoVacationsTrabs = (solicitudes) => {\n if (process.env.REACT_APP_IS_KRONES == \"1\") {\n let { params, server } = getParams();\n setTimeout(() => {\n solicitudes.forEach((item) => { \n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': item.trabID,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n \n props.getVacationsAction(params, server);\n });\n }, 1000);\n }\n }\n\n useEffect(() => {\n \n let storage = getSesionStorage('userType');\n\n props.AuthorizeVacationsAction('PURGE', '');\n props.RejectVacationsAction('PURGE', '');\n props.getRequestVacationsAllAction('PURGE', '');\n props.getVacationsAction('PURGE', '');\n\n // Se obtienen todas la solicitudes (para el admin) y se siguen filtrando como habitualmente lo hacen, cuando es un jefe autorizador\n if (storage.typeUser === 5) {\n\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getRequestVacationsAllAction(params, server); \n\n } else {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n }\n props.getRequestVacationsAllAction(params, server); \n }\n\n }, []);\n\n useEffect(() => {\n if (props.requestVacationsAllData && props.requestVacationsAllData.isOK) {\n let solicitudes = [...props.requestVacationsAllData.RecuestVacationsAll];\n solicitudes.map((item) => { item.Status = \"Cargando...\"; });\n\n setAllRequests(solicitudes);\n setLoading(false);\n console.log('OIHB', solicitudes);\n\n loadInfoVacationsTrabs(solicitudes);\n } \n else if (props.requestVacationsAllError && props.requestVacationsAllError.isOK === false) {\n props.getRequestVacationsAllAction('PURGE', '');\n setLoading(false);\n }\n }, [props.requestVacationsAllData, props.requestVacationsAllError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK === true) {\n if (allRequests) {\n let data = props.vacationsData.Vacations;\n let pendiente1 = data.solicitudes.filter((item) => item.Status == \"Solicitado\").length;\n let pendiente2 = data.solCancelacion.filter((item) => item.Status == \"Solicitado\").length;\n \n let solicitudes = [...allRequests];\n let obj = solicitudes.find((item) => item.trabID == data.trabId);\n if (obj) {\n obj.Status = ((pendiente1 + pendiente2) > 0 ? \"Pendientes por Autorizar\" : \"Sin pendientes por autorizar\");\n }\n \n setAllRequests(solicitudes);\n }\n setLoading(false);\n }\n else if (props.vacationsError && props.vacationsError.isOK === false) {\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n }\n }, [props.vacationsData]);\n\n const vacations_table = () => {\n\n let table = [];\n let solicitudes = allRequests;\n\n if (solicitudes && solicitudes.length > 0) {\n if (solicitudes[0]['error']) {\n table.push(\n <tr key={'error'}>\n <td>No hay información para mostrar.</td>\n </tr>\n );\n } else {\n let color = '';\n solicitudes.map((item, i) => {\n color = (item.Status.toLowerCase().includes('sin pendientes') ? '#93c03f' : '#faa52c');\n table.push(\n <tr key={i + '_' +item.solicitudID}>\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}>{item.nombreCompleto}</td>\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}>{item.trabID}</td>\n <td><button onClick={() => _handleEmployeeHistroy(item.trabID)} className=\"btn btn-outline-secondary\"><i className=\"mdi mdi-file-document\"></i></button></td>\n {process.env.REACT_APP_IS_KRONES == \"1\" && <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer', color: color }}>{item.Status}</td>}\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}><i className=\"mdi mdi-chevron-right\" ></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr key=\"0\">\n <td>No hay fechas solicitadas</td>\n <td></td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleEmployeeHistroy = (id) => {\n props.history.push(`${process.env.PUBLIC_URL}/control-vacaciones-empleado`, { 'id': id });\n };\n\n const _handleRowClick = (id, item) => {\n props.history.push(`${process.env.PUBLIC_URL}/vacaciones-autorizar/${id}`, item);\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBVacAutorizar') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n console.log('OIHB employee type', storage);\n switch (storage.typeUser) {\n case 2:\n return <EmployeeLeftsidebar />;\n case 5:\n return <SystemAdminLeftsidebar />;\n default:\n return <EmployeeLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Autorización de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block justify-content-between\">\n <h4 className=\"card-title\">SOLICITUDES DE VACACIONES</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Nombre Completo</th>\n <th style={{ width: '16%' }}># de Usuario</th>\n <th style={{ width: '12%' }}>Ver Historial</th>\n {process.env.REACT_APP_IS_KRONES == \"1\" && <th style={{ width: '18%' }}>Estatus</th>}\n <th style={{ width: '10%' }}></th>\n </tr>\n </thead>\n <tbody>\n {vacations_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n requestVacationsAllData: state.requestVacationsAll.requestVacationsAllData,\n requestVacationsAllError: state.requestVacationsAll.requestVacationsAllError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n };\n};\n\nconst mapDispatchToProps = {\n getRequestVacationsAllAction,\n AuthorizeVacationsAction,\n RejectVacationsAction,\n getVacationsAction,\n};\n\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationsAuthorization));\n","import { changeXml, SeeVacations } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SEE_VACATIONS_SUCCESS,\n SEE_VACATIONS_ERROR,\n SEE_VACATIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const seeVacationsAction = (data, server) => {\n let configJson = {\n 'tem:Visto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/Visto\"\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SEE_VACATIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SEE_VACATIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SEE_VACATIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SeeVacations: SeeVacations(body)\n }\n\n console.log('RESPONSE SEE_VACATIONS DATA: ', response);\n dispatch({ type: SEE_VACATIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SEE_VACATIONS DATA: ', response);\n dispatch({ type: SEE_VACATIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SEE_VACATIONS DATA: ', responseError);\n dispatch({ type: SEE_VACATIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport { AuthorizeVacationsAction } from '../../../api/actions/jefe/AuthorizeVacationsAction';\nimport { getVacationsAction } from '../../../api/actions/empleado/VacationsAction';\nimport { seeVacationsAction } from '../../../api/actions/jefe/SeeVacationsAction';\nimport { getAuthorizeCancelVacationsAction } from '../../../api/actions/jefe/AuthorizeCancelVacationsAction';\nimport { getCommentRejectVacationsAction } from '../../../api/actions/jefe/CommentRejectVacationsAction'\nimport { getVacationExpirationAction } from '../../../api/actions/empleado/VacationsExpirationAction';\nimport { GetValoresConfigAction } from \"../../../api/actions/common/GetValoresConfigAction\";\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../../layout/EmployeeLeftsidebar.js';\nimport SystemAdminLeftsidebar from '../../layout/SystemAdminLeftsidebar.js';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\nimport Card from '../../../components/shared/Card.js';\nimport { getParams, getSesionStorage } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\nimport moment from 'moment';\n\nconst VacationRequestDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({});\n const [showTable, setShowTable] = useState('ALL');\n const [comment, setComment] = useState('')\n const [action, setAction] = useState('1')\n\n const [data, setData] = useState({});\n const [vacationExpiration, setVacationExpiration] = useState([]);\n const [valoresConfig, setValoresConfig] = useState([]);\n\n const [sortByNewest, setSortByNewest] = useState(true);\n\n useEffect(() => {\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n const { trabID } = props.location.state;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': trabID,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getVacationsAction(params, server);\n\n if (process.env.REACT_APP_IS_KRONES == '1' || localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') {\n getVacationExpiration();\n }\n\n GetValoresConfig('SICONSULTA');\n };\n\n useEffect(() => {\n console.log('OIHB Vacations Data')\n if (props.vacationsData && props.vacationsData.isOK === true) {\n console.log('OIHB Info Vacaciones', props.vacationsData.Vacations);\n setData({\n ...props.vacationsData.Vacations\n });\n setLoading(false);\n }\n\n }, [props.vacationsData]);\n\n useEffect(() => {\n if (props.authorizeVacationsData && props.authorizeVacationsData.isOK === true) {\n console.log('OIHB Auth - OK')\n alert(`La solicitud fue ${action === '1' ? 'autorizada' : 'rechazada'} exitosamente.`);\n props.AuthorizeVacationsAction('PURGE', '');\n } else if (props.authorizeVacationsError && props.authorizeVacationsError.isOK === false) {\n props.AuthorizeVacationsAction('PURGE', '');\n console.log('OIHB Auth - NO OK')\n }\n setLoading(true);\n props.getVacationsAction('PURGE', '');\n loadData();\n }, [props.authorizeVacationsData, props.authorizeVacationsError]);\n\n\n useEffect(() => {\n if (props.authorizeCancelVacationsData && props.authorizeCancelVacationsData.isOK === true) {\n console.log('OIHB Reject - OK')\n alert(`La solicitud fue ${action === '1' ? 'autorizada' : 'rechazada'} exitosamente.`);\n props.getAuthorizeCancelVacationsAction('PURGE', '');\n } else if (props.authorizeCancelVacationsError && props.authorizeCancelVacationsError.isOK === false) {\n props.getAuthorizeCancelVacationsAction('PURGE', '');\n console.log('OIHB Reject - NO OK')\n }\n setLoading(true);\n props.getVacationsAction('PURGE', '');\n loadData();\n }, [props.authorizeCancelVacationsData, props.authorizeCancelVacationsError]);\n\n useEffect(() => {\n if (props.commentRejectVacationsData && props.commentRejectVacationsData.isOK === true) {\n if (comment && comment.length > 0) {\n alert(`El comentario se guardo satisfactoriamente`);\n setComment('')\n }\n props.getCommentRejectVacationsAction('PURGE', '');\n } else if (props.commentRejectVacationsError && props.commentRejectVacationsError.isOK === false) {\n props.getCommentRejectVacationsAction('PURGE', '');\n }\n setLoading(true);\n props.getVacationsAction('PURGE', '');\n loadData();\n }, [props.commentRejectVacationsData, props.commentRejectVacationsError]);\n\n useEffect(() => {\n if (props.vacationsExpirationData && props.vacationsExpirationData.isOK) {\n let expirations = [...props.vacationsExpirationData.VacationExpiration];\n props.getVacationExpirationAction('PURGE', '');\n if (expirations.length <= 0) return;\n\n setVacationExpiration(expirations);\n }\n if (props.vacationsExpirationError && props.vacationsExpirationError.isOK === false) {\n props.getVacationExpirationAction('PURGE', '');\n }\n console.log('EMPLOYEE_VACATIONS_EXPIRATION', props.vacationsExpirationData);\n }, [props.vacationsExpirationData, props.vacationsExpirationError]);\n\n useEffect(() => {\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\n if (configuraciones.length > 0) {\n setValoresConfig(configuraciones);\n }\n else {\n setValoresConfig([]);\n }\n props.GetValoresConfigAction(\"PURGE\", \"\");\n } \n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setValoresConfig([]);\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n\n const getVacationExpiration = () => {\n let { params, server } = getParams();\n const dataSendExpired = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:trabid\": params['tem:TrabID']\n }\n props.getVacationExpirationAction(dataSendExpired, server);\n };\n\n const sendCommentRejectVacation = (data, actions, comment) => {\n if (actions === 0 && comment.length > 0) {\n const { trabID } = props.location.state;\n let { params, server } = getParams();\n //'tem:TrabIDJefe': params['tem:TrabID'],\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:SolicitudID': data,\n 'tem:trabid': trabID,\n 'tem:mensaje': comment\n };\n console.log('SEND AUTORIZATIION', params)\n setTimeout(() => {\n props.getCommentRejectVacationsAction(params, server)\n }, 500);\n\n }\n\n };\n\n const GetValoresConfig = (seccion, variable = '') => {\n let { params, server } = getParams();\n\n let send = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:Seccion\": seccion, \n \"tem:Variable\": variable,\n };\n \n props.GetValoresConfigAction(send, server);\n };\n\n const _handleCloseModal = () => {\n setShowModal(false);\n setComment('')\n };\n\n const _handleConfirmModal = (action, data = null, type) => {\n if (action == 0 && comment.length == 0) { // && process.env.REACT_APP_IS_KRONES == '1'\n alert('Se requiere un comentario de rechazo');\n return;\n }\n\n // Se obtiene el tipo de usuario para tener la opcion de autorizar/rechazar por medio del usuario administrado\n let storage = getSesionStorage('userType');\n const { trabID } = props.location.state;\n\n if (storage.typeUser === 5) {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabIDJefe': params['tem:TrabID'],\n 'tem:SolicitudID': data,\n 'tem:TrabIDEmp': trabID,\n 'tem:Autoriza': action,\n 'tem:mensaje': comment,\n 'tem:AutorizaAdmin': true\n };\n\n console.log('SEND AUTORIZATIION', params)\n if (type == 'vacacion') {\n props.AuthorizeVacationsAction(params, server);\n // if (process.env.REACT_APP_IS_KRONES == '1') {\n // sendCommentRejectVacation(data, action, comment)\n // }\n }\n else if (type == 'cancelacion') {\n props.getAuthorizeCancelVacationsAction(params, server);\n }\n } else {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabIDJefe': params['tem:TrabID'],\n 'tem:SolicitudID': data,\n 'tem:TrabIDEmp': trabID,\n 'tem:Autoriza': action,\n 'tem:mensaje': comment,\n };\n\n console.log('SEND AUTORIZATIION', params)\n if (type == 'vacacion') {\n props.AuthorizeVacationsAction(params, server);\n // if (process.env.REACT_APP_IS_KRONES == '1') {\n // sendCommentRejectVacation(data, action, comment)\n // }\n }\n else if (type == 'cancelacion') {\n props.getAuthorizeCancelVacationsAction(params, server);\n }\n }\n\n setAction(String(action))\n setShowModal(false);\n setLoading(true);\n setComment('');\n\n };\n\n const vacations_table = () => {\n\n let table = [];\n let solicitudes = data.solicitudes;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td>No hay información para mostrar.</td>\n </tr>\n );\n } else {\n\n solicitudes = solicitudes.sort((a, b) => {\n if (sortByNewest) {\n return new Date(b.FechaSolicitud) - new Date(a.FechaSolicitud);\n } else {\n return new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud);\n }\n });\n console.log('SOLICITUDES', solicitudes)\n solicitudes.map((item, i) => {\n let color;\n\n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Rechazada':\n color = '#be2b71';\n \n break;\n\n default:\n color = '#003b71';\n }\n let validateDates = item.FechaInicio === '' ? item.FechaVacacion : item.FechaInicio;\n table.push(\n <tr key={item.SolicitudID}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\n <div>\n {item.Dia}\n </div>\n </td>\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}</td>\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) && \n <td>{item.MotivoVacacion}</td>}\n <td style={{ color: color, cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClick(item)}>\n <i className=\"mdi mdi-calendar-clock\"></i> {item.Status}\n </td>\n <td style={{ cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClick(item)}>\n {item.Status != 'Solicitado' ? '' : <i className=\"mdi mdi-chevron-right\"></i>} \n </td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClick = item => {\n\n if (item.Status != 'Solicitado') {\n return;\n }\n \n let date = item.RangoFechas === 'true' ? 'del ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' al ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')\n\n setDataModal({\n title: 'Solicitud de Vacación',\n body: `Se solicita una vacación para la fecha ${date}.`,\n rejectButton: true,\n confirmButton: true,\n data: item.SolicitudID,\n type: 'vacacion',\n haveComment: true\n });\n setShowModal(true);\n\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:SolicitudID': item.SolicitudID\n }\n\n props.seeVacationsAction(params, server);\n };\n\n const cancelations_table = () => {\n\n let table = [];\n let solicitudes = data.solCancelacion;\n console.log('CANCELACIONES', solicitudes)\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td>No hay información para mostrar.</td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n if (sortByNewest) {\n return new Date(b.FechaSolicitud) - new Date(a.FechaSolicitud);\n } else {\n return new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud);\n }\n });\n\n solicitudes.map((item, i) => {\n let color;\n\n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Cancelacion Aprobada':\n color = '#93c03f';\n break;\n\n case 'Cancelacion Rechazada':\n color = '#be2b71';\n break;\n\n case 'Solicitud de Cancelacion':\n color = '#faa52c';\n break;\n \n case 'Rechazada':\n color = '#be2b71';\n break;\n default:\n color = '#003b71'; \n }\n if (item.Status === 'Aprobado')\n {\n item.Status = 'Cancelacion Aprobada';\n }\n if (item.Status === 'Rechazado') {\n item.Status = 'Cancelacion Rechazada';\n }\n if (item.Status === 'Solicitado') {\n item.Status = 'Solicitud de Cancelacion';\n }\n //if (item.Status === 'Solicitado') {\n // item.Status = 'Solicitud de Cancelacion';\n //}\n let validateDates = item.FechaInicio === '' ? item.FechaVacacion : item.FechaInicio;\n table.push(\n <tr key={item.SolicitudID} onClick={() => _handleRowClickCancel(item)} style={{ cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }}>\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\n <div>\n {item.Dia}\n </div>\n </td>\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}</td>\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) && \n <td>{item.MotivoVacacion}</td>}\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\n <td>\n {item.Status != 'Solicitado' ? '' : <i className=\"mdi mdi-chevron-right\"></i>}\n </td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClickCancel = item => { \n if (item.Status != 'Solicitado') {\n return;\n }\n let date = item.RangoFechas === 'true' ? ' del ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' al ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')\n\n setDataModal({\n title: 'Solicitud de Cancelación de Vacación',\n body: `Se solicita una cancelación de vacación para la fecha ${date}.`,\n rejectButton: true,\n confirmButton: true,\n data: item.SolicitudID,\n type: 'cancelacion',\n haveComment: true\n });\n setShowModal(true);\n\n };\n\n const combined_table = () => {\n let combinedData = [];\n if (showTable === 'ALL' || showTable === '1') {\n combinedData = combinedData.concat(data.solicitudes);\n }\n if (showTable === 'ALL' || showTable === '2') {\n combinedData = combinedData.concat(data.solCancelacion.map(item => {\n if (item.Status === 'Aprobado') {\n item.Status = 'Cancelacion Aprobada';\n }\n if (item.Status === 'Rechazado') {\n item.Status = 'Cancelacion Rechazada';\n }\n if (item.Status === 'Solicitado') {\n item.Status = 'Solicitud de Cancelacion';\n }\n return item;\n }));\n }\n \n\n const cancelacionGroup = combinedData.filter(item => item.Status === 'Solicitud de Cancelacion');\n const solicitadoGroup = combinedData.filter(item => item.Status === 'Solicitado');\n const otherGroup = combinedData.filter(item => item.Status !== 'Solicitud de Cancelacion' && item.Status !== 'Solicitado');\n\n // Ordenar grupos de cancelación y solicitados por fecha, dependiendo de sortByNewest\n const sortedCancelacionGroup = cancelacionGroup.sort((a, b) => new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud));\n const sortedSolicitadoGroup = solicitadoGroup.sort((a, b) => new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud));\n\n // Combinar todos los grupos en el orden deseado: Solicitud de Cancelacion, Solicitado y otros estados\n if (sortByNewest === false) {\n sortedCancelacionGroup.reverse();\n sortedSolicitadoGroup.reverse();\n otherGroup.reverse();\n }\n const sortedCombinedData = [...sortedCancelacionGroup, ...sortedSolicitadoGroup, ...otherGroup];\n\n return sortedCombinedData.map(item => {\n let color;\n \n switch (item.Status) {\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Cancelacion Aprobada':\n color = '#93c03f';\n break;\n\n case 'Cancelacion Rechazada':\n color = '#be2b71';\n break;\n\n case 'Solicitud de Cancelacion':\n color = '#faa52c';\n break;\n\n case 'Rechazada':\n color = '#be2b71';\n break;\n\n default:\n color = '#003b71';\n }\n\n let validateDates = item.FechaInicio === '' ? item.FechaVacacion : item.FechaInicio;\n return (\n <tr key={item.SolicitudID}>\n <td className='tdMax' style={{ whiteSpace: 'normal' }}>\n <div>\n {item.Dia}\n </div>\n </td>\n <td>\n {item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}\n </td>\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) && \n <td>{item.MotivoVacacion}</td>}\n <td\n style={{\n color: color,\n cursor:\n item.Status === 'Solicitado' ||\n item.Status === 'Solicitud de Cancelacion'\n ? 'pointer'\n : 'default'\n }}\n onClick={() =>\n item.Status === 'Solicitud de Cancelacion'\n ? _handleRowClickCancel0(item)\n : _handleRowClick(item)\n }\n >\n <i className=\"mdi mdi-calendar-clock\"></i> {item.Status}\n </td>\n <td\n style={{\n cursor:\n (item.Status === 'Solicitado' ||\n item.Status === 'Solicitud de Cancelacion')\n ? 'pointer'\n : 'default'\n }}\n onClick={() =>\n (item.Status === 'Solicitado' || item.Status === 'Solicitud de Cancelacion')\n ? _handleRowClick(item)\n : null\n }\n >\n {['Solicitado', 'Solicitud de Cancelacion'].includes(item.Status) ? (\n <i className=\"mdi mdi-chevron-right\"></i>\n ) : null}\n </td>\n </tr>\n );\n });\n };\n\n const _handleRowClickCancel0 = item => { \n if (item.Status != 'Solicitud de Cancelacion') {\n return;\n }\n let date = item.RangoFechas === 'true' ? ' del ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' al ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')\n\n setDataModal({\n title: 'Solicitud de Cancelación de Vacación',\n body: `Se solicita una cancelación de vacación para la fecha ${date}.`,\n rejectButton: true,\n confirmButton: true,\n data: item.SolicitudID,\n type: 'cancelacion',\n haveComment: true\n });\n setShowModal(true);\n\n };\n\n const handleDropdown = e => {\n setShowTable(e.target.value); \n }\n\n const handleStatusDropdown = e => {\n setSortByNewest(e.target.value === 'newest')\n };\n\n const handleInput = event => {\n var value = event.target.value;\n setComment(value);\n }\n\n // Según el tipo de usuario, será el leftside bar mostrado\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n console.log('OIHB employee type', storage);\n switch (storage.typeUser) {\n case 2:\n return <EmployeeLeftsidebar />;\n case 5:\n return <SystemAdminLeftsidebar />;\n default:\n return <EmployeeLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else {\n\n const {\n antiguedad,\n diasDisponibles,\n diasTomados,\n fechaIngreso,\n totalDiasVacacionales\n } = data;\n\n const { nombreCompleto, trabID } = props.location.state;\n\n return (\n <div id=\"main-wrapper\">\n\n <Modal show={showModal} onHide={_handleCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <p>{dataModal.body}</p>\n {dataModal.haveComment ? <input\n className=\"form-control\"\n name=\"company\"\n type=\"textarea\"\n required=\"\"\n placeholder=\"Comentario\"\n value={comment}\n onChange={handleInput}\n autoFocus\n /> : null}\n\n </Modal.Body>\n <Modal.Footer>\n {dataModal.confirmButton &&\n <Button variant=\"primary\" onClick={() => _handleConfirmModal(1, dataModal.data, dataModal.type)}>\n Autorizar\n </Button>\n }\n {dataModal.rejectButton &&\n <Button variant=\"danger\" onClick={() => _handleConfirmModal(0, dataModal.data, dataModal.type)}>\n Rechazar\n </Button>\n }\n </Modal.Footer>\n </Modal>\n\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Autorización de Vacaciones\" redirect=\"/vacaciones-autorizar\" actual={trabID} icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n\n <Card\n icon=\"mdi mdi-account text-info\"\n value={nombreCompleto}\n name=\"NOMBRE\"\n />\n\n <Card\n icon=\"mdi mdi-calendar text-info\"\n value={fechaIngreso}\n name=\"FECHA DE INGRESO\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-calendar-check text-success\"\n value={antiguedad}\n name=\"ANTIGUEDAD\"\n />\n\n </div>\n\n {/* <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-file-document text-info\"\n value={totalDiasVacacionales}\n name=\"DÍAS TOTALES\"\n />\n\n <Card\n icon=\"mdi mdi-cash-multiple text-success\"\n value={diasTomados}\n name=\"DÍAS DISFRUTADOS\"\n />\n\n <Card\n icon=\"mdi mdi-cash-multiple text-purple\"\n value={diasDisponibles}\n name=\"DÍAS DISPONIBLES\"\n />\n </div> */}\n\n {\n localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") != '1' ? \n <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-calendar text-info\"\n value={totalDiasVacacionales}\n name=\"DÍAS CORRESPONDIENTES DEL AÑO\"\n />\n <Card\n icon=\"mdi mdi-airplane-landing text-success\"\n value={diasTomados}\n name=\"DÍAS DISFRUTADOS\"\n />\n <Card\n icon=\"mdi mdi-airplane-takeoff text-purple\"\n value={diasDisponibles}\n name=\"DÍAS DISPONIBLES\"\n />\n {(process.env.REACT_APP_IS_KRONES == '1' || localStorage.getItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\") == '1') && \n <Card\n icon=\"mdi mdi-airplane-landing text-danger\"\n value={vacationExpiration.map(item => { return parseInt(item.Dias_Pendientes); }).reduce((a, b) => a + b, 0)}\n name=\"DÍAS PRÓXIMOS A VENCER\"\n />\n }\n </div>\n : \n <div className=\"card-group\">\n <Card\n icon=\"mdi mdi-calendar text-info\"\n value={data.vacacionesPendientesConsolide}\n name=\"TOTAL DE VACACIONES DEVENGADAS\"\n />\n <Card\n icon=\"mdi mdi-airplane-landing text-success\"\n value={data.proporcionales}\n name=\"VACACIONES PROPORCIONALES\"\n />\n <Card\n icon=\"mdi mdi-airplane-takeoff text-purple\"\n value={data.totalVacacionesConsolide}\n name=\"TOTAL DE VACACIONES\"\n />\n </div>\n }\n\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\n <select className=\"form-control p-2 col-3\" onChange={handleDropdown} value={showTable}>\n <option value=\"ALL\" selected={showTable === 'ALL'}>Todas las solicitudes</option>\n <option value=\"1\" selected={showTable === '1'}>VACACIONES</option>\n <option value=\"2\" selected={showTable === '2'}>CANCELACIONES</option>\n </select>\n <h4 className=\"card-title p-2\">Ordenar por</h4>\n <select className=\"form-control p-2 col-3\" onChange={handleStatusDropdown} value={sortByNewest ? 'newest' : 'oldest'}> \n <option value=\"newest\">Nuevas solicitudes</option>\n <option value=\"oldest\">Antiguas solicitudes</option>\n </select>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Fecha Solicitud</th>\n {valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1')) && \n <th>Motivo</th>}\n <th>Estatus</th>\n </tr>\n </thead>\n <tbody>\n {showTable === 'ALL' ? combined_table() : null}\n {showTable === '1' ? vacations_table() : null}\n {showTable === '2' ? cancelations_table() : null} \n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n authorizeVacationsData: state.authorizeVacations.authorizeVacationsData,\n authorizeVacationsError: state.authorizeVacations.authorizeVacationsError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n\n seeVacationsData: state.seeVacations.seeVacationsData,\n seeVacationsError: state.seeVacations.seeVacationsError,\n\n authorizeCancelVacationsData: state.authorizeCancelVacations.authorizeCancelVacationsData,\n authorizeCancelVacationsError: state.authorizeCancelVacations.authorizeCancelVacationsError,\n\n commentRejectVacationsData: state.commentRejectVacations.commentRejectVacationsData,\n commentRejectVacationsError: state.commentRejectVacations.commentRejectVacationsError,\n\n vacationsExpirationData: state.vacationsExpiration.vacationsExpirationData,\n vacationsExpirationError: state.vacationsExpiration.vacationsExpirationError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n AuthorizeVacationsAction,\n getVacationsAction,\n seeVacationsAction,\n getAuthorizeCancelVacationsAction,\n getCommentRejectVacationsAction,\n getVacationExpirationAction,\n GetValoresConfigAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationRequestDetail));\n","import { changeXml, CommentRejectVacationsResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n COMMENT_REJECT_VACATIONS_SUCCESS,\r\n COMMENT_REJECT_VACATIONS_ERROR,\r\n COMMENT_REJECT_VACATIONS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getCommentRejectVacationsAction = (data, server) => {\r\n let configJson = {\r\n 'tem:ComentarioRechazovacacionesEmp': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/ComentarioRechazovacacionesEmp\",\r\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\r\n\r\n console.log('RECUEST_COMMENT_REJECT_VACATIONS:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: COMMENT_REJECT_VACATIONS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET COMMENT_REJECT_VACATIONS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: COMMENT_REJECT_VACATIONS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n CommentRejectVacations: CommentRejectVacationsResponse(body)\r\n }\r\n\r\n console.log('RESPONSE COMMENT_REJECT_VACATIONS DATA: ', response);\r\n dispatch({ type: COMMENT_REJECT_VACATIONS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET COMMENT_REJECT_VACATIONS DATA: ', response);\r\n dispatch({ type: COMMENT_REJECT_VACATIONS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET COMMENT_REJECT_VACATIONS DATA: ', responseError);\r\n dispatch({ type: COMMENT_REJECT_VACATIONS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, VacationsMassive } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VACATIONS_MASSIVE_SUCCESS,\n VACATIONS_MASSIVE_ERROR,\n VACATIONS_MASSIVE_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getVacationsMassiveAction = (data, server, esJefe = false) => {\n let action = 'VacMasivasRH';\n\n if (esJefe) action = 'VacMasivasJefe';\n\n let configJson = {};\n configJson['tem:' + action] = { \n ...data \n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/\" + action,\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VACATIONS_MASSIVE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n console.log('RESPONSE VACATIONS MASIVE', body)\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VACATIONS_MASSIVE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n VacationsMassive: VacationsMassive(body, esJefe)\n }\n\n console.log('RESPONSE VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: VACATIONS_MASSIVE_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: VACATIONS_MASSIVE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VACATIONS_MASSIVE DATA: ', responseError);\n dispatch({ type: VACATIONS_MASSIVE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeToXmlWcf, AuthorizeVacationsMassive } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AUTHORIZE_VACATIONS_MASSIVE_SUCCESS,\n AUTHORIZE_VACATIONS_MASSIVE_ERROR,\n AUTHORIZE_VACATIONS_MASSIVE_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getAuthorizeVacationsMassiveAction = (data, server) => {\n let configJson = {\n 'tem:AutorizaVacMasivas': {\n ...data\n }\n }\n\n let obj = changeToXmlWcf(configJson);\n console.log('OBJ MASSIVE AUTOHORIZE VACATIONS', obj)\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizaVacMasivas\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n /*\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_ERROR, payload: response })\n } else {\n */\n response = {\n isOK: true,\n AuthorizeVacationsMassive: AuthorizeVacationsMassive(body)\n }\n\n console.log('RESPONSE AUTHORIZE_VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_SUCCESS, payload: response })\n // }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AUTHORIZE_VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_VACATIONS_MASSIVE DATA: ', responseError);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeToXmlWcf, AuthorizeVacationsMassive } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REJECT_VACATIONS_MASSIVE_SUCCESS,\n REJECT_VACATIONS_MASSIVE_ERROR,\n REJECT_VACATIONS_MASSIVE_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getRejectVacationsMassiveAction = (data, server) => {\n let configJson = {\n 'tem:AutorizaVacMasivas': {\n ...data\n }\n }\n\n let obj = changeToXmlWcf(configJson);\n console.log('OBJ MASSIVE AUTOHORIZE VACATIONS', obj)\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizaVacMasivas\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REJECT_VACATIONS_MASSIVE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REJECT_VACATIONS_MASSIVE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RejectVacationsMassive: AuthorizeVacationsMassive(body)\n }\n\n console.log('RESPONSE REJECT_VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REJECT_VACATIONS_MASSIVE DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REJECT_VACATIONS_MASSIVE DATA: ', responseError);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { getVacationsMassiveAction } from \"../../../api/actions/eulen/VacationsMassiveAction\";\r\nimport { getAuthorizeVacationsMassiveAction } from \"../../../api/actions/eulen/AuthorizeVacationsMassiveAction\";\r\nimport { getRejectVacationsMassiveAction } from \"../../../api/actions/eulen/RejectVacationsMassiveAction\";\r\n\r\nimport Topbar from \"../../layout/Topbar.js\";\r\nimport Leftsidebar from \"../../layout/EmployeeLeftsidebar\";\r\nimport Title from \"../../layout/Title.js\";\r\nimport Footer from \"../../layout/Footer.js\";\r\n\r\nimport { getParams } from \"../../../utils\";\r\nimport { alert, confirm } from \"../../../utils/common/alert\";\r\n\r\nconst VacationRequestsMassive = (props) => {\r\n const [loading, setLoading] = useState(true);\r\n const [showTable, setShowTable] = useState(\"1\");\r\n const [tableFilter, setTableFilter] = useState(\"\");\r\n const [selectedRequests, setSelectedRequests] = useState([]);\r\n const [resultErrors, setResultErrors] = useState([]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n const loadData = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:JefeTrab\": params[\"tem:TrabID\"],\r\n };\r\n\r\n props.getVacationsMassiveAction(params, server, true);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.vacationsMassiveData && props.vacationsMassiveData.isOK) {\r\n setLoading(false);\r\n } else if (\r\n props.vacationsMassiveError &&\r\n props.vacationsMassiveError.isOK === false\r\n ) {\r\n props.getVacationsMassiveAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n }\r\n }, [props.vacationsMassiveData, props.vacationsMassiveError]);\r\n\r\n useEffect(() => {\r\n if (\r\n props.rejectVacationsMassiveData &&\r\n props.rejectVacationsMassiveData.isOK === true\r\n ) {\r\n checkResults(props.rejectVacationsMassiveData.RejectVacationsMassive);\r\n // alert('Las solicitudes fueron rechazadas exitosamente.');\r\n // setSelectedRequests([]);\r\n // setLoading(true);\r\n // props.getVacationsMassiveAction('PURGE', '');\r\n // props.getRejectVacationsMassiveAction('PURGE', '');\r\n // loadData();\r\n } else if (\r\n props.rejectVacationsMassiveError.RejectVacations &&\r\n props.rejectVacationsMassiveError.isOK === false\r\n ) {\r\n props.getRejectVacationsMassiveAction(\"PURGE\", \"\");\r\n setSelectedRequests([]);\r\n setLoading(true);\r\n props.getVacationsMassiveAction(\"PURGE\", \"\");\r\n loadData();\r\n }\r\n }, [props.rejectVacationsMassiveData, props.rejectVacationsMassiveError]);\r\n\r\n useEffect(() => {\r\n if (selectedRequests.length > 0) {\r\n if (resultErrors.length > 0) {\r\n let errorsJsx = resultErrors.map((err) => {\r\n return (\r\n <tr>\r\n <td>{err.Trab_id}</td>\r\n <td>{err.ErrorMsg}</td>\r\n </tr>\r\n );\r\n });\r\n\r\n let correct = selectedRequests.length - resultErrors.length;\r\n\r\n alert(\r\n <>\r\n <h5>\r\n {\"Se procesaron \" +\r\n selectedRequests.length +\r\n \" peticiones de las cuales \" +\r\n correct +\r\n \" fueron aceptadas y \" +\r\n resultErrors.length +\r\n \" fueron rechazadas\"}\r\n </h5>\r\n <table className=\"table\">\r\n <thead>\r\n <th>No. Empleado</th>\r\n <th>Status</th>\r\n </thead>\r\n <tbody>{errorsJsx}</tbody>\r\n </table>\r\n </>\r\n );\r\n } else {\r\n alert(\"Las solicitudes se procesaron exitosamente.\");\r\n }\r\n setSelectedRequests([]);\r\n setLoading(true);\r\n props.getVacationsMassiveAction(\"PURGE\", \"\");\r\n props.getRejectVacationsMassiveAction(\"PURGE\", \"\");\r\n loadData();\r\n }\r\n }, [resultErrors]);\r\n\r\n const checkResults = (arr) => {\r\n let errors = [];\r\n\r\n arr.forEach((res) => {\r\n if (res.Insercion == \"False\") {\r\n errors.push(res);\r\n }\r\n });\r\n\r\n setResultErrors(errors);\r\n };\r\n\r\n const pending_vacations_table = () => {\r\n let table = [];\r\n let solicitudes = props.vacationsMassiveData?.VacationsMassive;\r\n\r\n let type = showTable == \"1\" ? \"Vacación\" : \"Cancelación\";\r\n if (Array.isArray(solicitudes)) {\r\n solicitudes = solicitudes.filter(\r\n (solicitud) => (solicitud.TipoSolicitud || \"Vacación\") == type\r\n );\r\n solicitudes = solicitudes.filter(\r\n (solicitud) =>\r\n solicitud.Nombre.includes(tableFilter.toUpperCase()) ||\r\n solicitud.Centro_id.includes(tableFilter) ||\r\n solicitud.Trab_id.includes(tableFilter) ||\r\n solicitud.Dia.includes(tableFilter.toUpperCase()) ||\r\n solicitud.FechaInicio.includes(tableFilter) ||\r\n solicitud.FechaFin.includes(tableFilter)\r\n );\r\n }\r\n\r\n if (!solicitudes || solicitudes.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"}>\r\n <td colSpan=\"6\">No hay información para mostrar.</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n );\r\n } else {\r\n solicitudes = solicitudes.sort((a, b) => {\r\n return a.Nombre - b.Nombre;\r\n });\r\n\r\n solicitudes = solicitudes.sort((a, b) => {\r\n return a.Centro_id - b.Centro_id;\r\n });\r\n\r\n\r\n solicitudes.map((item, i) => {\r\n table.push(\r\n <tr\r\n key={type + item.SolicitudID + item.Trab_id}\r\n style={{\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n <td>\r\n <input\r\n name={type + item.SolicitudID + item.Trab_id}\r\n type=\"checkbox\"\r\n onClick={() => handleSelectRequest(item)}\r\n value={item.id}\r\n className=\"with-gap\"\r\n id={type + item.SolicitudID + item.Trab_id}\r\n />\r\n <label htmlFor={type + item.SolicitudID + item.Trab_id}></label>\r\n </td>\r\n <td>{item.Trab_id}</td>\r\n <td>{item.Nombre}</td>\r\n <td>{item.Centro_id}</td>\r\n <td>{item.Dia}</td>\r\n <td>\r\n {item.RangoFechas == \"true\"\r\n ? \"Del \" +\r\n formatDate(item.FechaInicio) +\r\n \" al \" +\r\n formatDate(item.FechaFin)\r\n : formatDate(item.FechaInicio)}\r\n </td>\r\n <td style={{ color: \"#faa52c\" }}>\r\n <i className=\"mdi mdi-calendar-clock\"></i> Solicitado\r\n </td>\r\n </tr>\r\n );\r\n });\r\n }\r\n \r\n return table;\r\n };\r\n\r\n const formatDate = (value) => {\r\n let date = new Date(value);\r\n\r\n return (\r\n (\"0\" + date.getDate()).slice(-2) +\r\n \"/\" +\r\n (\"0\" + (date.getMonth() + 1)).slice(-2) +\r\n \"/\" +\r\n date.getFullYear()\r\n );\r\n };\r\n\r\n const handleSelectRequest = (item) => {\r\n let exists = selectedRequests.filter(\r\n (el) => el[\"wcf:ListSolicitudMas\"][\"wcf:SolicitudID\"] == item.SolicitudID\r\n );\r\n if (exists.length <= 0) {\r\n setSelectedRequests([\r\n ...selectedRequests,\r\n {\r\n \"wcf:ListSolicitudMas\": {\r\n \"wcf:Fecha\": item.FechaVacacion,\r\n \"wcf:JefeTrab_id\": item.JefeTrab_id,\r\n \"wcf:NombreCompleto\": item.Nombre,\r\n \"wcf:SolicitudID\": item.SolicitudID,\r\n \"wcf:Trab_id\": item.Trab_id,\r\n },\r\n },\r\n ]);\r\n } else {\r\n setSelectedRequests(\r\n selectedRequests.filter(\r\n (el) =>\r\n el[\"wcf:ListSolicitudMas\"][\"wcf:SolicitudID\"] != item.SolicitudID\r\n )\r\n );\r\n }\r\n };\r\n\r\n const handleButtons = (e, action) => {\r\n e.preventDefault();\r\n\r\n if (selectedRequests.length <= 0) {\r\n alert(\"Debes seleccionar por lo menos una solicitud.\");\r\n return;\r\n }\r\n\r\n let { params, server } = getParams();\r\n\r\n let type = showTable === \"1\" ? \"1\" : \"3\";\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:idEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:solicitudes\": {\r\n \"wcf:Autoriza\": action,\r\n \"wcf:Solicitudes\": selectedRequests,\r\n \"wcf:TipoSolicitud\": type,\r\n \"wcf:UserProceso\": params[\"tem:TrabID\"],\r\n },\r\n };\r\n\r\n type = showTable === \"1\" ? \"vacaciones\" : \"cancelaciones\";\r\n\r\n if (action === 1) {\r\n confirm(\"¿Deseas autorizar las \" + type + \" seleccionadas?\").then(\r\n (res) => {\r\n if (res) {\r\n setLoading(true);\r\n props.getRejectVacationsMassiveAction(params, server);\r\n setTableFilter(\"\");\r\n }\r\n }\r\n );\r\n } else if (action === 0) {\r\n confirm(\"¿Deseas rechazar las \" + type + \" seleccionadas?\").then(\r\n (res) => {\r\n if (res) {\r\n setLoading(true);\r\n props.getRejectVacationsMassiveAction(params, server);\r\n setTableFilter(\"\");\r\n }\r\n }\r\n );\r\n }\r\n };\r\n\r\n const handleDropdown = (e) => {\r\n setSelectedRequests([]);\r\n setShowTable(e.target.value);\r\n };\r\n\r\n const handleFilter = (event) => {\r\n setTableFilter(event.target.value);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Autorización Masiva de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"d-flex\">\r\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\r\n <select\r\n className=\"form-control p-2 col-3\"\r\n onChange={handleDropdown}\r\n defaultValue={showTable === \"1\" ? \"1\" : \"2\"}\r\n >\r\n <option value=\"1\">\r\n VACACIONES\r\n </option>\r\n <option value=\"2\">\r\n CANCELACIONES\r\n </option>\r\n </select>\r\n <div className=\"form-material col-3 ml-auto\">\r\n <input\r\n placeholder=\"Buscar...\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n onChange={(e) => handleFilter(e)}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n {selectedRequests.length > 0 && (\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"col-md-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn waves-effect waves-light btn-block btn-danger\"\r\n onClick={(e) => handleButtons(e, 0)}\r\n disabled={selectedRequests.length <= 0}\r\n >\r\n Rechazar\r\n </button>\r\n </div>\r\n <div className=\"col-md-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn waves-effect waves-light btn-block btn-success\"\r\n style={{\r\n backgroundColor: \"#5cb85c\",\r\n border: \"none\",\r\n }}\r\n onClick={(e) => handleButtons(e, 1)}\r\n disabled={selectedRequests.length <= 0}\r\n >\r\n Autorizar\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>Centro</th>\r\n <th>Día</th>\r\n <th>Fecha Vacación</th>\r\n <th>Status</th>\r\n </tr>\r\n </thead>\r\n <tbody>{pending_vacations_table()}</tbody>\r\n </table>\r\n {selectedRequests.length > 0 && (\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"col-md-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn waves-effect waves-light btn-block btn-danger\"\r\n onClick={(e) => handleButtons(e, 0)}\r\n disabled={selectedRequests.length <= 0}\r\n >\r\n Rechazar\r\n </button>\r\n </div>\r\n <div className=\"col-md-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn waves-effect waves-light btn-block btn-success\"\r\n style={{\r\n backgroundColor: \"#5cb85c\",\r\n border: \"none\",\r\n }}\r\n onClick={(e) => handleButtons(e, 1)}\r\n disabled={selectedRequests.length <= 0}\r\n >\r\n Autorizar\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n vacationsMassiveData: state.vacationsMassive.vacationsMassiveData,\r\n vacationsMassiveError: state.vacationsMassive.vacationsMassiveError,\r\n\r\n authorizeVacationsMassiveData:\r\n state.authorizeVacationsMassive.authorizeVacationsMassiveData,\r\n authorizeVacationsMassiveError:\r\n state.authorizeVacationsMassive.authorizeVacationsMassiveError,\r\n\r\n rejectVacationsMassiveData:\r\n state.rejectVacationsMassive.rejectVacationsMassiveData,\r\n rejectVacationsMassiveError:\r\n state.rejectVacationsMassive.rejectVacationsMassiveError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getVacationsMassiveAction,\r\n getAuthorizeVacationsMassiveAction,\r\n getRejectVacationsMassiveAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(VacationRequestsMassive)\r\n);\r\n","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport Topbar from '../../layout/Topbar.js';\nimport Leftsidebar from '../../layout/EmployeeLeftsidebar.js';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\nimport { getControlVacationsAction } from '../../../api/actions/systemAdmin/ControlVacationsAction';\n\nimport { getParams } from '../../../utils';\nimport { alert, confirm } from '../../../utils/common/alert';\n\nconst EmployeeVacationsControl = props => {\n const { params, server } = getParams();\n const [ loading, setLoading ] = useState(true);\n const [ isCtrlVacEmplV2, setIsCtrlVacEmp2 ] = useState(false);\n const [ controlVacations, setControlVacations ] = useState([]);\n\n useEffect(() => {\n getControlVacations();\n }, []);\n\n useEffect(() => {\n if (props.controlVacationsData && props.controlVacationsData.isOK) {\n setLoading(false);\n console.log('CONTROL VACATIONS', props.controlVacationsData);\n if ('ControlVacations' in props.controlVacationsData) {\n let ctrlVacs = [...props.controlVacationsData.ControlVacations];\n setControlVacations(ctrlVacs);\n \n if (ctrlVacs.length == 0 && !isCtrlVacEmplV2) {\n setIsCtrlVacEmp2(true);\n getControlVacations(true);\n }\n }\n } \n else if (props.controlVacationsError && props.controlVacationsError.isOK === false) {\n setLoading(false);\n setControlVacations([]);\n props.getControlVacationsAction('PURGE', '');\n }\n }, [props.controlVacationsData, props.controlVacationsError]);\n\n const getControlVacations = (isV2 = false) => {\n setLoading(true);\n let send = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_id': props?.location?.state?.id != undefined ? props.location.state.id : '',\n };\n \n if (!isV2) {\n props.getControlVacationsAction(send, server);\n }\n else {\n props.getControlVacationsAction(send, server, isV2);\n }\n };\n\n const showColumns = (ctrlVacs = []) => {\n let show = {\n PERIODO: false,\n ANTIGUEDAD: true,\n ANIVERSARIO: false,\n DIAS_OTORGADOS: true,\n DIAS_PROPORCIONALES: false,\n DIAS_DISFRUTADOS: false,\n DIAS_PENDIENTES: true,\n VENCIMIENTO: true,\n DIAS_PERDIDOS: false,\n };\n\n if (process.env.REACT_APP_IS_KRONES == '1') {\n show.PERIODO = [...ctrlVacs].some(item => item.IdVersion === '2');\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = true;\n show.DIAS_PERDIDOS = true;\n }\n else if (isCtrlVacEmplV2) {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_DISFRUTADOS\") == '1';\n show.DIAS_PERDIDOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1';\n }\n else if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_PROPORCIONALES = true;\n show.DIAS_DISFRUTADOS = true;\n show.DIAS_PERDIDOS = true;\n }\n else {\n show.ANIVERSARIO = localStorage.getItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\") == '1';\n show.DIAS_DISFRUTADOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_DISFRUTADOS\") == '1';\n show.DIAS_PERDIDOS = localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1';\n }\n return show;\n };\n \n const data = () => {\n let table = [];\n let movimientos = controlVacations;\n\n if (!controlVacations || controlVacations.length <= 0) {\n table.push(\n <tr key=\"empty\">\n <td>No hay registros que mostar.</td>\n </tr>\n );\n\n return table;\n } \n \n //movimientos = movimientos.sort((a, b) => { return a.ptr - b.ptr; });\n console.log('MOVIMIENTOS', controlVacations);\n\n let show = showColumns(controlVacations);\n controlVacations.map((item, i) => {\n table.push(\n <tr key={i} style={{ cursor: 'pointer' }}>\n {show.PERIODO && <td>{item.Periodo}</td>}\n {show.ANTIGUEDAD && <td>{item.Antiguedad}</td>}\n {show.ANIVERSARIO && <td>{moment(item.FechaAniversario).format('DD/MM/YYYY')}</td>}\n {show.DIAS_OTORGADOS && <td>{item.VcacionesOtorgadas}</td>}\n {show.DIAS_PROPORCIONALES && <td>{item.Proporcionales}</td>}\n {show.DIAS_DISFRUTADOS && <td>{item.VacacionesGozadas}</td>}\n {show.DIAS_PENDIENTES && <td>{item.VacacionesPendientes}</td>}\n {show.VENCIMIENTO && <td>{moment(item.FechaVencimiento).format('DD/MM/YYYY')}</td>}\n {show.DIAS_PERDIDOS && <td>{item.VacacionesPerdidas}</td>}\n </tr>\n );\n });\n \n return table;\n };\n\n const head = () => {\n let show = showColumns(controlVacations);\n return (\n <tr>\n {show.PERIODO && <th>PERIODO</th>}\n {show.ANTIGUEDAD && <th>ANTIGUEDAD</th>}\n {show.ANIVERSARIO && <th>ANIVERSARIO</th>}\n {show.DIAS_OTORGADOS && <th>DÍAS OTORGADOS</th>}\n {show.DIAS_PROPORCIONALES && <th>DÍAS PROPORCIONALES</th>}\n {show.DIAS_DISFRUTADOS && <th>DÍAS DISFRUTADOS</th>}\n {show.DIAS_PENDIENTES && <th>DÍAS PENDIENTES</th>}\n {show.VENCIMIENTO && <th>VENCIMIENTO</th>}\n {show.DIAS_PERDIDOS && <th>DÍAS PERDIDOS</th>}\n </tr>\n );\n };\n\n // const data = () => {\n // let table = [];\n // let movimientos = props.controlVacationsData.ControlVacations;\n\n // if (!movimientos || movimientos.length <= 0) {\n // table.push(\n // <tr key=\"empty\">\n // <td>No hay registros que mostar.</td>\n // </tr>\n // );\n // } \n // else {\n // movimientos = movimientos.sort((a, b) => { return a.ptr - b.ptr; });\n // console.log('MOVIMIENTOS', movimientos)\n\n // if (process.env.REACT_APP_IS_KRONES == '1') {\n // if (movimientos.some(item => item.IdVersion === '2')) {\n // movimientos.map((item, i) => {\n // table.push(\n // <tr key={i} style={{ cursor: 'pointer' }}>\n // <td>{item.periodo}</td>\n // <td>{item.Antiguedad}</td>\n // <td>{item.DiasOtorgados}</td>\n // <td>{item.Dias_Distrutados}</td>\n // <td>{item.Dias_Pendientes}</td>\n // <td>{moment(item.Vencimiento).format('DD/MM/YYYY')}</td>\n // <td>{item.VacacionesPerdidas}</td>\n // </tr>\n // );\n // });\n // } \n // else {\n // movimientos.map((item, i) => {\n // table.push(\n // <tr key={i} style={{ cursor: 'pointer' }}>\n // <td>{item.Antiguedad}</td>\n // <td>{item.DiasOtorgados}</td>\n // <td>{item.Dias_Pendientes}</td>\n // <td>{moment(item.Vencimiento).format('DD/MM/YYYY')}</td>\n // <td>{item.VacacionesPerdidas}</td>\n // </tr>\n // );\n // });\n // }\n // }\n // else if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\n // movimientos.map((item, i) => {\n // table.push(\n // <tr key={i} style={{ cursor: 'pointer' }}>\n // <td>{item.Antiguedad}</td>\n // <td>{item.VcacionesOtorgadas}</td>\n // <td>{item.Proporcionales}</td>\n // <td>{item.VacacionesGozadas}</td>\n // <td>{item.VacacionesPendientes}</td>\n // <td>{moment(item.FechaVencimiento).format('DD/MM/YYYY')}</td>\n // <td>{item.Canceladas}</td>\n // </tr>\n // );\n // });\n // }\n // else {\n // movimientos.map((item, i) => {\n // table.push(\n // <tr key={i} style={{ cursor: 'pointer' }}>\n // <td>{ item.Antiguedad }</td>\n // <td>{ item.VcacionesOtorgadas }</td>\n // <td>{ item.VacacionesPendientes }</td>\n // <td>{ moment(item.FechaVencimiento).format('DD/MM/YYYY') }</td>\n // {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1' && <td>{item.VacacionesPerdidas}</td>}\n // </tr>\n // );\n // });\n // }\n // }\n // return table;\n // };\n\n // const head = () => {\n // if (process.env.REACT_APP_IS_KRONES == '1') \n // {\n // let ctrlVacations = [...props?.controlVacationsData?.ControlVacations];\n // if (ctrlVacations.some(item => item.IdVersion === '2')) {\n // return (\n // <tr>\n // <th>PERIODO</th>\n // <th>ANTIGUEDAD</th>\n // <th>DÍAS OTORGADOS</th>\n // <th>DÍAS DISFRUTADOS</th>\n // <th>DÍAS PENDIENTES</th>\n // <th>VENCIMIENTO</th>\n // <th>DÍAS PERDIDOS</th>\n // </tr>\n // );\n // }\n // else {\n // return (\n // <tr>\n // <th>ANTIGUEDAD</th>\n // <th>DÍAS OTORGADOS</th>\n // <th>DÍAS PENDIENTES</th>\n // <th>VENCIMIENTO</th>\n // <th>DÍAS PERDIDOS</th>\n // </tr>\n // );\n // }\n // }\n // else if (localStorage.getItem(\"REACT_APP_INFO_DEVENGADAS\") == '1') {\n // return (\n // <tr>\n // <th>ANTIGUEDAD</th>\n // <th>DÍAS OTORGADOS</th>\n // <th>DÍAS PROPORCIONALES</th>\n // <th>DÍAS DISFRUTADOS</th>\n // <th>DÍAS PENDIENTES</th>\n // <th>VENCIMIENTO</th>\n // <th>DÍAS PERDIDOS</th>\n // </tr>\n // );\n // }\n // else {\n // return (\n // <tr>\n // <th>ANTIGUEDAD</th>\n // <th>DÍAS OTORGADOS</th>\n // <th>DÍAS PENDIENTES</th>\n // <th>VENCIMIENTO</th>\n // {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") == '1' && <th>DÍAS PERDIDOS</th>}\n // </tr>\n // );\n // }\n // };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const {id} = props.location.state;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar/>\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Autorización de Vacaciones\" redirect=\"/vacaciones-autorizar\" actual={id} icon=\"mdi mdi-routes\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n {head()}\n </thead>\n <tbody>\n {data()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n controlVacationsData: state.controlVacations.controlVacationsData,\n controlVacationsError: state.controlVacations.controlVacationsError,\n };\n};\n\nconst mapDispatchToProps = {\n getControlVacationsAction\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmployeeVacationsControl));\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../../layout/Topbar.js';\r\nimport EmployeeLeftsidebar from '../../layout/EmployeeLeftsidebar.js';\r\nimport SystemAdminLeftsidebar from '../../layout/SystemAdminLeftsidebar.js';\r\nimport Title from '../../layout/Title.js';\r\nimport Footer from '../../layout/Footer.js';\r\nimport { CtrlVacionEmpleadoDatosAction, CtrlVacacionesEmpleadoV4Action } from '../../../api/actions/empleado/ControlVacacionesEmpleadoAction';\r\n\r\nimport { getParams, getSesionStorage } from '../../../utils';\r\nimport { alert, confirm } from '../../../utils/common/alert';\r\nimport Card from '../../../components/shared/Card.js';\r\n\r\nconst EmployeeVacationsControlV2 = props => {\r\n const [loading, setLoading] = useState(true);\r\n const [ vacacionDatos, setVacacionDatos ] = useState({});\r\n const [ ctrlVacacion, setCtrlVacacion ] = useState([]);\r\n\r\n useEffect(() => {\r\n getDatosVacacion();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.ctrlVacionEmpleadoDatosData && props.ctrlVacionEmpleadoDatosData.isOK) {\r\n setVacacionDatos(props.ctrlVacionEmpleadoDatosData.CtrlVacionEmpleadoDatos);\r\n getCtrlVacacion();\r\n } \r\n else if (props.ctrlVacionEmpleadoDatosError && props.ctrlVacionEmpleadoDatosError.isOK === false) {\r\n props.CtrlVacionEmpleadoDatosAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.ctrlVacionEmpleadoDatosData, props.ctrlVacionEmpleadoDatosError]);\r\n\r\n useEffect(() => {\r\n if (props.ctrlVacacionesEmpleadoV4Data && props.ctrlVacacionesEmpleadoV4Data.isOK) {\r\n setCtrlVacacion(props.ctrlVacacionesEmpleadoV4Data.CtrlVacacionesEmpleadoV4);\r\n setLoading(false);\r\n } \r\n else if (props.ctrlVacacionesEmpleadoV4Error && props.ctrlVacacionesEmpleadoV4Error.isOK === false) {\r\n props.CtrlVacacionesEmpleadoV4Action('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.ctrlVacacionesEmpleadoV4Data, props.ctrlVacacionesEmpleadoV4Error]);\r\n\r\n const getDatosVacacion = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_id': props?.location?.state?.id != undefined ? props.location.state.id : '0',\r\n }\r\n\r\n props.CtrlVacionEmpleadoDatosAction(params, server);\r\n };\r\n\r\n const getCtrlVacacion = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Trab_id': props?.location?.state?.id != undefined ? props.location.state.id : '0',\r\n }\r\n\r\n props.CtrlVacacionesEmpleadoV4Action(params, server);\r\n };\r\n\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 2:\r\n return <EmployeeLeftsidebar />;\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n default:\r\n return <EmployeeLeftsidebar />;\r\n }\r\n };\r\n\r\n const data = () => {\r\n let table = [];\r\n let movimientos = ctrlVacacion;\r\n\r\n if (!movimientos || movimientos.length <= 0) {\r\n table.push(\r\n <tr key=\"empty\">\r\n <td>No hay registros que mostar.</td>\r\n </tr>\r\n );\r\n } \r\n else {\r\n movimientos = movimientos.sort((a, b) => {\r\n return a.ptr - b.ptr;\r\n });\r\n\r\n console.log('MOVIMIENTOS', movimientos)\r\n\r\n movimientos.map((item, i) => {\r\n table.push(\r\n <tr key={i} style={{ cursor: 'pointer' }}>\r\n {/* <td>{ item.Año }</td>\r\n <td>{ moment(item.FechaDisponibilidad).format('DD/MM/YYYY') }</td>\r\n <td>{ moment(item.FechaVencimiento).format('DD/MM/YYYY') }</td>\r\n <td>{ item.DiasOtorgados }</td>\r\n <td>{ item.VacacionesGozadasDelAno }</td>\r\n {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") != '1' && <td>{item.VacacionesPerdidasDelAno}</td>} */}\r\n <td>{ item.Año }</td>\r\n <td>{ item.AnosDeAntiguedad }</td>\r\n <td>{ item.DiasOtorgados }</td>\r\n <td>{ item.VacacionesGozadasDelAno }</td>\r\n <td>{ item.VacacionesPendientesDelAño }</td>\r\n <td>{ moment(item.FechaVencimiento).format('DD/MM/YYYY') }</td>\r\n </tr>\r\n );\r\n });\r\n }\r\n\r\n return table;\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n const {id} = props.location.state;\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar/>\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title path=\"Autorización de Vacaciones\" redirect=\"/vacaciones-autorizar\" actual={id} icon=\"mdi mdi-routes\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Trab_ID}\r\n name=\"EMPLEADO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-help-circle-outline text-success\"\r\n value={vacacionDatos.Nombre}\r\n name=\"NOMBRE\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-help-circle-outline text-success\" \r\n value={vacacionDatos.FechaIngreso} \r\n name=\"INGRESO\"\r\n type=\"date\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-briefcase text-success\"\r\n value={vacacionDatos.RFC}\r\n name=\"RFC\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-store-24-hour text-success\"\r\n value={vacacionDatos.IMSS}\r\n name=\"IMSS\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-account-location text-success\" \r\n value={vacacionDatos.CURP} \r\n name=\"CURP\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Puesto}\r\n name=\"PUESTO\"\r\n />\r\n <Card\r\n icon=\"mdi mdi-account-card-details text-purple\"\r\n value={vacacionDatos.Depto}\r\n name=\"DEPARTAMENTO\"\r\n />\r\n <Card \r\n icon=\"mdi mdi-calendar text-purple\" \r\n value={vacacionDatos.Vacaciones} \r\n name=\"TOTAL DÍAS DE VACACIONES\"\r\n />\r\n </div>\r\n <div className=\"card-group\">\r\n <Card\r\n icon=\"mdi mdi-calendar-check text-success\"\r\n value={vacacionDatos.Años + (!isNaN(vacacionDatos.Años) ? ' Años' : '')}\r\n name=\"ANTIGÜEDAD\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n {/* <th>Periodo Vacaciones</th>\r\n <th>Fecha Disponibilidad</th>\r\n <th>Fecha Vencimiento</th>\r\n <th>Días Ganados</th>\r\n <th>Días Disfrutados</th>\r\n {localStorage.getItem(\"REACT_APP_INFO_DIAS_PERDIDOS\") != '1' && <th>Días Perdidods</th>} */}\r\n <th>PERIODO</th>\r\n <th>ANTIGÜEDAD</th>\r\n <th>DÍAS OTORGADOS LEY</th>\r\n <th>DÍAS DISFRUTADOS</th>\r\n <th>DÍAS PENDIENTES</th>\r\n <th>VENCIMIENTO</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n ctrlVacionEmpleadoDatosData: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosData,\r\n ctrlVacionEmpleadoDatosError: state.ctrlVacionEmpleadoDatos.ctrlVacionEmpleadoDatosError,\r\n\r\n ctrlVacacionesEmpleadoV4Data: state.ctrlVacacionesEmpleadoV4.ctrlVacacionesEmpleadoV4Data,\r\n ctrlVacacionesEmpleadoV4Error: state.ctrlVacacionesEmpleadoV4.ctrlVacacionesEmpleadoV4Error,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n CtrlVacionEmpleadoDatosAction,\r\n CtrlVacacionesEmpleadoV4Action,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmployeeVacationsControlV2));\r\n","import React, { useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../../layout/EmployeeLeftsidebar.js';\nimport SystemAdminLeftsidebar from '../../layout/SystemAdminLeftsidebar.js';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\n\nimport { getRequestVacationsAllAction } from '../../../api/actions/jefe/RequestedVacationsAllAction';\nimport { AuthorizeVacationsAction } from '../../../api/actions/jefe/AuthorizeVacationsAction';\nimport { RejectVacationsAction } from '../../../api/actions/jefe/RejectVacationsAction';\nimport { getVacationsAction } from '../../../api/actions/empleado/VacationsAction';\nimport { getParams, getSesionStorage } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\nconst IncidentsAuthorization = props => {\n\n const [loading, setLoading] = useState(true);\n const [allRequests, setAllRequests] = useState(null);\n\n const loadInfoIncidentsTrabs = (solicitudes) => {\n if (process.env.REACT_APP_IS_KRONES == \"1\") {\n let { params, server } = getParams();\n setTimeout(() => {\n solicitudes.forEach((item) => { \n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': item.trabID,\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n \n props.getVacationsAction(params, server);\n });\n }, 1000);\n }\n }\n\n useEffect(() => {\n\n // Se agregó el usertype para poder visualizar la lista de solicitudes de incidencias filtradas por jefe y sin filtrar (cuando se ingresa desde un usuario administrador)\n let storage = getSesionStorage('userType');\n\n props.AuthorizeVacationsAction('PURGE', '');\n props.RejectVacationsAction('PURGE', '');\n props.getRequestVacationsAllAction('PURGE', '');\n props.getVacationsAction('PURGE', '');\n\n if (storage.typeUser === 5) {\n\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getRequestVacationsAllAction(params, server);\n\n } else {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n }\n props.getRequestVacationsAllAction(params, server);\n }\n }, []);\n\n useEffect(() => {\n if (props.requestVacationsAllData && props.requestVacationsAllData.isOK) {\n let solicitudes = [...props.requestVacationsAllData.RecuestVacationsAll];\n solicitudes.map((item) => { item.Status = \"Cargando...\"; });\n\n setAllRequests(solicitudes);\n setLoading(false);\n console.log('OIHB', solicitudes);\n\n loadInfoIncidentsTrabs(solicitudes);\n } \n else if (props.requestVacationsAllError && props.requestVacationsAllError.isOK === false) {\n props.getRequestVacationsAllAction('PURGE', '');\n setLoading(false);\n }\n }, [props.requestVacationsAllData, props.requestVacationsAllError]);\n\n useEffect(() => {\n if (props.vacationsData && props.vacationsData.isOK === true) {\n if (allRequests) {\n let data = props.vacationsData.Vacations;\n let pendiente1 = data.incidencias.filter((item) => item.Status == \"Solicitado\").length;\n\n let solicitudes = [...allRequests];\n let obj = solicitudes.find((item) => item.trabID == data.trabId);\n if (obj) {\n obj.Status = ((pendiente1) > 0 ? \"Pendientes por Autorizar\" : \"Sin pendientes por autorizar\");\n }\n\n setAllRequests(solicitudes);\n }\n setLoading(false);\n }\n else if (props.vacationsError && props.vacationsError.isOK === false) {\n props.getVacationsAction('PURGE', '');\n setLoading(false);\n }\n }, [props.vacationsData]);\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n console.log('OIHB employee type', storage);\n switch (storage.typeUser) {\n case 2:\n return <EmployeeLeftsidebar />;\n case 5:\n return <SystemAdminLeftsidebar />;\n default:\n return <EmployeeLeftsidebar />;\n }\n };\n\n\n const vacations_table = () => {\n\n let table = [];\n let incidencias = allRequests;\n if (incidencias && incidencias.length > 0) {\n if (incidencias[0]['error']) {\n table.push(\n <tr key={'error'}>\n <td>No hay información para mostrar.</td>\n </tr>\n );\n } else {\n let color = '';\n incidencias.map((item, i) => {\n console.log('ITEM INCIDENCIA', incidencias)\n color = (item.Status.toLowerCase().includes('sin pendientes') ? '#93c03f' : '#faa52c');\n table.push(\n <tr key={i + '_' + item.solicitudID}>\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}>{item.nombreCompleto}</td>\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}>{item.trabID}</td>\n {process.env.REACT_APP_IS_KRONES == \"1\" && <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer', color: color }}>{item.Status}</td>}\n {/*<td><button onClick={() => _handleEmployeeHistroy(item.trabID)} className=\"btn btn-outline-secondary\"><i className=\"mdi mdi-file-document\"></i></button></td>*/}\n <td onClick={() => _handleRowClick(item.solicitudID, item)} style={{ cursor: 'pointer' }}><i className=\"mdi mdi-chevron-right\" ></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr key=\"0\">\n <td>No hay fechas solicitadas</td>\n <td></td>\n </tr>\n );\n }\n\n return table;\n };\n\n /* const _handleEmployeeHistroy = (id) => {\n props.history.push(`${process.env.PUBLIC_URL}/control-vacaciones-empleado`, { 'id': id });\n };\n */\n\n const _handleRowClick = (id, item) => {\n props.history.push(`${process.env.PUBLIC_URL}/incidentsauthorization/incidentsrequestdetail/`, item);\n };\n\n const url = () => {\n let { params, server } = getParams();\n let sToken = params['tem:sToken'] || '';\n let IdEmpresa = params['tem:IdEmpresa'] || '';\n let TrabID = params['tem:TrabID'] || '';\n\n let LigaPBIMSS = (sessionStorage.getItem('SICONSULTA_LigaPBInciAutoriza') || 'localhost').trim(); \n\n console.log('OIHB URL BLAZOR', LigaPBIMSS);\n\n return LigaPBIMSS.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else if (localStorage.getItem('REACT_APP_PANTALLAS_BLAZOR') == '1') {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <div className=\"container-fluid\" style={ { padding: '0', margin: '0' } }>\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\n WebkitOverflowScrolling: 'touch',\n paddingBottom: 0 }}>\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Autorización de Incidencias\" icon=\"mdi mdi-account-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block justify-content-between\">\n <h4 className=\"card-title\">SOLICITUDES DE INCIDENCIAS</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Nombre Completo</th>\n <th style={{ width: '16%' }}># de Usuario</th>\n {process.env.REACT_APP_IS_KRONES == \"1\" && <th style={{ width: '18%' }}>Estatus</th>}\n <th style={{ width: '10%' }}></th>\n </tr>\n </thead>\n <tbody>\n {vacations_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n requestVacationsAllData: state.requestVacationsAll.requestVacationsAllData,\n requestVacationsAllError: state.requestVacationsAll.requestVacationsAllError,\n\n vacationsData: state.vacations.vacationsData,\n vacationsError: state.vacations.vacationsError,\n };\n};\n\nconst mapDispatchToProps = {\n getRequestVacationsAllAction,\n AuthorizeVacationsAction,\n RejectVacationsAction,\n getVacationsAction,\n};\n\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentsAuthorization));\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { AuthorizeIncidentAction } from '../../../api/actions/jefe/AuthorizeIncidentAction';\r\nimport { RejectIncidentAction } from '../../../api/actions/jefe/RejectIncidentAction';\r\nimport { getVacationsAction } from '../../../api/actions/empleado/VacationsAction';\r\nimport { getVacationsActionV2 } from '../../../api/actions/empleado/VacationsActionV2';\r\nimport { seeVacationsAction } from '../../../api/actions/jefe/SeeVacationsAction';\r\nimport { GetValoresConfigAction } from \"../../../api/actions/common/GetValoresConfigAction\";\r\nimport { getAuthorizeCancelIncidentsAction } from '../../../api/actions/jefe/AuthorizeCancelIncidentsAction';\r\nimport { getRejectCancelIncidentsAction } from '../../../api/actions/jefe/RejectCancelIncidentsAction';\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport moment from 'moment';\r\nimport download from \"downloadjs\";\r\n\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../../layout/Topbar.js';\r\nimport EmployeeLeftsidebar from '../../layout/EmployeeLeftsidebar.js';\r\nimport SystemAdminLeftsidebar from '../../layout/SystemAdminLeftsidebar.js';\r\nimport Title from '../../layout/Title.js';\r\nimport Footer from '../../layout/Footer.js';\r\nimport Card from '../../../components/shared/Card.js';\r\nimport { getParams, getSesionStorage } from '../../../utils';\r\nimport { alert } from '../../../utils/common/alert';\r\nimport Row from '../../../components/row/Row'\r\n\r\nconst IncidentsRequestDetail = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [showModal, setShowModal] = useState(false);\r\n const [dataModal, setDataModal] = useState({});\r\n const [showTable, setShowTable] = useState('1');\r\n const [comment, setComment] = useState('');\r\n const [valoresConfig, setValoresConfig] = useState([]);\r\n\r\n const userType = getSesionStorage('userType');\r\n console.log(userType)\r\n\r\n const [sortByNewest, setSortByNewest] = useState(true);\r\n const [action, setAction] = useState('1')\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n const loadData = () => {\r\n let { params, server } = getParams();\r\n const { trabID } = props.location.state;\r\n\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': trabID,\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:ArchivoAdjunto': true,\r\n };\r\n\r\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\r\n props.getVacationsActionV2(_params, server);\r\n } else {\r\n props.getVacationsAction(_params, server);\r\n }\r\n\r\n GetValoresConfig('SICONSULTA');\r\n };\r\n\r\n useEffect(() => {\r\n if (props.vacationsData && props.vacationsData.isOK === true) {\r\n console.log('OIHB Incidencias', props.vacationsData);\r\n setLoading(false);\r\n }\r\n\r\n }, [props.vacationsData]);\r\n\r\n useEffect(() => {\r\n if (props.authorizeIncidentData && props.authorizeIncidentData.isOK === true) {\r\n alert('La solicitud fue autorizada exitosamente.');\r\n props.AuthorizeIncidentAction('PURGE', '');\r\n } else if (props.authorizeIncidentError && props.authorizeIncidentError.isOK === false) {\r\n props.AuthorizeIncidentAction('PURGE', '');\r\n }\r\n setLoading(true);\r\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\r\n props.getVacationsActionV2('PURGE', '');\r\n } else {\r\n props.getVacationsAction('PURGE', '');\r\n }\r\n loadData();\r\n }, [props.authorizeIncidentData, props.authorizeIncidentError]);\r\n\r\n useEffect(() => {\r\n if (props.rejectIncidentData && props.rejectIncidentData.isOK === true) {\r\n alert('La solicitud fue rechazada exitosamente.');\r\n props.RejectIncidentAction('PURGE', '');\r\n } else if (props.rejectIncidentError && props.rejectIncidentError.isOK === false) {\r\n props.RejectIncidentAction('PURGE', '');\r\n }\r\n setLoading(true);\r\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\r\n props.getVacationsActionV2('PURGE', '');\r\n } else {\r\n props.getVacationsAction('PURGE', '');\r\n }\r\n loadData();\r\n\r\n }, [props.rejectIncidentData, props.rejectIncidentError]);\r\n\r\n useEffect(() => {\r\n if (props.authorizeCancelIncidentsData && props.authorizeCancelIncidentsData.isOK === true) {\r\n alert('La solicitud fue autorizada exitosamente.');\r\n props.getAuthorizeCancelIncidentsAction('PURGE', '');\r\n } else if (props.authorizeCancelIncidentsError && props.authorizeCancelIncidentsError.isOK === false) {\r\n props.getAuthorizeCancelIncidentsAction('PURGE', '');\r\n }\r\n setLoading(true);\r\n props.getVacationsActionV2('PURGE', '');\r\n loadData();\r\n }, [props.authorizeCancelIncidentsData, props.authorizeCancelIncidentsError]);\r\n\r\n useEffect(() => {\r\n if (props.rejectCancelIncidentsData && props.rejectCancelIncidentsData.isOK === true) {\r\n alert('La solicitud fue rechazada exitosamente.');\r\n props.getRejectCancelIncidentsAction('PURGE', '');\r\n } else if (props.rejectCancelIncidentsError && props.rejectCancelIncidentsError.isOK === false) {\r\n props.getRejectCancelIncidentsAction('PURGE', '');\r\n }\r\n setLoading(true);\r\n props.getVacationsActionV2('PURGE', '');\r\n loadData();\r\n }, [props.rejectCancelIncidentsData, props.rejectCancelIncidentsError]);\r\n\r\n useEffect(() => {\r\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\r\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\r\n if (configuraciones.length > 0) {\r\n setValoresConfig(configuraciones);\r\n }\r\n else {\r\n setValoresConfig([]);\r\n }\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\r\n setValoresConfig([]);\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getValoresConfigData, props.getValoresConfigError]);\r\n\r\n const GetValoresConfig = (seccion, variable = '') => {\r\n let { params, server } = getParams();\r\n\r\n let send = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion,\r\n \"tem:Variable\": variable,\r\n };\r\n\r\n props.GetValoresConfigAction(send, server);\r\n };\r\n\r\n const _handleCloseModal = () => {\r\n setShowModal(false);\r\n setComment('')\r\n }\r\n\r\n const _handleConfirmModal = (action, data = null, type) => {\r\n if (action == 0 && comment.length == 0) { // && process.env.REACT_APP_IS_KRONES == '1'\r\n alert('Se requiere un comentario de rechazo');\r\n return;\r\n }\r\n\r\n let storage = getSesionStorage('userType');\r\n const { trabID } = props.location.state;\r\n\r\n // Se agregó esta condición ya que ahora la autorizacion la puede realizar un usuario admin (si se activa la funcionalidad)\r\n if (storage.typeUser === 5) {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': trabID,\r\n 'tem:Solicitud_ID': data,\r\n 'tem:TrabIDJefe': params['tem:TrabID'],\r\n 'tem:Autoriza': String(action),\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Comentario': comment,\r\n 'tem:AutorizaAdmin': true,\r\n\r\n };\r\n\r\n if (type == 'vacacion') {\r\n if (action === 1) {\r\n props.AuthorizeIncidentAction(params, server);\r\n } else if (action === 0) {\r\n props.RejectIncidentAction(params, server);\r\n }\r\n }\r\n } else {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': trabID,\r\n 'tem:Solicitud_ID': data,\r\n 'tem:TrabIDJefe': params['tem:TrabID'],\r\n 'tem:Autoriza': String(action),\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Comentario': comment\r\n\r\n };\r\n\r\n if (type == 'vacacion') {\r\n if (action === 1) {\r\n\r\n props.AuthorizeIncidentAction(params, server);\r\n\r\n } else if (action === 0) {\r\n\r\n props.RejectIncidentAction(params, server);\r\n\r\n }\r\n }\r\n }\r\n\r\n setAction(String(action))\r\n setShowModal(false);\r\n setLoading(true);\r\n };\r\n\r\n const handleInput = event => {\r\n var value = event.target.value;\r\n setComment(value);\r\n }\r\n\r\n const vacations_table = () => {\r\n\r\n let table = [];\r\n let incidencias = {}\r\n // Esta condición sirve para mandar a llamar el action que contiene la respuesta con el array que divide las cancelaciones de incidencias de las incidencias.\r\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\r\n incidencias = props.vacationsData.VacationsV2.incidencias;\r\n } else {\r\n incidencias = props.vacationsData.Vacations.incidencias;\r\n }\r\n console.log('INCIDENCIAS', incidencias)\r\n if (!incidencias || incidencias.length <= 0) {\r\n table.push(\r\n <tr key={'error'}>\r\n <td>No hay información para mostrar.</td>\r\n </tr>\r\n );\r\n }\r\n else {\r\n\r\n incidencias = incidencias.sort((a, b) => {\r\n if (sortByNewest) {\r\n return new Date(b.FechaSolicitud) - new Date(a.FechaSolicitud);\r\n } else {\r\n return new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud);\r\n }\r\n });\r\n\r\n incidencias.map((item, i) => {\r\n let color;\r\n\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Rechazada':\r\n color = '#be2b71';\r\n break;\r\n\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n table.push(\r\n <tr key={item.SolicitudID}>\r\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\r\n <td>{item.TipoSolString}</td>\r\n <Row item={item} />\r\n {/* <td className='tdMax' style={{ whiteSpace: 'normal' }} >{item.Dia}</td> */}\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')}</td>\r\n {(localStorage.getItem(\"REACT_APP_MUESTRA_MOTIVO\") == '1' ||\r\n valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) &&\r\n <td>{item.MotivoVacacion}</td>}\r\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'DescargarAdjunto' && s.Valor == '1'))) &&\r\n <td>\r\n {item.RutaDescarga.trim().length > 0 &&\r\n <button type=\"button\" style={{ float: 'right' }} className=\"btn btn-info m-l-5\" onClick={() => downloadUrl(item.RutaDescarga)}>\r\n Descargar<i className=\"mdi mdi-download\"></i>\r\n </button>}\r\n </td>}\r\n <td style={{ color: color, cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClick(item)} >\r\n <i className=\"mdi mdi-calendar-clock\"></i> {item.Status}\r\n </td>\r\n <td style={{ cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClick(item)}>\r\n {item.Status != 'Solicitado' ? '' : <i className=\"mdi mdi-chevron-right\"></i>}\r\n </td>\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n\r\n return table;\r\n };\r\n\r\n // Se agregó tabla para mostrar cancelaciones (solo se muestra se activa una variable en la tabla SicossConfig desde la base de datos y cuando el usuario es de tipo 2)\r\n const cancelations_table = () => {\r\n\r\n let table = [];\r\n let solicitudes = {}\r\n\r\n if (sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") == '1') {\r\n solicitudes = props.vacationsData.VacationsV2.solCancelIncidencias\r\n } else {\r\n solicitudes = props.vacationsData.Vacations.solCancelIncidencias\r\n }\r\n\r\n if (!solicitudes || solicitudes.length <= 0) {\r\n table.push(\r\n <tr key={'error'}>\r\n <td>No hay información para mostrar.</td>\r\n </tr>\r\n );\r\n }\r\n if (solicitudes.length > 0) {\r\n if (solicitudes[0]['error']) {\r\n table.push(\r\n <tr>\r\n <td>{solicitudes[0]['error']}</td>\r\n </tr>\r\n );\r\n }\r\n\r\n else {\r\n\r\n solicitudes = solicitudes.sort((a, b) => {\r\n if (sortByNewest) {\r\n return new Date(b.FechaSolicitud) - new Date(a.FechaSolicitud);\r\n } else {\r\n return new Date(a.FechaSolicitud) - new Date(b.FechaSolicitud);\r\n }\r\n });\r\n solicitudes.map((item, i) => {\r\n let color;\r\n\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Rechazada':\r\n color = '#be2b71';\r\n break;\r\n\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n let validateDates = (item.FechaInicio == undefined || item.FechaInicio == null || (item.FechaInicio == undefined || item.FechaInicio == null || item.FechaInicio === '')) ? item.FechaVacacion : item.FechaInicio\r\n table.push(\r\n <tr key={item.SolicitudID} onClick={() => _handleRowClickCancel(item)} style={{ cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }}>\r\n {/*<td>{ moment(item.FechaSolicitud).format('DD/MM/YYYY') }</td>*/}\r\n <td>{item.TipoSolString}</td>\r\n <td className='tdMax' style={{ whiteSpace: 'normal' }} >\r\n <div>\r\n {item.Dia}\r\n </div>\r\n </td>\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(validateDates).format('DD-MM-YYYY')}</td>\r\n\r\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) &&\r\n <td>{item.MotivoVacacion}</td>}\r\n <td style={{ color: color, cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClickCancel(item)} >\r\n <i className=\"mdi mdi-calendar-clock\"></i> {item.Status}\r\n </td>\r\n <td style={{ cursor: item.Status != 'Solicitado' ? 'default' : 'pointer' }} onClick={() => _handleRowClickCancel(item)}>\r\n {item.Status != 'Solicitado' ? '' : <i className=\"mdi mdi-chevron-right\"></i>}\r\n </td>\r\n </tr>\r\n );\r\n });\r\n\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const _handleRowClickCancel = item => {\r\n\r\n if (item.Status != 'Solicitado') {\r\n return;\r\n }\r\n let date = item.RangoFechas === 'true' ? ' del ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' al ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')\r\n\r\n setDataModal({\r\n title: 'Solicitud de Cancelación de Incidencia',\r\n body: `Se solicita una cancelación de incidencia para la fecha ${date}.`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n data: item.SolicitudID,\r\n incidencia: item.TipoSolicitud,\r\n haveComment: true\r\n });\r\n setShowModal(true);\r\n\r\n };\r\n\r\n const _handleCancelConfirmModal = (action, data, incidencia) => {\r\n if (action == 0 && comment.length == 0) { // && process.env.REACT_APP_IS_KRONES == '1'\r\n alert('Se requiere un comentario de rechazo');\r\n return;\r\n }\r\n const { trabID } = props.location.state;\r\n\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:TrabID': trabID,\r\n 'tem:Solicitud_ID': data,\r\n 'tem:Autoriza': String(action),\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Comentario': comment,\r\n 'tem:TrabIDJefe': params['tem:TrabID'],\r\n 'tem:Incidencia_ID': incidencia,\r\n\r\n };\r\n\r\n\r\n if (action === 1) {\r\n props.getAuthorizeCancelIncidentsAction(params, server);\r\n } else if (action === 0) {\r\n props.getRejectCancelIncidentsAction(params, server);\r\n\r\n }\r\n\r\n setAction(String(action))\r\n setShowModal(false);\r\n setLoading(true);\r\n\r\n };\r\n\r\n const _handleRowClick = item => {\r\n setComment('');\r\n\r\n if (item.Status != 'Solicitado') {\r\n return;\r\n }\r\n let date = item.RangoFechas === 'true' ? ' del ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' al ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')\r\n setDataModal({\r\n title: 'Solicitud de Incidencia',\r\n body: `Se solicita una incidencia para la fecha ${date}.`,\r\n rejectButton: true,\r\n confirmButton: true,\r\n data: item.SolicitudID,\r\n type: 'vacacion',\r\n haveComment: true //(process.env.REACT_APP_IS_KRONES == '1' ? true : false)\r\n });\r\n setShowModal(true);\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:SolicitudID': item.SolicitudID\r\n }\r\n\r\n props.seeVacationsAction(params, server);\r\n };\r\n\r\n const handleDropdown = e => {\r\n setShowTable(e.target.value);\r\n };\r\n\r\n const handleStatusDropdown = e => {\r\n setSortByNewest(e.target.value === 'newest')\r\n };\r\n\r\n const downloadUrl = async (url) => {\r\n // document.location.href=url;\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n }\r\n else {\r\n res = await fetch(url, { method: 'GET' });\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n setLoading(false);\r\n download(blob, name);\r\n };\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 2:\r\n return <EmployeeLeftsidebar />;\r\n break;\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n default:\r\n return <EmployeeLeftsidebar />;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n }\r\n else {\r\n\r\n const { trabID } = props.location.state;\r\n const userType = getSesionStorage('userType');\r\n\r\n // Variable que determina qué función de manejo de modal se utilizará ya que para autorizacion de incidencias y cancelacion de incidencias, hay ligeros cambios para el envio de parametros a los métodos\r\n let handleModalFunction;\r\n\r\n if (showTable === '1') {\r\n // Cuando se muestra la tabla de vacaciones\r\n handleModalFunction = () => _handleConfirmModal(1, dataModal.data, dataModal.type);\r\n } else if (showTable !== '1') {\r\n // Cuando se muestra la tabla de cancelaciones\r\n handleModalFunction = () => _handleCancelConfirmModal(1, dataModal.data, dataModal.incidencia);\r\n }\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n\r\n <Modal show={showModal} onHide={_handleCloseModal}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{dataModal.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {dataModal.body}\r\n {dataModal.haveComment ? <input\r\n className=\"form-control\"\r\n name=\"company\"\r\n type=\"textarea\"\r\n required=\"\"\r\n placeholder=\"Comentario\"\r\n value={comment}\r\n onChange={handleInput}\r\n autoFocus\r\n /> : null}\r\n\r\n </Modal.Body>\r\n <Modal.Footer>\r\n {dataModal.confirmButton &&\r\n <Button variant=\"primary\" onClick={handleModalFunction}>\r\n Autorizar\r\n </Button>\r\n }\r\n {dataModal.rejectButton && showTable === '1' && (\r\n <Button variant=\"danger\" onClick={() => _handleConfirmModal(0, dataModal.data, dataModal.type)}>\r\n Rechazar\r\n </Button>\r\n )}\r\n {dataModal.rejectButton && showTable == '2' && (\r\n <Button variant=\"danger\" onClick={() => _handleCancelConfirmModal(0, dataModal.data, dataModal.incidencia)}>\r\n Rechazar\r\n </Button>\r\n )}\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title path=\"Autorización de Incidencias\" redirect=\"/incidentsauthorization\" actual={trabID} icon=\"mdi mdi-account-alert\" />\r\n\r\n <div className=\"container-fluid\">\r\n\r\n\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n\r\n <div className=\"card-header\">\r\n <div className=\"d-flex\">\r\n {sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") === '1' && userType.typeUser == 2 && (\r\n <>\r\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\r\n <select className=\"form-control p-2 col-3\" onChange={handleDropdown} value={showTable}>\r\n <option value=\"1\" selected={showTable === '1'}>INCIDENCIAS</option>\r\n <option value=\"2\" selected={showTable === '2'}>CANCELACIONES</option>\r\n </select>\r\n </>\r\n )}\r\n <h4 className=\"card-title p-2\">Ordenar por</h4>\r\n <select className=\"form-control p-2 col-3\" onChange={handleStatusDropdown} value={sortByNewest ? 'newest' : 'oldest'}>\r\n <option value=\"newest\">Nuevas solicitudes</option>\r\n <option value=\"oldest\">Antiguas solicitudes</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>Tipo Incidencia</th>\r\n <th>Día</th>\r\n <th>Fecha(s) solicitud</th>\r\n {(localStorage.getItem(\"REACT_APP_MUESTRA_MOTIVO\") == '1' ||\r\n valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'VerMotivosAutorizador' && s.Valor == '1'))) &&\r\n <th>Motivo </th>}\r\n {(valoresConfig.some(s => (s.Seccion == 'SICONSULTA' && s.Variable == 'DescargarAdjunto' && s.Valor == '1'))) &&\r\n <th>Archivo Adjunto </th>}\r\n <th>Estatus</th>\r\n </tr>\r\n </thead>\r\n\r\n {sessionStorage.getItem(\"SICONSULTA_CancelIncidencias\") === '1' ?\r\n (showTable === '1' ? vacations_table() : cancelations_table()) :\r\n vacations_table()}\r\n\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n authorizeIncidentData: state.authorizeIncident.authorizeIncidentData,\r\n authorizeIncidentError: state.authorizeIncident.authorizeIncidentError,\r\n\r\n rejectIncidentData: state.rejectIncident.rejectIncidentData,\r\n rejectIncidentError: state.rejectIncident.rejectIncidentError,\r\n\r\n vacationsData: state.vacations.vacationsData,\r\n vacationsError: state.vacations.vacationsError,\r\n\r\n seeVacationsData: state.seeVacations.seeVacationsData,\r\n seeVacationsError: state.seeVacations.seeVacationsError,\r\n\r\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n\r\n authorizeCancelIncidentsData: state.authorizeCancelIncidents.authorizeCancelIncidentsData,\r\n authorizeCancelIncidentsError: state.authorizeCancelIncidents.authorizeCancelIncidentsError,\r\n\r\n rejectCancelIncidentsData: state.rejectCancelIncidents.rejectCancelIncidentsData,\r\n rejectCancelIncidentsError: state.rejectCancelIncidents.rejectCancelIncidentsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n AuthorizeIncidentAction,\r\n RejectIncidentAction,\r\n getVacationsAction,\r\n seeVacationsAction,\r\n GetValoresConfigAction,\r\n getAuthorizeCancelIncidentsAction,\r\n getRejectCancelIncidentsAction,\r\n getVacationsActionV2\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentsRequestDetail));\r\n\r\n","import { changeXml, AuthorizeIncidentResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AUTHORIZE_INCIDENT_SUCCESS,\n AUTHORIZE_INCIDENT_ERROR,\n AUTHORIZE_INCIDENT_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const AuthorizeIncidentAction = (data, server) => {\n let configJson = {\n 'tem:AutorizacionIncidencia': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizacionIncidencia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AUTHORIZE_INCIDENT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET AUTHORIZE_INCIDENT_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AUTHORIZE_INCIDENT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AuthorizeIncident: AuthorizeIncidentResponse(body)\n }\n\n console.log('RESPONSE AUTHORIZE_INCIDENT DATA: ', response);\n dispatch({ type: AUTHORIZE_INCIDENT_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AUTHORIZE_INCIDENT DATA: ', response);\n dispatch({ type: AUTHORIZE_INCIDENT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_INCIDENT DATA: ', responseError);\n dispatch({ type: AUTHORIZE_INCIDENT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, RejectIncidentResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REJECT_INCIDENT_SUCCESS,\n REJECT_INCIDENT_ERROR,\n REJECT_INCIDENT_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const RejectIncidentAction = (data, server) => {\n let configJson = {\n 'tem:AutorizacionIncidencia': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizacionIncidencia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REJECT_INCIDENT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET REJECT_INCIDENT_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REJECT_INCIDENT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RejectIncident: RejectIncidentResponse(body)\n }\n\n console.log('RESPONSE REJECT_INCIDENT DATA: ', response);\n dispatch({ type: REJECT_INCIDENT_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REJECT_INCIDENT DATA: ', response);\n dispatch({ type: REJECT_INCIDENT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REJECT_INCIDENT DATA: ', responseError);\n dispatch({ type: REJECT_INCIDENT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, AuthorizeCancelIncidentsResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n AUTHORIZE_CANCEL_INCIDENTS_SUCCESS,\r\n AUTHORIZE_CANCEL_INCIDENTS_ERROR,\r\n AUTHORIZE_CANCEL_INCIDENTS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getAuthorizeCancelIncidentsAction = (data, server) => {\r\n let configJson = {\r\n 'tem:AutorizacionCancelacionIncidencia': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/AutorizacionCancelacionIncidencia\",\r\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n }\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\r\n\r\n console.log('REQUEST getAuthorizeCancelIncidentsAction:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: AUTHORIZE_CANCEL_INCIDENTS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET AUTHORIZE_CANCEL_INCIDENTS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: AUTHORIZE_CANCEL_INCIDENTS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n AuthorizeCancelIncidents: AuthorizeCancelIncidentsResponse(body)\r\n }\r\n\r\n console.log('RESPONSE AUTHORIZE_CANCEL_INCIDENTS DATA: ', response);\r\n dispatch({ type: AUTHORIZE_CANCEL_INCIDENTS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET AUTHORIZE_CANCEL_INCIDENTS DATA: ', response);\r\n dispatch({ type: AUTHORIZE_CANCEL_INCIDENTS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_CANCEL_VACATIONS DATA: ', responseError);\r\n dispatch({ type: AUTHORIZE_CANCEL_INCIDENTS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import { changeXml, RejectCancelIncidentsResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n REJECT_CANCEL_INCIDENTS_SUCCESS,\r\n REJECT_CANCEL_INCIDENTS_ERROR,\r\n REJECT_CANCEL_INCIDENTS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getRejectCancelIncidentsAction = (data, server) => {\r\n let configJson = {\r\n 'tem:AutorizacionCancelacionIncidencia': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/AutorizacionCancelacionIncidencia\",\r\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n }\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc' : server\r\n\r\n console.log('REQUEST getRejectCancelIncidentsAction:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: REJECT_CANCEL_INCIDENTS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET REJECT_CANCEL_INCIDENTS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: REJECT_CANCEL_INCIDENTS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n RejectCancelIncidents: RejectCancelIncidentsResponse (body)\r\n }\r\n\r\n console.log('RESPONSE REJECT_CANCEL_INCIDENTS DATA: ', response);\r\n dispatch({ type: REJECT_CANCEL_INCIDENTS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET REJECT_CANCEL_INCIDENTS DATA: ', response);\r\n dispatch({ type: REJECT_CANCEL_INCIDENTS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET REJECT_CANCEL_VACATIONS DATA: ', responseError);\r\n dispatch({ type: REJECT_CANCEL_INCIDENTS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import React, { useRef } from \"react\";\r\nimport CanvasDraw from \"react-canvas-draw\";\r\n\r\nfunction FirmComponent(props) {\r\n\r\n const canvasFirm = useRef()\r\n\r\n return (\r\n <div style={{ zoom: props.hidden ? 1 : 1 / props.zoom }}>\r\n\r\n <div style={{ borderStyle: props.hidden ? 'none none groove none' : 'groove', width: '100%', borderWidth: '1px', marginTop: '5px' }}>\r\n <CanvasDraw\r\n ref={canvasFirm}\r\n canvasWidth={'100%'}\r\n canvasHeight={150}\r\n lazyRadius={3}\r\n brushRadius={1}\r\n brushColor={\"#000\"}\r\n hideGrid={true}\r\n />\r\n </div>\r\n {props?.user ? <h6 style={{ width: '100%', textAlign: 'center' }}>{`${props.user.nombre} ${props.user.paterno} ${props.user.materno}`}</h6> : null}\r\n\r\n </div>\r\n\r\n )\r\n\r\n}\r\nexport default FirmComponent\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { jsPDF } from \"jspdf\";\r\nimport html2canvas from 'html2canvas';\r\nimport { CreatePerdiemAction } from '../../../api/actions/perdiem/CreatePerdiemAction';\r\nimport { GetPerdiemAction } from '../../../api/actions/perdiem/GetPerdiemAction';\r\nimport { EditPerdiemAction } from '../../../api/actions/perdiem/EditPerdiemAction';\r\nimport { SignPerdiemAction } from '../../../api/actions/perdiem/SignPerdiemAction';\r\nimport { getEmpleadoJornadaAction } from '../../../api/actions/perdiem/EmpleadoJornadaAction';\r\nimport { IdPerdiemAction } from '../../../api/actions/perdiem/IsPerdiemAction';\r\n\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../../layout/Topbar.js';\r\nimport Leftsidebar from '../../layout/EmployeeLeftsidebar.js';\r\nimport Title from '../../layout/Title.js';\r\nimport Footer from '../../layout/Footer.js';\r\nimport moment from 'moment';\r\nimport { convertDay } from '../../../utils/CommonFunctions';\r\n\r\nimport { getParams } from '../../../utils';\r\nimport { alert } from '../../../utils/common/alert';\r\nimport FirmComponent from '../../../components/firm/FirmComponent'\r\nimport { contains } from 'jquery';\r\nimport './DetailReportSee.css';\r\n\r\nlet styleInput = {\r\n outline: '0', borderWidth: '0 0 2px ',\r\n fontSize: '13px'\r\n}\r\n\r\nconst zoom = 0.6;\r\n\r\nconst DetailReportSee = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [dataReport, setDataReport] = useState({})\r\n const [show, setShow] = useState(true)\r\n const [type, setType] = useState(null)\r\n const [disabled, setdisabled] = useState(true)\r\n const [isSign, setIsSign] = useState(false)\r\n const [emails, setEmails] = useState('')\r\n const [user, setUser] = useState('')\r\n const [totalHours, setTotalHours] = useState({\r\n 'normal': [0, 0, 0, 0, 0, 0, 0],\r\n 'extra': [0, 0, 0, 0, 0, 0, 0],\r\n 'extraN': [0, 0, 0, 0, 0, 0, 0],\r\n 'nocturna': [0, 0, 0, 0, 0, 0, 0],\r\n 'weekEnd': [0, 0, 0, 0, 0, 0, 0],\r\n 'viaje': [0, 0, 0, 0, 0, 0, 0],\r\n 'total': {\r\n 'normal': 0,\r\n 'extra': 0,\r\n 'extraN': 0,\r\n 'nocturna': 0,\r\n 'weekEnd': 0,\r\n 'viaje': 0\r\n }\r\n })\r\n console.log('USER_____', user)\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n let user = sessionStorage.getItem('userSaved');\r\n let datasUser = sessionStorage.getItem('USER')\r\n let dataUser = JSON.parse(user);\r\n let oderDataUser = JSON.parse(datasUser);\r\n\r\n setUser({ ...dataUser, ...oderDataUser })\r\n\r\n let empleadoJornada = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': params['tem:TrabID']\r\n }\r\n\r\n\r\n props.getEmpleadoJornadaAction(empleadoJornada, server)\r\n\r\n console.log('PARAMS', props?.location?.state)\r\n let report = props?.location?.state?.report\r\n\r\n setType(props?.location?.state?.type || null)\r\n if (!props?.location?.state?.type) {\r\n props.IdPerdiemAction(params['tem:TrabID'])\r\n }\r\n\r\n let status = props?.location?.state?.type === 'firma' ? true : false\r\n setdisabled(status)\r\n setIsSign(status)\r\n let workReport = []\r\n DAYS.map(() => {\r\n workReport.push({\r\n \"date\": new Date(),\r\n \"startHour\": \"\",\r\n \"finishHour\": \"\",\r\n \"pause\": \"\",\r\n \"machineNumber\": \"\",\r\n \"out\": \"\",\r\n \"arrival\": \"\",\r\n \"description\": \"\"\r\n })\r\n })\r\n let data = {\r\n employeeId: params['tem:TrabID'],\r\n data: {\r\n orderNo: props?.location?.state?.folio,\r\n \"serviceReport\": {\r\n \"complete\": true,\r\n \"pending\": false\r\n },\r\n technicalName: `${dataUser?.nombre} ${dataUser?.paterno} ${dataUser?.materno}`,\r\n workReport: workReport,\r\n \"address\": {\r\n \"street\": \"Jaime Balmes No. 8 Piso 2, Oficina . 203\",\r\n \"colony\": \"Col. Polanco I sección\",\r\n \"cp\": \"11510\",\r\n \"state\": \"CDMX\",\r\n \"country\": \"México\"\r\n },\r\n folio: props?.location?.state?.folio,\r\n \"ahr\": {\r\n \"a\": \"\",\r\n \"h\": '',\r\n \"r\": \"\"\r\n },\r\n \"tvs\": {\r\n \"t\": '',\r\n \"v\": \"\",\r\n \"s\": ''\r\n },\r\n \"resume\": {\r\n \"normal\": '',\r\n \"extra\": \"\",\r\n \"extraN\": \"\",\r\n \"nocturna\": \"\",\r\n \"weekEnd\": '',\r\n \"viaje\": \"\"\r\n },\r\n },\r\n status: 0\r\n }\r\n let dataRepo = {}\r\n if (report && 'employeeId' in report) {\r\n dataRepo = report\r\n } else {\r\n dataRepo = data\r\n }\r\n console.log('DATA INITIAL', dataRepo)\r\n console.log('DATA_USER____', props.loginData)\r\n setDataReport(dataRepo)\r\n setLoading(false)\r\n updateHours(dataRepo);\r\n ///props.getMyMessagesARHAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n if (props.createPerdiemData && props.createPerdiemData.isOK) {\r\n alert('Su reporte ha sido guardado');\r\n getList()\r\n props.CreatePerdiemAction('PURGE');\r\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\r\n setLoading(false);\r\n } else if (props.createPerdiemError && props.createPerdiemError.isOK === false) {\r\n alert('No se pudo realizar la acción');\r\n props.CreatePerdiemAction('PURGE');\r\n setLoading(false);\r\n }\r\n }, [props.createPerdiemData, props.createPerdiemError])\r\n\r\n useEffect(() => {\r\n if (props.editPerdiemData && props.editPerdiemData.isOK == true) {\r\n setLoading(false);\r\n alert('Su reporte ha sido actualizado');\r\n props.EditPerdiemAction('PURGE');\r\n getList()\r\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\r\n } else if (props.editPerdiemError && props.editPerdiemError.isOK === false) {\r\n alert('No se pudo realizar la acción');\r\n props.EditPerdiemAction('PURGE');\r\n setLoading(false);\r\n }\r\n }, [props.editPerdiemData, props.editPerdiemError])\r\n\r\n useEffect(() => {\r\n if (props.signPerdiemData && props.signPerdiemData.isOK == true) {\r\n setLoading(false);\r\n alert('Su reporte ha sido firmado y enviado con éxito.');\r\n props.SignPerdiemAction('PURGE');\r\n getList();\r\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\r\n } else if (props.signPerdiemError && props.signPerdiemError.isOK === false) {\r\n setLoading(false);\r\n alert('Su reporte ha sido firmado y enviado con éxito.');\r\n props.SignPerdiemAction('PURGE');\r\n getList();\r\n props.history.push(`${process.env.PUBLIC_URL}/reporte-tecnico`);\r\n }\r\n }, [props.signPerdiemData, props.signPerdiemError])\r\n\r\n useEffect(() => {\r\n if (props.empleadoJornadaData && props.empleadoJornadaData.isOK) {\r\n let Employee = props.empleadoJornadaData?.EmpleadoJornada\r\n if (Employee) {\r\n console.log('JORNADA', Employee)\r\n }\r\n\r\n } else if (props.empleadoJornadaError && props.empleadoJornadaError.isOK === false) {\r\n props.getEmpleadoJornadaAction('PURGE');\r\n }\r\n }, [props.empleadoJornadaData, props.empleadoJornadaError])\r\n\r\n useEffect(() => {\r\n if (props.idPerdiemData && props.idPerdiemData.isOK) {\r\n let idPerdiem = props.idPerdiemData?.IdPerdiem\r\n console.log('AQUI ID PERDIEM', idPerdiem)\r\n\r\n let newDataReport = { ...dataReport };\r\n newDataReport.data.reportId = idPerdiem?.id;\r\n setDataReport(newDataReport);\r\n props.IdPerdiemAction('PURGE');\r\n } else if (props.idPerdiemError && props.idPerdiemError.isOK === false) {\r\n props.IdPerdiemAction('PURGE');\r\n }\r\n }, [props.idPerdiemData, props.idPerdiemError])\r\n\r\n const getList = () => {\r\n let { params, server } = getParams();\r\n setLoading(true)\r\n props.GetPerdiemAction(params['tem:TrabID']);\r\n }\r\n\r\n let DAYS = ['DOM', 'LUN', 'MAR', 'MIE', 'JUE', 'VIE', 'SAB']\r\n\r\n const time = [\r\n { value: \"\", label: \"\" },\r\n { value: \"7:00\", label: \"7:00\" },\r\n { value: \"7:30\", label: \"7:30\" },\r\n { value: \"8:00\", label: \"8:00\" },\r\n { value: \"8:30\", label: \"8:30\" },\r\n { value: \"9:00\", label: \"9:00\" },\r\n { value: \"9:30\", label: \"9:30\" },\r\n { value: \"10:00\", label: \"10:00\" },\r\n { value: \"10:30\", label: \"10:30\" },\r\n { value: \"11:00\", label: \"11:00\" },\r\n { value: \"11:30\", label: \"11:30\" },\r\n { value: \"12:00\", label: \"12:00\" },\r\n { value: \"12:30\", label: \"12:30\" },\r\n { value: \"13:00\", label: \"13:00\" },\r\n { value: \"13:30\", label: \"13:30\" },\r\n { value: \"14:00\", label: \"14:00\" },\r\n { value: \"14:30\", label: \"14:30\" },\r\n { value: \"15:00\", label: \"15:00\" },\r\n { value: \"15:30\", label: \"15:30\" },\r\n { value: \"16:00\", label: \"16:00\" },\r\n { value: \"16:30\", label: \"16:30\" },\r\n { value: \"17:00\", label: \"17:00\" },\r\n { value: \"17:30\", label: \"17:30\" },\r\n { value: \"18:00\", label: \"18:00\" },\r\n { value: \"18:30\", label: \"18:30\" },\r\n { value: \"19:00\", label: \"19:00\" },\r\n { value: \"19:30\", label: \"19:30\" },\r\n { value: \"20:00\", label: \"20:00\" },\r\n { value: \"20:30\", label: \"20:30\" },\r\n { value: \"21:00\", label: \"21:00\" },\r\n { value: \"21:30\", label: \"21:30\" },\r\n { value: \"22:00\", label: \"22:00\" },\r\n { value: \"22:30\", label: \"22:30\" },\r\n { value: \"23:00\", label: \"23:00\" },\r\n { value: \"23:30\", label: \"23:30\" },\r\n { value: \"0:00\", label: \"0:00\" },\r\n { value: \"0:30\", label: \"0:30\" },\r\n { value: \"1:00\", label: \"1:00\" },\r\n { value: \"1:30\", label: \"1:30\" },\r\n { value: \"2:00\", label: \"2:00\" },\r\n { value: \"2:30\", label: \"2:30\" },\r\n { value: \"3:00\", label: \"3:00\" },\r\n { value: \"3:30\", label: \"3:30\" },\r\n { value: \"4:00\", label: \"4:00\" },\r\n { value: \"4:30\", label: \"4:30\" },\r\n { value: \"5:00\", label: \"5:00\" },\r\n { value: \"5:30\", label: \"5:30\" },\r\n { value: \"6:00\", label: \"6:00\" },\r\n { value: \"6:30\", label: \"6:30\" },\r\n\r\n ];\r\n\r\n const pause = [\r\n { value: \"\", label: \"\" },\r\n { value: \"0\", label: \"0\" },\r\n { value: \"30\", label: \"30\" },\r\n { value: \"60\", label: \"60\" },\r\n { value: \"90\", label: \"90\" },\r\n { value: \"120\", label: \"120\" },\r\n { value: \"150\", label: \"150\" },\r\n { value: \"180\", label: \"180\" },\r\n { value: \"210\", label: \"210\" },\r\n { value: \"240\", label: \"240\" },\r\n { value: \"270\", label: \"270\" },\r\n { value: \"300\", label: \"300\" },\r\n { value: \"330\", label: \"330\" },\r\n { value: \"360\", label: \"360\" },\r\n { value: \"390\", label: \"390\" },\r\n { value: \"420\", label: \"420\" },\r\n { value: \"450\", label: \"450\" },\r\n { value: \"480\", label: \"480\" },\r\n { value: \"510\", label: \"510\" },\r\n { value: \"540\", label: \"540\" },\r\n { value: \"570\", label: \"570\" },\r\n { value: \"600\", label: \"600\" }\r\n\r\n ];\r\n\r\n const ocupation = [\r\n { value: \"\", label: \"\" },\r\n { value: \"TRABAJO CON CLIENTE (SERVICIO NACIONAL)\", label: \"TRABAJO CON CLIENTE (SERVICIO NACIONAL)\" },\r\n { value: \"TRABAJO CON CLIENTE (SERVICIO NACIONAL-CONTINGENCIA)\", label: \"TRABAJO CON CLIENTE (SERVICIO NACIONAL-CONTINGENCIA)\" },\r\n { value: \"TRABAJO CON CLIENTE (SERVICIO EXTRANJERO)\", label: \"TRABAJO CON CLIENTE (SERVICIO EXTRANJERO)\" },\r\n { value: \"HORAS EN GARANTIA (SIN COBRO AL CLIENTE)\", label: \"HORAS EN GARANTIA (SIN COBRO AL CLIENTE)\" },\r\n { value: \"DIA DE DESCANSO EN SITIO (SABADO)\", label: \"DIA DE DESCANSO EN SITIO (SABADO)\" },\r\n { value: \"DIA DE DESCANSO EN SITIO (DOMINGO)\", label: \"DIA DE DESCANSO EN SITIO (DOMINGO)\" },\r\n ];\r\n\r\n const handleSubmit = async (event) => {\r\n let emailsArray = [];\r\n if (emails && emails.length > 0) {\r\n emailsArray = emails.split(',');\r\n }\r\n console.log('array', emailsArray);\r\n emailsArray.push(user.correo)\r\n\r\n setdisabled(false)\r\n await setShow(false)\r\n\r\n var input = document.getElementById('content');\r\n const pdf = new jsPDF('p', 'mm', [216, 279]);\r\n html2canvas(input, { allowTaint: true, seCORS: true, useCORS: true })\r\n .then((canvas) => {\r\n\r\n const imgData = canvas.toDataURL('image/png', 1);\r\n var imgWidth = 216;\r\n var imgHeight = 279;\r\n document.getElementsByClassName('form-control')[0].style.borderBottom = \"none !import\";\r\n\r\n pdf.addImage(imgData, 'JPG', 0, 0, imgWidth, imgHeight, undefined, 'FAST');\r\n var file = pdf.output('datauristring');\r\n var ret = file.replace('data:application/pdf;filename=generated.pdf;base64,', '');\r\n console.log('BASE', ret)\r\n console.log('BASE', dataReport.id)\r\n // pdf.save('ReportKrones.pdf')\r\n setLoading(true);\r\n setShow(true)\r\n setdisabled(true)\r\n let dataSend = {\r\n pdf: ret,\r\n mails: [\r\n ...emailsArray,\r\n ]\r\n }\r\n console.log('Data send', dataSend)\r\n props.SignPerdiemAction(dataSend, dataReport.id)\r\n })\r\n\r\n }\r\n\r\n const handleInput = (value, param) => {\r\n console.log(`INPUT ${param} `, value.target.value)\r\n let newDataReport = dataReport.data\r\n let data = {\r\n ...newDataReport,\r\n [param]: value.target.value\r\n }\r\n let newReport = {\r\n ...dataReport,\r\n data: data\r\n }\r\n console.log('REPORT', newReport)\r\n setDataReport(newReport)\r\n }\r\n\r\n const handleSelect = (value, param) => {\r\n console.log(`SELECTOR ${param} `, value.target.value)\r\n let newDataReport = dataReport.data\r\n let data = {\r\n ...newDataReport,\r\n [param]: value.target.value\r\n }\r\n let newReport = {\r\n ...dataReport,\r\n data: data\r\n }\r\n console.log('REPORT', newReport)\r\n\r\n setDataReport(newReport)\r\n }\r\n\r\n const dateSelect = async (index, value, param) => {\r\n console.log(dataReport);\r\n //let formatDate = moment(value.target.value).format('DD/MM/YYYY HH:mm')\r\n console.log('DATE', index, value.target.value, param)\r\n let newDataReport = dataReport.data.workReport\r\n let report = newDataReport[index]\r\n let newWorkReport = {\r\n ...report,\r\n [param]: value.target.value\r\n }\r\n newDataReport[index] = newWorkReport\r\n\r\n let newData = dataReport.data\r\n let data = {\r\n ...newData,\r\n workReport: newDataReport\r\n }\r\n\r\n let newReport = {\r\n ...dataReport,\r\n data: data\r\n }\r\n console.log('WORKREPORT', newReport)\r\n await setDataReport(newReport)\r\n updateHours(newReport);\r\n }\r\n\r\n const ahr = (value, param) => {\r\n let ahr = dataReport.data.ahr\r\n let newAhr = {\r\n ...ahr,\r\n [param]: value.target.value\r\n }\r\n let newData = dataReport.data\r\n let newReport = {\r\n ...dataReport,\r\n data: {\r\n ...newData,\r\n ahr: newAhr\r\n }\r\n }\r\n console.log('AHR', newReport)\r\n setDataReport(newReport)\r\n }\r\n\r\n const tvs = (value, param) => {\r\n let tvs = dataReport.data.tvs\r\n let newAhr = {\r\n ...tvs,\r\n [param]: value.target.value\r\n }\r\n let newData = dataReport.data\r\n let newReport = {\r\n ...dataReport,\r\n data: {\r\n ...newData,\r\n tvs: newAhr\r\n }\r\n }\r\n console.log('TVS', newReport)\r\n setDataReport(newReport)\r\n }\r\n\r\n const resume = (value, param) => {\r\n let resume = dataReport.data.resume\r\n let newresume = {\r\n ...resume,\r\n [param]: value.target.value\r\n }\r\n let newData = dataReport.data\r\n let newReport = {\r\n ...dataReport,\r\n data: {\r\n ...newData,\r\n resume: newresume\r\n }\r\n }\r\n console.log('RESUME', newReport)\r\n setDataReport(newReport)\r\n }\r\n\r\n const renderSelectorTime = (i, value, param) => {\r\n let options = time.map((data) => {\r\n return (\r\n <option value={data.value} >{data.label}</option>\r\n )\r\n });\r\n\r\n return (\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n className=\"form-control time\"\r\n style={styleInput}\r\n onChange={(values) => { dateSelect(i, values, param) }}>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n const renderSelectorPause = (i, value, param) => {\r\n let options = pause.map((data) => {\r\n return (\r\n <option value={data.value} >{data.label}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n className=\"form-control pause\"\r\n style={styleInput}\r\n onChange={(values) => { dateSelect(i, values, param) }}>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n const renderSelectorOcupation = (title, value, param) => {\r\n let options = ocupation.map((data) => {\r\n return (\r\n <option value={data.value} >{data.label}</option>\r\n )\r\n })\r\n return (\r\n\r\n <div style={{ marginBottom: 10 }}>\r\n <label >{title}</label>\r\n <div>\r\n <select\r\n value={value}\r\n disabled={disabled}\r\n className=\"form-control pause\"\r\n style={styleInput}\r\n onChange={(value) => {\r\n handleInput(value, param)\r\n }}>\r\n {options}\r\n </select>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n const renderRows = () => {\r\n let data = dataReport?.data?.workReport\r\n\r\n return data.map((day, i) => {\r\n return (\r\n <tr>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '1%' }}>{DAYS[i]}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '3%' }} ><input\r\n value={day.date}\r\n disabled={disabled} type=\"date\" className=\"form-control\" style={styleInput} onChange={(value) => { dateSelect(i, value, 'date') }} /></td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '8%' }}>{renderSelectorTime(i, day?.startHour || false, 'startHour')}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '8%' }}>{renderSelectorTime(i, day.finishHour, 'finishHour')}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '8%' }}>{renderSelectorPause(i, day.pause, 'pause')}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '3%' }}><input disabled={disabled} className=\"form-control\" style={styleInput} value={day?.machineNumber || null} onChange={(values) => { dateSelect(i, values, 'machineNumber') }} /></td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '8%' }}>{renderSelectorTime(i, day.out, 'out')}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '8%' }} >{renderSelectorTime(i, day.arrival, 'arrival')}</td>\r\n <td className='selectorKrones' scope=\"col\" style={{ width: '10%' }}><input disabled={disabled} type=\"text\" className=\"form-control\" style={styleInput} value={day?.description || null} onChange={(values) => { dateSelect(i, values, 'description') }} /></td>\r\n </tr>\r\n )\r\n })\r\n }\r\n\r\n const updateHours = (data) => {\r\n\r\n let duration = (start, finish) => moment.duration(finish.diff(start)).asHours();\r\n\r\n let newTotalHours = { ...totalHours };\r\n (data?.data?.workReport || []).forEach((day, i) => {\r\n if (typeof day.date === 'string') {\r\n if (day.startHour && day.finishHour) {\r\n\r\n let ranges = {\r\n normal: [{\r\n start: moment(`${day.date} 8:00`, 'YYYY-mm-dd HH:mm'),\r\n finish: moment(`${day.date} 18:00`, 'YYYY-mm-dd HH:mm')\r\n }, {\r\n start: moment(`${day.date} 8:00`, 'YYYY-mm-dd HH:mm').add(1, 'days'),\r\n finish: moment(`${day.date} 18:00`, 'YYYY-mm-dd HH:mm').add(1, 'days')\r\n }],\r\n extra: [{\r\n start: moment(`${day.date} 6:00`, 'YYYY-mm-dd HH:mm'),\r\n finish: moment(`${day.date} 8:00`, 'YYYY-mm-dd HH:mm')\r\n }, {\r\n start: moment(`${day.date} 6:00`, 'YYYY-mm-dd HH:mm').add(1, 'days'),\r\n finish: moment(`${day.date} 8:00`, 'YYYY-mm-dd HH:mm').add(1, 'days')\r\n }],\r\n extraN: [{\r\n start: moment(`${day.date} 18:00`, 'YYYY-mm-dd HH:mm'),\r\n finish: moment(`${day.date} 20:00`, 'YYYY-mm-dd HH:mm')\r\n }, {\r\n start: moment(`${day.date} 18:00`, 'YYYY-mm-dd HH:mm').add(1, 'days'),\r\n finish: moment(`${day.date} 20:00`, 'YYYY-mm-dd HH:mm').add(1, 'days')\r\n }],\r\n nocturna: [{\r\n start: moment(`${day.date} 00:00`, 'YYYY-mm-dd HH:mm'),\r\n finish: moment(`${day.date} 06:00`, 'YYYY-mm-dd HH:mm')\r\n },\r\n {\r\n start: moment(`${day.date} 20:00`, 'YYYY-mm-dd HH:mm'),\r\n finish: moment(`${day.date} 06:00`, 'YYYY-mm-dd HH:mm').add(1, 'days')\r\n }, {\r\n start: moment(`${day.date} 20:00`, 'YYYY-mm-dd HH:mm').add(1, 'days'),\r\n finish: moment(`${day.date} 06:00`, 'YYYY-mm-dd HH:mm').add(2, 'days')\r\n }],\r\n };\r\n\r\n\r\n let start = moment(`${day.date} ${day.startHour}`, 'YYYY-mm-dd HH:mm')\r\n let finish = moment(`${day.date} ${day.finishHour}`, 'YYYY-mm-dd HH:mm')\r\n\r\n if (start >= finish)\r\n finish.add(1, 'days');\r\n\r\n console.log(day.pause);\r\n\r\n // weekEnd\r\n if (i === 0 || i === 6) {\r\n newTotalHours.weekEnd[i] = duration(start, finish) - Number(day.pause) / 60;\r\n } else {\r\n\r\n let addHours = type => {\r\n newTotalHours[type][i] = type === 'normal' ? -Number(day.pause) / 60 : 0;\r\n // newTotalHours[type][i] = 0;\r\n\r\n ranges[type].forEach(range => {\r\n let s = start > range.start ? start : range.start;\r\n let f = finish < range.finish ? finish : range.finish;\r\n\r\n if (start < range.finish && finish > range.start) {\r\n newTotalHours[type][i] += duration(s, f);\r\n }\r\n });\r\n\r\n }\r\n\r\n for (const property in ranges)\r\n addHours(property);\r\n\r\n }\r\n } else {\r\n if (i === 0 || i === 6) {\r\n newTotalHours.weekEnd[i] = 0;\r\n } else {\r\n newTotalHours.normal[i] = 0;\r\n newTotalHours.extra[i] = 0;\r\n newTotalHours.extraN[i] = 0;\r\n newTotalHours.nocturna[i] = 0;\r\n }\r\n }\r\n\r\n\r\n if (day.out && day.arrival) {\r\n // viaje\r\n let start = moment(`${day.date} ${day.out}`, 'YYYY-mm-dd HH:mm')\r\n let finish = moment(`${day.date} ${day.arrival}`, 'YYYY-mm-dd HH:mm')\r\n\r\n if (start >= finish)\r\n finish.add(1, 'days');\r\n\r\n newTotalHours.viaje[i] = duration(start, finish);\r\n } else {\r\n newTotalHours.viaje[i] = 0;\r\n }\r\n } else {\r\n if (i === 0 || i === 6) {\r\n newTotalHours.weekEnd[i] = 0;\r\n } else {\r\n newTotalHours.normal[i] = 0;\r\n newTotalHours.extra[i] = 0;\r\n newTotalHours.extraN[i] = 0;\r\n newTotalHours.nocturna[i] = 0;\r\n }\r\n\r\n newTotalHours.viaje[i] = 0;\r\n }\r\n\r\n\r\n });\r\n\r\n setTotalHours({\r\n ...newTotalHours,\r\n total: {\r\n 'normal': newTotalHours.normal.reduce((a, b) => a + b),\r\n 'extra': newTotalHours.extra.reduce((a, b) => a + b),\r\n 'extraN': newTotalHours.extraN.reduce((a, b) => a + b),\r\n 'nocturna': newTotalHours.nocturna.reduce((a, b) => a + b),\r\n 'weekEnd': newTotalHours.weekEnd.reduce((a, b) => a + b),\r\n 'viaje': newTotalHours.viaje.reduce((a, b) => a + b)\r\n }\r\n });\r\n }\r\n\r\n const renderInput = (title, value, param, props = {}) => {\r\n return (\r\n <div className=\"row\" style={{ alignItems: 'center', marginBottom: 10 }}>\r\n <label className=\"col-sm-4 col-form-label\">{title}</label>\r\n <div className=\"col-sm-8 col-12 col-md-8\" >\r\n <input\r\n disabled={disabled}\r\n type=\"text\"\r\n className=\"form-control\"\r\n value={value}\r\n style={styleInput}\r\n onChange={(value) => {\r\n handleInput(value, param)\r\n }}\r\n {...props}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n const validateData = () => {\r\n let data = dataReport.data\r\n let success = true;\r\n\r\n if (data?.client &&\r\n data?.cityClient &&\r\n data?.noMachine &&\r\n data?.contactClient &&\r\n data?.technicalName &&\r\n data?.clientName &&\r\n data?.orderNo &&\r\n data?.ocupation &&\r\n data?.projectCoordinator &&\r\n data?.typeWork &&\r\n data?.REK &&\r\n (data.ahr.a !== \"\" ||\r\n data.ahr.h !== \"\" ||\r\n data.ahr.r !== \"\")\r\n ) {\r\n let count = 0;\r\n\r\n data.workReport.forEach((day, i) => {\r\n let orComparison = !!(day.startHour\r\n || day.finishHour\r\n || day.pause !== \"\"\r\n || day?.machineNumber\r\n || day.out\r\n || day.arrival\r\n || day?.description\r\n );\r\n\r\n let andComparison = !!(day.startHour\r\n && day.finishHour\r\n && day.pause !== \"\"\r\n && day?.machineNumber\r\n && day.out\r\n && day.arrival);\r\n\r\n if (orComparison) {\r\n count++;\r\n\r\n if (orComparison !== andComparison)\r\n success = false;\r\n else if (typeof day.date !== 'string')\r\n success = false;\r\n }\r\n });\r\n\r\n if (!count) success = false;\r\n } else {\r\n success = false;\r\n }\r\n\r\n return success;\r\n }\r\n\r\n const handleSend = () => {\r\n if (validateData())\r\n props.CreatePerdiemAction(dataReport);\r\n else\r\n alert('Favor de llenar los campos obligatorios')\r\n }\r\n\r\n const actualice = () => {\r\n //if (validateData()) {\r\n let dataSend = {\r\n // employeeId: dataReport.employeeId,\r\n data: dataReport.data,\r\n }\r\n props.EditPerdiemAction(dataSend, dataReport.id);\r\n //}\r\n // else {\r\n // alert('Favor de llenar los campos obligatorios')\r\n //}\r\n\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\"\r\n >\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REPORTE DETALLE\" icon=\"mdi mdi-account-multiple\" />\r\n {/* <div className=\"container-fluid\" style={{ overflowX: 'auto' }}>\r\n <div className=\"row\" style={{ width: '140%' }}> */}\r\n {/* <div className=\"container-fluid\" style={{ transform: 'scale(0.6)'}}> */}\r\n <div className=\"container-fluid\" style={{ zoom }}>\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n\r\n <div className=\"card-body\" id=\"content\">\r\n\r\n <div className=\"row col-12 col-md-12 col-lg-12\" style={{ padding: '1%' }}>\r\n <div className=\"col-12 col-md-12 col-lg-4 dir column\">\r\n <h6>{dataReport?.data?.address?.street || null}</h6>\r\n <h6>{dataReport?.data?.address?.colony || null}</h6>\r\n <h6>{dataReport?.data?.address ? (dataReport?.data?.address?.cp + ', ' + dataReport?.data?.address?.state + ', ' + dataReport?.data?.address?.country) : ''}</h6>\r\n <h5>Reporte de Servicio</h5>\r\n {renderInput('Cliente', dataReport?.data?.client || null, 'client')}\r\n {renderInput('Ciudad', dataReport?.data?.cityClient || null, 'cityClient')}\r\n {renderInput('No. Máq', dataReport?.data?.noMachine || null, 'noMachine')}\r\n {renderInput('Contacto Cliente', dataReport?.data?.contactClient || null, 'contactClient')}\r\n {renderInput('Coordinador de Proyecto', dataReport?.data?.projectCoordinator || null, 'projectCoordinator')}\r\n </div>\r\n\r\n\r\n <div className=\"col-12 col-md-12 col-lg-4 column\">\r\n {type ?\r\n <p><b style={{ color: \"red\" }}>{`${dataReport?.data?.technicalName?.replace(\r\n /\\w\\S*/g,\r\n function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n }\r\n )?.replace(/\\s/g, '')}${dataReport?.data?.reportId ? `#${dataReport?.data?.reportId}` : ''}`} </b></p>\r\n :\r\n <></>\r\n }\r\n {renderInput('Técnico de KRONES', dataReport?.data?.technicalName || null, 'technicalName')}\r\n {renderInput('Nombre del Cliente', dataReport?.data?.clientName || null, 'clientName')}\r\n {renderInput('Número de Orden', dataReport?.data.orderNo || null, 'orderNo', { type: 'number', min: 1 })}\r\n {renderSelectorOcupation('Ocupación', dataReport?.data?.ocupation || null, 'ocupation')}\r\n </div>\r\n\r\n <div className=\"col-12 col-md-12 col-lg-4 column\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Krones_Logo.svg/2560px-Krones_Logo.svg.png\" style={{ width: '100%' }} />\r\n <div className=\"col-sm-12 col-12 col-md-12\" style={{ textAlign: 'center', marginBottom: 10 }}>\r\n Antes de firmar este reporte, revise detenidamente el tiempo empleado, el trabajo realizado; las normas de la compañía no permiten modificar este reporte después de firmado.\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"col-8 col-md-8 col-lg-8 columntable-responsive\">\r\n <table className=\"table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" style={{ border: '1px', borderRight: 'black', width: '20%', solid: 'black' }}></th>\r\n {/* <th scope=\"col\" style={{ border: '1px' }}>Tipo de Trabajo</th> */}\r\n <th scope=\"col\" style={{ border: '1px' }}></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td style={{ border: '1px', borderRight: 'black', solid: 'black' }}>Servicio, reporte, o respaldo datos</td>\r\n <td style={{ verticalAlign: 'middle' }}>\r\n <input\r\n disabled={disabled}\r\n style={styleInput}\r\n checked={dataReport?.data.typeWork === \"completo\"}\r\n onChange={(value) => {\r\n handleInput(value, 'typeWork')\r\n }}\r\n name=\"service_report\" type=\"radio\" value=\"completo\" className=\"with-gap\" id={'completo'} />\r\n <label htmlFor={'completo'}\r\n style={{ paddingLeft: '5px', marginRight: '20px' }}>\r\n Completo\r\n </label>\r\n <input\r\n disabled={disabled}\r\n style={styleInput}\r\n checked={dataReport?.data.typeWork === \"pendiente\"}\r\n onChange={(value) => {\r\n handleInput(value, 'typeWork')\r\n }}\r\n name=\"service_report\" type=\"radio\" value=\"pendiente\" className=\"with-gap\" id={'pendiente'} />\r\n <label htmlFor={'pendiente'} style={{ paddingLeft: '5px' }}>\r\n Pendiente\r\n </label>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n </div>\r\n\r\n <div className=\"col-12 col-md-12 col-lg-12 column table-responsive\">\r\n <table className=\"table table-bordered\">\r\n\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" style={{ width: '2%' }} rowspan=\"2\">DÍA</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Fecha</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Inicio</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Final</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Pausa</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Número de Máquina</th>\r\n <th colSpan=\"2\">\r\n <p style={{ textAlign: 'center' }}>\r\n Tiempo de viaje\r\n </p>\r\n <div style={{ display: 'flex' }} >\r\n <p style={{ fontSize: 13, width: '100%' }}>Salida</p>\r\n <p style={{ fontSize: 13, width: '100%', paddingLeft: '12px' }}>Llegada</p>\r\n </div>\r\n </th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>Comentario</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {renderRows()}\r\n\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n\r\n <div className=\"col-12 col-md-12 col-lg-12 row\">\r\n <div className=\"col-12 col-md-1 col-lg-1\">\r\n <table className=\"table table-bordered\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" style={{ width: '2%' }} rowspan=\"2\">REK</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>\r\n <select\r\n value={dataReport?.data.REK || null}\r\n disabled={disabled}\r\n className=\"form-control\"\r\n style={styleInput}\r\n // style={{padding:0}}\r\n onChange={(value) => {\r\n handleSelect(value, 'REK')\r\n }}\r\n >\r\n {/* <option value=\"\">{dataReport?.data.REK || null}</option> */}\r\n <option value=\"\"></option>\r\n <option value=\"Si\">Si</option>\r\n <option value=\"No\">No</option>\r\n </select>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n\r\n <div className=\"col-12 col-md-2 col-lg-2\">\r\n <table className=\"table table-bordered\">\r\n <tbody>\r\n <tr >\r\n <td>A=</td>\r\n <td><input disabled={disabled} style={styleInput} type=\"number\" min=\"0\" className=\"form-control\" name=\"AA\" value={dataReport?.data?.ahr?.a || null} onChange={(value) => { ahr(value, 'a') }} /></td>\r\n </tr>\r\n <tr>\r\n <td>H=</td>\r\n <td><input disabled={disabled} style={styleInput} type=\"number\" min=\"0\" className=\"form-control\" name=\"HH\" value={dataReport?.data?.ahr?.h || null} onChange={(value) => { ahr(value, 'h') }} /></td>\r\n </tr>\r\n <tr>\r\n <td>R=</td>\r\n <td><input disabled={disabled} style={styleInput} type=\"number\" min=\"0\" className=\"form-control\" name=\"RR\" value={dataReport?.data?.ahr?.r || null} onChange={(value) => { ahr(value, 'r') }} /></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div className=\"col-12 col-md-2 col-lg-2 \">\r\n <table className=\"table table-bordered\">\r\n <tbody>\r\n <tr>\r\n <td>T=</td>\r\n\r\n <td>\r\n <p>\r\n {\r\n Number(totalHours.total.normal)\r\n + Number(totalHours.total.extra)\r\n + Number(totalHours.total.extraN)\r\n + Number(totalHours.total.nocturna)\r\n + Number(totalHours.total.weekEnd)\r\n }\r\n </p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>V=</td>\r\n <td>\r\n <p>\r\n {Number(totalHours.total.viaje)}\r\n </p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>S=</td>\r\n <td>\r\n <p>\r\n {Number(totalHours.total.normal)\r\n + Number(totalHours.total.extra)\r\n + Number(totalHours.total.extraN)\r\n + Number(totalHours.total.nocturna)\r\n + Number(totalHours.total.weekEnd)\r\n + Number(totalHours.total.viaje)\r\n }\r\n </p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div className=\"col-12 col-md-7 col-lg-7 table-responsive\">\r\n <table className=\"table table-bordered\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" rowspan=\"2\" style={{ fontSize: 13 }}>TIPO DE HORA LABORADA</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>NORMAL</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>EXTRA</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>EXTRA</th>\r\n <th scope=\"col\" style={{ fontSize: 13 }}>NOCTURNA</th>\r\n <th scope=\"col\" rowspan=\"2\" style={{ fontSize: 13 }}>FIN DE SEMANA - FESTIVO</th>\r\n <th scope=\"col\" rowspan=\"2\" style={{ fontSize: 13 }}>VIAJE</th>\r\n </tr>\r\n <tr>\r\n <th scope=\"col\" style={{ fontSize: 12 }}>08:00 a 18:00</th>\r\n <th scope=\"col\" style={{ fontSize: 12 }}>06:00 a 08:00</th>\r\n <th scope=\"col\" style={{ fontSize: 12 }}>18:00 a 20:00</th>\r\n <th scope=\"col\" style={{ fontSize: 12 }}>20:00 a 06:00</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CANTIDADES</td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.normal}\r\n </p>\r\n </td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.extra}\r\n </p>\r\n </td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.extraN}\r\n </p>\r\n </td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.nocturna}\r\n </p>\r\n </td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.weekEnd}\r\n </p>\r\n </td>\r\n <td>\r\n <p style={{ textAlign: 'center' }}>\r\n {totalHours.total.viaje}\r\n </p>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n {isSign ?\r\n <div>\r\n <div className=\"col-12 col-md-12 col-lg-12 mb-2\">\r\n <p style={{ paddingLeft: '5%' }}><b>Revisión de seguridades</b> (Cualquier anomalia, alteración o modificación de las seguridades debe ser descrita con detalle suficiente) </p>\r\n </div>\r\n <div className=\"col-12 col-md-12 col-lg-12 row\" style={{ marginBottom: '2%' }}>\r\n\r\n <div className=\"col-12 col-md-4\">\r\n <div>\r\n <input disabled type=\"checkbox\" value=\"\" id=\"defaultCheck1\" />\r\n <label for=\"defaultCheck1\">\r\n ¿Consta la máquina con todas sus seguridades activadas?\r\n </label>\r\n </div>\r\n <br />\r\n <div>\r\n <input disabled type=\"checkbox\" value=\"\" id=\"defaultCheck2\" />\r\n <label for=\"defaultCheck2\">\r\n ¿Hubo alguna modificación en cuanto a seguridades activadas?\r\n </label>\r\n </div>\r\n <br />\r\n <div>\r\n <input disabled type=\"checkbox\" value=\"\" id=\"defaultCheck3\" />\r\n <label for=\"defaultCheck3\">\r\n ¿Las actividades se modificaron por responsabilidad del cliente?\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-12 col-md-4\">\r\n <div className=\"col-sm-12 col-12 col-md-12\">\r\n <label for=\"staticEmail\" className=\"col-sm-10 col-form-label\"> Técnico Krones </label>\r\n <FirmComponent zoom={zoom} hidden={true} />\r\n </div>\r\n </div>\r\n\r\n\r\n <div className=\"col-12 col-md-4\">\r\n <div className=\"form-group col-sm-12 col-12 col-md-12\">\r\n <label for=\"staticEmail\" className=\"col-sm-12 col-form-label\">Firma Cliente</label>\r\n <FirmComponent zoom={zoom} hidden={true} />\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className=\"col-12 col-md-12\">\r\n <div className=\"col-12 col-sm-12 col-12 col-md-12\">\r\n <label for=\"staticEmail\" className=\"col-sm-12 col-form-label\">Descripción</label>\r\n <div className=\"col-sm-12 col-12 col-md-12\">\r\n <textarea disabled style={styleInput} type=\"text\" className=\"form-control\" name=\"descripcion\" rows='2' />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n :\r\n null}\r\n\r\n\r\n\r\n\r\n {show && dataReport?.status && dataReport?.status === 1 && disabled == false ?\r\n <>\r\n <div>\r\n <p>Por favor ingrese los correos (separados por una coma) a los cuáles desea enviar el reporte.</p>\r\n <input onChange={event => { setEmails(event.target.value) }} style={styleInput} type=\"text\" className=\"form-control\" />\r\n </div>\r\n <div className=\"card-action text-center header_div\" id='header_div'>\r\n <button\r\n onClick={() => {\r\n handleSubmit()\r\n }}\r\n type=\"button\" className=\"btn btn-success waves-effect waves-light mt-5\">Firmar</button>\r\n </div>\r\n </>\r\n : null}\r\n\r\n {type === 'borrador' && disabled == false ?\r\n <div className=\"card-action text-center \" >\r\n <button\r\n onClick={() => { actualice() }}\r\n type=\"button\" className=\"btn btn-success waves-effect waves-light\">Actualizar</button>\r\n </div>\r\n : null}\r\n\r\n {type === null && disabled == false ?\r\n <div className=\"card-action text-center\">\r\n <button\r\n onClick={() => { handleSend() }}\r\n type=\"button\" className=\"btn btn-success waves-effect waves-light\">Crear Reporte</button>\r\n </div>\r\n : null}\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n//\r\nconst mapStateToProps = state => {\r\n return {\r\n createPerdiemData: state.createPerdiem.createPerdiemData,\r\n createPerdiemError: state.createPerdiem.createPerdiemError,\r\n\r\n editPerdiemData: state.editPerdiem.editPerdiemData,\r\n editPerdiemError: state.editPerdiem.editPerdiemError,\r\n\r\n signPerdiemData: state.signPerdiem.signPerdiemData,\r\n signPerdiemError: state.signPerdiem.signPerdiemError,\r\n\r\n empleadoJornadaData: state.empleadoJornada.empleadoJornadaData,\r\n empleadoJornadaError: state.empleadoJornada.empleadoJornadaError,\r\n\r\n loginData: state.login.loginData,\r\n loginError: state.login.loginError,\r\n\r\n idPerdiemData: state.idPerdiem.idPerdiemData,\r\n idPerdiemError: state.idPerdiem.idPerdiemError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n CreatePerdiemAction,\r\n GetPerdiemAction,\r\n EditPerdiemAction,\r\n SignPerdiemAction,\r\n getEmpleadoJornadaAction,\r\n IdPerdiemAction\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(DetailReportSee));\r\n","import React, { useEffect, useState } from \"react\";\nimport { NavLink, withRouter } from 'react-router-dom';\n//import logoSiConsulta from '../../assets/images/Si_logo_full.png';\nimport QR from '../layout/QRCode.js';\n\nconst Leftsidebar = () => {\n const logoSiConsulta = process.env.PUBLIC_URL + '/assets/images/Si_logo_full.png';\n\n const [showModalQR, setShowModalQR] = useState(false);\n\n return (\n <>\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR showModalQR={showModalQR} onClosed={() => setShowModalQR(false)} /> : null}\n <aside className=\"left-sidebar\">\n <div className=\"scroll-sidebar\">\n <nav className=\"sidebar-nav\">\n <ul id=\"sidebarnav\">\n <li className=\"nav-devider\"></li>\n {localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' &&\n <>\n <li> <NavLink activeClassName=\"active\" exact={true} className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-account-multiple\"></i><span className=\"hide-menu\">AUTORIZACI�N MASIVA</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacations`} aria-expanded=\"false\"><i className=\"mdi mdi-beach\"></i><span className=\"hide-menu\">CONSULTA VACACIONES</span></NavLink>\n </li>\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacations-reports`} aria-expanded=\"false\"><i className=\"mdi mdi-file\"></i><span className=\"hide-menu\">REPORTE DE VACACIONES</span></NavLink>\n </li>\n </>\n }\n {localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' && process.env.REACT_APP_IS_KRONES == '1' &&\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/report-vacations-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">REPORTE VACACIONES E INCIDENCIAS</span></NavLink>\n </li>\n }\n {localStorage.getItem(\"REACT_APP_REPORTE_CTRL_VAC\") == '1' && /* report-control-vacaciones */\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/${(localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' ? 'report-control-vacations' : '')}`} aria-expanded=\"false\"><i className=\"mdi mdi-routes\"></i><span className=\"hide-menu\">REPORTE CONTROL DE VACACIONES</span></NavLink>\n </li>\n }\n {localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' && localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <li>\n {/* <a className=\"waves-effect waves-dark\" data-toggle=\"modal\" data-target=\".qr-code\" aria-expanded=\"false\"><i className=\"mdi mdi-qrcode\"></i><span className=\"hide-menu\">VER C�DIGO QR</span></a> */}\n <a className=\"waves-effect waves-dark\" onClick={() => setShowModalQR(true)}><i className=\"mdi mdi-qrcode\"></i><span className=\"hide-menu\">VER C�DIGO QR</span></a>\n </li> : null}\n\n\n {(sessionStorage.getItem(\"SICONSULTA_ReporteIncidenciasSol\") == '1') && localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' && (\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\"\n to={`${process.env.PUBLIC_URL}/incidencias-solicitadas`}\n aria-expanded=\"false\">\n <i className=\"mdi mdi-bank\"></i>\n <span className=\"hide-menu\"> CONSULTAR INCIDENCIAS SOLICITADAS</span>\n </NavLink>\n </li>\n )}\n\n <li>\n <div className=\"text-center\" aria-expanded=\"false\">\n <img width=\"90\" src={logoSiConsulta} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\n </div>\n </li>\n </ul>\n </nav>\n </div>\n </aside>\n </>\n );\n}\n\nexport default withRouter(Leftsidebar);\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport { getVacationsDirectAction } from '../../api/actions/eulen/VacationsDirectAction';\n\nimport Topbar from '../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../layout/EmployeeLeftsidebar';\nimport OperatorLeftsidebar from '../layout/OperatorLeftsidebar';\nimport RHVacationLeftsidebar from '../layout/RHVacationLeftsidebar';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams, getAuthorizerType } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nconst VacationRequests = props => {\n\n const [loading, setLoading] = useState(true);\n const [tableFilter, setTableFilter] = useState('');\n const [sideBar, setSideBar] = useState(<></>);\n \n useEffect(() => {\n\n if (props.typeUserSelected == 1 || props.typeUserSelected == 2)\n setSideBar(<EmployeeLeftsidebar/>);\n else if (props.typeUserSelected == 3)\n setSideBar(<OperatorLeftsidebar/>);\n else if (props.typeUserSelected == 5)\n setSideBar(<SystemAdminLeftsidebar/>);\n else if (props.typeUserSelected == 6)\n setSideBar(<RHVacationLeftsidebar/>);\n\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Trab_id': params['tem:TrabID'],\n 'tem:TipoAutorizador': getAuthorizerType(),\n }\n\n props.getVacationsDirectAction(params, server);\n }\n\n useEffect(() => {\n if (props.vacationsDirectData && props.vacationsDirectData.isOK) {\n setLoading(false);\n } else if (props.vacationsDirectError && props.vacationsDirectError.isOK === false) {\n props.getVacationsDirectAction('PURGE', '');\n setLoading(false);\n }\n\n }, [\n props.vacationsDirectData, props.vacationsDirectError\n ]);\n\n const responded_vacactions_table = () => {\n\n let table = [];\n let solicitudes = props.vacationsDirectData?.VacationsDirect;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td colSpan=\"7\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.nombre - b.nombre;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.periodo - b.periodo;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.centro_id - b.centro_id;\n });\n\n solicitudes = solicitudes.filter(solicitud => (\n solicitud.nombre.includes((tableFilter).toUpperCase()) ||\n solicitud.centro_id.includes(tableFilter) ||\n solicitud.trab_id.includes(tableFilter) ||\n solicitud.periodo.includes((tableFilter).toUpperCase()) ||\n solicitud.dia.includes((tableFilter).toUpperCase()) ||\n solicitud.fechaVacacion.includes(tableFilter) ||\n solicitud.status.toUpperCase().includes(tableFilter.toUpperCase())\n ));\n\n solicitudes.map((item, i) => {\n let color;\n\n switch (item.status) {\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n default:\n color = '#003b71';\n }\n\n table.push(\n <tr key={i} style={{ cursor: 'default' }}>\n <td>{item.trab_id}</td>\n <td>{item.nombre}</td>\n <td>{item.periodo}</td>\n <td>{item.centro_id}</td>\n <td>{item.dia}</td>\n <td>{item.fechaVacacion}</td>\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.status}</td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const handleFilter = event => {\n setTableFilter(event.target.value);\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {sideBar}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n {sideBar}\n <div className=\"page-wrapper\">\n <Title actual=\"Consulta de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">CONSULTA DE VACACIONES</h4>\n <div className=\"form-material col-3 ml-auto\">\n <input placeholder=\"Buscar...\" type=\"text\" className=\"form-control\" onChange={e => handleFilter(e)} />\n </div>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>Periodo</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {responded_vacactions_table()}\n </tbody>\n </table>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n vacationsDirectData: state.vacationsDirect.vacationsDirectData,\n vacationsDirectError: state.vacationsDirect.vacationsDirectError,\n\n typeUserSelected: state.changeUserType.typeUserSelected,\n };\n};\n\nconst mapDispatchToProps = {\n getVacationsDirectAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationRequests));\n","import { changeXml, VacationsDirect } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VACATIONS_DIRECT_SUCCESS,\n VACATIONS_DIRECT_ERROR,\n VACATIONS_DIRECT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getVacationsDirectAction = (data, server) => {\n let configJson = {\n 'tem:ConsultaVacacionesDir': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ConsultaVacacionesDir\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VACATIONS_DIRECT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VACATIONS_DIRECT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n VacationsDirect: VacationsDirect(body)\n }\n\n console.log('RESPONSE VACATIONS_DIRECT DATA: ', response);\n dispatch({ type: VACATIONS_DIRECT_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VACATIONS_DIRECT DATA: ', response);\n dispatch({ type: VACATIONS_DIRECT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VACATIONS_DIRECT DATA: ', responseError);\n dispatch({ type: VACATIONS_DIRECT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport { getVacationsMassiveDirectAction } from '../../api/actions/eulen/VacationsMassiveDirectAction';\nimport { getAuthorizeVacationsMassiveDirectAction } from '../../api/actions/eulen/AuthorizeVacationsMassiveDirectAction';\nimport { getRejectVacationsMassiveDirectAction } from '../../api/actions/eulen/RejectVacationsMassiveDirectAction';\n\nimport Topbar from '../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../layout/EmployeeLeftsidebar';\nimport OperatorLeftsidebar from '../layout/OperatorLeftsidebar';\nimport RHVacationLeftsidebar from '../layout/RHVacationLeftsidebar';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams, getAuthorizerType } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nconst VacationRequests = props => {\n\n const [loading, setLoading] = useState(true);\n const [tableFilter, setTableFilter] = useState('');\n const [selectedRequests, setSelectedRequests] = useState([]);\n const [resultErrors, setResultErrors] = useState([]);\n const [sideBar, setSideBar] = useState(<></>);\n\n useEffect(() => {\n if (props.typeUserSelected == 1 || props.typeUserSelected == 2)\n setSideBar(<EmployeeLeftsidebar />);\n else if (props.typeUserSelected == 3)\n setSideBar(<OperatorLeftsidebar />);\n else if (props.typeUserSelected == 5)\n setSideBar(<SystemAdminLeftsidebar />);\n else if (props.typeUserSelected == 6)\n setSideBar(<RHVacationLeftsidebar />);\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TipoAutorizador': getAuthorizerType(),\n 'tem:TrabID': params['tem:TrabID'],\n }\n\n props.getVacationsMassiveDirectAction(params, server);\n }\n\n useEffect(() => {\n if (props.vacationsMassiveDirectData && props.vacationsMassiveDirectData.isOK) {\n setLoading(false);\n } else if (props.vacationsMassiveDirectError && props.vacationsMassiveDirectError.isOK === false) {\n props.getVacationsMassiveDirectAction('PURGE', '');\n setLoading(false);\n }\n\n }, [\n props.vacationsMassiveDirectData, props.vacationsMassiveDirectError,\n ]);\n\n useEffect(() => {\n if (props.rejectVacationsMassiveDirectData && props.rejectVacationsMassiveDirectData.isOK === true) {\n checkResults(props.rejectVacationsMassiveDirectData.RejectVacationsMassiveDirect);\n // alert('Las solicitudes fueron rechazadas exitosamente.');\n // setSelectedRequests([]);\n // setLoading(true);\n // props.getVacationsMassiveDirectAction('PURGE', '');\n // props.getRejectVacationsMassiveDirectAction('PURGE', '');\n // loadData();\n } else if (props.rejectVacationsMassiveDirectError.RejectVacations && props.rejectVacationsMassiveDirectError.isOK === false) {\n props.getRejectVacationsMassiveDirectAction('PURGE', '');\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveDirectAction('PURGE', '');\n loadData();\n }\n }, [props.rejectVacationsMassiveDirectData, props.rejectVacationsMassiveDirectError]);\n\n useEffect(() => {\n if (selectedRequests.length > 0) {\n if (resultErrors.length > 0) {\n\n let errorsJsx = resultErrors.map(err => {\n return (\n <tr>\n <td>\n {err.trab_id}\n </td>\n <td>\n {err.errorMsg}\n </td>\n </tr>\n );\n });\n\n let correct = selectedRequests.length - resultErrors.length;\n\n alert(\n <>\n <h5>\n {'Se procesaron ' + selectedRequests.length + ' peticiones de las cuales ' + correct + ' fueron aceptadas y ' + resultErrors.length + ' fueron rechazadas'}\n </h5>\n <table className=\"table\">\n <thead>\n <th>No. Empleado</th>\n <th>Status</th>\n </thead>\n <tbody>\n {errorsJsx}\n </tbody>\n </table>\n </>\n );\n } else {\n alert('Las solicitudes se procesaron exitosamente.');\n }\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveDirectAction('PURGE', '');\n props.getRejectVacationsMassiveDirectAction('PURGE', '');\n loadData();\n }\n }, [resultErrors]);\n\n const checkResults = arr => {\n let errors = [];\n\n arr.forEach(res => {\n if (res.insercion == 'False') {\n errors.push(res);\n }\n });\n\n setResultErrors(errors);\n };\n\n const pending_vacations_table = () => {\n\n let table = [];\n let solicitudes = props.vacationsMassiveDirectData?.VacationsMassiveDirect;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td colSpan=\"6\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.nombre - b.nombre;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.centro_id - b.centro_id;\n });\n\n let filtered = solicitudes.filter(solicitud => (\n solicitud.nombre.includes((tableFilter).toUpperCase()) ||\n solicitud.centro_id.includes(tableFilter) ||\n solicitud.trab_id.includes(tableFilter) ||\n solicitud.dia.includes((tableFilter).toUpperCase()) ||\n solicitud.fechaVacacion.includes(tableFilter)\n ));\n\n\n solicitudes.map((item, i) => {\n let color;\n\n switch (item.status) {\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n case 'Solicitado':\n color = '#faa52c';\n break;\n\n default:\n color = '#003b71';\n }\n\n table.push(\n <tr key={item.solicitudID + item.trab_id} style={{ cursor: 'pointer', display: filtered.filter(fi => fi == item).length > 0 ? '' : 'none' }}>\n <td>\n <input name={item.solicitudID + item.trab_id} type=\"checkbox\" onClick={() => handleSelectRequest(item)} value={item.id} className=\"with-gap\" id={item.solicitudID + item.trab_id} />\n <label htmlFor={item.solicitudID + item.trab_id}></label>\n </td>\n <td>{item.trab_id}</td>\n <td>{item.nombre}</td>\n <td>{item.centro_id}</td>\n <td>{item.dia}</td>\n <td>{item.fechaVacacion}</td>\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.status}</td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const handleSelectRequest = item => {\n let exists = selectedRequests.filter(el => el['wcf:ListSolicitudMasDir']['wcf:SolicitudID'] == item.solicitudID);\n if (exists.length <= 0) {\n setSelectedRequests([\n ...selectedRequests,\n {\n 'wcf:ListSolicitudMasDir': {\n 'wcf:Fecha': item.fechaVacacion,\n 'wcf:SolicitudID': item.solicitudID,\n 'wcf:Trab_id': item.trab_id,\n }\n }\n ]);\n } else {\n setSelectedRequests(\n selectedRequests.filter(el => el['wcf:ListSolicitudMas']['wcf:SolicitudID'] != item.solicitudID)\n );\n }\n\n };\n\n const handleButtons = (e, action) => {\n e.preventDefault();\n\n if (selectedRequests.length <= 0) {\n alert('Debes seleccionar por lo menos una solicitud.');\n return;\n }\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:idEmpresa': params['tem:IdEmpresa'],\n 'tem:solicitudes': {\n 'wcf:Autoriza': action,\n 'wcf:Solicitudes': selectedRequests,\n 'wcf:TipoSolicitud': '1',\n 'wcf:UserProceso': params['tem:TrabID']\n },\n 'tem:TipoAutorizador': getAuthorizerType(),\n };\n\n if (action === 1) {\n confirm('¿Deseas autorizar las vacaciones seleccionadas?').then(res => {\n if (res) {\n setLoading(true);\n props.getRejectVacationsMassiveDirectAction(params, server);\n setTableFilter('');\n }\n });\n } else if (action === 0) {\n confirm('¿Deseas rechazar las vacaciones seleccionadas?').then(res => {\n if (res) {\n setLoading(true);\n props.getRejectVacationsMassiveDirectAction(params, server);\n setTableFilter('');\n }\n });\n }\n\n };\n\n const handleFilter = event => {\n setTableFilter(event.target.value);\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {sideBar}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n {sideBar}\n <div className=\"page-wrapper\">\n <Title actual=\"Autorización Masiva\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">SOLICITUD DE VACACIONES</h4>\n <div className=\"form-material col-3 ml-auto\">\n <input placeholder=\"Buscar...\" type=\"text\" className=\"form-control\" onChange={e => handleFilter(e)} />\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n {selectedRequests.length > 0 &&\n <div className=\"d-flex justify-content-center\">\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-danger\" onClick={e => handleButtons(e, 0)} disabled={selectedRequests.length <= 0}>Rechazar</button>\n </div>\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-success\" style={{\n backgroundColor: '#5cb85c',\n border: 'none',\n }} onClick={e => handleButtons(e, 1)} disabled={selectedRequests.length <= 0}>Autorizar</button>\n </div>\n </div>}\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th></th>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {pending_vacations_table()}\n </tbody>\n </table>\n {selectedRequests.length > 0 &&\n <div className=\"d-flex justify-content-center\">\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-danger\" onClick={e => handleButtons(e, 0)} disabled={selectedRequests.length <= 0}>Rechazar</button>\n </div>\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-success\" style={{\n backgroundColor: '#5cb85c',\n border: 'none',\n }} onClick={e => handleButtons(e, 1)} disabled={selectedRequests.length <= 0}>Autorizar</button>\n </div>\n </div>}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n vacationsMassiveDirectData: state.vacationsMassiveDirect.vacationsMassiveDirectData,\n vacationsMassiveDirectError: state.vacationsMassiveDirect.vacationsMassiveDirectError,\n\n authorizeVacationsMassiveDirectData: state.authorizeVacationsMassiveDirect.authorizeVacationsMassiveDirectData,\n authorizeVacationsMassiveDirectError: state.authorizeVacationsMassiveDirect.authorizeVacationsMassiveDirectError,\n\n rejectVacationsMassiveDirectData: state.rejectVacationsMassiveDirect.rejectVacationsMassiveDirectData,\n rejectVacationsMassiveDirectError: state.rejectVacationsMassiveDirect.rejectVacationsMassiveDirectError,\n\n typeUserSelected: state.changeUserType.typeUserSelected,\n\n };\n};\n\nconst mapDispatchToProps = {\n getVacationsMassiveDirectAction,\n getAuthorizeVacationsMassiveDirectAction,\n getRejectVacationsMassiveDirectAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationRequests));\n","import { changeXml, VacationsMassiveDirect } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VACATIONS_MASSIVE_DIRECT_SUCCESS,\n VACATIONS_MASSIVE_DIRECT_ERROR,\n VACATIONS_MASSIVE_DIRECT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getVacationsMassiveDirectAction = (data, server) => {\n let configJson = {\n 'tem:VacacionesMasivasDirectos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/VacacionesMasivasDirectos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VACATIONS_MASSIVE_DIRECT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n console.log('xmll', xml);\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n VacationsMassiveDirect: VacationsMassiveDirect(body)\n }\n\n console.log('RESPONSE VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: VACATIONS_MASSIVE_DIRECT_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VACATIONS_MASSIVE_DIRECT DATA: ', responseError);\n dispatch({ type: VACATIONS_MASSIVE_DIRECT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeToXmlWcf, AuthorizeVacationsMassiveDirect } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS,\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR,\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getAuthorizeVacationsMassiveDirectAction = (data, server) => {\n let configJson = {\n 'tem:AutorizaVacMasivasDir': {\n ...data\n }\n }\n\n let obj = changeToXmlWcf(configJson);\n console.log('OBJ MASSIVE_DIRECT AUTOHORIZE VACATIONS', obj)\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizaVacMasivasDir\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n } else {\n\n response = {\n isOK: true,\n AuthorizeVacationsMassiveDirect: AuthorizeVacationsMassiveDirect(body)\n }\n\n console.log('RESPONSE AUTHORIZE_VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS, payload: response })\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET AUTHORIZE_VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET AUTHORIZE_VACATIONS_MASSIVE_DIRECT DATA: ', responseError);\n dispatch({ type: AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeToXmlWcf, AuthorizeVacationsMassiveDirect } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS,\n REJECT_VACATIONS_MASSIVE_DIRECT_ERROR,\n REJECT_VACATIONS_MASSIVE_DIRECT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getRejectVacationsMassiveDirectAction = (data, server) => {\n let configJson = {\n 'tem:AutorizaVacMasivasDir': {\n ...data\n }\n }\n\n let obj = changeToXmlWcf(configJson);\n console.log('OBJ MASSIVE_DIRECT AUTOHORIZE VACATIONS', obj)\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AutorizaVacMasivasDir\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REJECT_VACATIONS_MASSIVE_DIRECT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n /*\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REJECT_VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n } else {\n */\n response = {\n isOK: true,\n RejectVacationsMassiveDirect: AuthorizeVacationsMassiveDirect(body)\n }\n\n console.log('RESPONSE REJECT_VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS, payload: response })\n // }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REJECT_VACATIONS_MASSIVE_DIRECT DATA: ', response);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_DIRECT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REJECT_VACATIONS_MASSIVE_DIRECT DATA: ', responseError);\n dispatch({ type: REJECT_VACATIONS_MASSIVE_DIRECT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport Topbar from '../layout/Topbar.js';\nimport EmployeeLeftsidebar from '../layout/EmployeeLeftsidebar';\nimport OperatorLeftsidebar from '../layout/OperatorLeftsidebar';\nimport RHVacationLeftsidebar from '../layout/RHVacationLeftsidebar';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getReportRHVacDirectAction } from '../../api/actions/eulen/ReportRHVacDirectAction';\n\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { getAuthorizerType, getParams } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nconst Reports = props => {\n\n const [loading, setLoading] = useState(false);\n const [initDate, setInitDate] = useState(null);\n const [finalDate, setFinalDate] = useState(null);\n const [sideBar, setSideBar] = useState(<></>);\n\n useEffect(() => {\n if (props.typeUserSelected == 1 || props.typeUserSelected == 2)\n setSideBar(<EmployeeLeftsidebar />);\n else if (props.typeUserSelected == 3)\n setSideBar(<OperatorLeftsidebar />);\n else if (props.typeUserSelected == 5)\n setSideBar(<SystemAdminLeftsidebar />);\n else if (props.typeUserSelected == 6)\n setSideBar(<RHVacationLeftsidebar />);\n }, []);\n\n useEffect(() => {\n if (props.reportRHVacDirectData && props.reportRHVacDirectData.isOK) {\n let redirect = props.reportRHVacDirectData.ReportRHVacDirect;\n window.open(redirect, '_blank');\n props.getReportRHVacDirectAction('PURGE', '');\n } else if (props.reportRHVacDirectError && props.reportRHVacDirectError.isOK === false) {\n props.getReportRHVacDirectAction('PURGE', '');\n setLoading(false);\n }\n }, [\n props.reportRHVacDirectData, props.reportRHVacDirectError\n ]);\n\n\n const generate = () => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TipoAutorizador': getAuthorizerType(),\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:inicio': initDate.getFullYear() + '-' + (\"0\" + (initDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + initDate.getDate()).slice(-2) + 'T00:00:00.000',\n 'tem:fin': finalDate.getFullYear() + '-' + (\"0\" + (finalDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + finalDate.getDate()).slice(-2) + 'T00:00:00.000',\n }\n\n props.getReportRHVacDirectAction(params, server);\n }\n\n const disabledGenerate = () => {\n if (!initDate || !finalDate)\n return true;\n return false;\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {sideBar}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n {sideBar}\n <div className=\"page-wrapper\">\n <Title actual=\"Reporte de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">REPORTE DE VACACIONES</h4>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"row mt-3\">\n <div className=\"col-6\">\n <label>Fecha de Inicio</label>\n </div>\n <div className=\"col-6\">\n <label>Fecha Final</label>\n </div>\n\n <div className=\"col-6\" style={{ zIndex: 99999 }}>\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n selected={initDate}\n onChange={new_date => {\n setInitDate(new_date);\n }}\n />\n </div>\n <div className=\"col-6\" style={{ zIndex: 99999 }}>\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n minDate={initDate}\n disabled={!initDate}\n selected={finalDate}\n onChange={new_date => {\n setFinalDate(new_date);\n }}\n />\n </div>\n </div>\n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={generate} disabled={disabledGenerate()}>Generar Reporte</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div >\n );\n }\n};\n\n\nconst mapStateToProps = state => {\n return {\n\n reportRHVacDirectData: state.reportRHVacDirect.reportRHVacDirectData,\n reportRHVacDirectError: state.reportRHVacDirect.reportRHVacDirectError,\n\n dataUserData: state.dataUser.dataUserData,\n\n typeUserSelected: state.changeUserType.typeUserSelected,\n\n };\n};\n\nconst mapDispatchToProps = {\n getReportRHVacDirectAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Reports));\n","import { changeXml, ReportRHVacDirect } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REPORT_RHVAC_DIRECT_SUCCESS,\n REPORT_RHVAC_DIRECT_ERROR,\n REPORT_RHVAC_DIRECT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getReportRHVacDirectAction = (data, server) => {\n let configJson = {\n 'tem:RptRolRHVacDir': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/RptRolRHVacDir\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REPORT_RHVAC_DIRECT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REPORT_RHVAC_DIRECT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ReportRHVacDirect: ReportRHVacDirect(body)\n }\n\n console.log('RESPONSE REPORT_RHVAC_DIRECT DATA: ', response);\n dispatch({ type: REPORT_RHVAC_DIRECT_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REPORT_RHVAC_DIRECT DATA: ', response);\n dispatch({ type: REPORT_RHVAC_DIRECT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REPORT_RHVAC_DIRECT DATA: ', responseError);\n dispatch({ type: REPORT_RHVAC_DIRECT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXmlSic, VacationsCalendarResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n VACATIONS_CALENDAR_SUCCESS,\r\n VACATIONS_CALENDAR_ERROR,\r\n VACATIONS_CALENDAR_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const vacationsCalendarAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetVacacionesCalendario': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXmlSic(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoVacaciones/GetVacacionesCalendario\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoVacaciones.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: VACATIONS_CALENDAR_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET VACATIONS_CALENDAR_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: VACATIONS_CALENDAR_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n VacationsCalendars: VacationsCalendarResponse(body)\r\n }\r\n\r\n console.log('RESPONSE VACATIONS_CALENDAR DATA: ', response);\r\n dispatch({ type: VACATIONS_CALENDAR_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET VACATIONS_CALENDAR DATA: ', response);\r\n dispatch({ type: VACATIONS_CALENDAR_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET VACATIONS_CALENDAR DATA: ', responseError);\r\n dispatch({ type: VACATIONS_CALENDAR_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../../layout/Topbar.js';\r\nimport Leftsidebar from '../../layout/EmployeeLeftsidebar';\r\nimport Title from '../../layout/Title.js';\r\nimport Footer from '../../layout/Footer.js';\r\nimport { vacationsCalendarAction } from '../../../api/actions/common/VacationsCalendarAction';\r\nimport { getEmpleadosAlMandoAction } from '../../../api/actions/perdiem/EmpleadosAlMandoAction';\r\nimport { Calendar, momentLocalizer } from 'react-big-calendar'\r\nimport style from 'react-big-calendar/lib/css/react-big-calendar.css';\r\nimport moment from 'moment'\r\n\r\n\r\n\r\nimport { getParams } from '../../../utils';\r\nimport { alert } from '../../../utils/common/alert';\r\nimport { event } from 'jquery';\r\n\r\nconst localizer = momentLocalizer(moment)\r\n\r\nconst CalendarVacations = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [culture, setCulture] = useState('es');\r\n const [events, setEvents] = useState([]);\r\n const [selectedDay, setSelectedDay] = useState(new Date());\r\n const [empleados, setEmpleados] = useState([]);\r\n let year = new Date().getFullYear();\r\n let month = new Date().getMonth();\r\n let days = [\r\n { name: 'Seleccione', date: '' },\r\n { name: 'Enero', date: `01/01/${year}` },\r\n { name: 'Febrero', date: `02/01/${year}` },\r\n { name: 'Marzo', date: `03/01/${year}` },\r\n { name: 'Abril', date: `04/01/${year}` },\r\n { name: 'Mayo', date: `05/01/${year}` },\r\n { name: 'Junio', date: `06/01/${year}` },\r\n { name: 'Julio', date: `07/01/${year}` },\r\n { name: 'Agosto', date: `08/01/${year}` },\r\n { name: 'Septiembre', date: `09/01/${year}` },\r\n { name: 'Octubre', date: `10/01/${year}` },\r\n { name: 'Noviembre', date: `11/01/${year}` },\r\n { name: 'Diciembre', date: `12/01/${year}` },\r\n ]\r\n\r\n const loadEmpleadosAlMando = () => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n }\r\n props.getEmpleadosAlMandoAction(params, server);\r\n };\r\n\r\n const loadVacations = () => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n }\r\n props.vacationsCalendarAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n loadEmpleadosAlMando();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.empleadosAlMandoData && props.empleadosAlMandoData.isOK) {\r\n console.log('OIHB EMPLEADOS', props.empleadosAlMandoData.EmpleadosAlMando);\r\n setEmpleados(props.empleadosAlMandoData.EmpleadosAlMando);\r\n\r\n loadVacations();\r\n } \r\n else if (props.empleadosAlMandoError && props.empleadosAlMandoError.isOK === false) {\r\n props.getEmpleadosAlMandoAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.empleadosAlMandoData, props.empleadosAlMandoError]);\r\n\r\n useEffect(() => {\r\n if (props.vacationsCalendarData && props.vacationsCalendarData.isOK && empleados) {\r\n console.log('OIHB EVENTS', props.vacationsCalendarData.VacationsCalendars);\r\n //let employees = (empleados || []).map(m => { return m.NombreCompleto; });\r\n let employees = (empleados || []).map(m => { return m.Trab_ID; });\r\n let vacations = props.vacationsCalendarData.VacationsCalendars;\r\n //vacations = (vacations || []).filter(f => employees.some(nombre => nombre == f.title));\r\n vacations = (vacations || []).filter(f => employees.some(trabId => trabId == f.trabId));//trabId\r\n console.log('OIHB EVENTS FILTERED', vacations);\r\n \r\n setEvents(vacations);\r\n setLoading(false);\r\n } \r\n else if (props.vacationsCalendarError && props.vacationsCalendarError.isOK === false) {\r\n props.vacationsCalendarAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsCalendarData, props.vacationsCalendarError]);\r\n\r\n const renderItem = (event) => {\r\n return (\r\n <div>\r\n {event.title}\r\n </div>\r\n )\r\n }\r\n\r\n\r\n const renderSelector = () => {\r\n let options = days.map((data) => {\r\n return (\r\n <option value={data.date} >{data.name}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n class=\"form-control\"\r\n onChange={(values) => { setSelectedDay(values.target.value != '' ? new Date(values.target.value) : new Date) }}>\r\n <option hidden selected>{days[month].name}</option>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CALENDARIO DE VACACIONES\" icon=\"mdi mdi-briefcase-check\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block justify-content-between\">\r\n <h4 className=\"card-title\">CALENDARIO DE VACACIONES</h4>\r\n </div>\r\n <div className='col-12 col-lg-12 row'>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#A9DAA4', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Vacaciones'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#003B71', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Incidencias'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\" style={{ marginBottom: '20px' }}>\r\n {/*renderSelector()*/}\r\n </div>\r\n </div>\r\n <div className=\"table-responsive \">\r\n <Calendar\r\n style={{ height: '700px' }}\r\n //step={60}\r\n localizer={localizer}\r\n toolbar={true}\r\n //date={selectedDay}\r\n events={events}\r\n defaultView={'month'}\r\n views={['month']}\r\n popup={true}\r\n culture='es'\r\n tooltipAccessor={(e) => e.title}\r\n eventPropGetter={(event) => {\r\n console.log('EVENT_', event)\r\n const backgroundColor = event.type === '1' ? '#A9DAA4' : '#003B71';\r\n return { style: { backgroundColor, fontSize: 13, paddingBottom: 5, paddingTop: 5 } }\r\n }}\r\n components={{\r\n event: renderItem,\r\n }}\r\n messages={{ 'today': \"Hoy\", \"previous\": 'Atrás', \"next\": \"Siguiente\" }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n\r\n};\r\n\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n vacationsCalendarData: state.vacationCalendar.vacationsCalendarData,\r\n vacationsCalendarError: state.vacationCalendar.vacationsCalendarError,\r\n\r\n empleadosAlMandoData: state.empleadosAlMando.empleadosAlMandoData,\r\n empleadosAlMandoError: state.empleadosAlMando.empleadosAlMandoError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n vacationsCalendarAction,\r\n getEmpleadosAlMandoAction,\r\n};\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CalendarVacations));\r\n\r\n\r\n/*\r\nconst events = [\r\n {\r\n id: 1,\r\n title: 'Long Event',\r\n start: new Date(2015, 3, 7),\r\n end: new Date(2015, 3, 10),\r\n },\r\n\r\n {\r\n id: 2,\r\n title: 'DTS STARTS',\r\n start: new Date(2016, 2, 13, 0, 0, 0),\r\n end: new Date(2016, 2, 20, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 3,\r\n title: 'DTS ENDS',\r\n start: new Date(2016, 10, 6, 0, 0, 0),\r\n end: new Date(2016, 10, 13, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 4,\r\n title: 'Some Event',\r\n start: new Date(2015, 3, 9, 0, 0, 0),\r\n end: new Date(2015, 3, 10, 0, 0, 0),\r\n },\r\n {\r\n id: 5,\r\n title: 'Conference',\r\n start: new Date(2015, 3, 11),\r\n end: new Date(2015, 3, 13),\r\n desc: 'Big conference for important people',\r\n },\r\n {\r\n id: 6,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 10, 30, 0, 0),\r\n end: new Date(2015, 3, 12, 12, 30, 0, 0),\r\n desc: 'Pre-meeting meeting, to prepare for the meeting',\r\n },\r\n {\r\n id: 7,\r\n title: 'Lunch',\r\n start: new Date(2015, 3, 12, 12, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 13, 0, 0, 0),\r\n desc: 'Power lunch',\r\n },\r\n {\r\n id: 8,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 14, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 15, 0, 0, 0),\r\n },\r\n {\r\n id: 9,\r\n title: 'Happy Hour',\r\n start: new Date(2015, 3, 12, 17, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 17, 30, 0, 0),\r\n desc: 'Most important meal of the day',\r\n },\r\n {\r\n id: 10,\r\n title: 'Dinner',\r\n start: new Date(2015, 3, 12, 20, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 21, 0, 0, 0),\r\n },\r\n {\r\n id: 11,\r\n title: 'Planning Meeting with Paige',\r\n start: new Date(2015, 3, 13, 8, 0, 0),\r\n end: new Date(2015, 3, 13, 10, 30, 0),\r\n },\r\n {\r\n id: 11.1,\r\n title: 'Inconvenient Conference Call',\r\n start: new Date(2015, 3, 13, 9, 30, 0),\r\n end: new Date(2015, 3, 13, 12, 0, 0),\r\n },\r\n {\r\n id: 11.2,\r\n title: \"Project Kickoff - Lou's Shoes\",\r\n start: new Date(2015, 3, 13, 11, 30, 0),\r\n end: new Date(2015, 3, 13, 14, 0, 0),\r\n },\r\n {\r\n id: 11.3,\r\n title: 'Quote Follow-up - Tea by Tina',\r\n start: new Date(2015, 3, 13, 15, 30, 0),\r\n end: new Date(2015, 3, 13, 16, 0, 0),\r\n },\r\n {\r\n id: 12,\r\n title: 'Late Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 18, 2, 0, 0),\r\n },\r\n {\r\n id: 12.5,\r\n title: 'Late Same Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 17, 23, 30, 0),\r\n },\r\n {\r\n id: 13,\r\n title: 'Multi-day Event',\r\n start: new Date(2015, 3, 20, 19, 30, 0),\r\n end: new Date(2015, 3, 22, 2, 0, 0),\r\n },\r\n {\r\n id: 14,\r\n title: 'Today',\r\n start: new Date(new Date().setHours(new Date().getHours() - 3)),\r\n end: new Date(new Date().setHours(new Date().getHours() + 3)),\r\n },\r\n {\r\n id: 15,\r\n title: 'Point in Time Event',\r\n start: new Date(),\r\n end: new Date(),\r\n },\r\n {\r\n id: 16,\r\n title: 'Video Record',\r\n start: new Date(2015, 3, 14, 15, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 17,\r\n title: 'Dutch Song Producing',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n {\r\n id: 18,\r\n title: 'Itaewon Halloween Meeting',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 17, 30, 0),\r\n },\r\n {\r\n id: 19,\r\n title: 'Online Coding Test',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 30, 0),\r\n },\r\n {\r\n id: 20,\r\n title: 'An overlapped Event',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 21,\r\n title: 'Phone Interview',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 22,\r\n title: 'Cooking Class',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 23,\r\n title: 'Go to the gym',\r\n start: new Date(2015, 3, 14, 18, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n ]\r\n*/\r\n","import React from 'react';\r\nimport { NavLink, withRouter } from 'react-router-dom';\r\n//import logoSiConsulta from '../../assets/images/Si_logo_full.png';\r\nimport QR from '../layout/QRCode.js';\r\n\r\nconst Leftsidebar = () => {\r\n const logoSiConsulta = process.env.PUBLIC_URL + '/assets/images/Si_logo_full.png';\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR /> : null}\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n <li className=\"nav-devider\"></li>\r\n\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-file\"></i><span className=\"hide-menu\">REPORTE DE VACACIONES</span></NavLink>\r\n </li>\r\n\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/vacation-calendar`} aria-expanded=\"false\"><i className=\"mdi mdi-calendar-text\"></i><span className=\"hide-menu\">CALENDARIO VACACIONES</span></NavLink>\r\n </li>\r\n\r\n {process.env.REACT_APP_IS_KRONES_PERDIEM == '1' && <>\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-accounting`} aria-expanded=\"false\"><i className=\"mdi mdi-calculator\"></i><span className=\"hide-menu\">CONCENTRADO CONTABILIDAD</span></NavLink>\r\n </li>\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/technical-services-concentrate`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO SERVICIOS TÉCNICOS</span></NavLink>\r\n </li>\r\n </>}\r\n\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/report-vacations-incidents`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">REPORTE VACACIONES E INCIDENCIAS</span></NavLink>\r\n </li>\r\n {/*\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/general-report-services`} aria-expanded=\"false\"><i className=\"mdi mdi-chart-line\"></i><span className=\"hide-menu\">CONCENTRADO REPORTES</span></NavLink>\r\n </li>\r\n */}\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img width=\"90\" src={logoSiConsulta} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n}\r\n\r\nexport default withRouter(Leftsidebar);\r\n","import { changeXml, DeptosCenterResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n DEPTOS_CENTER_SUCCESS,\r\n DEPTOS_CENTER_ERROR,\r\n DEPTOS_CENTER_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getDeptosCenterAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetDeptoCentros ': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetDeptoCentros\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST GetDeptoCentros:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: DEPTOS_CENTER_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET DEPTOS_CENTER_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: DEPTOS_CENTER_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n DeptosCenter: DeptosCenterResponse(body)\r\n }\r\n\r\n console.log('RESPONSE DEPTOS_CENTER DATA: ', response);\r\n dispatch({ type: DEPTOS_CENTER_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET DEPTOS_CENTER DATA: ', response);\r\n dispatch({ type: DEPTOS_CENTER_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET DEPTOS_CENTER DATA: ', responseError);\r\n dispatch({ type: DEPTOS_CENTER_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar.js\";\r\nimport DirectorGralLeftsidebar from \"../layout/DirectorGralLeftsidebar.js\";\r\nimport EmployeeLeftsidebar from \"../layout/EmployeeLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction.js\";\r\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\r\n\r\nimport Card from \"../../components/shared/Card.js\";\r\nimport xlsxImage from \"../../assets/payroll/xlsx.png\";\r\n\r\nimport { getParams, getSesionStorage } from \"../../utils/index.js\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert.js\";\r\n\r\nconst TechnicalServicesConcentrate = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [centros, setCentros] = useState([]);\r\n const [centrosSel, setCentrosSel] = useState([]);\r\n const [tecnicos, setTecnicos] = useState([]);\r\n const [tecnicosSel, setTecnicosSel] = useState(\"\");\r\n const [ocupaciones, setOcupaciones] = useState([]);\r\n const [ocupacionesSel, setOcupacionesSel] = useState(\"\");\r\n const [blobRpt, setBlobRpt] = useState(null);\r\n\r\n const [filtersOptions, setFiltersOptions] = useState({});\r\n const [filters, setFilters] = useState({});\r\n\r\n useEffect(() => {\r\n departamentosCentros();\r\n\r\n opcionesFiltrosPerdiemData();\r\n\r\n getOptionsPerdiemRequestsAction('technicalname', setTecnicos);\r\n props.ConceptsAction(\"\");\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.deptosCenterData && props.deptosCenterData.isOK) {\r\n let cento = props.deptosCenterData.DeptosCenter.cento;\r\n if (cento && cento.length > 0) {\r\n setCentros(cento.filter(item => item.Centro_ID != '0'));\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n } \r\n else if (props.deptosCenterError && props.deptosCenterError.isOK === false) {\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n }, [props.deptosCenterData, props.deptosCenterError]);\r\n\r\n useEffect(() => {\r\n if (props.conceptsData && props.conceptsData.isOK) {\r\n let concepts = props.conceptsData.Concepts.results;\r\n if (concepts && concepts.length > 0) {\r\n setOcupaciones(\r\n concepts.map(item => { \r\n return { \r\n label: item.concept, \r\n value: item.concept, \r\n }; \r\n })\r\n );\r\n props.ConceptsAction(\"PURGE\");\r\n }\r\n } \r\n else if (props.conceptsError && props.conceptsError.isOK === false) {\r\n props.ConceptsAction(\"PURGE\");\r\n }\r\n }, [props.conceptsData, props.conceptsError]);\r\n\r\n useEffect(() => {\r\n if (centrosSel.length > 0) {\r\n let centrosVal = centrosSel.map(item => { return item.value; }) || [];\r\n //\"tem:Centros\": centrosVal.join(\",\"),\r\n }\r\n }, [centrosSel]);\r\n\r\n useEffect(() => {\r\n if (props.generaRptVacacionIncidenciaData && props.generaRptVacacionIncidenciaData.isOK) {\r\n setBlobRpt(props.generaRptVacacionIncidenciaData.UrlRpt);\r\n //downloadXLS(props.generaRptVacacionIncidenciaData.UrlRpt);\r\n } \r\n else if (props.generaRptVacacionIncidenciaError && props.generaRptVacacionIncidenciaError.isOK === false) {\r\n props.GeneraRptVacacionIncidenciaAction(\"PURGE\", \"\");\r\n }\r\n }, [props.generaRptVacacionIncidenciaData, props.generaRptVacacionIncidenciaError]);\r\n\r\n const opcionesFiltrosPerdiemData = async () => {\r\n let filters = [\r\n \"technicalName\",\r\n ];\r\n\r\n let tmpObject = {};\r\n filters.forEach(async (filter) => {\r\n let { results } = await getFilterOptions(filter);\r\n tmpObject = {\r\n ...tmpObject,\r\n [filter]: results,\r\n };\r\n setFiltersOptions(tmpObject);\r\n });\r\n };\r\n const getFilterOptions = async (filter) => {\r\n const url =\r\n localStorage.getItem(\"REACT_APP_PERDIEM\") +\r\n `perdiems/reports/filters-options?filter=${filter}`;\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n return res.json();\r\n };\r\n const getFilterOptionsFromState = (filter) => {\r\n if (filtersOptions[filter]) {\r\n return filtersOptions[filter].map((option) => ({\r\n value: option,\r\n label: option,\r\n }));\r\n // <option key={option + i} value={option}>\r\n // {option}\r\n // </option>\r\n } else {\r\n return [];\r\n }\r\n };\r\n const selectOption = (type, v) => {\r\n if (v) {\r\n let todos = v.filter((item) => item.value === \"TODOS\");\r\n if (todos.length > 0) v = todos;\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n [type]: v.map((val) => val.value),\r\n });\r\n };\r\n\r\n const departamentosCentros = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n };\r\n props.getDeptosCenterAction(newParams, server);\r\n };\r\n\r\n const getOptionsPerdiemRequestsAction = async (filter, setState) => { \r\n let { params, server } = getParams();\r\n let company = params[\"tem:IdEmpresa\"];\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/reports/options-perdiem-requests-data/${company}/?field=${filter}`;\r\n console.log(url);\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n let json = await res.json();\r\n if (json.results) {\r\n let options = json.results.map(item => { \r\n return { \r\n label: item[filter], \r\n value: item[filter], \r\n }; \r\n });\r\n setState(options);\r\n }\r\n };\r\n\r\n const getOptionsCentros = () => {\r\n let options = [{ label: \"TODOS\", value: \"*\" }];\r\n if (centros.length > 0) {\r\n options = options.concat(\r\n //centros.map((item) => { return { value: item.Centro_ID, label: item.Descripcion } })\r\n centros.map((item) => { return { value: item.Descripcion, label: item.Descripcion } })\r\n );\r\n }\r\n return options;\r\n };\r\n\r\n const getOptionsTecnicos = () => {\r\n let options = [{ label: \"TODOS\", value: \"*\" }];\r\n if (centros.length > 0) {\r\n options = options.concat(tecnicos);\r\n }\r\n return options;\r\n };\r\n\r\n const getOptionsOcupaciones = () => {\r\n let options = [{ label: \"TODOS\", value: \"*\" }];\r\n if (centros.length > 0) {\r\n options = options.concat(ocupaciones);\r\n }\r\n return options;\r\n };\r\n\r\n const selectCentro = (v) => {\r\n setBlobRpt(null);\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = [{label:\"TODOS\", value:\"*\"}];\r\n }\r\n setCentrosSel(selected);\r\n };\r\n\r\n const selectTecnico = (v) => {\r\n setBlobRpt(null);\r\n /*let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n setTecnicosSel(selected);*/\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = [{label:\"TODOS\", value:\"*\"}];\r\n }\r\n setTecnicosSel(selected);\r\n };\r\n\r\n const selectOcupacion = (v) => {\r\n setBlobRpt(null);\r\n /*let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n setOcupacionesSel(selected);*/\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = [{label:\"TODOS\", value:\"*\"}];\r\n }\r\n setOcupacionesSel(selected);\r\n };\r\n\r\n const generaReporte = async () => {\r\n let { params, server } = getParams();\r\n let company = params[\"tem:IdEmpresa\"];\r\n\r\n setBlobRpt(null);\r\n\r\n let data = {\r\n fechaInicio: initDate.toISOString(),\r\n fechaFinal: finalDate.toISOString(),\r\n centroCostos: centrosSel.map(item => { return item.value; }),\r\n tecnicos: tecnicosSel.map(item => { return item.value; }),\r\n ocupaciones: ocupacionesSel.map(item => { return item.value; }),\r\n mesReporte: imprimirMesesConsultados(),\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + `perdiems/reports/concentrate-technical-services/${company}/`;\r\n console.log('POST', url, data);\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let response = await fetch(url, config);\r\n if (response.status == 200) {\r\n let blob = await response.blob();\r\n setBlobRpt(blob);\r\n }\r\n else {\r\n let json = await response.json();\r\n alert(json?.error || 'No establecio conexión');\r\n }\r\n };\r\n\r\n const imprimirMesesConsultados = () => {\r\n let mesReporte = '';\r\n let meses = ['ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE'];\r\n let fechaA = new Date(initDate.getFullYear(), initDate.getMonth(), 1);\r\n let fechaB = new Date(finalDate.getFullYear(), finalDate.getMonth(), 1);\r\n\r\n while(!(fechaA.getMonth() == fechaB.getMonth() && fechaA.getFullYear() == fechaB.getFullYear())) {\r\n mesReporte += (mesReporte && ', ') + meses[fechaA.getMonth()] + ' ' + fechaA.getFullYear();\r\n fechaA = new Date(fechaA.setMonth(fechaA.getMonth()+1));\r\n }\r\n\r\n if (fechaA.getMonth() == fechaB.getMonth() && fechaA.getFullYear() == fechaB.getFullYear()) \r\n {\r\n mesReporte += (mesReporte && ', ') + meses[fechaA.getMonth()] + ' ' + fechaA.getFullYear();\r\n }\r\n \r\n return mesReporte;\r\n };\r\n\r\n const downloadXLS = async (blob) => {\r\n if (blob) {\r\n download(blob, 'ReporteConcentrado_RT.xlsx');\r\n }\r\n };\r\n \r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n switch (storage.typeUser) {\r\n case 2:\r\n return <EmployeeLeftsidebar />;\r\n break;\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n case 7:\r\n return <DirectorGralLeftsidebar />;\r\n break;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n {Leftsidebar()}\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO SERVICIOS TÉCNICOS\" icon=\"mdi mdi-chart-line\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Concentrado de Servicios Técnicos\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte de servicios técnicos autorizados.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-3\">\r\n <div className=\"form-group\">\r\n <label>Fecha Inicio</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-3\">\r\n <div className=\"form-group\">\r\n <label>Fecha Final</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <Select\r\n disabled={centrosSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los centros.\"\r\n value={centrosSel}\r\n options={getOptionsCentros()}\r\n onChange={(v) => selectCentro(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Técnico Krones</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los técnicos.\"\r\n value={tecnicosSel}\r\n options={getOptionsTecnicos()}\r\n onChange={(v) => selectTecnico(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Ocupaciones</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona las ocupaciones.\"\r\n value={ocupacionesSel}\r\n options={getOptionsOcupaciones()}\r\n onChange={(v) => selectOcupacion(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n \r\n {/* <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Técnico de KRONES 2</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"technicalName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"technicalName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div> */}\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {(initDate && finalDate) && \r\n centrosSel.length > 0 && \r\n tecnicosSel.length > 0 && \r\n ocupacionesSel.length > 0 ? (\r\n <p>\r\n <a\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n generaReporte();\r\n }}\r\n >\r\n Generar Reporte\r\n </a>\r\n </p>\r\n ) : null}\r\n </div>\r\n \r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {blobRpt != null && \r\n <Card\r\n src={xlsxImage}\r\n classNameSrc=\"mdi\"\r\n value=\"\"\r\n name=\"Descargar reporte\"\r\n onClick={() => downloadXLS(blobRpt)}\r\n type=\"img\"\r\n />\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n conceptsData: state.concepts.conceptsData,\r\n conceptsError: state.concepts.conceptsError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction,\r\n ConceptsAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(TechnicalServicesConcentrate)\r\n);\r\n","import { changeXml, JefesPerdiemResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n JEFES_PERDIEM_SUCCESS,\r\n JEFES_PERDIEM_ERROR,\r\n JEFES_PERDIEM_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getJefesPerdiemAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetListaJefes ': {\r\n ...data\r\n }\r\n }\r\n\r\n console.log('OIHB', data);\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetListaJefes\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST GetDeptoCentros:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: JEFES_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET JEFES_PERDIEM_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: JEFES_PERDIEM_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n JefesPerdiem: JefesPerdiemResponse(body)\r\n }\r\n\r\n console.log('RESPONSE JEFES_PERDIEM DATA: ', response);\r\n dispatch({ type: JEFES_PERDIEM_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET JEFES_PERDIEM DATA: ', response);\r\n dispatch({ type: JEFES_PERDIEM_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET JEFES_PERDIEM DATA: ', responseError);\r\n dispatch({ type: JEFES_PERDIEM_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, EmpleadosAllResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMPLEADOS_ALL_SUCCESS,\r\n EMPLEADOS_ALL_ERROR,\r\n EMPLEADOS_ALL_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getEmpleadosAllAction = (data, server) => {\r\n let configJson = {\r\n 'tem:EmpleadosAll': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/EmpleadosAll \",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST EmpeladosAll:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMPLEADOS_ALL_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMPLEADOS_ALL_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMPLEADOS_ALL_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n EmpleadosAll: EmpleadosAllResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMPLEADOS_ALL DATA: ', response);\r\n dispatch({ type: EMPLEADOS_ALL_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMPLEADOS_ALL DATA: ', response);\r\n dispatch({ type: EMPLEADOS_ALL_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMPLEADOS_ALL DATA: ', responseError);\r\n dispatch({ type: EMPLEADOS_ALL_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, EmpRepoResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n EMP_REPO_SUCCESS,\r\n EMP_REPO_ERROR,\r\n EMP_REPO_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getEmpRepoAction = (data, server) => {\r\n let configJson = {\r\n 'tem:EmpleadosREPORTEPerdiem': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoEmpleado/EmpleadosREPORTEPerdiem\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoEmpleado.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('RECUEST EmpeladosAll:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: EMP_REPO_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n console.log('RESP DATA', resultJson)\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET EMP_REPO_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: EMP_REPO_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n EmpRepo: EmpRepoResponse(body)\r\n }\r\n\r\n console.log('RESPONSE EMP_REPO DATA: ', response);\r\n dispatch({ type: EMP_REPO_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET EMP_REPO DATA: ', response);\r\n dispatch({ type: EMP_REPO_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET EMP_REPO DATA: ', responseError);\r\n dispatch({ type: EMP_REPO_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import {\r\n REPORT_CONVERT_SUCCESS,\r\n REPORT_CONVERT_ERROR,\r\n REPORT_CONVERT_PURGE\r\n} from '../../types'\r\n\r\n\r\nexport const ReportConvertAction = (data) => {\r\n\r\n const config = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n\r\n const url = localStorage.getItem(\"REACT_APP_PERDIEM\") + 'perdiems/reports/accounting'\r\n\r\n console.log(' REPORT_CONVERT RECUEST:', url, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORT_CONVERT_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(url, config)\r\n .then((json) => {\r\n console.log('FIRST', json)\r\n return json.json()\r\n })\r\n .then((responseJson) => {\r\n if (responseJson) {\r\n const response = {\r\n isOK: true,\r\n ReportConvert: responseJson\r\n }\r\n console.log('RESPONSE REPORT_CONVERT DATA: ', response);\r\n dispatch({ type: REPORT_CONVERT_SUCCESS, payload: response })\r\n } else {\r\n const response = {\r\n isOK: false,\r\n error: responseJson\r\n }\r\n console.log('ERROR REPORT_CONVERT DATA: ', response);\r\n dispatch({ type: REPORT_CONVERT_ERROR, payload: response })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR REPORT_CONVERT DATA: ', responseError);\r\n dispatch({ type: REPORT_CONVERT_ERROR, payload: responseError })\r\n });\r\n }\r\n }\r\n};\r\n","import { changeXml, GetXlsPerdiemResponse, changeToXmlWcf } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_XLS_PERDIEM_SUCCESS,\r\n GET_XLS_PERDIEM_ERROR,\r\n GET_XLS_PERDIEM_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\nexport const getXlsPerdiemAction = (data, server) => {\r\n let configJson = {\r\n 'tem:EmpleadosREPORTEPerdiemurl': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeToXmlWcf(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoReportes/EmpleadosREPORTEPerdiemurl\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoReportes.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('GET_XLS_PERDIEM RECUEST:', data, config, obj);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_XLS_PERDIEM_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => {\r\n console.log('GET_XLS_PERDIEM RECUEST', response)\r\n return response.text()\r\n }\r\n )\r\n .then((xml) => {\r\n console.log('GET_XLS_PERDIEM RECUEST', xml)\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_XLS_PERDIEM_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_XLS_PERDIEM_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n GetXlsPerdiem: GetXlsPerdiemResponse(body)\r\n }\r\n\r\n console.log('RESPONSE GET_XLS_PERDIEM DATA: ', response);\r\n dispatch({ type: GET_XLS_PERDIEM_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET GET_XLS_PERDIEM DATA: ', response);\r\n dispatch({ type: GET_XLS_PERDIEM_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET GET_XLS_PERDIEM DATA: ', responseError);\r\n dispatch({ type: GET_XLS_PERDIEM_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport Leftsidebar from \"../layout/EmployeeLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction\";\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction\";\r\nimport { getEmpleadosAllAction } from \"../../api/actions/perdiem/EmpleadosAllAction\";\r\nimport { getEmpRepoAction } from \"../../api/actions/perdiem/EmpRepoAction\";\r\nimport { ReportConvertAction } from \"../../api/actions/perdiem/ReportConvertAction\";\r\nimport { getXlsPerdiemAction } from \"../../api/actions/perdiem/GetXlsPerdiemAction\";\r\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert\";\r\nimport { registerLocale } from \"react-datepicker\";\r\nimport es from \"date-fns/locale/es\";\r\nregisterLocale(\"es\", es);\r\n\r\nconst AccountingReport = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [deptos, setDeptos] = useState([]);\r\n const [centros, setCentros] = useState([]);\r\n const [centroSel, setCentroSel] = useState([]);\r\n const [deptoSel, setDeptoSel] = useState(\"\");\r\n const [jefes, setJefes] = useState([]);\r\n const [jefe, setJefe] = useState(\"\");\r\n const [empleados, setEmpleados] = useState([]);\r\n const [empeladosSelect, setEmpleadosSelect] = useState([]);\r\n const [aditional, setAditional] = useState(\"TODOS\");\r\n const [concepts, setConcepts] = useState([]);\r\n const [initialDate, setInitialDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(\"\");\r\n const [filtersOptions, setFiltersOptions] = useState({});\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n\r\n const [filters, setFilters] = useState({});\r\n\r\n let year = new Date().getFullYear();\r\n let month = new Date().getMonth();\r\n let days = [\r\n { name: `Enero - ${year}`, date: `${year}/01/01` },\r\n { name: `Febrero - ${year}`, date: `${year}/02/01` },\r\n { name: `Marzo - ${year}`, date: `${year}/03/01` },\r\n { name: `Abril - ${year}`, date: `${year}/04/01` },\r\n { name: `Mayo - ${year}`, date: `${year}/05/01` },\r\n { name: `Junio - ${year}`, date: `${year}/06/01` },\r\n { name: `Julio - ${year}`, date: `${year}/07/01` },\r\n { name: `Agosto - ${year}`, date: `${year}/08/01` },\r\n { name: `Septiembre - ${year}`, date: `${year}/09/01` },\r\n { name: `Octubre - ${year}`, date: `${year}/10/01` },\r\n { name: `Noviembre - ${year}`, date: `${year}/11/01` },\r\n { name: `Diciembre - ${year}`, date: `${year}/12/01` },\r\n ];\r\n\r\n console.log(\"DATES=>\", initialDate, endDate);\r\n\r\n useEffect(() => {\r\n props.ConceptsAction(\"\");\r\n getCompaniesOptions();\r\n\r\n let filters = [\r\n \"client\",\r\n \"projectCoordinator\",\r\n \"technicalName\",\r\n \"cityClient\",\r\n \"noMachine\",\r\n \"contactClient\",\r\n \"clientName\",\r\n \"typeWork\",\r\n \"REK\",\r\n ];\r\n\r\n let tmpObject = {};\r\n filters.forEach(async (filter) => {\r\n let { results } = await getFilterOptions(filter);\r\n tmpObject = {\r\n ...tmpObject,\r\n [filter]: results,\r\n };\r\n setFiltersOptions(tmpObject);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let newConcept = [];\r\n if (props.conceptsData && props.conceptsData.isOK) {\r\n console.log(\"CONCEPTS\", props.conceptsData.Concepts);\r\n let concepts = props.conceptsData.Concepts.results;\r\n\r\n if (concepts && concepts.length > 0) {\r\n concepts.map((concept) => {\r\n newConcept.push(concept);\r\n });\r\n }\r\n setConcepts(newConcept);\r\n props.ConceptsAction(\"PURGE\");\r\n } else if (props.conceptsError && props.conceptsError.isOK === false) {\r\n props.ConceptsAction(\"PURGE\");\r\n setLoading(false);\r\n }\r\n }, [props.conceptsData, props.conceptsError]);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n };\r\n props.getDeptosCenterAction(newParams, server);\r\n };\r\n\r\n useEffect(() => {\r\n if (centroSel.length > 0 && deptoSel.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n \"tem:Centros\": centrosS.join(\",\"),\r\n \"tem:Departamentos\": deptosS.join(\",\"),\r\n };\r\n console.log(newParams);\r\n props.getJefesPerdiemAction(newParams, server);\r\n }\r\n }, [deptoSel]);\r\n\r\n const getEmpleados = () => {\r\n let { params, server } = getParams();\r\n if (centroSel.length > 0 && deptoSel.length > 0 && jefe.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n\r\n let jefeS = [];\r\n jefe.map((sel) => {\r\n jefeS.push(sel.value);\r\n });\r\n\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": centrosS.join(),\r\n \"tem:deptos\": deptosS.join(),\r\n \"tem:Jefe\": jefeS.join(\",\"),\r\n \"tem:user_id\": params[\"tem:TrabID\"],\r\n };\r\n console.log(\"EMPLEADOS\", newParams);\r\n props.getEmpleadosAllAction(newParams, server);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.deptosCenterData && props.deptosCenterData.isOK) {\r\n setDeptos(props.deptosCenterData.DeptosCenter.depto);\r\n setCentros(props.deptosCenterData.DeptosCenter.cento);\r\n } else if (\r\n props.deptosCenterError &&\r\n props.deptosCenterError.isOK === false\r\n ) {\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n }, [props.deptosCenterData, props.deptosCenterError]);\r\n\r\n useEffect(() => {\r\n if (props.jefesPerdiemData && props.jefesPerdiemData.isOK) {\r\n console.log(\"JEFES\", props.jefesPerdiemData.JefesPerdiem);\r\n setJefes(props.jefesPerdiemData.JefesPerdiem);\r\n } else if (\r\n props.jefesPerdiemError &&\r\n props.jefesPerdiemError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.jefesPerdiemData, props.jefesPerdiemError]);\r\n\r\n useEffect(() => {\r\n if (props.empleadosAllData && props.empleadosAllData.isOK) {\r\n console.log(\"EMPLEADOS\", props.empleadosAllData.EmpleadosAll);\r\n setEmpleados(props.empleadosAllData.EmpleadosAll);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empleadosAllData, props.empleadosAllError]);\r\n\r\n useEffect(() => {\r\n if (props.empRepoData && props.empRepoData.isOK) {\r\n console.log(\"EMP_REPO\", props.empRepoData.EmpRepo);\r\n ProcessData(props.empRepoData.EmpRepo);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empRepoData, props.empRepoError]);\r\n\r\n useEffect(() => {\r\n if (props.reportConvertData && props.reportConvertData.isOK) {\r\n console.log(\"REPORT_CONVERT\", props.reportConvertData.ReportConvert);\r\n sendDataToGetUrl(props.reportConvertData.ReportConvert);\r\n } else if (\r\n props.reportConvertError &&\r\n props.reportConvertError.isOK === false\r\n ) {\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.reportConvertData, props.reportConvertError]);\r\n\r\n useEffect(() => {\r\n if (props.getXlsPerdiemData && props.getXlsPerdiemData.isOK) {\r\n console.log(\"DOWNLOAD_XLS\", props.getXlsPerdiemData.GetXlsPerdiem);\r\n downloadXLS(props.getXlsPerdiemData.GetXlsPerdiem);\r\n } else if (\r\n props.getXlsPerdiemError &&\r\n props.getXlsPerdiemError.isOK === false\r\n ) {\r\n alert(\"No se pudo descargar el reporte\");\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getXlsPerdiemData, props.getXlsPerdiemError]);\r\n\r\n const ProcessData = (data) => {\r\n if (data && data.length > 0) {\r\n let { params } = getParams();\r\n let arrData = [];\r\n data.map((emp) => {\r\n let dat = {\r\n employee: emp.Nombre,\r\n center: emp.Centro_Costo,\r\n description: emp.Tecnologia,\r\n id: emp.Trab_ID,\r\n company: params[\"tem:IdEmpresa\"] || \"kimo\",\r\n };\r\n arrData.push(dat);\r\n });\r\n\r\n let dataS = {\r\n data: arrData,\r\n date:\r\n initialDate.getFullYear() +\r\n \"/\" +\r\n (initialDate.getMonth() + 1) +\r\n \"/\" +\r\n initialDate.getDate(),\r\n //\"dateEnd\": endDate,\r\n filters,\r\n };\r\n console.log(\"ReportConvert DATA=>\", dataS);\r\n\r\n props.ReportConvertAction(dataS);\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const sendDataToGetUrl = (dataEmp) => {\r\n console.log(\"getXlsPerdiem DATA=>\", dataEmp);\r\n if (dataEmp.results && dataEmp.results.length > 0) {\r\n let { params, server } = getParams();\r\n let emple = [];\r\n dataEmp.results.map((info, i) => {\r\n let da = {\r\n \"wcf:ReporteContaDetalle\": {\r\n \"wcf:Centro_Costo\": info.center,\r\n \"wcf:Ciudad\": info.cityClient,\r\n \"wcf:ContactoCliente\": info.contactClient,\r\n \"wcf:CoordinadorProy\": info.projectCoordinator,\r\n \"wcf:Importe\": info.total,\r\n \"wcf:NoMaquina\": info.noMachine,\r\n \"wcf:Nombre\": info.name,\r\n \"wcf:NombreCliente\": info.clientName,\r\n \"wcf:Numero\": info.number,\r\n \"wcf:RazonSocial\": info.client,\r\n \"wcf:Rek\": info.rek,\r\n \"wcf:Servicio\": info.typeWork,\r\n \"wcf:Tecnologia\": info.description,\r\n },\r\n };\r\n emple.push(da);\r\n });\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": params[\"tem:TrabID\"],\r\n \"tem:Empleados\": {\r\n \"wcf:Empleados\": emple,\r\n \"wcf:Mes\": dataEmp.month,\r\n \"wcf:anio\": dataEmp.year,\r\n \"wcf:total\": dataEmp.total,\r\n },\r\n };\r\n console.log(\"getXlsPerdiem DATA=>\", newParams);\r\n\r\n props.getXlsPerdiemAction(newParams, server);\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const downloadXLS = async (url) => {\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } else {\r\n res = await fetch(url);\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n download(blob, name);\r\n props.getXlsPerdiemAction(\"PURGE\", \"\");\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n };\r\n\r\n const dataOptions = () => {\r\n let options = concepts;\r\n // return options.map((option) => (\r\n // <option key={option.concept} value={option.concept}>\r\n // {option.concept}\r\n // </option>\r\n // ));\r\n return options.map((option) => ({\r\n value: option.concept,\r\n label: option.concept,\r\n }));\r\n };\r\n\r\n const getFilterOptionsFromState = (filter) => {\r\n if (filtersOptions[filter]) {\r\n return filtersOptions[filter].map((option) => ({\r\n value: option,\r\n label: option,\r\n }));\r\n // <option key={option + i} value={option}>\r\n // {option}\r\n // </option>\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const getFilterOptions = async (filter) => {\r\n const url =\r\n localStorage.getItem(\"REACT_APP_PERDIEM\") +\r\n `perdiems/reports/filters-options?filter=${filter}`;\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n return res.json();\r\n };\r\n\r\n const dataDates = () => {\r\n return days.map((option, i) => (\r\n <option key={i} value={option.date}>\r\n {option.name}\r\n </option>\r\n ));\r\n };\r\n\r\n const selecEmpleados = (option) => {\r\n let empSel = empeladosSelect;\r\n if (empSel.indexOf(option.id) !== -1) {\r\n empSel = empSel.filter((item) => item !== option.id);\r\n } else {\r\n empSel.push(option.id);\r\n }\r\n setEmpleadosSelect(empSel);\r\n console.log(\"EMP\", empSel);\r\n };\r\n\r\n const employeesTable = () => {\r\n return empleados.map((option) => (\r\n <tr>\r\n <td style={{ width: \"10%\" }}>\r\n <input\r\n name=\"employee\"\r\n type=\"checkbox\"\r\n value={option.id}\r\n className=\"with-gap\"\r\n id={option.id}\r\n onChange={() => {\r\n selecEmpleados(option);\r\n }}\r\n />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: \"45%\" }}>{option.id}</td>\r\n <td style={{ width: \"45%\" }}>{option.name}</td>\r\n </tr>\r\n ));\r\n };\r\n\r\n const selectOption = (type, v) => {\r\n if (v) {\r\n let todos = v.filter((item) => item.value === \"TODOS\");\r\n if (todos.length > 0) v = todos;\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n [type]: v.map((val) => val.value),\r\n });\r\n };\r\n\r\n const downloadReport = async () => {\r\n let { params, server } = getParams();\r\n if (empeladosSelect && empeladosSelect.length > 0) {\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Empleados\": empeladosSelect.join(),\r\n };\r\n console.log(newParams);\r\n props.getEmpRepoAction(newParams, server);\r\n } else {\r\n alert(\"Selecciona por lo menos 1 empleado\");\r\n }\r\n };\r\n\r\n const selectCenters = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setCentroSel(selected);\r\n };\r\n\r\n const selectDeptos = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setDeptoSel(selected);\r\n };\r\n\r\n const selectBoss = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setJefe(selected);\r\n };\r\n\r\n const getCenters = () => {\r\n let center = centros;\r\n let newCenters = [];\r\n if (center && center.length > 0) {\r\n center.map((center) => {\r\n newCenters.push({\r\n value: center.Centro_ID,\r\n label: center.Descripcion,\r\n });\r\n });\r\n return newCenters;\r\n }\r\n };\r\n\r\n const getDeptos = () => {\r\n let departamento = deptos;\r\n let newdepartamento = [];\r\n if (departamento && departamento.length > 0) {\r\n departamento.map((dep) => {\r\n newdepartamento.push({\r\n value: dep.Depto_ID,\r\n label: dep.Descripcion,\r\n });\r\n });\r\n return newdepartamento;\r\n }\r\n };\r\n\r\n const getBoss = () => {\r\n let boss = jefes;\r\n let newdboss = [];\r\n if (boss && boss.length > 0) {\r\n boss.map((dep) => {\r\n newdboss.push({\r\n value: dep.Trab_id_Jefe,\r\n label: dep.NombreCompleto,\r\n });\r\n });\r\n return newdboss;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO CONTABILIDAD\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Concentrado de reporte de Contabilidad\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte con\r\n todos los servicios de uno o varios empleados en un rango\r\n de fechas.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los centros.\"\r\n options={getCenters()}\r\n onChange={(v) => selectCenters(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getDeptos()}\r\n onChange={(v) => selectDeptos(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getBoss()}\r\n onChange={(v) => selectBoss(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {aditional.length > 0 &&\r\n centroSel.length > 0 &&\r\n deptoSel.length > 0 &&\r\n jefe.length > 0 ? (\r\n <p>\r\n <a\r\n disabled={jefe.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n getEmpleados();\r\n }}\r\n >\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n ) : null}\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">\r\n Listado de Empleados\r\n </h4>\r\n <div>\r\n <table\r\n id=\"example23\"\r\n className=\"display nowrap table table-hover table-striped table-bordered\"\r\n cellSpacing=\"0\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"10%\" }}>\r\n Selección\r\n </th>\r\n <th style={{ width: \"45%\" }}>ID</th>\r\n <th style={{ width: \"45%\" }}>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>{employeesTable()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Filtros</h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6 col-sm-12\">\r\n <label>Selecciona un Mes</label>\r\n <br />\r\n <DatePicker\r\n selected={initialDate}\r\n onChange={(date) => setInitialDate(date)}\r\n dateFormat=\"MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n showMonthYearPicker\r\n className=\"form-control\"\r\n locale=\"es-ES\"\r\n />\r\n {/* <select\r\n className=\"form-control custom-select\"\r\n data-placeholder=\"Selecciona un mes\"\r\n tabIndex=\"1\"\r\n onChange={(val) => {\r\n setInitialDate(val.target.value);\r\n }}\r\n >\r\n <option value=\"0\">Selecciona un mes</option>\r\n {dataDates()}\r\n </select> */}\r\n </div>\r\n {/* <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setInitialDate(val.target.value) }} />\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setEndDate(val.target.value) }} />\r\n\r\n </div>\r\n </div>*/}\r\n\r\n <div className=\"col-md-6 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={dataOptions()}\r\n onChange={(v) => selectOption(\"concept\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Razón Social Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"client\")}\r\n onChange={(v) => selectOption(\"client\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Coordinador de Proyecto</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"projectCoordinator\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"projectCoordinator\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Técnico de KRONES</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"technicalName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"technicalName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Ciudad</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"cityClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"cityClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>No. Máq</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"noMachine\"\r\n )}\r\n onChange={(v) => selectOption(\"noMachine\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Contacto Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"contactClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"contactClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Nombre del Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"clientName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"clientName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>\r\n Servicio, reporte o respaldo de datos\r\n </label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"typeWork\"\r\n )}\r\n onChange={(v) => selectOption(\"typeWork\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>REK</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"REK\")}\r\n onChange={(v) => selectOption(\"REK\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-info m-l-5\"\r\n onClick={() => downloadReport()}\r\n >\r\n Descargar Reporte\r\n <i className=\"mdi mdi-download\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n empleadosAllData: state.empleadosAll.empleadosAllData,\r\n empleadosAllError: state.empleadosAll.empleadosAllError,\r\n\r\n empRepoData: state.empRepo.empRepoData,\r\n empRepoError: state.empRepo.empRepoError,\r\n\r\n reportConvertData: state.reportConvert.reportConvertData,\r\n reportConvertError: state.reportConvert.reportConvertError,\r\n\r\n getXlsPerdiemData: state.getXlsPerdiem.getXlsPerdiemData,\r\n getXlsPerdiemError: state.getXlsPerdiem.getXlsPerdiemError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n conceptsData: state.concepts.conceptsData,\r\n conceptsError: state.concepts.conceptsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction,\r\n getJefesPerdiemAction,\r\n getEmpleadosAllAction,\r\n getEmpRepoAction,\r\n ReportConvertAction,\r\n getXlsPerdiemAction,\r\n ConceptsAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(AccountingReport)\r\n);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { getDeptosCenterAction } from '../../api/actions/perdiem/DeptosCenterAction';\r\n\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/EmployeeLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport download from 'downloadjs';\r\n\r\nconst ServiceReportsReport = props => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n getCompaniesOptions();\r\n }, []);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:User_id': params['tem:TrabID'],\r\n }\r\n props.getDeptosCenterAction(newParams, server)\r\n };\r\n\r\n const centersOptions = () => {\r\n let options = ['100-Loeffler Max', '101-Russek Max', '102-Corporativo Max', '103-IASA Max', '200-Loeffler Leh', '201-Russek Leh', '202-Corporativo Leh', '203-IASA Leh', '300-Loeffler Coreh', '301-Russek Coreh', '302-Iasa Coreh', '303-Corporativo Coreh', '304-Corporativo Russek Coreh', '305-Corporativo Loeffler Coreh', '306-Corporativo Iasa Coreh', '400-Loeffler PFM', '401-Russek PFM', '402-Iasa PFM', '403-Corporativo PFM', '404-Corporativo Russek PFM', '405-Corporativo Loeffler PFM', '406-Corporativo Iasa PFM', '500-Loeffler Acierto', '501-Russek Acierto', '502-IASA Acierto', '504-Corporativo Russek', '505-Corporativo Loeffler', '600-Loeffler Russek', '601-Russek Russek', '602-Iasa Russek', '604-Corporativo Russek', '605-Corporativo Loeffler', '700-Loeffler IASA', '701-Russek IASA', '702-IASA IASA', '704-Corporativo IASA', '705-Corporativo Loeffler'];\r\n\r\n return options.map((option, i) => <option key={\"centerIdx\"+i}>{ option }</option>)\r\n }\r\n\r\n const deptosOptions = () => { \r\n \r\n let options = ['0-GENERAL', '1-Liquidos', '2-Ovulos y supositorios', '3-Cremas', '4-Solidos', '5-Inyectables', '6-Acondicionamiento', '7-Polvos gran volumen', '8-Impresion', '9-Mantenimiento', '10-Almacen', '11-Limpieza y jardineria', '12-Comedor', '13-Roperia', '14-Vigilancia', '15-Administracion Produccion', '16-Fisico quimico', '17-Microbiologia', '18-Documentacion', '19-Validacion', '20-Desarrollo', '21-Contabilidad', '22-Tesoreria', '23-Recursos Humanos', '24-Compras', '25-Sistemas', '26-Ventas privada', '27-Ventas gobierno', '28-Maquilas', '29-Credito y cobranza', '30-Mercadotecnia', '31-Embarques', '32-Planeacion', '33-Inspeccion', '34-Autoservicios', '35-Diseno', '36-Asuntos Regulatorios', '37-Aseguramiento de Calidad', '38-Sistemas de Calidad', '39-Direccion General', '40-Administracion y Finanzas', '41-Operaciones', '42-Control de Calidad', '43-Marcas propias', '44-Contraloría', '45-Farmacenter', '46-Manufactura', '47-Ingeniería', '48-Cadena de Suministro', '100-Fabricacion llenado', '101-Líquidos 1', '102-Liquidos 2', '103-Óvulos y supositorios', '104-Cremas', '105-Sólidos', '106-Inyectables', '111-Polvos gran volumen', '112-Acondicionamiento', '115-Ropería', '116-Mantenimiento', '117-Intendencia', '118-Proyectos', '119-Seguridad e Higiene', '120-Sistemas Criticos', '200-Laboratorio FQ y MB', '221-Microbiología', '222-Inspección de Calidad', '223-Sistemas de Calidad', '224-Validación', '225-Asuntos Regulatorios', '226-Desarrollo', '300-Planeación', '331-Almacén IASA', '332-Centro de Distribución', '333-Almacén 110', '334-Almacén 114', '400-Rep. Sureste', '441-Rep. Especiales', '442-Rep. Norte DF', '443-Rep. Sur DF', '444-Rep. Occidente Centro', '445-Rep. Norte', '446-Rep. Farma', '447-Sup DF', '448-Rep. Similares', '449-Sup Occidente', '450-Jefe Demos', '451-Gerencia Genéricos', '452-Marcas Propias', '500-Demovendedor', '551-Gerente de distrito', '552-Gerente de Monterrey', '553-Gerente de Guadalajara', '554-Delegado Médico DF 1', '555-Delegado Médico DF 2', '556-Delegado Médico DF 3', '557-Delegado Médico DF 4', '558-Delegado Médico DF 5', '559-Delegado Médico DF 6', '560-Delegado Médico DF 7', '561-Delegado Médico DF 8', '562-Delegado Médico DF 9', '563-Delegado Médico DF 10', '564-Delegado Médico GDL 1', '565-Delegado Médico GDL 2', '566-Delegado Médico GDL 3', '567-Delegado Médico MTY 1', '568-Delegado Médico MTY 2', '569-Gte. de Exportaciones', '600-Gerencia de Ventas Veterinaria', '661-Rep. C55-C60', '662-Rep. N15', '663-Rep. S90', '664-Rep. S30', '665-Rep. S20', '666-Rep. S11', '667-Rep. S10', '668-Rep C40-C-50-C75', '670-Mercadotecnia', '671-Sup Sureste', '672-Sup. DF y Bajío', '673-Promos de Autoservicio', '700-Rep', '701-Distribuidora', '702-Promos de Veterinaria', '703-Promos de Humana', '704-Innopharma', '705-Relaciones Industriales ', '706-Selección e Integración P', '707-Desarrollo Organizacional', '708-Administración y Finanzas', '709-Impuestos', '710-Planeación Financiera', '711-Inteligencia de Negocios', '712-Acondicionamiento Sólidos', '713-Acondicionamiento Líquidos 1', '714-Acondicionamiento Ovu y Sup', '715-Promoffler', '716-Coordinación Represent. Veter.', '717-Representantes Veterinaria', '718-Desarrollo Veterinario', '719-Codificado', '720-Dirección General'];\r\n \r\n return options.map((option, i) => <option key={'deptoIdx' + i}>{ option }</option>)\r\n }\r\n\r\n const chiefsOptions = () => {\r\n let options = ['9-FERNANDO','13-LUIS','17-GONZALO','19-SILVIA ROSANA','20-RICARDO','23-DIEGO','24-ELIZABETH','27-ARTURO','108-ASTRID','193-ALBERTO DANIEL','209-PATRICIA','237-CARLOS ALBERTO','416-ENRIQUE','556-ADELAIDA','754-ALEJANDRO CESAR','829-IVETTE','948-CLAUDIA','1023-ELIZABETH','1042-NOEMI','1083-JUAN CARLOS','1095-BERENICE','1267-JOAQUIN','1275-MIGUEL ANGEL','1285-GENARO','1412-ARACELI ELIGIA','1527-JOSE ARTURO','1528-JAIME','1546-MARIA TERESA','1547-RAUL','1548-JORGE ARIEL','1549-GERMAN','1550-JESUS FERNANDO','1554-JOSE ANGEL','1555-ANEL','1556-IRMA','1557-ALEJANDRO','1559-JULIO CESAR','1701-JUAN PABLO','1761-JORGE GABRIEL','1791-ALFONSO','1832-JOSE DE JESUS','1871-YESSICA LILIA','1882-LUIS ANTONIO','1883-JOSE LUIS','2081-LUIS ANGEL','2121-OSCAR JORGE','2217-JUAN MANUEL','2304-RICARDO','2309-JOSE MARTIN','2313-ANTONIO','2315-LORENA','2335-JOSE ANTONIO','2336-HUMBERTO','2376-APOLO LEONARDO','2378-CARLOS ROBERTO','2380-MAGALY','2388-JOSE ANTONIO GUADALUPE','2440-OSCAR CUAUHTEMOC','2442-OTILIO','2486-CECILIA','2490-JORGE','2522-OSCAR','2537-MIGUEL','2549-TERESA','2555-ARTURO','2570-LUIS FERNANDO','2600-ALEJANDRO RAFAEL','2631-JUAN CARLOS','2647-OSCAR','2654-JAIME DAVID','2684-MARIA DEL ROSARIO','2699-JOSE EVARISTO','2717-LUIS STEEB','2718-GUILLERMO','2740-JOSE ALBERTO','2744-MARIO CESAR','2758-FRANCISCO','2763-JACOBO','2786-LEOPOLDO','2803-FERNANDO','2844-LUIS JAVIER','2845-ZAYURI ARSIL','2865-ANTONIO FRANCISCO','2869-LUIS ALFONSO','2877-JOSE ANTONIO','2939-RUBEN','2940-SERGIO','2963-JOSE CARLOS','2964-JUAN MELCHOR','2981-IVAN EDUARDO','2982-JESUS EMANUEL','2994-MAURICIO','3030-MARIA ISABEL','3036-JORGE LUIS','3038-MARISOL','3056-ENRIQUE','3071-PATRICIA','3089-ROOSIVELT','3127-VANESA','3142-FRANCISCO JAVIER','3228-OSCAR LEOPOLDO','3229-CLAUDIA DEL CARMEN','3307-JOSE ANTONIO','3319-EFRAIN','3327-JAIME ALEJANDRO','3335-ARTURO','3343-MARTHA LETICIA','3373-RODRIGO','3396-EDUARDO','3429-BOGAR','3455-SANDRA','3506-ANA LETICIA','3602-SERGIO','3650-JORGE IGNACIO','3703-JESSICA IVONNE','3717-SAUL','3728-VICTOR','3729-JULIO CESAR','3736-MARCO ANTONIO','3808-JOSE LUIS','3824-EMMA GABRIELA','3842-GABRIEL','3898-MARIA DEL REFUGIO','3921-LIZ JANET','3926-MIRIAM GUADALUPE','3945-GUADALUPE JANNET','3946-JOSE JUAN','3982-FRANCISCO JAVIER','3997-ARIKSANDY','4050-MARIA DEL CARMEN','4051-HECTOR','4055-ISMAEL','4190-EDGAR GUSTAVO','4231-ESMERALDA BELINDA','4310-EDGAR FRANCISCO','4322-LUIS ANTONIO','4332-ERNESTO','4350-JULIETA','4395-CLAUDIO ANWAR','4401-NORMA ANGELICA','4434-JUAN CARLOS','4436-ALEJANDRO','4520-FELIPE','4528-ABEL','4531-SILVIA ALICIA','4533-CARLOS','4564-GUILLERMO','4694-NATALIA','4700-ALBERTO EMILIO','4754-JUAN','4769-IVON','4776-LUIS RAFAEL','4784-VICTOR MANUEL','4823-SARA ANGELICA','4831-CLAUDIA MARISOL','4851-CLAUDIA ALEJANDRA','4858-JORGE','4919-SANDRA','4933-GABRIELA','4950-ISMAEL ADRIAN','4983-SAMUEL GERMANY','4989-KENIA','5020-MIGUEL ANGEL','5040-DANIEL','5043-JOSE LUIS','5049-NANCY YARETH','5124-OSWALDO','5143-VICTOR','5162-EDUARDO','5164-KARLA XOCHITL','5181-LUIS IVAN','5207-ELEONORA ALEJANDRA','5211-NOE MARTIN','5216-ANDONI','5224-MARIA LUISA','5225-SUSANA FERNANDA','5235-EDGAR','5256-HAZIEL ABDEL','5262-EVARISTO','5267-MARIA FERNANDA','5352-RAUL','5542-JOEL','5621-MARTIN RAUL','5658-JOSE DAVID','5660-MARIA JUDITH','5687-BETHEL'];\r\n\r\n return options.map((option, i) => <option key={'chiefIdx' + i}>{ option }</option>)\r\n }\r\n\r\n const dataOptions = () => {\r\n let options = [ 'Trabajo con cliente (servicio nacional)', 'Trabajo con cliente (servicio nacional-contingencia)', 'Trabajo con cliente (servicio extranjero)', 'Horas en garantía (sin cobro al cliente)', 'Día de descanso en sitio (sábado)', 'Día de descanso en sitio (domingo)', 'Visita oficina', 'Mantenimiento de auto', 'Capacitación-elearnings (nacional)', 'Capacitación-elearnings (extranjero)', 'Vacaciones', 'Incapacidad', 'Días stand by', 'Reunión anual de servicio técnico', 'Días festivos']\r\n return options.map((option, i) => <option key={'dataIdx' + i}>{ option }</option>)\r\n }\r\n\r\n const employeesTable = () => {\r\n let options = [\r\n { id:'3365', name: 'IVETTE' },\r\n { id:'3366', name: 'DIANA' },\r\n { id:'3361', name: 'VIRGINIA' },\r\n { id:'3362', name: 'JUAN ALBERTO' },\r\n { id:'3358', name: 'LUIS ENRIQUE' },\r\n { id:'3350', name: 'NAARA SARAHI' },\r\n { id:'3351', name: 'JUANA VIRGINIA' },\r\n { id:'3352', name: 'ELSA' },\r\n { id:'3353', name: 'J LUZ' },\r\n { id:'3354', name: 'MARTHA ANGELICA' },\r\n { id:'3224', name: 'MARIA DEL PILAR' },\r\n { id:'3069', name: 'LAURA' },\r\n { id:'3070', name: 'MARIA AZUCENA' },\r\n { id:'3066', name: 'MANUELA' },\r\n { id:'3067', name: 'ANTHONY' },\r\n { id:'3055', name: 'ALICIA' },\r\n { id:'3046', name: 'JULIO CESAR' },\r\n { id:'2970', name: 'ESAHU' },\r\n { id:'2965', name: 'GABRIELA NATHALY' },\r\n { id:'2966', name: 'HUGO URIEL' },\r\n { id:'2930', name: 'VIRIDIANA' },\r\n { id:'2937', name: 'ALMA PATRICIA' },\r\n { id:'2619', name: 'ROBERTO' },\r\n { id:'2598', name: 'TERESA' },\r\n { id:'2469', name: 'MARIA MERCEDES' },\r\n { id:'2126', name: 'PATRICIA' },\r\n { id:'1820', name: 'JOSE ANTONIO' },\r\n { id:'1534', name: 'SEBASTIANA' },\r\n { id:'1489', name: 'MARTHA ARACELI' },\r\n { id:'1316', name: 'PETRONILA' },\r\n { id:'1366', name: 'ISMAEL' },\r\n { id:'986', name: 'JAVIER' },\r\n { id:'782', name: 'OMAR' },\r\n { id:'6', name: 'EMILIO' }\r\n ]\r\n\r\n return options.map((option, i) => <tr key={'employee' + i}>\r\n <td style={{ width: '10%' }}>\r\n <input name=\"employee\" type=\"radio\" value={option.id} className=\"with-gap\" id={option.id} />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: '45%' }}>{ option.id }</td>\r\n <td style={{ width: '45%' }}>{ option.name }</td>\r\n </tr>)\r\n }\r\n\r\n const downloadReport = async () => {\r\n let res = await fetch('https://siconsultaservicios.softwaresicoss.com.mx/api/perdiems/reports/services-reports', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n const blob = await res.blob();\r\n\r\n download(blob, 'Concentrado de reportes de servicios.xlsx');\r\n }\r\n \r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO REPORTES\" icon=\"mdi mdi-chart-line\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">Concentrado de reporte de Servicio</h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">Por favor, selecciona los datos del empleado a seleccionar. En esta sección podrás descargar un reporte con todos los servicios de un empleado.</h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabIndex=\"1\">\r\n <option>Selecciona un Centro ...</option>\r\n { centersOptions() }\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabIndex=\"1\">\r\n <option>Selecciona un Departamento ...</option>\r\n { deptosOptions() }\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabIndex=\"1\">\r\n <option value=\"0\">Selecciona un Jefe ...</option>\r\n { chiefsOptions() }\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabIndex=\"1\">\r\n <option value=\"0\">Selecciona una Opción ...</option>\r\n { dataOptions() }\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n <p>\r\n <a className=\"btn btn-info\" data-toggle=\"collapse\" href=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">Listado de Empleados</h4>\r\n <div>\r\n <table id=\"example23\" className=\"display nowrap table table-hover table-striped table-bordered\" cellSpacing=\"0\" width=\"100%\">\r\n <thead>\r\n <tr>\r\n <th>Selección</th>\r\n <th>ID</th>\r\n <th>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n { employeesTable() }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Selección de Fechas </h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <label>Fecha de Inicio</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"01/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"31/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button type=\"button\" className=\"btn btn-info m-l-5\" onClick={ () => downloadReport() }>Descargar Reporte <i className=\"mdi mdi-download\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n </div>\r\n <Footer />\r\n </div>\r\n </div >\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ServiceReportsReport));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { getConsultaArchivosPersonalesJefeAction } from \"../../../api/actions/empleado/ConsultaArchivosJefeAction.js\";\r\nimport { getDeletePersonalFilesAction } from \"../../../api/actions/empleado/DeletePersonalFilesAction.js\";\r\nimport Topbar from \"../../layout/Topbar.js\";\r\nimport Leftsidebar from \"../../layout/EmployeeLeftsidebar.js\";\r\nimport Title from \"../../layout/Title.js\";\r\nimport Footer from \"../../layout/Footer.js\";\r\nimport { getParams } from \"../../../utils/index.js\";\r\nimport CryptoJS from 'crypto-js';\r\n\r\nconst DownloadDocument = (props) => {\r\n const [loading, setLoading] = useState(true);\r\n const [fileName, setFileName] = useState(\"\");\r\n const [fileBased64, setFileBased64] = useState(\"\");\r\n const [existFiles, setExistFiles] = useState(false);\r\n const [searchParams, setSearchParams] = useState({\r\n nombre: \"\",\r\n noEmpleado: \"\",\r\n apellidoPaterno: \"\",\r\n apellidoMaterno: \"\",\r\n });\r\n const [missedRecords, setMissedRecords] = useState([]);\r\n const [showResults, setShowResults] = useState(false);\r\n\r\n var encryptedData = sessionStorage.getItem(\"params\");\r\n\r\n if (encryptedData) {\r\n var decryptedData = CryptoJS.AES.decrypt(encryptedData, process.env.REACT_APP_HASH_SECRET);\r\n var decryptedJson = decryptedData.toString(CryptoJS.enc.Utf8);\r\n var parsedData = JSON.parse(decryptedJson);\r\n var trabIdValue = parsedData[\"tem:TrabID\"];\r\n console.log(trabIdValue);\r\n } else {\r\n console.log(\"Not sessionStorage data found.\");\r\n }\r\n\r\n let userString = sessionStorage.getItem(\"userSaved\");\r\n let user = JSON.parse(userString);\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n setSearchParams({\r\n nombre: \"\",\r\n noEmpleado: \"\",\r\n apellidoPaterno: \"\",\r\n apellidoMaterno: \"\",\r\n });\r\n } else {\r\n setMissedRecords([]);\r\n }\r\n }, [loading]);\r\n\r\n let consultPersonalArchivos = () => {\r\n setLoading(true);\r\n props.getConsultaArchivosPersonalesJefeAction(\"PURGE\", \"\");\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Trab_id\": trabIdValue\r\n };\r\n\r\n props.getConsultaArchivosPersonalesJefeAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n consultPersonalArchivos();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n props.consultaArchivosPersonalesData &&\r\n props.consultaArchivosPersonalesData.isOK === true\r\n ) {\r\n setExistFiles(true);\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n } else if (\r\n props.consultaArchivosPersonalesError &&\r\n props.consultaArchivosPersonalesError.isOK === false\r\n ) {\r\n setExistFiles(false);\r\n props.getConsultaArchivosPersonalesJefeAction(\"PURGE\", \"\");\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n }\r\n }, [props.consultaArchivosPersonalesData, props.consultaArchivosPersonalesError]);\r\n\r\n let downloadBase64 = (base64, fileName) => {\r\n const downloadLink = document.createElement(\"a\");\r\n\r\n downloadLink.href = base64;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n };\r\n\r\n function data_table() {\r\n let table = [];\r\n let info = props.consultaArchivosPersonalesData?.ConsultaArchivosPersonalesJefe || [];\r\n\r\n // Filtrar los resultados\r\n const filteredInfo = info.filter((item) => {\r\n const nombre = item[\"Nombre\"] || \"\";\r\n const noEmpleado = item[\"Trab_id\"] || \"\";\r\n const apellidoPaterno = item[\"Paterno\"] || \"\";\r\n const apellidoMaterno = item[\"Materno\"] || \"\";\r\n\r\n return (\r\n nombre.toLowerCase().includes(searchParams.nombre.toLowerCase()) &&\r\n noEmpleado.toLowerCase().includes(searchParams.noEmpleado.toLowerCase()) &&\r\n apellidoPaterno.toLowerCase().includes(searchParams.apellidoPaterno.toLowerCase()) &&\r\n apellidoMaterno.toLowerCase().includes(searchParams.apellidoMaterno.toLowerCase())\r\n );\r\n });\r\n\r\n if (!filteredInfo || filteredInfo.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td colSpan={5}>No hay archivos para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n filteredInfo.map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item[\"Trab_id\"]}</td>\r\n <td>{item[\"Nombre\"] + \" \" + item[\"Paterno\"] + \" \" + item[\"Materno\"]}</td>\r\n <td>{item[\"Tipo\"]}</td>\r\n <td>{item[\"NombreArchivo\"]}</td>\r\n <td>\r\n <button\r\n onClick={() => downloadBase64(item[\"Contenido\"], item[\"NombreArchivo\"])}\r\n className=\"btn btn-primary form-control text-white\"\r\n >\r\n Descargar\r\n </button>\r\n </td>\r\n </tr>\r\n );\r\n });\r\n }\r\n\r\n return table;\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONSULTAR ARCHIVOS EMPLEADOS\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Criterios de búsqueda</h4>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">No. Empleado</label>\r\n <input\r\n type=\"text\"\r\n value={searchParams.noEmpleado}\r\n onChange={(e) =>\r\n setSearchParams({\r\n ...searchParams,\r\n noEmpleado: e.target.value,\r\n })\r\n }\r\n className=\"form-control\"\r\n />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Apellido Paterno</label>\r\n <input\r\n type=\"text\"\r\n value={searchParams.apellidoPaterno}\r\n onChange={(e) =>\r\n setSearchParams({\r\n ...searchParams,\r\n apellidoPaterno: e.target.value,\r\n })\r\n }\r\n className=\"form-control\"\r\n />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Apellido Materno</label>\r\n <input\r\n type=\"text\"\r\n value={searchParams.apellidoMaterno}\r\n onChange={(e) =>\r\n setSearchParams({\r\n ...searchParams,\r\n apellidoMaterno: e.target.value,\r\n })\r\n }\r\n className=\"form-control\"\r\n />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Nombre</label>\r\n <input\r\n type=\"text\"\r\n value={searchParams.nombre}\r\n onChange={(e) =>\r\n setSearchParams({\r\n ...searchParams,\r\n nombre: e.target.value,\r\n })\r\n }\r\n className=\"form-control\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div> \r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Archivos subidos</h4>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th style={{ width: 10 + \"%\" }}>Id</th>\r\n <th style={{ width: 20 + \"%\" }}>Nombre</th>\r\n <th style={{ width: 20 + \"%\" }}>Tipo de documento</th>\r\n <th style={{ width: 20 + \"%\" }}>Archivo</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{data_table()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n consultaArchivosPersonalesData: state.consultaArchivosPersonales.consultaArchivosPersonalesData,\r\n consultaArchivosPersonalesError: state.consultaArchivosPersonales.consultaArchivosPersonalesError,\r\n deletePersonalFilesData: state.deletePersonalFiles.deletePersonalFilesData,\r\n deletePersonalFilesError: state.deletePersonalFiles.deletePersonalFilesError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getConsultaArchivosPersonalesJefeAction,\r\n getDeletePersonalFilesAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(DownloadDocument)\r\n);","import { changeXml, ConsultaArchivosPersonalesJefe } from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n CONSULTA_ARCHIVOPERSO_SUCCESS,\r\n CONSULTA_ARCHIVOPERSO_ERROR,\r\n CONSULTA_ARCHIVOPERSO_PURGE,\r\n VALIDATE_ERROR,\r\n} from \"../../types\";\r\n\r\nexport const getConsultaArchivosPersonalesJefeAction = (data, server) => {\r\n let configJson = {\r\n \"tem:ConsultaArchivosPersonalesJefe\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaArchivosPersonalesJefe\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ConsultaArchivosPersonalesJefe: ConsultaArchivosPersonalesJefe (body),\r\n };\r\n\r\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getParams, getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from '../utils';\r\n\r\nimport Home from '../pages/employee/Home.js';\r\nimport HomeForeign from '../pages/employee/HomeForeign.js';\r\nimport AdditionalFields from '../pages/employee/AdditionalFields.js';\r\nimport Payroll from '../pages/employee/Payroll';\r\nimport PayrollDetail from '../pages/employee/PayrollDetail';\r\nimport Imss from '../pages/employee/Imss';\r\nimport ImssDetail from '../pages/employee/ImssDetail';\r\nimport Infonavit from '../pages/employee/Infonavit';\r\nimport InfonavitDetail from '../pages/employee/InfonavitDetail';\r\nimport Messages from '../pages/employee/Messages';\r\nimport MessagesDetail from '../pages/employee/MessagesDetail';\r\nimport Requests from '../pages/employee/Requests';\r\nimport RequestsCreate from '../pages/employee/RequestCreate';\r\nimport RequestsDetail from '../pages/employee/RequestsDetail';\r\nimport Sibalance from '../pages/employee/Sibalance';\r\nimport Vacations from '../pages/employee/Vacations';\r\nimport VacationsRequest from '../pages/employee/VacationsRequest';\r\nimport VacationsControl from '../pages/employee/VacationsControl';\r\nimport VacationsControlV2 from '../pages/employee/VacationsControlV2';\r\nimport VacationsAuthorization from '../pages/employee/chief/VacationsAuthorization';\r\nimport VacationsAuthorizationDetail from '../pages/employee/chief/VacationRequestDetail.js';\r\nimport VacationRequestsMassive from '../pages/employee/chief/VacationRequestsMassive';\r\nimport EmployeeVacationsControl from '../pages/employee/chief/EmployeeVacationsControl.js';\r\nimport EmployeeVacationsControlV2 from '../pages/employee/chief/EmployeeVacationsControlV2.js';\r\nimport Complaints from '../pages/employee/Complaints';\r\nimport Incidents from '../pages/employee/Incidents';\r\nimport IncidentsV2 from '../pages/employee/IncidentsV2';\r\nimport IncidentRequest from '../pages/employee/IncidentRequest';\r\nimport IncidentsAuthorization from '../pages/employee/chief/IncidentsAuthorization';\r\nimport IncidentsRequestDetail from '../pages/employee/chief/IncidentRequestDetail';\r\nimport ReportControl from '../pages/employee/chief/ReportControl';\r\nimport ReportServiceEmpleado from '../pages/employee/chief/ReportServiceEmpleado'\r\nimport DetailReportSee from '../pages/employee/chief/DetailReportSee';\r\nimport DownloadFiles from \"../pages/employee/DownloadFiles\";\r\nimport AfilIndividualizado from '../pages/employee/AfilIndividualizado';\r\n\r\nimport AuthVacations from '../pages/Authorizers/Vacations';\r\nimport AuthVacationRequests from '../pages/Authorizers/VacationRequests';\r\nimport AuthReports from '../pages/Authorizers/Reports';\r\n\r\nimport ReportService from '../pages/employee/ReportService';\r\nimport DetailReport from '../pages/employee/DetailReport';\r\nimport VacationsCalendar from '../pages/employee/chief/CalendarVacations';\r\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\r\nimport { getNextInfoUserAction } from '../api/actions/systemAdmin/NextInfoUserAction';\r\nimport TechnicalServicesConcentrate from '../pages/systemAdmin/TechnicalServicesConcentrate';\r\n\r\n\r\nimport Login from '../pages/login/Login.js';\r\nimport RecoverPassword from '../pages/login/RecoverPassword';\r\nimport Error404 from '../pages/errors/Error404.js';\r\nimport AccountingReport from '../pages/employee/AccountingReport';\r\nimport ServiceReportsReport from '../pages/employee/ServiceReportsReport';\r\nimport CajaAhorro from '../pages/common/CajaAhorro';\r\n\r\nimport DownloadDocument from '../pages/employee/chief/DownloadDocument';\r\n\r\nconst ChiefRoutes = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [menu, setMenu] = useState(true);\r\n const [userType, setUserType] = useState(null);\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [authorizerType, setAuthorizerType] = useState(null);\r\n const [infoLogin, setInfoLogin] = useState(null);\r\n const [menuPorTipoNomina, setMenuPorTipoNomina] = useState([]);\r\n\r\n useEffect(() => {\r\n setUserType(getUserType());\r\n setEmployeeType(getEmployeeType());\r\n setAuthorizerType(getAuthorizerType());\r\n setInfoLogin(getInfoUserLogin());\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n\r\n props.getAdminMenuAction(params, server);\r\n getInfoExtra();\r\n\r\n let Valor = sessionStorage.getItem(\"SICONSULTA_MenuPorTipoNomina\");\r\n let menu = formalizaMenuPorTipoNomina(Valor);\r\n setMenuPorTipoNomina(menu);\r\n console.log(\"OIHB PV chief\", Valor, menu, props.loginData);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.adminMenuData && props.adminMenuData.isOK) {\r\n setMenu([\r\n ...props.adminMenuData.AdminMenu\r\n ]);\r\n setLoading(false);\r\n } else if (props.adminMenuError && props.adminMenuError.isOK === false) {\r\n props.getAdminMenuAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.adminMenuData, props.adminMenuError]);\r\n\r\n const formalizaMenuPorTipoNomina = (Valor) => {\r\n let list = [];\r\n Valor = (Valor || '').trim();\r\n\r\n Valor.split('|').forEach(m1 => {\r\n let obj = { MenuID: 0, PeriodosID: [] };\r\n\r\n let items = m1.trim().split('=');\r\n if (items.length == 2) {\r\n obj.MenuID = items[0];\r\n obj.PeriodosID = (items[1] || '').trim().split(',');\r\n list.push(obj);\r\n }\r\n });\r\n\r\n return list;\r\n };\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n let MenuID = '0';\r\n let permite = false;\r\n\r\n if (props.adminMenuData && props.adminMenuData.isOK && props.adminMenuData.AdminMenu) {\r\n let find = props.adminMenuData.AdminMenu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n //Men� por tipo de n�mina\r\n if (localStorage.getItem(\"REACT_APP_MENU_POR_NOMINAS\") == \"1\" && infoLogin) {\r\n //let Login = props.loginData.Login;\r\n let find = menuPorTipoNomina.find(fn => fn.MenuID == MenuID && (fn.PeriodosID || []).length > 0);\r\n if (find) {\r\n permite = find.PeriodosID.some(sm => sm == infoLogin.periodo_ID);\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n const getInfoExtra = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': params['tem:TrabID'],\r\n 'tem:OmitirCamposEsp': false,\r\n }\r\n\r\n props.getNextInfoUserAction(params, server);\r\n };\r\n\r\n const RouterTrabs = () => {\r\n let info = [];\r\n if ('NextInfoUser' in props.nextInfoUserData) {\r\n info = [...props.nextInfoUserData.NextInfoUser];\r\n }\r\n\r\n let incidenciasAut = \"incidencias\";\r\n if (props.adminMenuData && props.adminMenuData.isOK && props.adminMenuData.AdminMenu) {\r\n if (props.adminMenuData.AdminMenu.some(sm => sm.NombreMenu.toLowerCase().trim() == \"incidencias-autorizar\")) {\r\n incidenciasAut = \"incidencias-autorizar\";\r\n }\r\n }\r\n\r\n return (\r\n <Switch>\r\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <Home />\r\n </Route>\r\n\r\n {permiteMenu(\"informacion-adicional\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/informacion-adicional`} exact >\r\n <AdditionalFields />\r\n </Route>}\r\n\r\n {permiteMenu(\"nominas\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/nominas`} exact >\r\n <Payroll />\r\n </Route>}\r\n\r\n {permiteMenu(\"nominas\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/nominas/detalle`} >\r\n <PayrollDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"imss\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/imss`} exact >\r\n <Imss />\r\n </Route>}\r\n\r\n {permiteMenu(\"imss\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/imss/:id`} >\r\n <ImssDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"infonavit\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/infonavit`} exact >\r\n <Infonavit />\r\n </Route>}\r\n\r\n {permiteMenu(\"infonavit\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/infonavit/:id`} >\r\n <InfonavitDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"vacaciones\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones`} exact >\r\n <Vacations />\r\n </Route>}\r\n\r\n {permiteMenu(\"vacaciones\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones/solicitud`} exact >\r\n <VacationsRequest />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '0' && permiteMenu(\"control-vacaciones\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones`} exact >\r\n <VacationsControl />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '1' && permiteMenu(\"control-vacaciones\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones`} exact >\r\n <VacationsControlV2 />\r\n </Route>}\r\n\r\n {permiteMenu(\"vacaciones-autorizar\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar`} exact >\r\n <VacationsAuthorization />\r\n </Route>}\r\n\r\n {permiteMenu(\"vacaciones-autorizar\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar/:id`} exact >\r\n <VacationsAuthorizationDetail />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_AUT_VAC_MASIVAS\") == '1' && permiteMenu(\"vacaciones-autorizar\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar-masivas`} exact >\r\n <VacationRequestsMassive />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '0' && permiteMenu(\"vacaciones-autorizar\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones-empleado`} exact >\r\n <EmployeeVacationsControl />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '1' && permiteMenu(\"vacaciones-autorizar\") && employeeType != 1 &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones-empleado`} exact >\r\n <EmployeeVacationsControlV2 />\r\n </Route>}\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/si-balance`} >\r\n <Sibalance />\r\n </Route>\r\n\r\n {permiteMenu(\"solicitudes\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/solicitudes`} exact >\r\n <Requests />\r\n </Route>}\r\n\r\n {permiteMenu(\"solicitudes\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/solicitudes/nueva`} exact >\r\n <RequestsCreate />\r\n </Route>}\r\n\r\n {permiteMenu(\"solicitudes\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/solicitudes/:id`} >\r\n <RequestsDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"mensajes\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/mensajes`} exact >\r\n <Messages />\r\n </Route>}\r\n\r\n {permiteMenu(\"mensajes\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/mensajes/:id`} >\r\n <MessagesDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"quejas\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/quejas`} exact >\r\n <Complaints />\r\n </Route>}\r\n\r\n {/* <Route path={`${process.env.PUBLIC_URL}/upload`} exact >\r\n <UploadFiles2 />\r\n </Route> */}\r\n\r\n {permiteMenu(\"Afil\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/afil-individualizado`} exact >\r\n <AfilIndividualizado />\r\n </Route>}\r\n\r\n {authorizerType != null &&\r\n <Route path={`${process.env.PUBLIC_URL}/authorizer/vacations-requests`} exact >\r\n <AuthVacations />\r\n </Route>}\r\n\r\n {authorizerType != null &&\r\n <Route path={`${process.env.PUBLIC_URL}/authorizer/vacations-authorizations`} exact >\r\n <AuthVacationRequests />\r\n </Route>}\r\n\r\n {authorizerType != null &&\r\n <Route path={`${process.env.PUBLIC_URL}/authorizer/vacations-report`} exact >\r\n <AuthReports />\r\n </Route>}\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/vacation-calendar`} exact >\r\n <VacationsCalendar />\r\n </Route>\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_INCIDENCIAS_V2\") == '0' && permiteMenu(\"incidencias\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidents`} exact >\r\n <Incidents />\r\n </Route>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_INCIDENCIAS_V2\") == '1' && permiteMenu(\"incidencias\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidents`} exact >\r\n <IncidentsV2 />\r\n </Route>\r\n }\r\n\r\n {permiteMenu(\"incidencias\") &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidents/newincident`} exact >\r\n <IncidentRequest />\r\n </Route>\r\n }\r\n\r\n {permiteMenu(incidenciasAut) &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization`} exact >\r\n <IncidentsAuthorization />\r\n </Route>\r\n }\r\n\r\n {permiteMenu(incidenciasAut) &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization/incidentsrequestdetail`} exact >\r\n <IncidentsRequestDetail />\r\n </Route>\r\n }\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/general-report-accounting`} exact >\r\n <AccountingReport />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/general-report-services`} exact >\r\n <ServiceReportsReport />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/technical-services-concentrate`}>\r\n <TechnicalServicesConcentrate />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/reporte-tecnico`} exact >\r\n <ReportService />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/reporte-tecnico/detalle-reporte`} exact >\r\n <DetailReport />\r\n </Route>\r\n <Route path={`${process.env.PUBLIC_URL}/reporte-users`} exact >\r\n <ReportControl />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/reporte-users/reporte-tecnico`} exact >\r\n <ReportServiceEmpleado />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/reporte-tecnico/show-detalle-reporte`} exact >\r\n <DetailReportSee />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/consult-documents`} exact >\r\n <DownloadFiles />\r\n </Route>\r\n\r\n {/*info.some(el => el.id.trim().toLowerCase() == 'fondoahorro' && (el.informacion == \"true\" || el.informacion == \"1\")) &&\r\n <Route path={`${process.env.PUBLIC_URL}/caja-ahorro`} exact >\r\n <CajaAhorro />\r\n </Route>\r\n */}\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\") == '1' &&\r\n <Route path={`${process.env.PUBLIC_URL}/downloadPersonalDocs`} exact >\r\n <DownloadDocument />\r\n </Route>\r\n }\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n };\r\n\r\n const RouterForeign = () => {\r\n return (\r\n <Switch>\r\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <HomeForeign />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar`} exact >\r\n <VacationsAuthorization />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar/:id`} exact >\r\n <VacationsAuthorizationDetail />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization`} exact >\r\n <IncidentsAuthorization />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization/incidentsrequestdetail`} exact >\r\n <IncidentsRequestDetail />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <Switch>\r\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <></>\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n }\r\n else {\r\n return userType != '8' ? RouterTrabs() : RouterForeign();\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n\r\n nextInfoUserData: state.nextInfoUser.nextInfoUserData,\r\n nextInfoUserError: state.nextInfoUser.nextInfoUserError,\r\n\r\n loginData: state.login.loginData,\r\n loginError: state.login.loginError,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getAdminMenuAction,\r\n getNextInfoUserAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ChiefRoutes));","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SecretQuestionLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\n\nimport { getSecurityQuestionAction } from '../../api/actions/common/SecurityQuestionAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst SecretQuestion = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ init, setInit ] = useState(false);\n const [ form, setValues ] = useState({});\n\n useEffect(() => {\n setLoading(false);\n }, []);\n\n useEffect(() => {\n\n if( init ){\n if( props.securityQuestionError && props.securityQuestionError.isOK ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n props.getSecurityQuestionAction('PURGE', '');\n setInit(false);\n setLoading(false);\n return;\n } else if( props.securityQuestionData && props.securityQuestionData.isOK && props.securityQuestionData.SecurityQuestion !== false ){\n alert('Pregunta guardada exitosamente.');\n props.history.push(`${process.env.PUBLIC_URL}/modify-pwd`);\n return;\n } else {\n alert('Parece que hubo un error(2). Intentalo de nuevo.');\n props.getSecurityQuestionAction('PURGE', '');\n setInit(false);\n setLoading(false);\n return;\n }\n } else {\n setInit(true);\n }\n\n }, [ props.securityQuestionData, props.securityQuestionError ]);\n\n const _handleInput = event => {\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n\n if( form.question == undefined || form.answer == undefined || form.question == '' || form.answer == '' ){\n alert('Por favor llena el campo de pregunta y respuesta.');\n setLoading(false);\n return;\n }\n\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Pregunta': form.question,\n 'tem:Respuesta': form.answer,\n 'tem:TrabID': params['tem:TrabID'],\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n props.getSecurityQuestionAction(params, server);\n\n }\n\n };\n\n if ( loading ) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Home\" icon=\"mdi mdi-chart-bar\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n Pregunta Secreta\n </div>\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div className=\"\">\n <h4 className=\"m-b-20 text-center\">Por seguridad, es necesario que modifiques tu contraseña. Para esto, te pedimos que escribas una pregunta de seguridad, junto con su respuesta.</h4>\n <form>\n <div className=\"form-group\">\n <label>PREGUNTA SECRETA </label>\n <input type=\"text\" onChange={ _handleInput } name=\"question\" className=\"form-control\" placeholder=\"Escribe aqui una pregunta secreta\" />\n </div>\n <div className=\"form-group\">\n <label>RESPUESTA </label>\n <input type=\"text\" onChange={ _handleInput } name=\"answer\" className=\"form-control\" placeholder=\"Escribe aqui tu respuesta\" />\n </div>\n <button type=\"submit\" onClick={ _handleSubmit } className=\"btn btn-info\">Enviar</button>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n securityQuestionData: state.securityQuestion.securityQuestionData,\n securityQuestionError: state.securityQuestion.securityQuestionError,\n };\n};\n\nconst mapDispatchToProps = {\n getSecurityQuestionAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SecretQuestion));\n","import { changeXml, SecurityQuestionResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SECURITY_QUESTION_SUCCESS,\n SECURITY_QUESTION_ERROR,\n SECURITY_QUESTION_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getSecurityQuestionAction = (data, server) => {\n let configJson = {\n 'tem:InsertPreguntaSecreta': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/InsertPreguntaSecreta\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SECURITY_QUESTION_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SECURITY_QUESTION_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SECURITY_QUESTION_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SecurityQuestion: SecurityQuestionResponse(body)\n }\n\n console.log('RESPONSE SECURITY_QUESTION DATA: ', response);\n dispatch({ type: SECURITY_QUESTION_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SECURITY_QUESTION DATA: ', response);\n dispatch({ type: SECURITY_QUESTION_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SECURITY_QUESTION DATA: ', responseError);\n dispatch({ type: SECURITY_QUESTION_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SecretQuestionLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { validateFormatPassword } from '../../utils/CommonFunctions.js';\n\nimport { getLoginAction } from '../../api/actions/common/LoginAction.js';\nimport { getChangePasswordAction } from '../../api/actions/common/ChangePasswordAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport { enableSecurityPolicy, configureNewPassword, defaultPassword } from \"../../api/actions/securityPolicy/CallApiIdentity\";\n\nconst ChangePwd = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ init, setInit ] = useState(false);\n const [ form, setValues ] = useState({});\n const [ eightPassword, setEightPassword ] = useState(null);\n const [ byExpired, setByExpired ] = useState(false);\n\n useEffect(() => {\n let type = sessionStorage.getItem('pwd_length');\n let encByExpired = sessionStorage.getItem('encByExpired');\n\n if( type ) {\n type = CryptoJS.AES.decrypt(type, process.env.REACT_APP_HASH_SECRET);\n type = JSON.parse(type.toString(CryptoJS.enc.Utf8));\n setEightPassword(type['pwd_length']);\n } else {\n let tmp = props.loginData?.Login?.ochoCaracteresPassword ? 8 : 4 ;\n setEightPassword(tmp);\n }\n\n if (encByExpired) {\n encByExpired = CryptoJS.AES.decrypt(encByExpired, process.env.REACT_APP_HASH_SECRET);\n encByExpired = JSON.parse(encByExpired.toString(CryptoJS.enc.Utf8));\n setByExpired(encByExpired['byExpired']);\n console.log('Identity', encByExpired['byExpired']);\n }\n setLoading(false);\n }, []);\n\n useEffect(() => {\n // if(init) {\n // if( props.changePasswordError && props.changePasswordError.isOK ){\n // alert('Parece que hubo un error. Intentalo de nuevo.');\n // props.getChangePasswordAction('PURGE', '');\n // setInit(false);\n // setLoading(false);\n // return;\n // } \n // else if( props.changePasswordData && props.changePasswordData.isOK && props.changePasswordData.ChangePassword != false ){\n // alert('Contraseña modificada exitosamente. Por favor inicia sesión.');\n // props.getLoginAction('PURGE', '');\n // sessionStorage.clear();\n // props.history.push(`${process.env.PUBLIC_URL}/login`);\n // return;\n // } \n // else {\n // alert('Parece que hubo un error(2). Intentalo de nuevo.');\n // props.getChangePasswordAction('PURGE', '');\n // setInit(false);\n // setLoading(false);\n // return;\n // }\n // } \n // else {\n // setInit(true);\n // }\n\n if (props.changePasswordData && props.changePasswordData.isOK) {\n alert('Contraseña modificada exitosamente. Por favor inicia sesión.');\n props.getLoginAction('PURGE', '');\n setLoading(false);\n sessionStorage.clear();\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n }\n else if (props.changePasswordError && props.changePasswordError.isOK == false) {\n alert(props.changePasswordError.error || 'Parece que hubo un error. Intentalo de nuevo.');\n props.getChangePasswordAction('PURGE', '');\n setLoading(false);\n }\n }, [ props.changePasswordData, props.changePasswordError ]);\n\n const _handleInput = event => {\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n\n const { old_password, new_password, confirm_password } = form;\n\n if( old_password.length > 0 ){\n if( new_password === confirm_password ){\n if( new_password.length === eightPassword ){\n if( validateFormatPassword(new_password) ){\n _getUserInfo();\n }else{\n alert('La nueva contraseña debe de contener al menos una letra mayúscula, un número y un caracter especial');\n setLoading(false);\n return;\n }\n }else{\n alert('La nueva contraseña tiene que ser de '+eightPassword+ ' caracteres');\n setLoading(false);\n return;\n }\n }else{\n alert('La nueva contraseña y la confirmación no son iguales');\n setLoading(false);\n return;\n }\n } else {\n alert('Ingresa tu contraseña actual');\n setLoading(false);\n return;\n }\n };\n\n const _getUserInfo = () => {\n const { new_password, old_password } = form;\n\n String.prototype.toHtmlEntities = function() {\n return this.replace(/./gm, function(s) {\n return \"&#\" + s.charCodeAt(0) + \";\";\n });\n };\n\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Contrasenia': new_password,\n 'tem:ContraseniaAnt': old_password\n };\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n props.getChangePasswordAction(params, server);\n\n }\n\n };\n\n const _handleSecurityPolicy = async (e) => {\n e.preventDefault();\n setLoading(true);\n\n const { old_password, new_password, confirm_password } = form;\n\n let params = sessionStorage.getItem('params');\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } \n else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n \n let siConsultaPwd = new_password;//defaultPassword((eightPassword == 8));\n let configure = await configureNewPassword(params['tem:IdEmpresa'], params['tem:TrabID'], old_password, new_password, confirm_password, siConsultaPwd);\n if (configure.exito) { \n if (byExpired) {\n alert('Contraseña modificada exitosamente. Por favor inicia sesión.');\n props.getLoginAction('PURGE', '');\n sessionStorage.clear();\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n }\n else {\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:Contrasenia': siConsultaPwd,\n 'tem:ContraseniaAnt': old_password\n };\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getChangePasswordAction(params, server);\n }\n }\n else {\n alert({ description: 'No se cambio la contraseña por las siguientes razones:', details: configure.errors }, true);\n setLoading(false);\n }\n }\n };\n\n if ( loading ) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar pwd={true} />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar pwd={true} />\n <div className=\"page-wrapper\">\n <Title actual=\"Home\" icon=\"mdi mdi-chart-bar\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n CAMBIA TU CONTRASEÑA\n </div>\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div className=\"\">\n <p className=\"m-b-20 text-justify\">\n Por seguridad, es necesario que modifiques tu contraseña. A continuación, te pedimos que escribas tu contraseña actual, así como tu nueva contraseña. {!enableSecurityPolicy() && <>La contraseña debe de ser de { eightPassword == 8 ? 8 : 4 } caracteres y debe de contener al menos una letra mayúscula, un número y un caracter especial ($%#,/.-{'\"'}) Ejemplos: {eightPassword === \"1\" ? \"$Ic01#Rh, Zb#2MLoT, etc.\" : \"Ab%5, 1#Rh, etc.\"}</>}\n </p>\n {enableSecurityPolicy() &&\n <p>\n La nueva contraseña debe contemplar lo siguiente:<br/>\n •\tLongitud mínima de la contraseña: 10 caracteres<br/>\n •\tAl menos una letra mayuscula<br/>\n •\tAl menos una letra minúscula<br/>\n •\tAl menos un número<br/>\n •\tAl menos un carácter no alfanumérico como $, % o espacio<br/>\n •\tTiempo mínimo entre cambios de contraseña: 1 día<br/><br/>\n </p>\n }\n <form>\n <div className=\"form-group\">\n <label>CONTRASEÑA ACTUAL</label>\n <input type=\"password\" onChange={ _handleInput } name=\"old_password\" className=\"form-control\" placeholder=\"\" />\n </div>\n <div className=\"form-group\">\n <label>NUEVA CONTRASEÑA </label>\n <input type=\"password\" onChange={ _handleInput } name=\"new_password\" className=\"form-control\" placeholder=\"\" />\n </div>\n <div className=\"form-group\">\n <label>CONFIRMAR NUEVA CONTRASEÑA </label>\n <input type=\"password\" onChange={ _handleInput } name=\"confirm_password\" className=\"form-control\" placeholder=\"\" />\n </div>\n <button type=\"submit\" onClick={ enableSecurityPolicy() ? _handleSecurityPolicy : _handleSubmit } className=\"btn btn-info\">Enviar</button>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n loginData: state.login.loginData,\n changePasswordData: state.changePassword.changePasswordData,\n changePasswordError: state.changePassword.changePasswordError,\n };\n};\n\nconst mapDispatchToProps = {\n getChangePasswordAction,\n getLoginAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ChangePwd));\n","import { changeXml, ChangePasswordResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CHANGE_PASSWORD_SUCCESS,\n CHANGE_PASSWORD_ERROR,\n CHANGE_PASSWORD_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getChangePasswordAction = (data, server) => {\n let configJson = {\n 'tem:InsertContrasenia': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/InsertContrasenia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CHANGE_PASSWORD_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CHANGE_PASSWORD_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CHANGE_PASSWORD_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ChangePassword: ChangePasswordResponse(body)\n }\n\n console.log('RESPONSE CHANGE_PASSWORD DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CHANGE_PASSWORD DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CHANGE_PASSWORD DATA: ', responseError);\n dispatch({ type: CHANGE_PASSWORD_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport Login from '../pages/login/Login.js';\nimport SecretQuestion from '../pages/employee/SecretQuestion.js';\nimport ChangePwd from '../pages/employee/ChangePwd.js';\n\nconst FirstAccess = () => {\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/secret`} exact >\n <SecretQuestion />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/modify-pwd`} exact >\n <ChangePwd />\n </Route>\n\n <Route>\n <Login />\n </Route>\n </Switch>\n );\n};\n\nexport default FirstAccess;\n","import { changeXml, empresasResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n COMPANIES_SUCCESS,\n COMPANIES_ERROR,\n COMPANIES_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const companiesAction = (data, server) => {\n let configJson = {\n 'tem:ListaEmpresas': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ListaEmpresas\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: COMPANIES_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET COMPANIES_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: COMPANIES_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Companies: empresasResponse(body)\n }\n\n console.log('RESPONSE COMPANIES DATA: ', response);\n dispatch({ type: COMPANIES_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET COMPANIES DATA: ', response);\n dispatch({ type: COMPANIES_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET COMPANIES DATA: ', responseError);\n dispatch({ type: COMPANIES_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, LicenseDataResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n LICENSE_DATA_SUCCESS,\n LICENSE_DATA_ERROR,\n LICENSE_DATA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const licenseDataAction = (data, server) => {\n let configJson = {\n 'tem:DatosLicencia': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DatosLicencia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: LICENSE_DATA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET LICENSE_DATA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: LICENSE_DATA_ERROR, payload: response })\n } else {\n let dataLicense = LicenseDataResponse(body)\n response = {\n isOK: true,\n LicenseData: dataLicense\n }\n let movimientos = Number(dataLicense?.Movimientos);\n let timbres = Number(dataLicense?.TimbresDisponibles);\n let vigencia = Number(new Date(dataLicense?.FechaVencimiento));\n let month = (86400000) * 30\n let deadVigency = vigencia - month\n let toDay = Number(new Date())\n if (toDay >= deadVigency) {\n dispatch({ type: VALIDATE_ERROR, payload: { haveError: true, error: 'Estimado Cliente tu Póliza SICOSS esta próxima a vencer, por lo tanto, favor de comunicarse con tu Ejecutivo Comercial para gestionar la renovación', reset: false } })\n } else {\n if (movimientos >= 1 && movimientos <= 500 && timbres >= 1 && timbres <= 500) {\n dispatch({ type: VALIDATE_ERROR, payload: { haveError: true, error: 'Estimado Cliente tu saldo de timbres o movimientos esta por agotarse, por lo tanto, favor de comunicarse con tu Ejecutivo Comercial para gestionar la adquisición de más consumibles', reset: false } })\n } else {\n if (movimientos >= 1 && movimientos <= 500) {\n dispatch({ type: VALIDATE_ERROR, payload: { haveError: true, error: 'Estimado Cliente tu saldo de movimientos esta por agotarse, por lo tanto, favor de comunicarse con tu Ejecutivo Comercial para gestionar la adquisición de más consumibles', reset: false } })\n }\n if (timbres >= 1 && timbres <= 500) {\n dispatch({ type: VALIDATE_ERROR, payload: { haveError: true, error: 'Estimado Cliente tu saldo de timbres esta por agotarse, por lo tanto, favor de comunicarse con tu Ejecutivo Comercial para gestionar la adquisición de más consumibles', reset: false } })\n }\n }\n }\n\n\n\n\n //dispatch({ type: VALIDATE_ERROR, payload: valid })\n\n\n console.log('RESPONSE LICENSE_DATA DATA: ', dataLicense, timbres, movimientos);\n dispatch({ type: LICENSE_DATA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET LICENSE_DATA DATA: ', response);\n dispatch({ type: LICENSE_DATA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET LICENSE_DATA DATA: ', responseError);\n dispatch({ type: LICENSE_DATA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\n//import promoImg from '../../assets/images/promo.png';\n\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\nimport { companiesAction } from '../../api/actions/RhUser/CompaniesAction';\nimport { licenseDataAction } from '../../api/actions/RhUser/LicenseDataAction';\nimport { getPromotionsAction } from '../../api/actions/RhUser/PromotionsAction';\nimport { getEmployeeVacationsAction } from '../../api/actions/jefe/EmployeeVactionsAction';\n\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nimport Modal from 'react-bootstrap/Modal';\nimport Button from 'react-bootstrap/Button';\n\nconst Home = props => {\n const promoImg = process.env.PUBLIC_URL + '/assets/images/promo.png';\n\n const [loading, setLoading] = useState(true);\n const [loadGraph, setLoadGraph] = useState(false);\n const [countFinish, setCountFinish] = useState(3);\n const [modalVacations, setModalVacations] = useState({})\n const [showModalVacations, setShowModalVacations] = useState(false);\n\n useEffect(() => {\n setCountFinish(3);\n let { params, server } = getParams();\n\n let dataUserGet = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n\n let dataLicense = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n };\n\n let dataPromotions = {\n 'tem:sToken': params['tem:sToken'],\n };\n\n props.getSiBalanceAction(dataUserGet, server);\n props.companiesAction(dataLicense, server);\n props.licenseDataAction(dataLicense, server);\n props.getPromotionsAction(dataPromotions, server);\n\n if (sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1') {\n const dataSend = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:TrabID\": params['tem:TrabID']\n }\n props.getEmployeeVacationsAction(dataSend, server)\n console.log('USER_DATA', params)\n }\n\n }, []);\n\n useEffect(() => {\n // if (\n // props.siBalanceData && props.siBalanceData.isOK === true &&\n // // props.companiesData && props.companiesData.isOK === true &&\n // props.licenseData && props.licenseData.isOK === true &&\n // props.promotionsData && props.promotionsData.isOK === true\n // ) {\n // setLoading(false);\n // }\n\n if (props.siBalanceData && props.siBalanceData.isOK === true) {\n setCountFinish(countFinish - 1);\n }\n if (props.licenseData && props.licenseData.isOK === true) {\n setCountFinish(countFinish - 1);\n }\n if (props.promotionsData && props.promotionsData.isOK === true) {\n setCountFinish(countFinish - 1);\n }\n\n if (props.siBalanceError && props.siBalanceError.isOK === false) {\n setCountFinish(countFinish - 1);\n }\n if (props.licenseError && props.licenseError.isOK === false) {\n setCountFinish(countFinish - 1);\n }\n if (props.promotionsError && props.promotionsError.isOK === false) {\n setCountFinish(countFinish - 1);\n }\n }, [\n props.siBalanceData, props.siBalanceError,\n props.companiesData, props.companiesError,\n props.licenseData, props.licenseError,\n props.promotionsData, props.promotionsError\n ]);\n\n\n useEffect(() => {\n if (props.employeeVacationsData && props.employeeVacationsData.isOK) {\n if (props.employeeVacationsData?.EmployeeVacations.length > 0) {\n let data = {\n title: 'AVISO IMPORTANTE',\n message: 'Las siguientes incidencias y/o vacaciones están pendientes por autorizar o rechazar, por lo que recomendamos se realice la autorización o rechazo lo antes posible:',\n employees: props.employeeVacationsData.EmployeeVacations\n };\n setShowModalVacations(true);\n setModalVacations(data);\n }\n }\n if (props.dataUserError && props.dataUserError.isOK === false) {\n props.getEmployeeVacationsAction('PURGE', {});\n }\n console.log('EMPLOYEE_VACATIONS', props.employeeVacationsData);\n }, [props.employeeVacationsData, props.incidentAlertError]);\n\n\n useEffect(() => {\n if (loading === false && loadGraph === false) {\n //graph([]);\n // setLoadGraph(true);\n }\n }, [loading]);\n\n useEffect(() => {\n if (countFinish == 0 && loading) {\n setLoading(false);\n }\n }, [countFinish]);\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const { ClienteSicoss, Empresa, FechaVencimiento, TimbresDisponibles, Movimientos } = props.licenseData?.LicenseData;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Inicio\" icon=\"mdi mdi-chart-bar\" />\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n\n\n <Card\n icon=\"mdi mdi-briefcase-check text-info\"\n value={Empresa}\n name=\"EMPRESA\"\n />\n\n <Card\n icon=\"mdi mdi-account-circle text-success\"\n value={ClienteSicoss}\n name=\"# CLIENTE SICOSS\"\n />\n\n <Card\n icon=\"mdi mdi-calendar text-purple\"\n value={FechaVencimiento}\n name=\"FECHA DE VENCIMIENTO\"\n type=\"date\"\n />\n\n <Card\n icon=\"mdi mdi-ticket-account text-warning\"\n value={TimbresDisponibles}\n name=\"TIMBRES DISPONIBLES\"\n type=\"numeric\"\n />\n\n <Card\n icon=\"mdi mdi-ticket-account text-warning\"\n value={Movimientos}\n name=\"MOVIMIENTOS DISPONIBLES\"\n type=\"numeric\"\n />\n\n </div>\n\n <div className=\"row\">\n {(sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1') && (\n <Modal\n show={showModalVacations}\n onHide={() => setShowModalVacations(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <Modal.Header closeButton>\n <Modal.Title>{modalVacations.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\n <p>{modalVacations.message}</p>\n {modalVacations.employees && modalVacations.employees.length > 0 && (\n <table className='table-container'>\n <thead>\n <tr>\n <th style={{ textAlign: 'center' }}>No.Trabajdor</th>\n <th style={{ textAlign: 'center' }}>Nombre Completo</th>\n <th style={{ textAlign: 'center' }}>Tipo de solicitud</th>\n <th style={{ textAlign: 'center' }}>ReportaID</th>\n </tr>\n </thead>\n <tbody>\n {modalVacations.employees.map((item, index) => (\n <tr key={index}>\n <td style={{ textAlign: 'center' }}>{item.TrabID}</td>\n <td style={{ textAlign: 'center' }}>{item.NombreCompleto}</td>\n <td style={{ textAlign: 'center' }}>{item.TipoSolString}</td>\n <td style={{ textAlign: 'center' }}>{item.ReportaID}</td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={() => setShowModalVacations(false)}>\n Cerrar\n </Button>\n </Modal.Footer>\n </Modal>\n )}\n </div>\n\n\n <div className=\"row\">\n {/* <div className=\"col-lg-8 col-xlg-9\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div>\n <h4 className=\"card-title\">ÚLTIMOS PERIODOS DE NÓMINA</h4>\n </div>\n <div className=\"ml-auto\">\n <ul className=\"list-inline\">\n <li>\n <h6 className=\"text-muted text-info\"><i className=\"fa fa-circle font-10 m-r-10\"></i>Sueldo Mensual</h6> </li>\n </ul>\n </div>\n </div>\n </div>\n <div className=\"col-12\">\n <div id=\"earning\" style={{ height: 485 + 'px' }}></div>\n </div>\n </div>\n </div>\n </div>\n </div> */}\n <div className=\"col-lg-4 col-xlg-3\">\n\n <div className=\"card\">\n <div className=\"card-body bg-inverse\">\n <h4 className=\"text-white card-title text-center\" style={{ paddingTop: 15 + 'px' }}><i className=\"mdi mdi-star\"></i> Promociones Sicoss</h4>\n </div>\n <div className=\"card-body\">\n <img width=\"100%\" src={promoImg} alt=\"homepage\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n\n};\n\nfunction graph() {\n window.Morris.Area({\n element: 'earning',\n data: [\n { Salario: 1000000, periodo: '2020-03-01' },\n { Salario: 1500000, periodo: '2020-03-15' },\n { Salario: 1250000, periodo: '2020-04-01' },\n { Salario: 2000000, periodo: '2020-04-15' },\n { Salario: 1340000, periodo: '2020-05-01' },\n { Salario: 930000, periodo: '2020-05-15' },\n { Salario: 1100000, periodo: '2020-06-01' }\n ],\n xkey: 'periodo',\n ykeys: ['Salario'],\n labels: ['Salario'],\n pointSize: 3,\n fillOpacity: 0,\n pointStrokeColors: ['#003b71'],\n behaveLikeLine: true,\n gridLineColor: '#e0e0e0',\n lineWidth: 3,\n hideHover: 'auto',\n lineColors: ['#003b71'],\n resize: true,\n xLabelFormat: function (d) {\n return moment(d).format('DD/MM/YYYY');\n }\n });\n}\n\nconst mapStateToProps = state => {\n return {\n siBalanceData: state.siBalance.siBalanceData,\n siBalanceError: state.siBalance.siBalanceError,\n\n companiesData: state.companies.companiesData,\n companiesError: state.companies.companiesError,\n\n licenseData: state.license.licenseData,\n licenseDataError: state.license.licenseDataError,\n\n promotionsData: state.promotions.promotionsData,\n promotionsError: state.promotions.promotionsError,\n\n employeeVacationsData: state.employeeVacations.employeeVacationsData,\n employeeVacationsError: state.employeeVacations.employeeVacationsError,\n };\n};\n\nconst mapDispatchToProps = {\n getSiBalanceAction,\n companiesAction,\n licenseDataAction,\n getPromotionsAction,\n getEmployeeVacationsAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));\n","import { changeXml, Promotions } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n PROMOTIONS_SUCCESS,\n PROMOTIONS_ERROR,\n PROMOTIONS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getPromotionsAction = (data, server) => {\n console.log('PROMOTIONS JA')\n let configJson = {\n 'tem:Promociones': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // ,\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/Promociones\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: PROMOTIONS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET PROMOTIONS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: PROMOTIONS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Promotions: Promotions(body)\n }\n\n console.log('RESPONSE PROMOTIONS DATA: ', response);\n dispatch({ type: PROMOTIONS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET PROMOTIONS DATA: ', response);\n dispatch({ type: PROMOTIONS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET PROMOTIONS DATA: ', responseError);\n dispatch({ type: PROMOTIONS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, EditWelcomeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n EDIT_WELCOME_MESSAGE_SUCCESS,\n EDIT_WELCOME_MESSAGE_ERROR,\n EDIT_WELCOME_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getEditWelcomeMessageAction = (data, server) => {\n let configJson = {\n 'tem:EditMensaje': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/EditMensaje\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: EDIT_WELCOME_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET EDIT_WELCOME_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: EDIT_WELCOME_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n EditWelcomeMessage: EditWelcomeMessage(body)\n }\n\n console.log('RESPONSE EDIT_WELCOME_MESSAGE DATA: ', response);\n dispatch({ type: EDIT_WELCOME_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET EDIT_WELCOME_MESSAGE DATA: ', response);\n dispatch({ type: EDIT_WELCOME_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET EDIT_WELCOME_MESSAGE DATA: ', responseError);\n dispatch({ type: EDIT_WELCOME_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\nimport { getEditWelcomeMessageAction } from '../../api/actions/systemAdmin/EditWelcomeMessageAction';\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nconst Home = props => {\n\n const [loading, setLoading] = useState(true);\n const [title, setTitle] = useState('');\n const [msg, setMsg] = useState({});\n const [configEditor, setConfigEditor] = useState({});\n const { addToast } = useToasts();\n\n useEffect(() => {\n\n let config = {\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n ['blockquote', 'code-block'],\n\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\n\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\n\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\n [{ 'font': [] }],\n [{ 'align': [] }],\n\n ],\n }\n };\n\n setConfigEditor(config);\n\n let data = getParams();\n let { params, server } = data;\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getWelcomeMessageAction(params, server);\n\n }, []);\n\n useEffect(() => {\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\n setTitle(props.welcomeMessageData.WelcomeMessage.titulo);\n setMsg(props.welcomeMessageData.WelcomeMessage.mensaje);\n setLoading(false);\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\n props.history.push(`${process.env.PUBLIC_URL}/`);\n props.getWelcomeMessageAction('PURGE', '');\n }\n }, [props.welcomeMessageData, props.welcomeMessageError]);\n\n useEffect(() => {\n if (props.editWelcomeMessageData && props.editWelcomeMessageData.isOK && props.editWelcomeMessageData.EditWelcomeMessage) {\n addToast('Mensaje Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n props.getEditWelcomeMessageAction('PURGE', '');\n\n props.history.push(`${process.env.PUBLIC_URL}/`);\n } else if (props.editWelcomeMessageError && props.editWelcomeMessageError.isOK === false) {\n props.getEditWelcomeMessageAction('PURGE', '');\n }\n }, [props.editWelcomeMessageData, props.editWelcomeMessageError]);\n\n const handleInput = event => {\n setTitle(event.target.value);\n };\n\n const updateMsg = () => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:mensaje': \"<![CDATA[ \" + msg + \" ]]>\",\n 'tem:Titulo': title,\n 'tem:idmensaje': props.welcomeMessageData.WelcomeMessage.id,\n }\n\n props.getEditWelcomeMessageAction(params, server);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MENSAJE DE BIENVENIDA\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <h4 className=\"card-title\">Editar Mensaje de Bienvenida</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-group\">\n <div className=\"col-xs-12\">\n <label>Titulo:</label>\n <input\n className=\"form-control\"\n name=\"title\"\n type=\"text\"\n required=\"\"\n value={title}\n onChange={handleInput}\n\n />\n </div>\n </div>\n <div className=\"form-group\">\n <div>\n <label>Mensaje:</label>\n <ReactQuill\n theme=\"snow\"\n value={msg}\n onChange={setMsg}\n modules={configEditor.modules}\n />\n </div>\n </div>\n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={updateMsg}>Actualizar Mensaje</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\n\n editWelcomeMessageData: state.editWelcomeMessage.editWelcomeMessageData,\n editWelcomeMessageError: state.editWelcomeMessage.editWelcomeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getWelcomeMessageAction,\n getEditWelcomeMessageAction,\n\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));\n","import { changeXml, AccessMethod } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ACCESS_METHOD_SUCCESS,\n ACCESS_METHOD_ERROR,\n ACCESS_METHOD_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getAccessMethodAction = (data, server) => {\n let configJson = {\n 'tem:MetodoAcceso': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MetodoAcceso\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ACCESS_METHOD_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n if (valid.error.includes('Se actualizaron ')) {\n\n const response = {\n isOK: true,\n AccessMethod: AccessMethod(body),\n error: valid.error\n }\n\n console.log('RESPONSE ACCESS_METHOD DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ACCESS_METHOD_SUCCESS, payload: response })\n } else {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET ACCESS_METHOD_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ACCESS_METHOD_ERROR, payload: response })\n }\n\n } else {\n response = {\n isOK: true,\n AccessMethod: AccessMethod(body)\n }\n\n console.log('RESPONSE ACCESS_METHOD DATA: ', response);\n dispatch({ type: ACCESS_METHOD_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ACCESS_METHOD DATA: ', response);\n dispatch({ type: ACCESS_METHOD_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ACCESS_METHOD DATA: ', responseError);\n dispatch({ type: ACCESS_METHOD_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getAccessMethodAction } from '../../api/actions/systemAdmin/AccessMethodAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst AccessMethod = props => {\n\n const [loading, setLoading] = useState(false);\n const [values, setValues] = useState({});\n const [missedRecords, setMissedRecords] = useState([])\n\n const handleInput = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n\n };\n\n const handleSubmit = e => {\n e.preventDefault();\n\n if (!values.allUsers || !values.option1 || !values.option2 || !values.option3) {\n alert('Por favor ingresa todos los campos.');\n return;\n }\n\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:Todos': values.allUsers,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Configuracion': values.option1 + ':' + values.option3 + ':' + values.option2,\n }\n\n props.getAccessMethodAction(params, server);\n\n }\n\n useEffect(() => {\n if (props.accessMethodData && props.accessMethodData.isOK) {\n setMissedRecords(props.accessMethodData?.AccessMethod?.empleadosFaltantes);\n setLoading(false);\n } else if (props.accessMethodError && props.accessMethodError.isOK === false) {\n setLoading(false);\n props.getAccessMethodAction('PURGE', '');\n }\n }, [props.accessMethodData, props.accessMethodError]);\n\n const missed_records_table = () => {\n let table = [];\n\n for (let i = 0; i < missedRecords.length; i++) {\n const element = missedRecords[i];\n table.push(\n <tr key={i}>\n <td>{element.trabID}</td>\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\n <td>{element.nss}</td>\n <td>{element.curp}</td>\n <td>{element.rfc}</td>\n </tr>\n );\n\n }\n\n return table;\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MÉTODO DE INGRESO\" icon=\"mdi mdi-account-key\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n {missedRecords.length > 0 &&\n <div className=\"card card-outline-danger\">\n <div className=\"card-header\">\n <div className=\"card-title text-white\">\n REGISTROS FALTANTES\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>IMSS</th>\n <th>CURP</th>\n <th>RFC</th>\n </tr>\n </thead>\n <tbody>\n {missed_records_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>}\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Establecer configuración a métodos de acceso</h4>\n </div>\n <div className=\"card-body\">\n <form onSubmit={handleSubmit}>\n <div className=\"form-body text-center\">\n <h3 className=\"card-title\">Procesar empleados:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"allUsers\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"all\" />\n <label htmlFor=\"all\"> Todos</label>\n <input name=\"allUsers\" type=\"radio\" onChange={handleInput} value=\"0\" className=\"with-gap\" id=\"notConfigured\" />\n <label htmlFor=\"notConfigured\"> No Configurados</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Opciones de usuario:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"user1\" />\n <label htmlFor=\"user1\"> No. EMPLEADO</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"user2\" />\n <label htmlFor=\"user2\"> NSS</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"user3\" />\n <label htmlFor=\"user3\"> RFC</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"4\" className=\"with-gap\" id=\"user4\" />\n <label htmlFor=\"user4\"> CURP</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Opciones de contraseña:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"pwd1\" />\n <label htmlFor=\"pwd1\"> No. EMPLEADO</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"pwd2\" />\n <label htmlFor=\"pwd2\"> NSS</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"pwd3\" />\n <label htmlFor=\"pwd3\"> RFC</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"4\" className=\"with-gap\" id=\"pwd4\" />\n <label htmlFor=\"pwd4\"> CURP</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Clave de acceso:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"firsts\" />\n <label htmlFor=\"firsts\"> 4 Primeros</label>\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"lasts\" />\n <label htmlFor=\"lasts\"> 4 Últimos</label>\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"eight\" />\n <label htmlFor=\"eight\"> 8 Primeros</label>\n </div>\n </div>\n </div><br />\n </div><br />\n <div className=\"form-actions d-flex justify-content-center\">\n <button type=\"submit\" className=\"btn btn-success\"> <i className=\"fa fa-check\"></i> Guardar</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n accessMethodData: state.accessMethod.accessMethodData,\n accessMethodError: state.accessMethod.accessMethodError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getAccessMethodAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AccessMethod));\n","import { xmlCloseEmty, RestartPassword } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n RESTART_PASSWORD_SUCCESS,\n RESTART_PASSWORD_ERROR,\n RESTART_PASSWORD_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getRestartPasswordAction = (data, server) => {\n let configJson = {\n 'tem:ReiniciaContrasenia': {\n ...data\n }\n }\n\n let obj = xmlCloseEmty(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ReiniciaContrasenia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: RESTART_PASSWORD_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET RESTART_PASSWORD_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: RESTART_PASSWORD_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n RestartPassword: RestartPassword(body)\n }\n\n console.log('RESPONSE RESTART_PASSWORD DATA: ', response);\n dispatch({ type: RESTART_PASSWORD_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET RESTART_PASSWORD DATA: ', response);\n dispatch({ type: RESTART_PASSWORD_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET RESTART_PASSWORD DATA: ', responseError);\n dispatch({ type: RESTART_PASSWORD_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { xmlCloseEmty, SearchEmployee } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\n\nimport {\n SEARCH_EMPLOYEE_SUCCESS,\n SEARCH_EMPLOYEE_ERROR,\n SEARCH_EMPLOYEE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getSearchEmployeeAction = (data, server) => {\n let configJson = {\n 'tem:BusquedaEmpleados': {\n ...data\n }\n }\n\n let obj = xmlCloseEmty(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BusquedaEmpleados\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SEARCH_EMPLOYEE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n let response;\n if (resultJson) {\n\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError && valid.error != 'Se encontraron registros.') {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SEARCH_EMPLOYEE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SEARCH_EMPLOYEE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SearchEmployee: SearchEmployee(body)\n }\n\n console.log('RESPONSE SEARCH_EMPLOYEE DATA: ', response);\n dispatch({ type: SEARCH_EMPLOYEE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET SEARCH_EMPLOYEE DATA: ', response);\n dispatch({ type: SEARCH_EMPLOYEE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET SEARCH_EMPLOYEE DATA: ', responseError);\n dispatch({ type: SEARCH_EMPLOYEE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { xmlCloseEmty, UnlockEmployees } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n UNLOCK_EMPLOYEES_SUCCESS,\n UNLOCK_EMPLOYEES_ERROR,\n UNLOCK_EMPLOYEES_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getUnlockEmployeesAction = (data, server) => {\n let configJson = {\n 'tem:DesbloquearEmpleados': {\n ...data\n }\n }\n\n let obj = xmlCloseEmty(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DesbloquearEmpleados\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: UNLOCK_EMPLOYEES_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET UNLOCK_EMPLOYEES_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: UNLOCK_EMPLOYEES_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n UnlockEmployees: UnlockEmployees(body)\n }\n\n console.log('RESPONSE UNLOCK_EMPLOYEES DATA: ', response);\n dispatch({ type: UNLOCK_EMPLOYEES_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET UNLOCK_EMPLOYEES DATA: ', response);\n dispatch({ type: UNLOCK_EMPLOYEES_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET UNLOCK_EMPLOYEES DATA: ', responseError);\n dispatch({ type: UNLOCK_EMPLOYEES_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, ChangePasswordEmployee } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CHANGE_PASSWORD_EMPLOYEE_SUCCESS,\n CHANGE_PASSWORD_EMPLOYEE_ERROR,\n CHANGE_PASSWORD_EMPLOYEE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getChangePasswordEmployeeAction = (data, server) => {\n let configJson = {\n 'tem:CambiaContrasenia': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CambiaContrasenia\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CHANGE_PASSWORD_EMPLOYEE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CHANGE_PASSWORD_EMPLOYEE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CHANGE_PASSWORD_EMPLOYEE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ChangePasswordEmployee: ChangePasswordEmployee(body)\n }\n\n console.log('RESPONSE CHANGE_PASSWORD_EMPLOYEE DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_EMPLOYEE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CHANGE_PASSWORD_EMPLOYEE DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_EMPLOYEE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CHANGE_PASSWORD_EMPLOYEE DATA: ', responseError);\n dispatch({ type: CHANGE_PASSWORD_EMPLOYEE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getRestartPasswordAction } from '../../api/actions/systemAdmin/RestartPasswordAction';\nimport { getSearchEmployeeAction } from '../../api/actions/systemAdmin/SearchEmployeeAction';\nimport { getUnlockEmployeesAction } from '../../api/actions/systemAdmin/UnlockEmployeeAction';\nimport { getChangePasswordEmployeeAction } from '../../api/actions/systemAdmin/ChangePasswordEmployeeAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst PasswordReset = props => {\n\n const [loading, setLoading] = useState(false);\n const [individualOption, setIndividualOption] = useState(null);\n const [searchParams, setSearchParams] = useState({});\n const [search, setSearch] = useState([]);\n const [selectedUser, setSelectedUser] = useState({});\n const [pwd, setPwd] = useState(null);\n const [missedRecords, setMissedRecords] = useState([])\n\n useEffect(() => {\n if (!loading) {\n setIndividualOption(null);\n setSearchParams({});\n setSearch([]);\n setSelectedUser({});\n setPwd(null);\n } else {\n setMissedRecords([]);\n }\n }, [loading]);\n\n useEffect(() => {\n\n if (individualOption) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': searchParams.employee_number || '',\n 'tem:Nombre': searchParams.first_name || '',\n 'tem:Paterno': searchParams.last_name || '',\n 'tem:Materno': searchParams.last_last_name || '',\n 'tem:NSS': searchParams.nss || '',\n 'tem:CURP': searchParams.curp || '',\n 'tem:RFC': searchParams.rfc || '',\n 'tem:UserID': params['tem:TrabID']\n }\n\n props.getSearchEmployeeAction(params, server);\n }\n }, [searchParams]);\n\n useEffect(() => {\n if (props.searchEmployeeData && props.searchEmployeeData.isOK === true) {\n setSearch({\n ...props.searchEmployeeData.SearchEmployee\n });\n } else if (props.searchEmployeeError && props.searchEmployeeError.isOK === false) {\n props.getSearchEmployeeAction('PURGE', '');\n }\n }, [props.searchEmployeeData, props.searchEmployeeError]);\n\n useEffect(() => {\n if (props.changePasswordEmployeeData && props.changePasswordEmployeeData.isOK === true) {\n alert(props.changePasswordEmployeeData.ChangePasswordEmployee?.resultado);\n setLoading(false);\n props.getChangePasswordEmployeeAction('PURGE', '');\n } else if (props.changePasswordEmployeeError && props.changePasswordEmployeeError.isOK === false) {\n props.getChangePasswordEmployeeAction('PURGE', '');\n setLoading(false);\n }\n }, [props.changePasswordEmployeeData, props.changePasswordEmployeeError]);\n\n useEffect(() => {\n if (props.restartPasswordData && props.restartPasswordData.isOK === true) {\n alert(props.restartPasswordData.RestartPassword?.resultado);\n setMissedRecords(props.restartPasswordData.RestartPassword?.empleadosFaltantes);\n props.getRestartPasswordAction('PURGE', '');\n setLoading(false);\n } else if (props.restartPasswordError && props.restartPasswordError.isOK === false) {\n props.getRestartPasswordAction('PURGE', '');\n setLoading(false);\n }\n }, [props.restartPasswordData, props.restartPasswordError]);\n\n useEffect(() => {\n if (props.unlockEmployeeData && props.unlockEmployeeData.isOK === true) {\n alert(props.unlockEmployeeData.UnlockEmployees?.resultado);\n props.getUnlockEmployeesAction('PURGE', '');\n setLoading(false);\n } else if (props.unlockEmployeeError && props.unlockEmployeeError.isOK === false) {\n props.getUnlockEmployeesAction('PURGE', '');\n setLoading(false);\n }\n }, [props.unlockEmployeeData, props.unlockEmployeeError]);\n\n const handleOption = event => {\n if (event.target.value == 'all') {\n setIndividualOption(false);\n } else if (event.target.value == 'individual') {\n setIndividualOption(true);\n }\n };\n\n const handleSearch = event => {\n setPwd(null);\n setSelectedUser({});\n\n setSearchParams({\n ...searchParams,\n [event.target.name]: event.target.value\n });\n };\n\n const handleNewPwd = event => {\n setPwd(event.target.value);\n };\n\n const handleChange = e => {\n e.preventDefault();\n\n setLoading(true);\n\n if (!selectedUser.trabID) {\n alert('Por favor selecciona un usuario.');\n setLoading(false);\n return;\n }\n\n if (!pwd) {\n alert('Por favor escribe una clave de acceso.');\n setLoading(false);\n return;\n }\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': selectedUser.trabID,\n 'tem:PwdNuevo': pwd,\n }\n\n props.getChangePasswordEmployeeAction(params, server);\n\n }\n\n const handleRestart = e => {\n e.preventDefault();\n\n setLoading(true);\n\n if (individualOption === null) {\n alert('Por favor selecciona un tipo de reinicio');\n setLoading(false);\n return;\n }\n\n if (individualOption === true && !selectedUser.trabID) {\n alert('Por favor selecciona un usuario para reiniciar su acceso.');\n setLoading(false);\n return;\n }\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:Todos': individualOption === false ? '1' : '0',\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': individualOption === false ? '' : selectedUser.trabID,\n }\n\n props.getRestartPasswordAction(params, server);\n }\n\n const handleUnlock = e => {\n e.preventDefault();\n\n setLoading(true);\n\n if (individualOption === null) {\n alert('Por favor selecciona un tipo de desbloqueo.');\n setLoading(false);\n return;\n }\n\n if (individualOption === true && !selectedUser.trabID) {\n alert('Por favor selecciona un usuario para desbloquear su acceso.');\n setLoading(false);\n return;\n }\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:Todos': individualOption === false ? '1' : '0',\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:TrabID': individualOption === false ? '' : selectedUser.trabID,\n }\n\n props.getUnlockEmployeesAction(params, server);\n }\n\n const employees_table = () => {\n let table = [];\n\n if (search.length == 0) {\n table.push(\n <tr key={1}>\n <td>No se encontro ningun usuario.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n for (const person in search) {\n if (search.hasOwnProperty(person)) {\n const element = search[person];\n table.push(\n <tr key={person} style={{ cursor: 'pointer' }} onClick={() => {\n setPwd(null);\n setSelectedUser(element);\n }}>\n <td>{element.trabID}</td>\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\n <td>{element.nss}</td>\n <td>{element.curp}</td>\n <td>{element.rfc}</td>\n </tr>\n );\n }\n }\n }\n\n return table;\n };\n\n const missed_records_table = () => {\n let table = [];\n\n for (let i = 0; i < missedRecords.length; i++) {\n const element = missedRecords[i];\n table.push(\n <tr key={i}>\n <td>{element.trabID}</td>\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\n <td>{element.nss}</td>\n <td>{element.curp}</td>\n <td>{element.rfc}</td>\n </tr>\n );\n\n }\n\n return table;\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } else {\n\n var changeButton = pwd == null && 'disabled';\n var otherButtons = (individualOption && Object.keys(selectedUser).length != 0) || individualOption === false ? false : true;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"REINICIO CONTRASEÑAS\" icon=\"mdi mdi-key\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n {missedRecords.length > 0 &&\n <div className=\"card card-outline-danger\">\n <div className=\"card-header\">\n <div className=\"card-title text-white\">\n REGISTROS FALTANTES\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>IMSS</th>\n <th>CURP</th>\n <th>RFC</th>\n </tr>\n </thead>\n <tbody>\n {missed_records_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>}\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"card-title text-white\">Reiniciar clave de acceso (contraseña) individual y masiva</h4>\n </div>\n <div className=\"card-body\">\n <form action=\"#\">\n <div className=\"form-body text-center mb-5\">\n <h3 className=\"card-title\">Tipo de Reinicio</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"all\" type=\"radio\" className=\"with-gap\" onChange={handleOption} value=\"all\" id=\"all\" />\n <label htmlFor=\"all\"> Todos</label>\n <input name=\"all\" type=\"radio\" className=\"with-gap\" onChange={handleOption} value=\"individual\" id=\"individual\" />\n <label htmlFor=\"individual\"> Individual</label>\n </div>\n </div>\n </div>\n </div>\n\n {individualOption &&\n <div className=\"form-body mb-5\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"card-title text-white\">CRITERIOS DE BÚSQUEDA</div>\n </div>\n <div className=\"card-body\">\n <div className=\"form-row\">\n <div className=\"form-group col-md-3\">\n <label htmlFor=\"name\">No. Empleado</label>\n <input type=\"text\" name=\"employee_number\" onChange={handleSearch} className=\"form-control\" />\n </div>\n <div className=\"form-group col-md-3\">\n <label htmlFor=\"name\">A. Paterno</label>\n <input type=\"text\" name=\"last_name\" onChange={handleSearch} className=\"form-control\" />\n </div>\n <div className=\"form-group col-md-3\">\n <label htmlFor=\"name\">A. Materno</label>\n <input type=\"text\" name=\"last_last_name\" onChange={handleSearch} className=\"form-control\" />\n </div>\n <div className=\"form-group col-md-3\">\n <label htmlFor=\"name\">Nombre</label>\n <input type=\"text\" name=\"first_name\" onChange={handleSearch} className=\"form-control\" />\n </div>\n </div>\n <div className=\"form-row\">\n <div className=\"form-group col-md-4\">\n <label htmlFor=\"name\">RFC</label>\n <input type=\"text\" name=\"rfc\" onChange={handleSearch} className=\"form-control\" />\n </div>\n <div className=\"form-group col-md-4\">\n <label htmlFor=\"name\">CURP</label>\n <input type=\"text\" name=\"curp\" onChange={handleSearch} className=\"form-control\" />\n </div>\n <div className=\"form-group col-md-4\">\n <label htmlFor=\"name\">NSS</label>\n <input type=\"text\" name=\"nss\" onChange={handleSearch} className=\"form-control\" />\n </div>\n </div>\n </div>\n </div>\n\n {Object.keys(searchParams).length != 0 &&\n <>\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">EMPLEADOS ENCONTRADOS</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>IMSS</th>\n <th>CURP</th>\n <th>RFC</th>\n </tr>\n </thead>\n <tbody>\n {employees_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n\n {Object.keys(selectedUser).length != 0 &&\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">EMPLEADO SELECCIONADO</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>Nueva Clave de Acceso</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{selectedUser.trabID}</td>\n <td>{selectedUser.paterno + ' ' + selectedUser.materno + ' ' + selectedUser.nombre}</td>\n <td><input type=\"password\" onChange={handleNewPwd} className=\"form-control\" /></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>}\n\n </>\n }\n </div>\n </div>\n </div>\n }\n\n <div className=\"form-actions d-flex justify-content-center\">\n\n <button type=\"submit\" className={`btn btn-success mr-4 ${changeButton}`} disabled={changeButton} style={{ cursor: otherButtons ? 'not-allowed' : 'pointer' }} style={{ cursor: pwd != null ? 'pointer' : 'not-allowed' }} onClick={handleChange}>\n <i className=\"fa fa-check\"></i> Cambiar\n </button>\n\n <button type=\"button\" className={`btn btn-secondary mr-4 ${otherButtons}`} disabled={otherButtons} style={{ cursor: otherButtons ? 'not-allowed' : 'pointer' }} onClick={handleRestart}>\n <i className=\"mdi mdi-restart\"></i> Reiniciar\n </button>\n\n <button type=\"button\" className={`btn btn-info ${otherButtons}`} disabled={otherButtons} style={{ cursor: otherButtons ? 'not-allowed' : 'pointer' }} onClick={handleUnlock}>\n <i className=\"mdi mdi-lock-open-outline\"></i> Desbloquear\n </button>\n\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n restartPasswordData: state.restartPassword.restartPasswordData,\n restartPasswordError: state.restartPassword.restartPasswordError,\n\n searchEmployeeData: state.searchEmployee.searchEmployeeData,\n searchEmployeeError: state.searchEmployee.searchEmployeeError,\n\n changePasswordEmployeeData: state.changePasswordEmployee.changePasswordEmployeeData,\n changePasswordEmployeeError: state.changePasswordEmployee.changePasswordEmployeeError,\n\n unlockEmployeeData: state.unlockEmployees.unlockEmployeeData,\n unlockEmployeeError: state.unlockEmployees.unlockEmployeeError,\n };\n};\n\nconst mapDispatchToProps = {\n getSearchEmployeeAction,\n getChangePasswordEmployeeAction,\n getRestartPasswordAction,\n getUnlockEmployeesAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PasswordReset));\n","import { changeXml, AdditionalFields } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ADDITIONAL_FIELDS_SUCCESS,\n ADDITIONAL_FIELDS_ERROR,\n ADDITIONAL_FIELDS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\nexport const getAdditionalFieldsAction = (data, server) => {\n let configJson = {\n 'tem:CamposAdicionalesCat': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CamposAdicionalesCat\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ADDITIONAL_FIELDS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET ADDITIONAL_FIELDS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ADDITIONAL_FIELDS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AdditionalFields: AdditionalFields(body)\n }\n\n console.log('RESPONSE ADDITIONAL_FIELDS DATA: ', response);\n dispatch({ type: ADDITIONAL_FIELDS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ADDITIONAL_FIELDS DATA: ', response);\n dispatch({ type: ADDITIONAL_FIELDS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ADDITIONAL_FIELDS DATA: ', responseError);\n dispatch({ type: ADDITIONAL_FIELDS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, DeleteAddFields } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DELETE_ADD_FIELDS_SUCCESS,\n DELETE_ADD_FIELDS_ERROR,\n DELETE_ADD_FIELDS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDeleteAddFieldsAction = (data, server) => {\n let configJson = {\n 'tem:SaveCamposAdicionales': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SaveCamposAdicionales\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DELETE_ADD_FIELDS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DELETE_ADD_FIELDS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DELETE_ADD_FIELDS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DeleteAddFields: DeleteAddFields(body)\n }\n\n console.log('RESPONSE DELETE_ADD_FIELDS DATA: ', response);\n dispatch({ type: DELETE_ADD_FIELDS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DELETE_ADD_FIELDS DATA: ', response);\n dispatch({ type: DELETE_ADD_FIELDS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DELETE_ADD_FIELDS DATA: ', responseError);\n dispatch({ type: DELETE_ADD_FIELDS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, SelectedAdditionalFields } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n SELECTED_ADDITIONAL_FIELDS_SUCCESS,\n SELECTED_ADDITIONAL_FIELDS_ERROR,\n SELECTED_ADDITIONAL_FIELDS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getSelectedAdditionalFieldsAction = (data, server) => {\n let configJson = {\n 'tem:CamposSeleccionados': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CamposSeleccionados\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: SELECTED_ADDITIONAL_FIELDS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET SELECTED_ADDITIONAL_FIELDS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: SELECTED_ADDITIONAL_FIELDS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n SelectedAdditionalFields: SelectedAdditionalFields(body)\n }\n\n console.log('RESPONSESELECTED_ADDITIONAL_FIELDS DATA: ', response);\n dispatch({ type: SELECTED_ADDITIONAL_FIELDS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GETSELECTED_ADDITIONAL_FIELDS DATA: ', response);\n dispatch({ type: SELECTED_ADDITIONAL_FIELDS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GETSELECTED_ADDITIONAL_FIELDS DATA: ', responseError);\n dispatch({ type: SELECTED_ADDITIONAL_FIELDS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState, Fragment } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getAdditionalFieldsAction } from '../../api/actions/systemAdmin/AdditionalFieldsAction';\nimport { getDeleteAddFieldsAction } from '../../api/actions/systemAdmin/DeleteAddFieldsActiion';\nimport { getSelectedAdditionalFieldsAction } from '../../api/actions/systemAdmin/SelectedAdditionalFieldsAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst AdditionalFields = props => {\n\n const { addToast } = useToasts();\n const [loading, setLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [selectedFields, setSelectedFields] = useState([]);\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getAdditionalFieldsAction(params, server);\n\n }, []);\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Campo_Desc': id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n }\n\n props.getDeleteAddFieldsAction(params, server);\n\n };\n\n useEffect(() => {\n if (props.additionalFieldsData && props.additionalFieldsData.isOK) {\n\n let data = getParams();\n let { params, server } = data;\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getSelectedAdditionalFieldsAction(params, server);\n\n } else if (props.additionalFieldsError && props.additionalFieldsError.isOK === false) {\n props.getAdditionalFieldsAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.additionalFieldsData, props.additionalFieldsError]);\n\n useEffect(() => {\n if (props.selectedAdditionalFieldsData && props.selectedAdditionalFieldsData.isOK) {\n setSelectedFields(props.selectedAdditionalFieldsData.SelectedAdditionalFields);\n setHasError(false);\n setLoading(false);\n } else if (props.selectedAdditionalFieldsError && props.selectedAdditionalFieldsError.isOK === false) {\n props.getSelectedAdditionalFieldsAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.selectedAdditionalFieldsData, props.selectedAdditionalFieldsError]);\n\n useEffect(() => {\n if (props.deleteAddFieldsData && props.deleteAddFieldsData.isOK && props.deleteAddFieldsData?.DeleteAddFields) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getSelectedAdditionalFieldsAction('PURGE', '');\n props.getSelectedAdditionalFieldsAction(params, server);\n props.getDeleteAddFieldsAction('PURGE', '');\n } else if (props.deleteAddFieldsError && props.deleteAddFieldsError.isOK === false) {\n props.getDeleteAddFieldsAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.deleteAddFieldsData, props.deleteAddFieldsError]);\n\n\n const additional_fields = () => {\n let fields = [];\n\n let allFields = props.additionalFieldsData?.AdditionalFields;\n\n if (allFields) {\n for (let i = 0; i < allFields.length; i++) {\n const element = allFields[i];\n let checked = selectedFields.filter(field => field.campo == element.id);\n fields.push(\n <Fragment key={i}>\n <input name={element.id} type=\"checkbox\" checked={checked.length > 0 ? true : false} onChange={e => handleInput(e, element.id)} value={element.id} className=\"with-gap\" id={element.id} />\n <label htmlFor={element.id}> {element.campo}</label>\n </Fragment>\n );\n\n }\n }\n\n return fields;\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"CAMPOS ADICIONALES\" icon=\"mdi mdi-account-key\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Seleccione los campos extra a visualizar</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-body\">\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n {!hasError && additional_fields()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n additionalFieldsData: state.additionalFields.additionalFieldsData,\n additionalFieldsError: state.additionalFields.additionalFieldsError,\n\n deleteAddFieldsData: state.deleteAddFields.deleteAddFieldsData,\n deleteAddFieldsError: state.deleteAddFields.deleteAddFieldsError,\n\n selectedAdditionalFieldsData: state.selectedAdditionalFields.selectedAdditionalFieldsData,\n selectedAdditionalFieldsError: state.selectedAdditionalFields.selectedAdditionalFieldsError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getAdditionalFieldsAction,\n getDeleteAddFieldsAction,\n getSelectedAdditionalFieldsAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AdditionalFields));\n","import { changeXml, ReceiptGenerationEmployee, employeeCatalogResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n RECEIPT_GENERATION_EMPLOYEE_SUCCESS,\n RECEIPT_GENERATION_EMPLOYEE_ERROR,\n RECEIPT_GENERATION_EMPLOYEE_PURGE,\n EMPLOYEE_CATALOG_SUCCESS,\n EMPLOYEE_CATALOG_ERROR,\n EMPLOYEE_CATALOG_PURGE,\n VALIDATE_ERROR,\n EMPLOYEE_MOV_NOM_ERROR,\n} from '../../types'\n\n\nexport const getReceiptGenerationEmployeeAction = (data, server) => {\n let configJson = {\n 'tem:ReciboGeneradoEmp': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ReciboGeneradoEmp\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: RECEIPT_GENERATION_EMPLOYEE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n console.log('XML', xml);\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET RECEIPT_GENERATION_EMPLOYEE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: RECEIPT_GENERATION_EMPLOYEE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ReceiptGenerationEmployee: ReceiptGenerationEmployee(body)\n }\n\n console.log('RESPONSE RECEIPT_GENERATION_EMPLOYEE DATA: ', response);\n dispatch({ type: RECEIPT_GENERATION_EMPLOYEE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET RECEIPT_GENERATION_EMPLOYEE DATA: ', response);\n dispatch({ type: RECEIPT_GENERATION_EMPLOYEE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET RECEIPT_GENERATION_EMPLOYEE DATA: ', responseError);\n dispatch({ type: RECEIPT_GENERATION_EMPLOYEE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n\nexport const getEmployeeCatalogAction = (data, server) => {\n let configJson = {\n 'tem:CatalogoEmpleado': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoEmpleado\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n return (dispatch) => {\n if (data === 'PURGE') {\n dispatch({ type: EMPLOYEE_CATALOG_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: EMPLOYEE_CATALOG_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n employeeCatalogResponse: employeeCatalogResponse(body)\n }\n dispatch({ type: EMPLOYEE_CATALOG_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n dispatch({ type: EMPLOYEE_CATALOG_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n dispatch({ type: EMPLOYEE_CATALOG_ERROR, payload: responseError })\n })\n }\n }\n};","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getReceiptGenerationEmployeeAction } from '../../api/actions/systemAdmin/ReceiptGenerationEmployeeAction';\nimport { CSVLink } from \"react-csv\";\n\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst PayrollReceipts = props => {\n\n const [loading, setLoading] = useState(true);\n const [initDate, setInitDate] = useState(null);\n const [finalDate, setFinalDate] = useState(null);\n const [data, setData] = useState(null);\n const [csvData, setCsvData] = useState([]);\n\n useEffect(() => {\n\n if (initDate && finalDate) {\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:fechaInicio': initDate.toISOString(),\n 'tem:fechaFinal': finalDate.toISOString(),\n 'tem:User_ID': params['tem:TrabID'],\n }\n\n props.getReceiptGenerationEmployeeAction(params, server);\n }\n }, [initDate, finalDate]);\n\n useEffect(() => {\n if (props.receiptGenerationEmployeeData && props.receiptGenerationEmployeeData.isOK === true) {\n let info = props.receiptGenerationEmployeeData?.ReceiptGenerationEmployee?.detallesRecibo;\n let name = props.receiptGenerationEmployeeData?.ReceiptGenerationEmployee?.nombre;\n let trabId = props.receiptGenerationEmployeeData?.ReceiptGenerationEmployee?.trab_ID;\n let csv = [[\n 'Nombre',\n 'No. Empleado',\n 'Fecha Generación',\n 'Año / Periodo',\n 'Tipo de Periodo',\n 'Tipo Nomina',\n 'Centro',\n 'Tipo de Consulta',\n 'Ultimo acceso al sistema',\n ]];\n\n\n if (info.length > 0) {\n\n info.map((item, i) => {\n let date = new Date(item.fechaGeneracion);\n\n csv.push([\n name,\n trabId,\n `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`,\n item.anioPeriodo,\n item.tipoPeriodo,\n item.tipoNomina,\n item.centro,\n item.tipoConsulta,\n item.ultimoAcceso,\n ]);\n });\n\n }\n setCsvData(csv);\n setData(props.receiptGenerationEmployeeData.ReceiptGenerationEmployee);\n props.getReceiptGenerationEmployeeAction('PURGE', '');\n setLoading(false);\n } else if (props.receiptGenerationEmployeeError && props.receiptGenerationEmployeeError.isOK === false) {\n let csv = [[\n 'Fecha Generación',\n 'Año / Periodo',\n 'Tipo de Periodo',\n 'Tipo Nomina',\n 'Centro',\n 'Tipo de Consulta',\n 'Ultimo acceso al sistema',\n ]];\n setCsvData(csv);\n props.getReceiptGenerationEmployeeAction('PURGE', '');\n }\n }, [props.receiptGenerationEmployeeData, props.receiptGenerationEmployeeError]);\n\n const data_table = () => {\n\n let table = [];\n let info = data?.detallesRecibo;\n let name = data?.nombre;\n let trabId = data?.trab_ID;\n\n if (!info || info.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay datos para mostrar.</td>\n </tr>\n );\n } else {\n info.map((item, i) => {\n let date = new Date(item.fechaGeneracion);\n table.push(\n <tr key={i}>\n <td>{name}</td>\n <td>{trabId}</td>\n <td>{`${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`}</td>\n <td>{item.anioPeriodo}</td>\n <td>{item.tipoPeriodo}</td>\n <td>{item.tipoNomina}</td>\n <td>{item.centro}</td>\n <td>{item.tipoConsulta}</td>\n <td>{item.ultimoAcceso}</td>\n </tr>\n );\n\n });\n\n }\n\n\n return table;\n };\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"RECIBOS GENERADOS POR EMPLEADO\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">Criterio de Búsqueda</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"row\">\n\n <div className=\"col-md-6 mb-4\">\n <label>Desde:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n maxDate={new Date()}\n selected={initDate}\n onChange={new_date => {\n setInitDate(new_date);\n }}\n />\n </div>\n </div>\n\n <div className=\"col-md-6 mb-4\">\n <label>Hasta:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n minDate={initDate}\n disabled={!initDate}\n maxDate={new Date()}\n selected={finalDate}\n onChange={new_date => {\n setFinalDate(new_date);\n }}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n\n {!loading && <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"card-title text-white\">Reporte de Recibos Generados por Empleado</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <CSVLink data={csvData} filename={\"Recibos de Nomina.csv\"} className=\"btn btn-info\">Exportar csv</CSVLink>\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>Nombre</th>\n <th>No. Empleado</th>\n <th>Fecha Generación</th>\n <th>Año / Periodo</th>\n <th>Tipo de Periodo</th>\n <th>Tipo Nomina</th>\n <th>Centro</th>\n <th>Tipo de Consulta</th>\n <th>Ultimo acceso al sistema</th>\n </tr>\n </thead>\n\n <tbody>\n {data_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>}\n\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n\n};\n\nconst mapStateToProps = state => {\n return {\n receiptGenerationEmployeeData: state.receiptGenerationEmployee.receiptGenerationEmployeeData,\n receiptGenerationEmployeeError: state.receiptGenerationEmployee.receiptGenerationEmployeeError,\n };\n};\n\nconst mapDispatchToProps = {\n getReceiptGenerationEmployeeAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PayrollReceipts));\n","import React, { useState, useEffect } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport NumberFormat from 'react-number-format';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { periodosNominaRhAction } from '../../api/actions/RhUser/PeriodosNominaRhAction';\nimport { getUrlPdfAction } from '../../api/actions/empleado/UrlPdfAction';\nimport { getUrlXmlAction } from '../../api/actions/empleado/UrlXmlAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Payroll = props => {\n\n const [loading, setLoading] = useState(true);\n const [loadGraph, setLoadGraph] = useState(false);\n\n useEffect(() => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.periodosNominaRhAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.nominaRhData && props.nominaRhData.isOK === true) {\n setLoading(false);\n } else if (props.nominaRhError && props.nominaRhError.isOK === false) {\n props.periodosNominaRhAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.nominaRhData, props.nominaRhError]);\n\n useEffect(() => {\n if (loading === false && loadGraph === false) {\n if (props.nominaRhData && props.nominaRhData.isOK)\n graph(props.nominaRhData.Nomina);\n else\n graph([]);\n setLoadGraph(true);\n }\n }, [loading]);\n\n const payroll_table = () => {\n\n let table = [];\n let movimientos = props.nominaRhData.Nomina;\n\n if (!movimientos || movimientos.length <= 0) {\n table.push(\n <tr key=\"empty\">\n <td>No hay registros que mostar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return a.ptr - b.ptr;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={i} onClick={item.total > 0 ? () => _handleRowClick(item) : () => { }} style={{ cursor: 'pointer' }}>\n <td><h3>#{item.numeroPeriodo}</h3></td>\n <td>{item.ano}</td>\n <td>{item.nombrePeriodo}</td>\n <td>{item.tipoNomina}</td>\n <td>{moment(item.fechaInicio).format('DD/MM/YYYY')}</td>\n <td>{moment(item.fechaFinal).format('DD/MM/YYYY')}</td>\n <td>\n <h3>\n <NumberFormat value={item.total} displayType={'text'} thousandSeparator={true} prefix={'$'} decimalScale={2} />\n </h3>\n </td>\n <td>{item.total > 0 && <i className=\"mdi mdi-chevron-right\" ></i>}</td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClick = item => {\n props.history.push(`${process.env.PUBLIC_URL}/nominas/detalle`, item);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Nóminas\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12 col-xlg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div>\n <h4 className=\"card-title\">ÚLTIMOS PERIODOS DE NÓMINA</h4>\n </div>\n {/* <div className=\"ml-auto\">\n <ul className=\"list-inline\">\n <li>\n <h6 className=\"text-muted text-info\"><i className=\"fa fa-circle font-10 m-r-10\"></i>Sueldo Mensual</h6>\n </li>\n </ul>\n </div> */}\n </div>\n </div>\n <div className=\"col-12\">\n <div id=\"earningfull\" style={{ height: 200 + 'px' }}></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block\">\n <h4 className=\"card-title\">LISTADO DE PERIODOS</h4>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Periodo</th>\n <th>Año</th>\n <th>Periodicidad</th>\n <th>Tipo</th>\n <th>Fecha Inicio</th>\n <th>Fecha Final</th>\n <th>Total Pagado</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {props.nominaRhData && props.nominaRhData.isOK && payroll_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nfunction graph(data) {\n window.Morris.Area({\n element: 'earningfull',\n data: data.map(item => {\n return {\n 'Salario': parseFloat(item.total).toFixed(2),\n 'periodo': moment(item.fechaFinal).format('YYYY-MM-DD')\n }\n }),\n xkey: 'periodo',\n ykeys: ['Salario'],\n labels: ['Salario'],\n pointSize: 3,\n fillOpacity: 0,\n pointStrokeColors: ['#003b71'],\n behaveLikeLine: true,\n gridLineColor: '#e0e0e0',\n lineWidth: 3,\n hideHover: 'auto',\n lineColors: ['#003b71'],\n resize: true,\n smooth: false,\n xLabelFormat: function (d) {\n return moment(d).format('DD/MM/YYYY');\n },\n\n });\n}\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n\n nominaRhData: state.periodosNominaRh.nominaRhData,\n nominaRhError: state.periodosNominaRh.nominaRhError,\n }\n};\n\nconst mapDispatchToProps = {\n periodosNominaRhAction,\n getUrlPdfAction,\n getUrlXmlAction,\n};\n\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Payroll));\n","import { changeXml, periodosNominaRh } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NOMINA_RH_SUCCESS,\n NOMINA_RH_ERROR,\n NOMINA_RH_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const periodosNominaRhAction = (data, server) => {\n let configJson = {\n 'tem:PeriodosNominaAll': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PeriodosNominaAll\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NOMINA_RH_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET NOMINA_RH_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NOMINA_RH_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n PeriodosNominaRh: periodosNominaRh(body)\n }\n\n console.log('RESPONSE NOMINA_RH DATA: ', response);\n dispatch({ type: NOMINA_RH_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NOMINA_RH DATA: ', response);\n dispatch({ type: NOMINA_RH_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NOMINA_RH DATA: ', responseError);\n dispatch({ type: NOMINA_RH_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React from 'react';\n\nconst Loading = props => {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n { props.children }\n </div>\n </>\n );\n};\n\nexport default Loading;\n","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../../layout/Topbar.js';\nimport Leftsidebar from '../../layout/OperatorLeftsidebar';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\nimport Loading from '../../../components/shared/layoutLoading.js';\n\nconst Payrolls = props => {\n\n const [ loading, setLoading ] = useState(true);\n\n useEffect(() => {\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n }\n\n }, [])\n\n useEffect(() => {\n if( true ){\n setLoading(false);\n }\n }, [ ]);\n\n const payrolls_table = () => {\n\n let table = [];\n let solicitudes = [\n { key: 1, initialDate: '01/01/2020', finalDate: '15/01/2020', status: 'PROCESADA', color: '#93c03f' },\n { key: 2, initialDate: '16/01/2020', finalDate: '30/01/2020', status: 'PROCESADA', color: '#93c03f' },\n { key: 3, initialDate: '01/02/2020', finalDate: '15/02/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 4, initialDate: '16/02/2020', finalDate: '30/02/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 5, initialDate: '01/03/2020', finalDate: '15/03/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 6, initialDate: '16/03/2020', finalDate: '30/03/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 7, initialDate: '01/04/2020', finalDate: '15/04/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 8, initialDate: '16/04/2020', finalDate: '30/04/2020', status: 'CALCULADA', color: '#003b71' },\n { key: 9, initialDate: '01/05/2020', finalDate: '15/05/2020', status: 'CALCULADA', color: '#003b71' }\n ];\n\n if( solicitudes.length > 0 ){\n if(solicitudes[0]['error']){\n table.push(\n <tr>\n <td>{ solicitudes[0]['error'] }</td>\n </tr>\n );\n } else {\n\n solicitudes.map((item, i) => {\n table.push(\n <tr key={ item.key }>\n <td>{ item.initialDate }</td>\n <td>{ item.finalDate }</td>\n <td style={{ color: item.color }}><i className=\"mdi mdi-calendar-clock\"></i> { item.status }</td>\n <td><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n }\n\n return table;\n };\n\n if (loading) {\n return (\n <Loading>\n <Topbar/>\n <Leftsidebar />\n </Loading>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar text=\"Normal Vac\"/>\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Cálculo de Nóminas\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"d-flex no-block justify-content-between\">\n <h4 className=\"card-title\">Pago de Nóminas</h4>\n <Link to={`${process.env.PUBLIC_URL}/payrolls/new`}>\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light\">Nuevo Cálculo de Nómina</button>\n </Link>\n </div>\n {/* <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Desde</th>\n <th>Hasta</th>\n <th>Status</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n { payrolls_table() }\n </tbody>\n </table>\n </div> */}\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n\n };\n};\n\nconst mapDispatchToProps = {\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Payrolls));\n","import { changeXml, GetTypesNominaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n TYPES_NOMINA_SUCCESS,\n TYPES_NOMINA_ERROR,\n TYPES_NOMINA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getTypesNominaAction = (data, server) => {\n let configJson = {\n 'tem:GetTiposNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/GetTiposNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: TYPES_NOMINA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET TYPES_NOMINA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: TYPES_NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n TypesNomina: GetTypesNominaResponse(body)\n }\n\n console.log('RESPONSE TYPES_NOMINA DATA: ', response);\n dispatch({ type: TYPES_NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET TYPES_NOMINA DATA: ', response);\n dispatch({ type: TYPES_NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET TYPES_NOMINA DATA: ', responseError);\n dispatch({ type: TYPES_NOMINA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import { changeXml, NominaPeriodsResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NOMINA_PERIODS_SUCCESS,\n NOMINA_PERIODS_ERROR,\n NOMINA_PERIODS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getNominaPeriodsAction = (data, server) => {\n let configJson = {\n 'tem:GetPeriodosNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/GetPeriodosNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NOMINA_PERIODS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET NOMINA_PERIODS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NOMINA_PERIODS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n NominaPeriods: NominaPeriodsResponse(body)\n }\n\n console.log('RESPONSE NOMINA_PERIODS DATA: ', response);\n dispatch({ type: NOMINA_PERIODS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NOMINA_PERIODS DATA: ', response);\n dispatch({ type: NOMINA_PERIODS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NOMINA_PERIODS DATA: ', responseError);\n dispatch({ type: NOMINA_PERIODS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\n\nimport { getTypesNominaAction } from '../../../../api/actions/RhUser/GetTypesNominaAction';\nimport { getNominaPeriodsAction } from '../../../../api/actions/RhUser/GetNominaPeriodsAction';\nimport { getCalendarNominaAction } from '../../../../api/actions/RhUser/GetCalendarNominaAction';\nimport { companiesAction } from '../../../../api/actions/RhUser/CompaniesAction';\n\nconst SelectCompany = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ form, setForm ] = useState({});\n const [ data, setData ] = useState({years:[\n '2019', '2020', '2021', '2022', '2023', '2024', '2025', '2026', '2027', '2028', '2029', '2030', '2031', '2032', '2033', '2034', '2035',\n ]});\n const [ nextStep, setNextStep ] = useState(false);\n\n useEffect(() => {\n setData({\n years:[\n '2019', '2020', '2021', '2022', '2023', '2024', '2025', '2026', '2027', '2028', '2029', '2030', '2031', '2032', '2033', '2034', '2035',\n ],\n empresas:[],\n periods: [],\n payrolls_type: [],\n calendar: []\n });\n _getData(1);\n }, []);\n\n useEffect(() => {\n if( props.companiesData && props.companiesData.isOK === true ){\n setData({\n ...data,\n empresas: props.companiesData.Companies\n });\n } else if( props.companiesError && props.companiesError.isOK === true ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.companiesAction('PURGE', '');\n }\n\n }, [ props.companiesData, props.companiesError ]);\n\n useEffect(() => {\n if( props.typesNominaData && props.typesNominaData.isOK === true ){\n setData({\n ...data,\n payrolls_type: props.typesNominaData.TypesNomina\n });\n } else if( props.typesNominaError && props.typesNominaError.isOK === false){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.getTypesNominaAction('PURGE', '');\n }\n\n }, [ props.typesNominaData, props.typesNominaError ]);\n\n useEffect(() => {\n if( data.empresas != [] && data.payroll_type != [] && data.years != [] ){\n setLoading(false);\n }\n\n }, [ props.typesNominaData, props.companiesData ]);\n\n useEffect(() => {\n if( props.nominaPeriodsData && props.nominaPeriodsData.isOK === true ){\n setData({\n ...data,\n periods: props.nominaPeriodsData.NominaPeriods\n });\n setLoading(false);\n } else if( props.nominaPeriodsError && props.nominaPeriodsError.isOK === true ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.getNominaPeriodsAction('PURGE', '');\n }\n\n }, [ props.nominaPeriodsData, props.nominaPeriodsError ]);\n\n useEffect(() => {\n if( props.calendarNominaData && props.calendarNominaData.isOK === true ){\n setData({\n ...data,\n calendar: props.calendarNominaData.CalendarNomina\n });\n setLoading(false);\n } else if( props.calendarNominaError && props.calendarNominaError.isOK === true ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.getCalendarNominaAction('PURGE', '');\n }\n\n }, [ props.calendarNominaData, props.calendarNominaError ]);\n\n useEffect(() => {\n\n if( form.period_id && form.period_id != ''){\n setLoading(true);\n _getData(4);\n }\n\n if( form.company_type && form.company_type != '' && form.payroll_type && form.payroll_type != '' && form.year && form.year != '' ){\n setLoading(true);\n _getData(3);\n }\n\n if( form.company_type && form.company_type != '' ){\n setLoading(true);\n _getData(2);\n }\n\n }, [ form.period_id, form.payroll_type, form.year, form.company_type ]);\n\n useEffect(() => {\n\n if( form.selectedPeriod && form.selectedPeriod != ''){\n props.updateData(form);\n setNextStep(true);\n }\n\n }, [ form ]);\n\n const _getData = option => {\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n\n if( option === 1 ){\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.companiesAction(params, server);\n } else if( option === 2 ){\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': form.company_type,\n }\n props.getTypesNominaAction(params, server);\n } if( option === 3){\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': form.company_type,\n 'tem:Anio': form.year\n }\n props.getNominaPeriodsAction(params, server);\n } else if( option === 4){\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': form.company_type,\n 'tem:Anio': form.year,\n 'tem:Periodo_ID': form.period_id\n }\n props.getCalendarNominaAction(params, server);\n }\n }\n\n };\n\n const _handleForm = (e, inicio = false, final = false) => {\n if( inicio === false || final === false ){\n setForm({\n ...form,\n [ e.target.name ]: e.target.value,\n [ e.target.name + '_name' ]: e.target.options[e.target.selectedIndex].text\n });\n } else {\n setForm({\n ...form,\n [ e.target.name ]: e.target.value,\n dates: [ inicio, final ]\n });\n }\n\n };\n\n const _render_options = type => {\n\n let options = [];\n let placeholder = 'Seleccione una Opción';\n let option_data, form_item, option_value, option_print;\n\n switch( type ){\n case 'company':\n placeholder = 'Seleccione una Empresa';\n option_data = data.empresas;\n form_item = form.company_type;\n option_value = null;\n option_print = null;\n break;\n\n case 'year':\n placeholder = 'Seleccione un Año';\n option_data = data.years;\n form_item = form.year;\n option_value = null;\n option_print = null;\n break;\n\n case 'payroll_type':\n placeholder = 'Seleccione un Tipo de Nómina';\n option_data = data.payrolls_type;\n form_item = form.payroll_type;\n option_value = 'TipoNomina_ID';\n option_print = 'Descripcion';\n break;\n\n case 'payroll_period':\n placeholder = 'Seleccione un Periodo de Nómina';\n option_data = data.periods;\n form_item = form.period_id;\n option_value = 'Periodo_ID';\n option_print = 'Descripcion';\n break;\n }\n\n\n if( !form_item || form_item == '' ){\n options.push(\n <option key=\"default\" value=\"\" disabled >{ placeholder }</option>\n );\n }\n\n if( option_data && option_data.length > 0 ){\n if( option_value && option_print ){\n option_data.map((item, i) => {\n options.push(\n <option key={ i } value={ item[option_value] } >{ item[option_print] }</option>\n );\n });\n } else {\n option_data.map((item, i) => {\n options.push(\n <option key={ i } value={ item } >{ item }</option>\n );\n });\n }\n\n }\n return options;\n };\n\n const payrolls_table = () => {\n\n let table = [];\n\n if( data.calendar && data.calendar.length > 0 ){\n\n if( data.calendar.length > 0 ){\n if(data.calendar[0]['error']){\n table.push(\n <tr>\n <td>{ data.calendar[0]['error'] }</td>\n </tr>\n );\n } else {\n\n data.calendar.map((item, i) => {\n table.push(\n <tr key={ item.Periodo } className=\"form-group\">\n <td>\n <div className=\"custom-control custom-radio\">\n <input onChange={ (e) => _handleForm(e, item.FechaInicio, item.FechaFin) } type=\"radio\" className=\"custom-control-input\" id={ 'radiobutton' + item.Periodo } name=\"selectedPeriod\" value={ item.Periodo } />\n <label className=\"custom-control-label\" htmlFor={ 'radiobutton' + item.Periodo }> </label>\n </div>\n </td>\n <td>{ moment(item.FechaInicio).format('DD/MM/YYYY') }</td>\n <td>{ moment(item.FechaFin).format('DD/MM/YYYY') }</td>\n </tr>\n );\n });\n\n }\n }\n }\n\n return table;\n };\n\n if( loading ){\n return (\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n );\n } else {\n return (\n <div>\n\n <div className=\"text-center\">\n <h4>A continuación podrás realizar un cálculo de nómina para todos los empleados de una empresa o centro de trabajo.</h4>\n </div>\n\n <br/>\n <br/>\n\n <div className=\"row\">\n <div className=\"form-group col-6\">\n <select className=\"form-control\" name=\"company_type\" onChange={ _handleForm } value={ form.company_type || '' } >\n { _render_options('company') }\n </select>\n </div>\n <div className=\"form-group col-6\">\n <select className=\"form-control\" name=\"year\" onChange={ _handleForm } value={ form.year || '' } >\n { _render_options('year') }\n </select>\n </div>\n <div className=\"form-group col-6\">\n <select className=\"form-control\" name=\"payroll_type\" disabled={ data.payrolls_type && data.payrolls_type.length <= 0 } onChange={ _handleForm } value={ form.payroll_type || '' } >\n { _render_options('payroll_type') }\n </select>\n </div>\n <div className=\"form-group col-6\">\n <select className=\"form-control\" name=\"period_id\" disabled={ data.periods && data.periods.length <= 0 } onChange={ _handleForm } value={ form.period_id || '' } >\n { _render_options('payroll_period') }\n </select>\n </div>\n </div>\n\n {\n data.calendar?.length > 0 &&\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Selección</th>\n <th>Fecha Inicio</th>\n <th>Fecha Fin</th>\n </tr>\n </thead>\n <tbody>\n { payrolls_table() }\n </tbody>\n </table>\n </div>\n }\n\n <div className=\"d-flex justify-content-center\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={props.previousStep} disabled>Atras</button>\n     \n <button className=\"btn btn-info waves-effect waves-light\" onClick={props.nextStep} disabled={ !nextStep }>Siguiente</button>\n\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n typesNominaData: state.getTypesNomina.typesNominaData,\n typesNominaError: state.getTypesNomina.typesNominaError,\n\n nominaPeriodsData: state.getNominaPeriods.nominaPeriodsData,\n nominaPeriodsError: state.getNominaPeriods.nominaPeriodsError,\n\n calendarNominaData: state.getCalendarNomina.calendarNominaData,\n calendarNominaError: state.getCalendarNomina.calendarNominaError,\n\n companiesData: state.companies.companiesData,\n companiesError: state.companies.companiesError,\n };\n};\n\nconst mapDispatchToProps = {\n getTypesNominaAction,\n getNominaPeriodsAction,\n getCalendarNominaAction,\n companiesAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SelectCompany));\n","import { changeXml, CalendarNominaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js';\nimport {\n CALENDAR_NOMINA_SUCCESS,\n CALENDAR_NOMINA_ERROR,\n CALENDAR_NOMINA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCalendarNominaAction = (data, server) => {\n let configJson = {\n 'tem:GetCalendarioNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/GetCalendarioNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CALENDAR_NOMINA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CALENDAR_NOMINA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CALENDAR_NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CalendarNomina: CalendarNominaResponse(body)\n }\n\n console.log('RESPONSE CALENDAR_NOMINA DATA: ', response);\n dispatch({ type: CALENDAR_NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CALENDAR_NOMINA DATA: ', response);\n dispatch({ type: CALENDAR_NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CALENDAR_NOMINA DATA: ', responseError);\n dispatch({ type: CALENDAR_NOMINA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\n\nimport { getCentersNominaAction } from '../../../../api/actions/RhUser/GetCentersNominaAction';\n\nconst SelectLocation = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ init, setInit ] = useState(true);\n const [ data, setData ] = useState({});\n const [ centers, setCenters ] = useState([]);\n\n useEffect(() => {\n\n if( props.currentStep === 2 ){\n setData(props.previousData);\n }\n }, [ props.currentStep ]);\n\n useEffect(() => {\n if( Object.keys(data).length > 0 && init ){\n _getData();\n setInit(false);\n }\n }, [ data ]);\n\n useEffect(() => {\n if( props.centersNominaData && props.centersNominaData.isOK === true ){\n setData({\n ...data,\n centers: props.centersNominaData\n });\n setLoading(false);\n } else if( props.centersNominaError && props.centersNominaError.isOK === true ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.getCentersNominaAction('PURGE', '');\n }\n\n }, [ props.centersNominaData, props.centersNominaError ]);\n\n const _getData = () => {\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Anio': data.year,\n 'tem:Periodo_ID': data.period_id,\n 'tem:TipoNomina_ID': data.payroll_type,\n 'tem:Periodo': data.selectedPeriod\n }\n props.getCentersNominaAction(params, server);\n }\n };\n\n const _handleForm = center => {\n let actual_centers = centers;\n if( actual_centers.includes(center) ){\n actual_centers = actual_centers.filter(item => item != center)\n } else {\n actual_centers.push(center);\n }\n setCenters(actual_centers);\n props.updateData({ centers: actual_centers});\n };\n\n const centers_table = () => {\n\n let table = [];\n let centers = props.centersNominaData.CentersNomina;\n\n if( centers.length > 0 ){\n if(centers[0]['error']){\n table.push(\n <tr>\n <td>{ centers[0]['error'] }</td>\n </tr>\n );\n } else {\n\n centers.map((item, i) => {\n table.push(\n <tr key={ i } className=\"form-group\">\n <td>\n <div className=\"checkbox\">\n <input type=\"checkbox\" id={ 'checkbox' + i } onChange={ () => _handleForm( item.Centro_ID ) } />\n <label htmlFor={ 'checkbox' + i }></label>\n </div>\n </td>\n <td>{ item.Descripcion }</td>\n <td>{ item.Empleados }</td>\n </tr>\n );\n });\n\n }\n }\n\n return table;\n };\n\n if(loading){\n return (\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n );\n } else {\n return (\n <div>\n\n <div className=\"text-center\">\n <h4>SELECCIONAR CENTROS DE TRABAJO</h4>\n </div>\n\n\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Seleccionar</th>\n <th>Centro</th>\n <th># Empleados</th>\n </tr>\n </thead>\n <tbody>\n { centers_table() }\n </tbody>\n </table>\n </div>\n\n <div className=\"d-flex justify-content-center\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={props.previousStep}>Atras</button>\n     \n <button className=\"btn btn-info waves-effect waves-light\" onClick={props.nextStep}>Siguiente</button>\n\n </div>\n\n\n\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n centersNominaData: state.getCentersNomina.centersNominaData,\n centersNominaError: state.getCentersNomina.centersNominaError,\n };\n};\n\nconst mapDispatchToProps = {\n getCentersNominaAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SelectLocation));\n","import { changeXml, GetCentersNominaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CENTERS_NOMINA_SUCCESS,\n CENTERS_NOMINA_ERROR,\n CENTERS_NOMINA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCentersNominaAction = (data, server) => {\n let configJson = {\n 'tem:GetCentrosNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/GetCentrosNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CENTERS_NOMINA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CENTERS_NOMINA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CENTERS_NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CentersNomina: GetCentersNominaResponse(body)\n }\n\n console.log('RESPONSE CENTERS_NOMINA DATA: ', response);\n dispatch({ type: CENTERS_NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CENTERS_NOMINA DATA: ', response);\n dispatch({ type: CENTERS_NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CENTERS_NOMINA DATA: ', responseError);\n dispatch({ type: CENTERS_NOMINA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { processNominaAction } from '../../../../api/actions/RhUser/ProcessNominaAction';\n\n\nconst Summary = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ init, setInit ] = useState(true);\n const [ data, setData ] = useState(props.previousData);\n const [ show, setShow ] = useState(false);\n\n useEffect(() => {\n if( Object.keys(data).length > 0 && init ){\n setInit(false);\n setLoading(false)\n }\n }, [ data ]);\n\n useEffect(() => {\n if( props.processNominaData && props.processNominaData.isOK === true ){\n setLoading(false);\n setShow(true);\n } else if( props.processNominaError && props.processNominaError.isOK === true ){\n alert('Parece que hubo un error. Intentalo de nuevo.');\n setLoading(false);\n props.processNominaAction('PURGE', '');\n }\n\n }, [ props.processNominaData, props.processNominaError ]);\n\n const _processData = () => {\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Anio': data.year,\n 'tem:Periodo_ID': data.period_id,\n 'tem:TipoNomina_ID': data.payroll_type,\n 'tem:Periodo': data.selectedPeriod\n }\n\n props.processNominaAction(params, server);\n }\n };\n\n const _handleProcess = () => {\n console.log('Procesando nomina');\n _processData();\n };\n const _handleCloseModal = () => {\n props.history.push(`${process.env.PUBLIC_URL}/payrolls`);\n };\n\n if(loading){\n return (\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n );\n } else {\n return (\n <div>\n <Modal show={show} onHide={ _handleCloseModal }>\n <Modal.Header closeButton>\n <Modal.Title>Operación Exitosa</Modal.Title>\n </Modal.Header>\n <Modal.Body>¡El calculo de nómina se ha iniciado de forma exitosa!</Modal.Body>\n <Modal.Footer>\n <Button variant=\"primary\" onClick={ _handleCloseModal }>\n Cerrar\n </Button>\n </Modal.Footer>\n </Modal>\n\n <div className=\"text-center\">\n <h4>A continuación podrás visualizar un resumen de la nómina por procesar.</h4>\n </div>\n\n <br/>\n <br/>\n\n <div className=\"message-box contact-box\">\n <div className=\"message-widget contact-widget\">\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-briefcase\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>EMPRESA:</h5> <span className=\"mail-desc\">{ data.company_type }</span></div>\n </a>\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-domain\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>CENTROS DE TRABAJO</h5> <span className=\"mail-desc\">{ (data.centers && data.centers.length > 0) && data.centers.join(\", \") }</span></div>\n </a>\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-calendar-text\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>PERIODO DE NÓMINA</h5> <span className=\"mail-desc\">{ data.period_id + ': ' + data.period_id_name }</span></div>\n </a>\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-image-filter-tilt-shift\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>TIPO DE NÓMINA</h5> <span className=\"mail-desc\">{ data.payroll_type + ': ' + data.payroll_type_name }</span></div>\n </a>\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-update\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>AÑO</h5> <span className=\"mail-desc\">{ data.year }</span></div>\n </a>\n <a href=\"#\">\n <div className=\"user-img\"> <i style={{fontSize: 40 + 'px'}} className=\"mdi mdi-calendar\"></i> </div>\n <div className=\"mail-contnet\" style={{paddingBottom: 20 + 'px'}}>\n <h5>PERIODO DE NÓMINA</h5> <span className=\"mail-desc\">{ moment(data.dates[0]).format('DD/MM/YYYY') + ' - ' + moment(data.dates[1]).format('DD/MM/YYYY') }</span></div>\n </a>\n </div>\n </div>\n\n <div className=\"d-flex justify-content-center\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={props.previousStep}>Atras</button>\n     \n <button className=\"btn btn-success waves-effect waves-light\" onClick={ _handleProcess }>Procesar</button>\n\n </div>\n\n\n\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n processNominaData: state.processNomina.processNominaData,\n processNominaError: state.processNomina.processNominaError,\n };\n};\n\nconst mapDispatchToProps = {\n processNominaAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Summary));\n","import { changeXml, ProcessNominaResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n PROCESS_NOMINA_SUCCESS,\n PROCESS_NOMINA_ERROR,\n PROCESS_NOMINA_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const processNominaAction = (data, server) => {\n let configJson = {\n 'tem:SetProcesoNomina': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SetProcesoNomina\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: PROCESS_NOMINA_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET PROCESS_NOMINA_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: PROCESS_NOMINA_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ProcessNomina: ProcessNominaResponse(body)\n }\n\n console.log('RESPONSE PROCESS_NOMINA DATA: ', response);\n dispatch({ type: PROCESS_NOMINA_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET PROCESS_NOMINA DATA: ', response);\n dispatch({ type: PROCESS_NOMINA_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET PROCESS_NOMINA DATA: ', responseError);\n dispatch({ type: PROCESS_NOMINA_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\nimport { getDataUserAction } from '../../../api/actions/common/DataUserAction.js';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../../layout/Topbar.js';\nimport Leftsidebar from '../../layout/OperatorLeftsidebar';\nimport Title from '../../layout/Title.js';\nimport Footer from '../../layout/Footer.js';\nimport Loading from '../../../components/shared/layoutLoading.js';\n\nimport { getPeriodosNominaAction } from '../../../api/actions/empleado/NominaAction.js';\n\n\nimport SelectCompany from './steps/SelectCompany.js';\nimport SelectLocation from './steps/SelectLocation.js';\nimport Summary from './steps/Summary.js';\n\nimport StepWizard from 'react-step-wizard';\n\n\nconst CreatePayroll = props => {\n\n const [ loading, setLoading ] = useState(true);\n const [ generalData, setGeneralData ] = useState({});\n\n useEffect(() => {\n setLoading(false);\n }, [ ]);\n\n const _handleUpdateData = data => {\n setGeneralData({\n ...generalData,\n ...data\n });\n };\n\n if( loading ){\n return (\n <Loading>\n <Topbar init={true} />\n <Leftsidebar />\n </Loading>\n )\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Cálculo de Nóminas\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <StepWizard isLazyMount={ true }>\n <SelectCompany updateData={ _handleUpdateData } />\n <SelectLocation previousData={ generalData } updateData={ _handleUpdateData } />\n <Summary previousData={ generalData } />\n </StepWizard>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n dataUserData: state.dataUser.dataUserData,\n dataUserError: state.dataUser.dataUserError,\n purgeDataUser: state.dataUser.purgeDataUser,\n\n nominaData:state.nomina.nominaData,\n nominaError:state.nomina.nominaError,\n purgeNomina: state.nomina.purgeNomina\n };\n};\n\nconst mapDispatchToProps = {\n getDataUserAction,\n getPeriodosNominaAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CreatePayroll));\n","import { changeXml, AllMessagesToRhResponse } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ALL_MESSAGES_TO_RH_SUCCESS,\n ALL_MESSAGES_TO_RH_ERROR,\n ALL_MESSAGES_TO_RH_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getAllMessagesToRhAction = (data, server) => {\n let configJson = {\n 'tem:AllMensajesARH': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/AllMensajesARH\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ALL_MESSAGES_TO_RH_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET ALL_MESSAGES_TO_RH_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ALL_MESSAGES_TO_RH_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AllMessagesToRh: AllMessagesToRhResponse(body)\n }\n\n console.log('RESPONSE ALL_MESSAGES_TO_RH DATA: ', response);\n dispatch({ type: ALL_MESSAGES_TO_RH_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ALL_MESSAGES_TO_RH DATA: ', response);\n dispatch({ type: ALL_MESSAGES_TO_RH_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ALL_MESSAGES_TO_RH DATA: ', responseError);\n dispatch({ type: ALL_MESSAGES_TO_RH_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getAllMessagesToRhAction } from '../../api/actions/RhUser/AllMessagesToRhRAction';\n\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport moment from 'moment';\n\nconst Requests = props => {\n\n const [ loading, setLoading ] = useState(true);\n\n useEffect(() => {\n\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n console.log('log', params);\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n props.getAllMessagesToRhAction(params, server);\n }\n }, []);\n\n\n\n useEffect(() => {\n if( Object.keys(props.allMessagesToRhData).length !== 0 ){\n setLoading(false);\n }\n\n if( Object.keys(props.allMessagesToRhError).length !== 0 ){\n props.getAllMessagesToRhAction('PURGE', '');\n alert('Parece que hubo un error. Intentelo de nuevo más tarde.')\n props.history.push(`${process.env.PUBLIC_URL}/`);\n }\n\n }, [ props.allMessagesToRhData, props.allMessagesToRhError ]);\n\n const requests_table = () => {\n\n let table = [];\n let movimientos = props.allMessagesToRhData.AllMessagesToRh;\n\n if( movimientos.length > 0 ){\n if(movimientos[0]['error']){\n table.push(\n <tr>\n <td>{ movimientos[0]['error'] }</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a,b) => {\n return b.Id - a.Id;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.id_msj} onClick={() => _handleRowClick(item.id_msj, item.emisor, item.titulo, item.mensaje, item.fechaCap)} className=\"\" style={{ cursor: 'pointer' }}>\n <td><h3>#{ item.id_msj }</h3></td>\n <td>{ moment(item.fechaCap).format('DD/MM/YYYY') }</td>\n <td>{ item.emisor }</td>\n <td>{ item.titulo }</td>\n <td>{ item.mensaje }</td>\n <td><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr className=\"unread\">\n <td>No hay solicitudes</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n }\n\n\n return table;\n };\n\n const _handleRowClick = (id, emisor, titulo, msg, fecha) => {\n props.history.push(`${process.env.PUBLIC_URL}/requests/${id}`, {emisor: emisor, titulo: titulo, msg: msg, fecha: fecha});\n };\n\n if( loading ){\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar/>\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"RH Te Escucha\" icon=\"mdi mdi-account-multiple\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">LISTADO DE SOLICITUDES A RH</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Fecha</th>\n <th>Emisor</th>\n <th>Solicitud</th>\n <th>Mensaje</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n { requests_table() }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n allMessagesToRhData: state.allMessagesRh.allMessagesToRhData,\n allMessagesToRhError: state.allMessagesRh.allMessagesToRhError,\n };\n};\n\nconst mapDispatchToProps = {\n getAllMessagesToRhAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Requests));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nconst RequestDetail = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (true) {\n setLoading(false);\n }\n }, []);\n\n const { emisor, titulo, msg, fecha } = props.location.state;\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/mensajes\" actual={props.match.params.id} icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3 className=\"mb-5\">{titulo}</h3>\n <p className=\"mb-5\">{msg}</p>\n <hr />\n <small className=\"text-muted\">Emisor: {emisor}</small> <br />\n <small className=\"text-muted\">Mensaje enviado el {moment(fecha).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nexport default withRouter(connect(null, null)(RequestDetail));\n","import { changeXml, BuzonQuejas } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n BUZON_QUEJAS_SUCCESS,\n BUZON_QUEJAS_ERROR,\n BUZON_QUEJAS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getBuzonQuejasAction = (data, server) => {\n console.log('BUZON_QUEJAS JA')\n let configJson = {\n 'tem:BuzonQuejaAll': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BuzonQuejaAll\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: BUZON_QUEJAS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET BUZON_QUEJAS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: BUZON_QUEJAS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n BuzonQuejas: BuzonQuejas(body)\n }\n\n console.log('RESPONSE BUZON_QUEJAS DATA: ', response);\n dispatch({ type: BUZON_QUEJAS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET BUZON_QUEJAS DATA: ', response);\n dispatch({ type: BUZON_QUEJAS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET BUZON_QUEJAS DATA: ', responseError);\n dispatch({ type: BUZON_QUEJAS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport useScript from '../../hooks/useScript';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getBuzonQuejasAction } from '../../api/actions/RhUser/BuzonQuejasAction';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Complaints = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let { params, server } = getParams();\n props.getBuzonQuejasAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.buzonQuejasData && props.buzonQuejasData.isOK) {\n setLoading(false);\n } else if (props.buzonQuejasError && props.buzonQuejasError.isOK) {\n props.getBuzonQuejasAction('PURGE', '');\n setLoading(false);\n }\n }, [props.buzonQuejasData, props.buzonQuejasError])\n\n const complaints_table = () => {\n\n let table = [];\n let movimientos = props.buzonQuejasData.BuzonQuejas;\n\n if (!movimientos || movimientos.length <= 0) {\n\n table.push(\n <tr key={'error'}>\n <td>No hay información disponible.</td>\n </tr>\n );\n\n } else {\n /* movimientos = movimientos.sort((a, b) => {\n return a.idMensaje - b.idMensaje;\n }); */\n movimientos = movimientos.sort((a, b) => {\n const compared = new moment(a.fecha).format('YYYYMMDDHHmmss') - new moment(b.fecha).format('YYYYMMDDHHmmss');\n return compared;\n });\n movimientos.reverse();\n \n movimientos.map((item, i) => {\n table.push(\n <tr key={item.idMensaje} onClick={() => _handleRowClick(item.idMensaje)} style={{ cursor: 'pointer' }}>\n <td><h3>#{item.idMensaje}</h3></td>\n <td>{item.titulo}</td>\n <td>{moment(item.fecha).format('DD/MM/YYYY')}</td>\n <td style={{ width: 80 + 'px' }} className=\"hidden-xs-down\"><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const _handleRowClick = (id) => {\n props.history.push(`${process.env.PUBLIC_URL}/complaints/${id}`);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Buzón de Quejas\" icon=\"mdi mdi-message-bulleted-off\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">LISTADO DE BUZÓN DE QUEJAS</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Titulo</th>\n <th>Fecha</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {complaints_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n buzonQuejasData: state.buzonQuejas.buzonQuejasData,\n buzonQuejasError: state.buzonQuejas.buzonQuejasError,\n };\n};\n\nconst mapDispatchToProps = {\n getBuzonQuejasAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Complaints));\n","import { changeXml, DeleteComplaint } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DELETE_COMPLAINT_SUCCESS,\n DELETE_COMPLAINT_ERROR,\n DELETE_COMPLAINT_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDeleteComplaintAction = (data, server) => {\n let configJson = {\n 'tem:DeleteBuzonQueja': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DeleteBuzonQueja\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DELETE_COMPLAINT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DELETE_COMPLAINT_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DELETE_COMPLAINT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DeleteComplaint: DeleteComplaint(body)\n }\n\n console.log('RESPONSE DELETE_COMPLAINT DATA: ', response);\n dispatch({ type: DELETE_COMPLAINT_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DELETE_COMPLAINT DATA: ', response);\n dispatch({ type: DELETE_COMPLAINT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DELETE_COMPLAINT DATA: ', responseError);\n dispatch({ type: DELETE_COMPLAINT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, BuzonQuejasDetail } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n BUZON_QUEJAS_DETAIL_SUCCESS,\n BUZON_QUEJAS_DETAIL_ERROR,\n BUZON_QUEJAS_DETAIL_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getBuzonQuejasDetailAction = (data, server) => {\n let configJson = {\n 'tem:BuzonQuejaAllDet': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/BuzonQuejaAllDet\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: BUZON_QUEJAS_DETAIL_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET BUZON_QUEJAS_DETAIL_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: BUZON_QUEJAS_DETAIL_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n BuzonQuejasDetail: BuzonQuejasDetail(body)\n }\n\n console.log('RESPONSE BUZON_QUEJAS_DETAIL DATA: ', response);\n dispatch({ type: BUZON_QUEJAS_DETAIL_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET BUZON_QUEJAS_DETAIL DATA: ', response);\n dispatch({ type: BUZON_QUEJAS_DETAIL_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET BUZON_QUEJAS_DETAIL DATA: ', responseError);\n dispatch({ type: BUZON_QUEJAS_DETAIL_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDeleteComplaintAction } from '../../api/actions/RhUser/DeleteComplaintAction';\nimport { getBuzonQuejasDetailAction } from '../../api/actions/RhUser/BuzonQuejasDetalleActioon';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\n\n\nconst ComplaintDetail = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.match.params.id\n }\n\n props.getBuzonQuejasDetailAction(params, server);\n\n }, []);\n\n useEffect(() => {\n if (props.buzonQuejasDetailData && props.buzonQuejasDetailData.BuzonQuejasDetail) {\n setLoading(false);\n }\n }, [props.buzonQuejasDetailData, props.buzonQuejasDetailError]);\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const { fecha, Mensaje, Titulo } = props.buzonQuejasDetailData.BuzonQuejasDetail;\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Buzón de Quejas\" redirect=\"/complaints\" actual={props.match.params.id} icon=\"mdi mdi-message-bulleted-off\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3>{Titulo}</h3>\n <p>{Mensaje}</p>\n <hr />\n <small className=\"text-muted\">{moment(fecha).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n buzonQuejasDetailData: state.buzonQuejasDetalle.buzonQuejasDetailData,\n buzonQuejasDetailError: state.buzonQuejasDetalle.buzonQuejasDetailError,\n\n deleteComplaintData: state.deleteComplaint.deleteComplaintData,\n deleteComplaintError: state.deleteComplaint.deleteComplaintError,\n };\n};\n\nconst mapDispatchToProps = {\n getDeleteComplaintAction,\n getBuzonQuejasDetailAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ComplaintDetail));\n","import { changeXml, ListCorporativeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n LIST_CORPORATIVE_MESSAGE_SUCCESS,\n LIST_CORPORATIVE_MESSAGE_ERROR,\n LIST_CORPORATIVE_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getListCorporativeMessageAction = (data, server) => {\n let configJson = {\n 'tem:MensajesCorporativos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajesCorporativos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: LIST_CORPORATIVE_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET LIST_CORPORATIVE_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: LIST_CORPORATIVE_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ListCorporativeMessage: ListCorporativeMessage(body)\n }\n\n console.log('RESPONSE LIST_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: LIST_CORPORATIVE_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET LIST_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: LIST_CORPORATIVE_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET LIST_CORPORATIVE_MESSAGE DATA: ', responseError);\n dispatch({ type: LIST_CORPORATIVE_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getListCorporativeMessageAction } from '../../api/actions/systemAdmin/ListCorporativeMessageAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Messages = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:usuario': params['tem:TrabID'],\n }\n props.getListCorporativeMessageAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.listCorporativeMessageData && props.listCorporativeMessageData.isOK && props.listCorporativeMessageData?.ListCorporativeMessage != undefined) {\n setLoading(false);\n } else if (props.listCorporativeMessageError && props.listCorporativeMessageError.isOK === false) {\n setLoading(false);\n }\n }, [props.listCorporativeMessageData, props.listCorporativeMessageError])\n\n const messages_table = () => {\n\n let table = [];\n let movimientos = props.listCorporativeMessageData.ListCorporativeMessage;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n } else {\n /* movimientos = movimientos.sort((a, b) => {\n return a.idMensaje - b.idMensaje;\n }); */\n movimientos = movimientos.sort((a, b) => {\n const compared = new moment(a.fecha).format('YYYYMMDDHHmmss') - new moment(b.fecha).format('YYYYMMDDHHmmss');\n return compared;\n });\n movimientos.reverse();\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.idMensaje} onClick={() => _handleRowClick(item.idMensaje, item.Titulo, item.Fecha)} className=\"\" style={{ cursor: 'pointer' }}>\n <td style={{ width: 40 + 'px' }} className=\"hidden-xs-down\"></td>\n <td className=\"hidden-xs-down\"><b>{item.Titulo}</b></td>\n <td className=\"text-right\"> {moment(item.Fecha).format('DD/MM/YYYY')} </td>\n <td style={{ width: 80 + 'px' }} className=\"hidden-xs-down\"><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleRowClick = (id) => {\n props.history.push(`${process.env.PUBLIC_URL}/messages/${id}`, { 'id': id });\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Mensajes\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">MENSAJES AL PERSONAL</h4>\n </div>\n <div className=\"col-6\">\n <Link to={`${process.env.PUBLIC_URL}/messages/new`}>\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\">NUEVO MENSAJE</button>\n </Link>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <tbody>\n {messages_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n listCorporativeMessageData: state.listCorporativeMessage.listCorporativeMessageData,\n listCorporativeMessageError: state.listCorporativeMessage.listCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getListCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Messages));\n","import React, { useEffect, useState } from \"react\";\r\nimport { NavLink } from 'react-router-dom';\r\n//import logo from '../../assets/images/Logo.png';\r\nimport QR from './QRCode.js';\r\nimport { connect } from 'react-redux';\r\nimport { getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from \"../../utils\";\r\n\r\nconst Leftsidebar = props => {\r\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\r\n\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [menu, setMenu] = useState([]);\r\n\r\n useEffect(() => {\r\n setEmployeeType(getEmployeeType());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.adminMenuData && props.adminMenuData.isOK) {\r\n setMenu([...props.adminMenuData.AdminMenu].filter(fl => fl.IdRol == 5));\r\n }\r\n }, [props.adminMenuData]);\r\n\r\n useEffect(() => {\r\n console.log('OIHB DATA MENU', menu);\r\n }, [menu]);\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") != \"1\") return true;\r\n\r\n if ((nombreMenu || \"\").trim().length == 0) return true;\r\n \r\n let MenuID = '0';\r\n let permite = false;\r\n\r\n if (menu.length > 0) {\r\n let find = menu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR /> : null}\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n\r\n <li className=\"nav-devider\"></li>\r\n\r\n {permiteMenu(\"\") && <li> <NavLink exact activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-home\"></i><span className=\"hide-menu\">INICIO</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"messages\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/messages`} aria-expanded=\"false\"><i className=\"mdi mdi-message\"></i><span className=\"hide-menu\">MENSAJES AL PERSONAL</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"requests\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/requests`} aria-expanded=\"false\"><i className=\"mdi mdi-account-multiple\"></i><span className=\"hide-menu\">RH TE ESCUCHA</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"complaints\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/complaints`} aria-expanded=\"false\"><i className=\"mdi mdi-message-bulleted-off\"></i><span className=\"hide-menu\">BUZÓN DE QUEJAS</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"fields\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/fields`} aria-expanded=\"false\"><i className=\"mdi mdi-file-document\"></i><span className=\"hide-menu\">CAMPOS ADICIONALES</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/menu`} aria-expanded=\"false\"><i className=\"mdi mdi-menu\"></i><span className=\"hide-menu\">MENU</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"payroll\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/payroll`} aria-expanded=\"false\"><i className=\"mdi mdi-bank\"></i><span className=\"hide-menu\">RECIBOS GENERADOS POR EMPLEADO</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"reports\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/reports`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">DESCARGAR REPORTES</span></NavLink>\r\n </li>}\r\n {permiteMenu(\"upload\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/upload`} aria-expanded=\"false\"><i className=\"mdi mdi-upload\"></i><span className=\"hide-menu\">CARGAR ARCHIVOS</span></NavLink>\r\n </li>}\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_CONF_NOM035\") == '1' && \r\n permiteMenu(\"suveryNom035\") && <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/suveryNom035`} aria-expanded=\"false\"><i className=\"mdi mdi-file\"></i><span className=\"hide-menu\">ENCUESTAS NOM 035</span></NavLink>\r\n </li>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\") == '1' &&\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/downloadPersonalDocs`} aria-expanded=\"false\"><i className=\"mdi mdi-cloud-download\"></i><span className=\"hide-menu\">DESCARGAR ARCHIVOS EMPLEADOS</span></NavLink>\r\n </li>\r\n }\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img width=\"90\" src={logo} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n typeUserSelected: state.changeUserType.typeUserSelected,\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(Leftsidebar);\r\n","import { changeXml, centerCatalog } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CENTERS_CATALOG_SUCCESS,\n CENTERS_CATALOG_ERROR,\n CENTERS_CATALOG_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCenterCatalogAction = (data, server) => {\n let configJson = {\n 'tem:CatalogoCentros': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoCentros\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CENTERS_CATALOG_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CENTERS_CATALOG_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CENTERS_CATALOG_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CenterCatalog: centerCatalog(body)\n }\n\n console.log('RESPONSE CENTERS_CATALOG DATA: ', response);\n dispatch({ type: CENTERS_CATALOG_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CENTERS_CATALOG DATA: ', response);\n dispatch({ type: CENTERS_CATALOG_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CENTERS_CATALOG DATA: ', responseError);\n dispatch({ type: CENTERS_CATALOG_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, deptsCatalog } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DEPTS_CATALOG_SUCCESS,\n DEPTS_CATALOG_ERROR,\n DEPTS_CATALOG_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDeptsCatalogAction = (data, server) => {\n let configJson = {\n 'tem:CatalogoDepto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoDepto\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DEPTS_CATALOG_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DEPTS_CATALOG_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DEPTS_CATALOG_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DeptsCatalog: deptsCatalog(body)\n }\n\n console.log('RESPONSE DEPTS_CATALOG DATA: ', response);\n dispatch({ type: DEPTS_CATALOG_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DEPTS_CATALOG DATA: ', response);\n dispatch({ type: DEPTS_CATALOG_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DEPTS_CATALOG DATA: ', responseError);\n dispatch({ type: DEPTS_CATALOG_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, JobCatalog } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n JOB_CATALOG_SUCCESS,\n JOB_CATALOG_ERROR,\n JOB_CATALOG_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getJobCatalogAction = (data, server) => {\n let configJson = {\n 'tem:CatalogoPuestos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoPuestos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: JOB_CATALOG_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET JOB_CATALOG_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: JOB_CATALOG_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n JobCatalog: JobCatalog(body)\n }\n\n console.log('RESPONSE JOB_CATALOG DATA: ', response);\n dispatch({ type: JOB_CATALOG_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET JOB_CATALOG DATA: ', response);\n dispatch({ type: JOB_CATALOG_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET JOB_CATALOG DATA: ', responseError);\n dispatch({ type: JOB_CATALOG_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport useScript from '../../hooks/useScript';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getNewCorporativeMessageAction } from '../../api/actions/systemAdmin/NewCorporativeMessageAction';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getParams, getSesionStorage} from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport { getCenterCatalogAction } from '../../api/actions/systemAdmin/CenterCatalogAction';\nimport { getDeptsCatalogAction } from '../../api/actions/systemAdmin/DeptsCatalogAction'\nimport { getJobCatalogAction } from '../../api/actions/systemAdmin/JobCatalogAction';\n\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\n\nimport DatePicker, { registerLocale, setDefaultLocale } from 'react-datepicker';\nimport es from 'date-fns/locale/es';\nregisterLocale('es', es)\n\n\nconst NewMessage = props => {\n\n const [loading, setLoading] = useState(true);\n const [date, setDate] = useState(new Date());\n const [form, setValues] = useState({});\n const [configEditor, setConfigEditor] = useState({});\n const [msg, setMsg] = useState(null);\n const { addToast } = useToasts();\n\n useEffect(() => {\n\n let config = {\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n ['blockquote', 'code-block'],\n\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\n\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\n\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\n [{ 'font': [] }],\n [{ 'align': [] }],\n\n ],\n }\n };\n\n setConfigEditor(config);\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getCenterCatalogAction(params, server);\n props.getDeptsCatalogAction(params, server);\n props.getJobCatalogAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.centersCatalogData && props.centersCatalogData.isOK\n && props.deptsCatalogData && props.deptsCatalogData.isOK\n && props.jobCatalogData && props.jobCatalogData.isOK) {\n setLoading(false);\n } else if ((props.centersCatalogError && props.centersCatalogError.isOK === false)\n || (props.deptsCatalogError && props.deptsCatalogError.isOK === false)\n || (props.jobCatalogError && props.jobCatalogError.isOK === false)) {\n props.history.push(`${process.env.PUBLIC_URL}/messages`);\n }\n }, [\n props.centersCatalogData, props.centersCatalogError,\n props.deptsCatalogData, props.deptsCatalogError,\n props.jobCatalogData, props.jobCatalogError\n ]);\n\n useEffect(() => {\n if (props.newCorporativeMessageData && props.newCorporativeMessageData.isOK && props.newCorporativeMessageData?.NewCorporativeMessage) {\n addToast('Mensaje Enviado', {\n appearance: 'success',\n autoDismiss: true,\n });\n props.getNewCorporativeMessageAction('PURGE', '');\n props.history.push(`${process.env.PUBLIC_URL}/messages`);\n } else if (props.newCorporativeMessageError && props.newCorporativeMessageError.isOK === false) {\n props.getNewCorporativeMessageAction('PURGE', '');\n }\n\n }, [props.newCorporativeMessageData, props.newCorporativeMessageError]);\n\n const getCenters = () => {\n let c = [];\n props.centersCatalogData.CenterCatalog.map(center => {\n c.push(\n <option key={center.id} value={center.id}>{center.descripcion}</option>\n );\n });\n return c;\n }\n\n const getDeptos = () => {\n let d = [];\n props.deptsCatalogData.DeptsCatalog.map(depto => {\n d.push(\n <option key={depto.id} value={depto.id}>{depto.descripcion}</option>\n );\n });\n return d;\n }\n\n const getPositions = () => {\n let p = [];\n props.jobCatalogData.JobCatalog.map(position => {\n p.push(\n <option key={position.id} value={position.id}>{position.descripcion}</option>\n );\n });\n return p;\n }\n\n\n const handleInput = event => {\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n const handleSubmit = e => {\n e.preventDefault();\n\n if (!form.titulo) {\n alert('Por favor escribe un titulo.');\n return;\n }\n\n if (!msg) {\n alert('Por favor escribe un mensaje.');\n return;\n }\n\n let dateStr = date.getFullYear() + '-' + addZero(date.getMonth() + 1) + '-' + addZero(date.getDate()) + 'T' + addZero(date.getHours()) + ':' + addZero(date.getMinutes()) + ':00';\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:tituloMsj': form.titulo,\n 'tem:ContenidoMsj': \"<![CDATA[ \" + msg + \" ]]>\",\n 'tem:CentroID': form.centro !== undefined ? form.centro : '0',\n 'tem:deptoid': form.depto !== undefined ? form.depto : '0',\n 'tem:PuestoId': form.puesto !== undefined ? form.puesto : '0',\n 'tem:user_id': params['tem:TrabID'],\n 'tem:Fecha': dateStr,\n }\n\n props.getNewCorporativeMessageAction(params, server);\n\n }\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/mensajes\" actual=\"Nuevo\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <h4 className=\"card-title\">Envío de Mensaje a Colaboradores</h4>\n <h6 className=\"card-subtitle\">Favor de seleccionar los datos para el envío del mensaje.</h6>\n <form className=\"form-material m-t-40\" onSubmit={handleSubmit}>\n <div className=\"row\">\n <div className=\"col-md-4\">\n <div className=\"form-group\">\n <label>Centro</label>\n <select name=\"centro\" className=\"form-control\" onChange={handleInput}>\n <option value=\"0\">Todos</option>\n {getCenters()}\n </select>\n </div>\n </div>\n <div className=\"col-md-4\">\n <div className=\"form-group\">\n <label>Departamento</label>\n <select name=\"depto\" className=\"form-control\" onChange={handleInput}>\n <option value=\"0\">Todos</option>\n {getDeptos()}\n </select>\n </div>\n </div>\n <div className=\"col-md-4\">\n <div className=\"form-group\">\n <label>Puesto</label>\n <select name=\"puesto\" className=\"form-control\" onChange={handleInput}>\n <option value=\"0\">Todos</option>\n {getPositions()}\n </select>\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <label>Fecha y Hora de Envío</label>\n <br />\n\n <DatePicker\n className=\"form-control\"\n locale=\"es\"\n dateFormat=\"MMMM d, yyyy h:mm aa\"\n showTimeSelect\n timeFormat=\"HH:mm a\"\n timeIntervals={15}\n placeholderText=\"Seleccionar una fecha\"\n selected={date}\n onChange={new_date => setDate(new_date)}\n />\n </div>\n <div className=\"form-group\">\n <label>Título del Mensaje</label>\n <input name=\"titulo\" type=\"text\" className=\"form-control\" placeholder=\"\" onChange={handleInput} /> </div>\n <div className=\"form-group\" >\n <div>\n <label>Mensaje:</label>\n <ReactQuill\n theme=\"snow\"\n value={msg}\n onChange={setMsg}\n modules={configEditor.modules}\n />\n </div>\n </div>\n <div className=\"col-md-4\">\n <button type=\"submit\" className=\"btn waves-effect waves-light btn-block btn-info\">Enviar Mensaje</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div >\n </div >\n );\n }\n};\n\n\n\nconst mapStateToProps = state => {\n return {\n centersCatalogData: state.centersCatalog.centersCatalogData,\n centersCatalogError: state.centersCatalog.centersCatalogError,\n\n deptsCatalogData: state.deptsCatalog.deptsCatalogData,\n deptsCatalogError: state.deptsCatalog.deptsCatalogError,\n\n jobCatalogData: state.jobCatalog.jobCatalogData,\n jobCatalogError: state.jobCatalog.jobCatalogError,\n\n newCorporativeMessageData: state.newCorporativeMessage.newCorporativeMessageData,\n newCorporativeMessageError: state.newCorporativeMessage.newCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getCenterCatalogAction,\n getDeptsCatalogAction,\n getJobCatalogAction,\n getNewCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NewMessage));\n","import { changeXml, NewCorporativeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NEW_CORPORATIVE_MESSAGE_SUCCESS,\n NEW_CORPORATIVE_MESSAGE_ERROR,\n NEW_CORPORATIVE_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getNewCorporativeMessageAction = (data, server) => {\n let configJson = {\n 'tem:WriteMensajesCorporativos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/WriteMensajesCorporativos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NEW_CORPORATIVE_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET NEW_CORPORATIVE_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NEW_CORPORATIVE_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n NewCorporativeMessage: NewCorporativeMessage(body)\n }\n\n console.log('RESPONSE NEW_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: NEW_CORPORATIVE_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NEW_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: NEW_CORPORATIVE_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NEW_CORPORATIVE_MESSAGE DATA: ', responseError);\n dispatch({ type: NEW_CORPORATIVE_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, DetailCorporativeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DETAIL_CORPORATIVE_MESSAGE_SUCCESS,\n DETAIL_CORPORATIVE_MESSAGE_ERROR,\n DETAIL_CORPORATIVE_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDetailCorporativeMessageAction = (data, server) => {\n let configJson = {\n 'tem:MensajesCorporativosDet': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MensajesCorporativosDet\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DETAIL_CORPORATIVE_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DETAIL_CORPORATIVE_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DETAIL_CORPORATIVE_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DetailCorporativeMessage: DetailCorporativeMessage(body)\n }\n\n console.log('RESPONSE DETAIL_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: DETAIL_CORPORATIVE_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DETAIL_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: DETAIL_CORPORATIVE_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DETAIL_CORPORATIVE_MESSAGE DATA: ', responseError);\n dispatch({ type: DETAIL_CORPORATIVE_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDetailCorporativeMessageAction } from '../../api/actions/systemAdmin/DetailCorporativeMessageAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\n\nconst MessagesDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({});\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.location.state.id,\n }\n\n props.getDetailCorporativeMessageAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.detailCorporativeMessageData && props.detailCorporativeMessageData.isOK) {\n setData({\n ...props.detailCorporativeMessageData.DetailCorporativeMessage\n });\n setLoading(false);\n } else if (props.detailCorporativeMessageError && props.detailCorporativeMessageError.isOK === false) {\n props.getDetailCorporativeMessageAction('PURGE', '');\n setData({\n Fecha: null,\n Titulo: null,\n Mensaje: null\n });\n setLoading(false);\n }\n }, [props.detailCorporativeMessageData, props.detailCorporativeMessageError]);\n\n const handleEdit = () => {\n const { Titulo, Mensaje, idMensaje } = props.detailCorporativeMessageData.DetailCorporativeMessage;\n props.history.push(`${process.env.PUBLIC_URL}/edit/messages/${idMensaje}`, { 'id': idMensaje, 'title': Titulo, 'msg': Mensaje });\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const { Fecha, Titulo, Mensaje } = data;\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/messages\" actual={props.location.state.id} icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <button onClick={handleEdit} className=\"btn btn-success pull-right\"><i className=\"mdi mdi-pencil\"></i> Editar</button>\n </div>\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3>{Titulo}</h3>\n <ReactQuill\n theme=\"bubble\"\n readOnly={true}\n value={Mensaje}\n modules={{ toolbar: false }}\n />\n <hr />\n <small className=\"text-muted\">{moment(Fecha).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n detailCorporativeMessageData: state.detailCorporativeMessage.detailCorporativeMessageData,\n detailCorporativeMessageError: state.detailCorporativeMessage.detailCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getDetailCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MessagesDetail));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getEditCorporativeMessageAction } from '../../api/actions/systemAdmin/EditCorporativeMessageAction';\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\n\nconst EditMessage = props => {\n\n const [loading, setLoading] = useState(false);\n const [configEditor, setConfigEditor] = useState({});\n const [msg, setMsg] = useState(props.location.state.msg);\n const { addToast } = useToasts();\n\n useEffect(() => {\n\n let config = {\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n ['blockquote', 'code-block'],\n\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\n\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\n\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\n [{ 'font': [] }],\n [{ 'align': [] }],\n\n ],\n }\n };\n\n setConfigEditor(config);\n\n }, []);\n\n\n useEffect(() => {\n if (props.editCorporativeMessageData && props.editCorporativeMessageData.isOK && props.editCorporativeMessageData?.EditCorporativeMessage) {\n addToast('Mensaje Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n props.getEditCorporativeMessageAction('PURGE', '');\n props.history.push(`${process.env.PUBLIC_URL}/messages`);\n } else if (props.editCorporativeMessageError && props.editCorporativeMessageError.isOK === false) {\n props.getEditCorporativeMessageAction('PURGE', '');\n }\n\n }, [props.editCorporativeMessageData, props.editCorporativeMessageError]);\n\n const handleSubmit = e => {\n e.preventDefault();\n\n if (!msg) {\n alert('Por favor escribe un mensaje.');\n return;\n }\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.location.state.id,\n 'tem:ContenidoMsj': \"<![CDATA[ \" + msg + \" ]]>\",\n }\n\n props.getEditCorporativeMessageAction(params, server);\n\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/mensajes\" actual=\"Nuevo\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <h4 className=\"card-title\">Envío de Mensaje a Colaboradores</h4>\n <form className=\"form-material m-t-40\" onSubmit={handleSubmit}>\n \n <div className=\"form-group\">\n <label>Título del Mensaje</label>\n <input name=\"titulo\" type=\"text\" className=\"form-control\" value={props.location.state.title} readOnly /> </div>\n <div className=\"form-group\" >\n <div>\n <label>Mensaje:</label>\n <ReactQuill\n theme=\"snow\"\n value={msg}\n onChange={setMsg}\n modules={configEditor.modules}\n />\n </div>\n </div>\n <div className=\"col-md-4\">\n <button type=\"submit\" className=\"btn waves-effect waves-light btn-block btn-info\">Editar Mensaje</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div >\n </div >\n );\n }\n};\n\n\n\nconst mapStateToProps = state => {\n return {\n editCorporativeMessageData: state.editCorporativeMessage.editCorporativeMessageData,\n editCorporativeMessageError: state.editCorporativeMessage.editCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getEditCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EditMessage));\n","import { changeXml, EditCorporativeMessage } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n EDIT_CORPORATIVE_MESSAGE_SUCCESS,\n EDIT_CORPORATIVE_MESSAGE_ERROR,\n EDIT_CORPORATIVE_MESSAGE_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getEditCorporativeMessageAction = (data, server) => {\n let configJson = {\n 'tem:EditMensajeCorporativo': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/EditMensajeCorporativo\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: EDIT_CORPORATIVE_MESSAGE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET EDIT_CORPORATIVE_MESSAGE_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: EDIT_CORPORATIVE_MESSAGE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n EditCorporativeMessage: EditCorporativeMessage(body)\n }\n\n console.log('RESPONSE EDIT_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: EDIT_CORPORATIVE_MESSAGE_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET EDIT_CORPORATIVE_MESSAGE DATA: ', response);\n dispatch({ type: EDIT_CORPORATIVE_MESSAGE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET EDIT_CORPORATIVE_MESSAGE DATA: ', responseError);\n dispatch({ type: EDIT_CORPORATIVE_MESSAGE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getCalendarAction } from '../../api/actions/RhUser/CalendarAction';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { Calendar, momentLocalizer } from 'react-big-calendar'\nimport 'react-big-calendar/lib/css/react-big-calendar.css';\nimport moment from 'moment';\nimport 'moment/locale/es';\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { getParams } from '../../utils';\n\n\nconst ComplaintDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [events, setEvents] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [dataModal, setDataModal] = useState({});\n\n moment.locale('es');\n const localizer = momentLocalizer(moment);\n\n useEffect(() => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n }\n\n props.getCalendarAction(params, server);\n\n }, []);\n\n useEffect(() => {\n if (props.calendarData && props.calendarData.Calendar) {\n formatEvents();\n setLoading(false);\n }\n }, [props.calendarData, props.calendarError]);\n\n const formatEvents = () => {\n let eventos = props.calendarData.Calendar;\n\n eventos = eventos.map(e => {\n let fecha = e.Fecha.split('T')[0].split('-');\n let horaInicio = e.HoraInicio.split('T')[1].split(':');\n let horaFin = e.HoraFin.split('T')[1].split(':');\n\n return ({\n id: e.CursoID,\n title: e.NombreCurso,\n start: new Date(fecha[0], fecha[1] - 1, fecha[2], horaInicio[0], horaInicio[1], horaInicio[2]),\n end: new Date(fecha[0], fecha[1] - 1, fecha[2], horaFin[0], horaFin[1], horaFin[2]),\n desc: e.DescCurso + '|' + e.Instructor + '|' + e.Lugar\n });\n });\n\n setEvents(eventos);\n }\n\n const eventClicked = e => {\n setDataModal({\n title: e.title,\n start: e.start,\n end: e.end,\n desc: e.desc.split('|')[0],\n instructor: e.desc.split('|')[1],\n lugar: e.desc.split('|')[2],\n });\n\n setShowModal(true);\n }\n\n const _handleCloseModal = () => {\n setShowModal(false);\n setDataModal({});\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n\n <Modal show={showModal} onHide={_handleCloseModal} centered>\n <Modal.Header closeButton>\n <Modal.Title>{dataModal.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {dataModal.desc} <br /><br />\n <i className=\"mdi mdi-account-multiple\"></i> Instructor: {dataModal.instructor} <br />\n <i className=\"mdi mdi-map-marker\"></i> Lugar: {dataModal.lugar} <br />\n <i className=\"mdi mdi-calendar\"></i> {moment(dataModal.start).format('DD MMM YYYY')}\n <br />\n <i className=\"mdi mdi-clock\"></i> {moment(dataModal.start).format('HH:mm')} - {moment(dataModal.end).format('HH:mm')}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={_handleCloseModal}>\n Cerrar\n </Button>\n </Modal.Footer>\n </Modal>\n\n\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Calendario\" actual=\"Calendario\" icon=\"mdi mdi-message-bulleted-off\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body\">\n <Calendar\n localizer={localizer}\n events={events}\n startAccessor=\"start\"\n endAccessor=\"end\"\n style={{ height: 500 }}\n views={['month', 'week', 'day']}\n messages={{\n next: \"Siguiente\",\n previous: \"Atrás\",\n today: \"Hoy\",\n month: 'Mes',\n week: 'Semana',\n day: 'Día',\n }}\n selectable={true}\n onSelectEvent={eventClicked}\n toolbar={false}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n calendarData: state.calendar.calendarData,\n calendarError: state.calendar.calendarError,\n };\n};\n\nconst mapDispatchToProps = {\n getCalendarAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ComplaintDetail));\n\n","import { changeXml, Calendar } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CALENDAR_SUCCESS,\n CALENDAR_ERROR,\n CALENDAR_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCalendarAction = (data, server) => {\n console.log('CALENDAR JA')\n let configJson = {\n 'tem:Cursos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/Cursos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CALENDAR_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CALENDAR_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CALENDAR_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n Calendar: Calendar(body)\n }\n\n console.log('RESPONSE CALENDAR DATA: ', response);\n dispatch({ type: CALENDAR_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CALENDAR DATA: ', response);\n dispatch({ type: CALENDAR_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CALENDAR DATA: ', responseError);\n dispatch({ type: CALENDAR_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, VacationsRhVacation } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VACATIONS_RHVACATION_SUCCESS,\n VACATIONS_RHVACATION_ERROR,\n VACATIONS_RHVACATION_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getVacationsRhVacationAction = (data, server) => {\n let configJson = {\n 'tem:ConsultaVacaciones': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ConsultaVacaciones\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: VACATIONS_RHVACATION_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n console.log('VACATIONS_RH', body)\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: VACATIONS_RHVACATION_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n VacationsRhVacation: VacationsRhVacation(body)\n }\n\n console.log('RESPONSE VACATIONS_RHVACATION DATA: ', response);\n dispatch({ type: VACATIONS_RHVACATION_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET VACATIONS_RHVACATION DATA: ', response);\n dispatch({ type: VACATIONS_RHVACATION_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET VACATIONS_RHVACATION DATA: ', responseError);\n dispatch({ type: VACATIONS_RHVACATION_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { getVacationsMassiveAction } from '../../api/actions/eulen/VacationsMassiveAction';\nimport { getVacationsRhVacationAction } from '../../api/actions/eulen/VacationsRhVacationAction';\nimport { getAuthorizeVacationsMassiveAction } from '../../api/actions/eulen/AuthorizeVacationsMassiveAction'\nimport { getRejectVacationsMassiveAction } from '../../api/actions/eulen/RejectVacationsMassiveAction';\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nconst VacationRequests = props => {\n\n const [loading, setLoading] = useState(true);\n const [showTable, setShowTable] = useState('1');\n const [tableFilter, setTableFilter] = useState('');\n const [selectedRequests, setSelectedRequests] = useState([]);\n\n useEffect(() => {\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': 'sa',\n }\n\n props.getVacationsMassiveAction(params, server);\n props.getVacationsRhVacationAction(params, server);\n }\n\n useEffect(() => {\n if ((props.vacationsMassiveData && props.vacationsMassiveData.isOK) && (props.vacationsRhVacationData && props.vacationsRhVacationData.isOK)) {\n setLoading(false);\n } else if ((props.vacationsMassiveError && props.vacationsMassiveError.isOK === false) && (props.vacationsRhVacationError && props.vacationsRhVacationError.isOK === false)) {\n props.getVacationsMassiveAction('PURGE', '');\n props.getVacationsRhVacationAction('PURGE', '');\n setLoading(false);\n }\n\n }, [\n props.vacationsMassiveData, props.vacationsMassiveError,\n props.vacationsRhVacationData, props.vacationsRhVacationError\n ]);\n\n useEffect(() => {\n if (props.authorizeVacationsMassiveData && props.authorizeVacationsMassiveData.isOK === true) {\n alert('La solicitud fue autorizada exitosamente.');\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction('PURGE', '');\n props.getVacationsRhVacationAction('PURGE', '');\n props.getAuthorizeVacationsMassiveAction('PURGE', '');\n loadData();\n } else if (props.authorizeVacationsMassiveError && props.authorizeVacationsMassiveError.isOK === false) {\n props.getAuthorizeVacationsMassiveAction('PURGE', '');\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction('PURGE', '');\n props.getVacationsRhVacationAction('PURGE', '');\n loadData();\n }\n\n }, [props.authorizeVacationsMassiveData, props.authorizeVacationsMassiveError]);\n\n useEffect(() => {\n if (props.rejectVacationsMassiveData && props.rejectVacationsMassiveData.isOK === true) {\n alert('La solicitud fue rechazada exitosamente.');\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction('PURGE', '');\n props.getVacationsRhVacationAction('PURGE', '');\n props.getRejectVacationsMassiveAction('PURGE', '');\n loadData();\n } else if (props.rejectVacationsMassiveError.RejectVacations && props.rejectVacationsMassiveError.isOK === false) {\n props.getRejectVacationsMassiveAction('PURGE', '');\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction('PURGE', '');\n props.getVacationsRhVacationAction('PURGE', '');\n loadData();\n }\n }, [props.rejectVacationsMassiveData, props.rejectVacationsMassiveError]);\n\n const pending_vacations_table = () => {\n\n let table = [];\n let solicitudes = props.vacationsMassiveData?.VacationsMassive;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td colSpan=\"5\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.FechaVacacion - b.FechaVacacion;\n });\n\n let type = showTable == '1' ? 'Vacación' : 'Cancelación';\n solicitudes = solicitudes.filter(solicitud => solicitud.TipoSolicitud == type);\n solicitudes = solicitudes.filter(solicitud => solicitud.Centro_id.includes(tableFilter));\n\n solicitudes.map((item, i) => {\n table.push(\n <tr key={item.SolicitudID} style={{ cursor: 'pointer' }}>\n <td>\n <input name={i} type=\"checkbox\" onClick={() => handleSelectRequest(item)} value={item.id} className=\"with-gap\" id={i} />\n <label htmlFor={i}></label>\n </td>\n <td>{item.Nombre}</td>\n <td>{item.Centro_id}</td>\n <td>{item.Dia}</td>\n <td>{item.FechaVacacion}</td>\n <td style={{ color: '#faa52c' }}><i className=\"mdi mdi-calendar-clock\"></i> Solicitado</td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const responded_vacactions_table = () => {\n\n let table = [];\n let solicitudes = props.vacationsRhVacationData?.VacationsRhVacation;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td colSpan=\"5\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.FechaVacacion - b.FechaVacacion;\n });\n\n let type = showTable == '1' ? 'Vacación' : 'Cancelación';\n solicitudes = solicitudes.filter(solicitud => solicitud.TipoSolicitud == type);\n solicitudes = solicitudes.filter(solicitud => solicitud.Centro_id.includes(tableFilter));\n\n solicitudes.map((item, i) => {\n let color;\n\n switch (item.Status) {\n case 'Aprobado':\n color = '#93c03f';\n break;\n\n case 'Rechazado':\n color = '#be2b71';\n break;\n\n default:\n color = '#003b71';\n }\n\n table.push(\n <tr key={item.SolicitudID} style={{ cursor: 'default' }}>\n <td>{item.Nombre}</td>\n <td>{item.Centro_id}</td>\n <td>{item.Dia}</td>\n <td>{item.FechaVacacion}</td>\n <td style={{ color: color }}><i className=\"mdi mdi-calendar-clock\"></i> {item.Status}</td>\n </tr>\n );\n });\n\n }\n\n return table;\n };\n\n const handleSelectRequest = item => {\n let exists = selectedRequests.filter(el => el['wcf:ListSolicitudMas']['wcf:SolicitudID'] == item.SolicitudID);\n if (exists.length <= 0) {\n setSelectedRequests([\n ...selectedRequests,\n {\n 'wcf:ListSolicitudMas': {\n 'wcf:Fecha': item.FechaVacacion,\n 'wcf:JefeTrab_id': item.JefeTrab_id,\n 'wcf:NombreCompleto': item.Nombre,\n 'wcf:SolicitudID': item.SolicitudID,\n 'wcf:Trab_id': item.Trab_id,\n }\n }\n ]);\n } else {\n setSelectedRequests(\n selectedRequests.filter(el => el['wcf:ListSolicitudMas']['wcf:SolicitudID'] != item.SolicitudID)\n );\n }\n\n };\n\n const handleButtons = (e, action) => {\n e.preventDefault();\n\n if (selectedRequests.length <= 0) {\n alert('Debes seleccionar por lo menos una solicitud.');\n return;\n }\n\n let { params, server } = getParams();\n\n let type = showTable === '1' ? '1' : '3';\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:idEmpresa': params['tem:IdEmpresa'],\n 'tem:solicitudes': {\n 'wcf:Autoriza': action,\n 'wcf:Solicitudes': selectedRequests,\n 'wcf:TipoSolicitud': type,\n 'wcf:UserProceso': params['tem:TrabID']\n }\n };\n\n type = showTable === '1' ? 'vacaciones' : 'cancelaciones';\n\n if (action === 1) {\n confirm('¿Deseas autorizar las ' + type + ' seleccionadas?').then(res => {\n if (res) {\n setLoading(true);\n props.getAuthorizeVacationsMassiveAction(params, server);\n }\n });\n } else if (action === 0) {\n confirm('¿Deseas rechazar las ' + type + ' seleccionadas?').then(res => {\n if (res) {\n setLoading(true);\n props.getRejectVacationsMassiveAction(params, server);\n }\n });\n }\n };\n\n const handleDropdown = e => {\n setSelectedRequests([]);\n setShowTable(e.target.value);\n }\n\n const handleFilter = event => {\n setTableFilter(event.target.value);\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Autorización Masiva\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\n <select className=\"form-control p-2 col-3\" onChange={handleDropdown}>\n <option value=\"1\">VACACIONES</option>\n <option value=\"2\">CANCELACIONES</option>\n </select>\n <div className=\"form-material col-3 ml-auto\">\n <input placeholder=\"Filtro por Centro\" type=\"text\" className=\"form-control\" onChange={e => handleFilter(e)} />\n </div>\n </div>\n </div>\n\n <ul className=\"nav nav-tabs profile-tab\" role=\"tablist\">\n <li className=\"nav-item\"> <a className=\"nav-link active\" data-toggle=\"tab\" href=\"#pending\" role=\"tab\">Solicitadas</a> </li>\n <li className=\"nav-item\"> <a className=\"nav-link\" data-toggle=\"tab\" href=\"#done\" role=\"tab\">Aprobadas / Rechazadas</a> </li>\n </ul>\n\n <div className=\"tab-content\">\n <div className=\"tab-pane active\" id=\"pending\" role=\"tabpanel\">\n <div className=\"card-body\">\n <div className=\"d-flex justify-content-center\">\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-danger\" onClick={e => handleButtons(e, 0)}>Rechazar</button>\n </div>\n <div className=\"col-md-3\">\n <button type=\"button\" className=\"btn waves-effect waves-light btn-block btn-success\" style={{\n backgroundColor: '#5cb85c',\n border: 'none',\n }} onClick={e => handleButtons(e, 1)}>Autorizar</button>\n </div>\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th className=\"col-2\"></th>\n <th>Nombre</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {pending_vacations_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n\n <div className=\"tab-pane\" id=\"done\" role=\"tabpanel\">\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>Nombre</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {responded_vacactions_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n vacationsMassiveData: state.vacationsMassive.vacationsMassiveData,\n vacationsMassiveError: state.vacationsMassive.vacationsMassiveError,\n\n authorizeVacationsMassiveData: state.authorizeVacationsMassive.authorizeVacationsMassiveData,\n authorizeVacationsMassiveError: state.authorizeVacationsMassive.authorizeVacationsMassiveError,\n\n rejectVacationsMassiveData: state.rejectVacationsMassive.rejectVacationsMassiveData,\n rejectVacationsMassiveError: state.rejectVacationsMassive.rejectVacationsMassiveError,\n\n vacationsRhVacationData: state.vacationsRhVacation.vacationsRhVacationData,\n vacationsRhVacationError: state.vacationsRhVacation.vacationsRhVacationError,\n };\n};\n\nconst mapDispatchToProps = {\n getVacationsMassiveAction,\n getAuthorizeVacationsMassiveAction,\n getRejectVacationsMassiveAction,\n getVacationsRhVacationAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationRequests));\n","import { changeXml, AdminMenuActivate } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ADMIN_MENU_ACTIVATE_SUCCESS,\n ADMIN_MENU_ACTIVATE_ERROR,\n ADMIN_MENU_ACTIVATE_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getAdminMenuActivateAction = (data, server) => {\n let configJson = {\n 'tem:MenuActualiza': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/MenuActualiza\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ADMIN_MENU_ACTIVATE_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ADMIN_MENU_ACTIVATE_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AdminMenuActivate: AdminMenuActivate(body)\n }\n\n console.log('RESPONSE ADMIN_MENU_ACTIVATE DATA: ', response);\n dispatch({ type: ADMIN_MENU_ACTIVATE_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ADMIN_MENU_ACTIVATE DATA: ', response);\n dispatch({ type: ADMIN_MENU_ACTIVATE_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ADMIN_MENU_ACTIVATE DATA: ', responseError);\n dispatch({ type: ADMIN_MENU_ACTIVATE_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState, Fragment } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getAdminMenuAction } from '../../api/actions/eulen/AdminMenuAction';\nimport { getAdminMenuActivateAction } from '../../api/actions/eulen/AdminMenuActivateAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n//import LoadingGif from '../../assets/images/loading.gif';\n\n\nconst Menu = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n\n const { addToast } = useToasts();\n const [loading, setLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [optionsClicked, setOptionsClicked] = useState([]);\n\n useEffect(() => {\n loadData();\n }, []);\n\n const loadData = () => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getAdminMenuAction(params, server);\n };\n\n useEffect(() => {\n if (props.adminMenuData && props.adminMenuData.isOK) {\n setHasError(false);\n setLoading(false);\n } else if (props.adminMenuError && props.adminMenuError.isOK === false) {\n props.getAdminMenuAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.adminMenuData, props.adminMenuError]);\n\n useEffect(() => {\n if (props.adminMenuActivateData && props.adminMenuActivateData.isOK) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n autoDismissTimeout: 1500\n });\n props.getAdminMenuActivateAction('PURGE', '');\n loadData();\n } else if (props.adminMenuActivateError && props.adminMenuActivateError.isOK === false) {\n props.getAdminMenuActivateAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.adminMenuActivateData, props.adminMenuActivateError]);\n\n\n const additional_fields = () => {\n let fields = [];\n\n let allFields = props.adminMenuData?.AdminMenu;\n\n if (allFields) {\n\n allFields.forEach(menu => {\n\n let item = optionsClicked.filter(opt => opt.id == menu.MenuID);\n let load = item.length > 0;\n\n if (item.length > 0) {\n if (item[0].isOn == menu.Habilitado) {\n load = true;\n } else {\n let newOptions = optionsClicked.filter(opt => opt.id != menu.MenuID);\n setOptionsClicked(newOptions);\n }\n }\n\n fields.push(\n <div key={menu.MenuID} className=\"col-sm-12 col-md-6 col-lg-3\">\n {load ?\n <img src={LoadingGif} style={{ width: 20 }} className=\"mr-2\" />\n :\n <input name={menu.MenuID} type=\"checkbox\" checked={menu.Habilitado == 'true' ? true : false} onChange={() => handleInput(menu)} value={menu.MenuID} className=\"with-gap\" id={menu.MenuID} />}\n <label htmlFor={menu.MenuID}> {menu.Descripcion}</label>\n </div>\n );\n });\n\n\n fields.push(\n <div className=\"col-12 form-actions d-flex justify-content-center\">\n\n <button type=\"submit\" className={`btn btn-success mr-4`} onClick={() => allOptions('1')}>\n <i className=\"fa fa-check\"></i> Activar Todos\n </button>\n\n <button type=\"button\" className={`btn btn-danger mr-4`} onClick={() => allOptions('0')}>\n <i className=\"mdi mdi-times\"></i> Desactivar Todos\n </button>\n\n </div>\n );\n\n }\n\n return fields;\n }\n\n const handleInput = menu => {\n\n setOptionsClicked([\n ...optionsClicked,\n {\n id: menu.MenuID,\n isOn: menu.Habilitado\n }\n ]);\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:MenuID': menu.MenuID,\n 'tem:Habilitar': menu.Habilitado == 'true' ? '0' : '1',\n 'tem:Todos': '0',\n }\n\n props.getAdminMenuActivateAction(params, server);\n\n };\n\n const allOptions = onOff => {\n\n setLoading(true);\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:MenuID': '0',\n 'tem:Habilitar': onOff,\n 'tem:Todos': '1',\n }\n\n props.getAdminMenuActivateAction(params, server);\n\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MENU\" icon=\"mdi mdi-menu\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Seleccione las opciones que estarán presentes en el menu</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-body\">\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button row\">\n {!hasError && additional_fields()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n adminMenuData: state.adminMenu.adminMenuData,\n adminMenuError: state.adminMenu.adminMenuError,\n\n adminMenuActivateData: state.adminMenuActivate.adminMenuActivateData,\n adminMenuActivateError: state.adminMenuActivate.adminMenuActivateError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getAdminMenuAction,\n getAdminMenuActivateAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Menu));\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport { getParams, getDatesInRange, getSesionStorage } from '../../utils/index.js';\r\nimport { alert, confirm } from '../../utils/common/alert.js';\r\n\r\nimport EmployeeLeftsidebar from \"../layout/EmployeeLeftsidebar.js\";\r\nimport OperatorLeftsidebar from \"../layout/OperatorLeftsidebar.js\";\r\n\r\nconst CajaAhorroHistorico = props => {\r\n const { params, server } = getParams();\r\n const [ loading, setLoading ] = useState(false);\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 3:\r\n return <OperatorLeftsidebar />;\r\n break;\r\n default:\r\n return <EmployeeLeftsidebar />;\r\n }\r\n };\r\n\r\n const url = () => {\r\n let sToken = params['tem:sToken'] || '';\r\n let IdEmpresa = params['tem:IdEmpresa'] || '';\r\n let TrabID = params['tem:TrabID'] || '';\r\n let result = '';\r\n\r\n let LigaCajaAHistOperado = (sessionStorage.getItem('SICONSULTA_LigaCajaAHistOperador') || 'localhost').trim();\r\n \r\n let storage = getSesionStorage('userType');\r\n switch (storage.typeUser) {\r\n case 3:\r\n result = LigaCajaAHistOperado\r\n break;\r\n default:\r\n result = 'localhost'\r\n break;\r\n }\r\n\r\n console.log('OIHB URL BLAZOR', storage.typeUser, result);\r\n\r\n return result.trim().replace(\"{EmpresaId}\", IdEmpresa).replace(\"{UserId}\", TrabID).replace(\"{sToken}\", sToken);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Caja de Ahorro Historico\" icon=\"mdi mdi-square-inc-cash\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"embed-responsive embed-responsive-16by9\" style={{\r\n marginTop: -29 + 'px',\r\n WebkitOverflowScrolling: 'touch',\r\n paddingBottom: 0,\r\n overflowY: 'scroll'\r\n }}>\r\n <iframe title=\"Si-Balance\" src={url()} className=\"embed-responsive-item\" style={{ position: 'absolute', overflowY: 'scroll' }} scrolling=\"yes\" ></iframe>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CajaAhorroHistorico));","import React, { useEffect, useState } from 'react'\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar.js'\r\nimport OperatorLeftSideBar from '../layout/OperatorLeftsidebar.js'\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { getVacationIncidentAction } from '../../api/actions/systemAdmin/VacationsIncidentsRequestedAction.js';\r\nimport DatePicker from 'react-datepicker';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { getParams, getSesionStorage } from '../../utils';\r\nimport { CSVLink } from \"react-csv\";\r\n\r\n\r\nconst VacationIncidents = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [filtroTipoSolicitud, setfiltroTipoSolicitud] = useState(\"\");\r\n const [filtrosAplicados, setFiltrosAplicados] = useState(false); \r\n const [csvData, setCsvData] = useState([]);\r\n \r\n\r\n useEffect(() => {\r\n\r\n if (initDate && finalDate) {\r\n setLoading(true);\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:fechaInicial': initDate.toISOString(),\r\n 'tem:fechaFinal': finalDate.toISOString(),\r\n 'tem:tipoSol': filtroTipoSolicitud,\r\n \r\n }\r\n setFiltrosAplicados(true);\r\n\r\n props.getVacationIncidentAction(params, server);\r\n }\r\n }, [initDate, finalDate, filtroTipoSolicitud]);\r\n\r\n\r\n useEffect(() => {\r\n if ((props.incidentsReportData || { isOK: false }).isOK) { \r\n let dataVacationsIncidents = props.incidentsReportData.ObtenerVacacionesIncidencias;\r\n let info = dataVacationsIncidents || []; \r\n let csv = [[\r\n 'Tipo',\r\n 'Empleado',\r\n 'Días',\r\n 'Fecha (s) Solicitud',\r\n 'Estatus',\r\n ]];\r\n\r\n \r\n if (info.length > 0) {\r\n info.forEach((item) => {\r\n csv.push([\r\n item.TipoSolicitud,\r\n `${item.Nombre} ${item.Paterno} ${item.Materno}`,\r\n item.Dia,\r\n item.Fechas,\r\n item.Estatus,\r\n ]);\r\n });\r\n }\r\n setCsvData(csv);\r\n setData(info);\r\n props.getVacationIncidentAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n } else if (props.incidentsReportError && props.incidentsReportError.isOK === false) {\r\n let csv = [[]];\r\n setCsvData(csv);\r\n props.getVacationIncidentAction('PURGE', '');\r\n }\r\n }, [\r\n props.incidentsReportData,\r\n props.incidentsReportError,\r\n filtroTipoSolicitud\r\n ]);\r\n\r\n const handleFiltroEstatusChange = (event) => {\r\n setfiltroTipoSolicitud(event.target.value);\r\n };\r\n\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n case 3:\r\n return <OperatorLeftSideBar />;\r\n default:\r\n return <SystemAdminLeftsidebar/>;\r\n }\r\n };\r\n\r\n const getTablaIncidencias = () => {\r\n let table = [];\r\n let incidents = data || [];\r\n if (!incidents || incidents.length <= 0 ) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay información para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n incidents.map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item.TipoSolicitud}</td>\r\n <td>{item.Nombre + \" \" + item.Paterno + \" \" + item.Materno}</td>\r\n <td>{item.Dia}</td>\r\n <td>{item.Fechas}</td>\r\n <td>{item.Estatus}</td>\r\n </tr>\r\n );\r\n });\r\n }\r\n return table;\r\n}\r\n\r\nreturn (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"VACACIONES E INCIDENCIAS PENDIENTES\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title text-white\">Criterio de Búsqueda</h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-md-4 mb-4\">\r\n <div className=\"form-group\" style={{ marginLeft: '10px' }}>\r\n <label htmlFor=\"filtroTipo\">Tipo de solicitud:</label>\r\n <select\r\n id=\"filtroTipo\"\r\n className=\"form-control\"\r\n value={filtroTipoSolicitud}\r\n onChange={handleFiltroEstatusChange}\r\n >\r\n <option value=\"\">Selecciona</option>\r\n <option value=\"2\">Todas</option>\r\n <option value=\"1\">Vacación</option>\r\n <option value=\"3\">Cancelación</option>\r\n <option value=\"4\">Incidencia</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-3 mb-4\">\r\n <label>Desde:</label>\r\n <div className=\"\">\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n maxDate={new Date()}\r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-3 mb-4\">\r\n <label>Hasta:</label>\r\n <div className=\"\">\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n minDate={initDate}\r\n disabled={!initDate}\r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {filtrosAplicados && (\r\n\r\n\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">\r\n Reporte de vacaciones e incidencias pendientes por autorizar\r\n </h4>\r\n </div>\r\n \r\n <div className=\"card-body\">\r\n \r\n <div className=\"table-responsive m-t-20\">\r\n <div>\r\n <CSVLink\r\n data={csvData}\r\n filename={\"Reporte Solicitudes Pendientes.csv\"}\r\n className=\"btn btn-info ml-2\"\r\n >\r\n Descargar Reporte\r\n </CSVLink>\r\n </div>\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>Tipo</th>\r\n <th>Empleado</th>\r\n <th>Día(s)</th>\r\n <th>Fecha(s) solicitud</th>\r\n <th>Estatus</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{getTablaIncidencias()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n</div>\r\n);\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n incidentsReportData: state.incidentsReport.incidentsReportData,\r\n incidentsReportError: state.incidentsReport.incidentsReportError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getVacationIncidentAction,\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(VacationIncidents));\r\n","import { changeXml, VacationsIncidentsDataResponse} from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n INCIDENTS_REPORT_SUCCESS,\r\n INCIDENTS_REPORT_ERROR,\r\n INCIDENTS_REPORT_PURGE,\r\n VALIDATE_ERROR,\r\n } from '../../types';\r\n\r\nexport const getVacationIncidentAction = (data, server) => {\r\n let configJson = {\r\n \"tem:VacacionesIncidenciasPendientes\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/VacacionesIncidenciasPendientes\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: INCIDENTS_REPORT_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ObtenerVacacionesIncidencias: VacationsIncidentsDataResponse(body),\r\n };\r\n\r\n console.log(\"RESPONSE INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET INCIDENTS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React, { useEffect, useState } from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport Home from '../pages/operator/Home.js';\n\nimport { getParams } from '../utils';\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\n\nimport EditWelcomeMessage from '../pages/operator/EditWelcomeMessage';\nimport AccessMethod from '../pages/operator/AccessMethod';\nimport PasswordsReset from '../pages/operator/PasswordsReset';\nimport AdditionalFields from '../pages/operator/AdditionalFields';\nimport PayrollReceipts from '../pages/operator/PayrollReceipts';\n\nimport Payrolls from '../pages/operator/Payroll.js';\nimport CalculatePayrolls from '../pages/operator/CalculatePayroll';\nimport CreatePayroll from '../pages/operator/CalculatePayroll/wizard';\nimport Requests from '../pages/operator/Requests';\nimport RequestDetail from '../pages/operator/RequestDetail';\nimport Complaints from '../pages/operator/Complaints';\nimport ComplaintDetail from '../pages/operator/ComplaintDetail';\nimport Messages from '../pages/operator/Messages';\nimport NewMessage from '../pages/systemAdmin/NewMessage';\nimport MessagesDetail from '../pages/operator/MessagesDetail';\nimport EditMessage from '../pages/systemAdmin/EditMessage';\nimport Calendar from '../pages/operator/Calendar';\nimport Vacations from '../pages/operator/VacationRequests';\nimport Menu from '../pages/operator/Menu';\n\nimport Login from '../pages/login/Login.js';\nimport RecoverPassword from '../pages/login/RecoverPassword';\nimport Error404 from '../pages/errors/Error404.js';\nimport CajaAhorro from '../pages/common/CajaAhorro';\nimport CajaAhorroHistorico from '../pages/common/CajaAhorroHistorico';\n\n//DEVLYN\nimport VacacionIncidentRequest from '../pages/systemAdmin/VacationsIncidentsRequested.js';\n\nconst OperatorRoutes = (props) => {\n\n const [menu, setMenu] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getAdminMenuAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.adminMenuData && props.adminMenuData.isOK) {\n setMenu([\n ...props.adminMenuData.AdminMenu\n ]);\n setLoading(false);\n } else if (props.adminMenuError && props.adminMenuError.isOK === false) {\n props.getAdminMenuAction('PURGE', '');\n setLoading(false);\n }\n }, [props.adminMenuData, props.adminMenuError]);\n\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\n <Home />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/welcomeMsg/edit`} exact >\n <EditWelcomeMessage />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/access`} exact >\n <AccessMethod />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/passwords`} >\n <PasswordsReset />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/fields`} >\n <AdditionalFields />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/payrolls`} exact >\n <Payrolls />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/calculate-payrolls`} exact >\n <CalculatePayrolls />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/payrolls/new`} exact >\n <CreatePayroll />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/payroll`} exact >\n <PayrollReceipts />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/requests`} exact >\n <Requests />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/requests/:id`} exact >\n <RequestDetail />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/messages`} exact >\n <Messages />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/messages/new`} exact >\n <NewMessage />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/messages/:id`} >\n <MessagesDetail />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/edit/messages/:id`} >\n <EditMessage />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/complaints`} exact >\n <Complaints />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/complaints/:id`} exact >\n <ComplaintDetail />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/menu`} exact >\n <Menu />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/calendar`} exact >\n <Calendar />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/vacations`} exact >\n <Vacations />\n </Route>\n\n {/*((sessionStorage.getItem('SICONSULTA_LigaFondoOperador') || '').trim().length > 0) && \n <Route path={`${process.env.PUBLIC_URL}/caja-ahorro`} exact >\n <CajaAhorro />\n </Route>\n */}\n\n {((sessionStorage.getItem('SICONSULTA_LigaCajaAHistOperador') || '').trim().length > 0) && \n <Route path={`${process.env.PUBLIC_URL}/caja-ahorro-historico`} exact >\n <CajaAhorroHistorico />\n </Route>\n }\n\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\n <RecoverPassword />\n </Route>\n\n {(sessionStorage.getItem(\"SICONSULTA_ReporteVacIncidencias\") == '1' ) && \n <Route path={`${process.env.PUBLIC_URL}/requested-vacations-incidents`}>\n <VacacionIncidentRequest />\n </Route>\n }\n\n <Route>\n <Error404 />\n </Route>\n </Switch>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n adminMenuData: state.adminMenu.adminMenuData,\n adminMenuError: state.adminMenu.adminMenuError,\n }\n};\n\nconst mapDispatchToProps = {\n getAdminMenuAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(OperatorRoutes));\n","import React, { useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n//import promoImg from '../../assets/images/promo.png';\nimport CryptoJS from 'crypto-js';\n\nimport { getDataUserAction } from '../../api/actions/common/DataUserAction';\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\nimport { companiesAction } from '../../api/actions/RhUser/CompaniesAction';\nimport { licenseDataAction } from '../../api/actions/RhUser/LicenseDataAction';\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/OperatorLeftsidebar.js';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport Card from '../../components/shared/Card.js';\n\nimport moment from 'moment';\n\nconst Home = props => {\n const promoImg = process.env.PUBLIC_URL + '/assets/images/promo.png';\n\n const [ loading, setLoading ] = useState(true);\n const [ loadGraph, setLoadGraph ] = useState(false);\n\n useEffect(() => {\n\n if( true ){\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n\n let dataUserGet = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:TrabID': params['tem:TrabID'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n let dataLicense = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getSiBalanceAction(dataUserGet, server)\n props.getDataUserAction(dataUserGet, server)\n props.companiesAction(dataUserGet, server)\n props.licenseDataAction(dataLicense, server)\n\n }\n }\n\n }, [ ]);\n\n useEffect(() => {\n console.log('OIHB DATA', props.nominaData);\n if( props.nominaData.Nomina != undefined ){\n setLoading(false);\n }\n\n }, [\n props.dataUserData,\n props.nominaData,\n ]);\n\n useEffect(() => {\n if( loading === false && loadGraph === false ){\n graph();\n setLoadGraph(true);\n }\n }, [ loading ]);\n\n\n if( loading ){\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Inicio\" icon=\"mdi mdi-chart-bar\" />\n <div className=\"container-fluid\">\n <div className=\"card-group\">\n\n\n <Card\n icon=\"mdi mdi-briefcase-check text-info\"\n value=\"Grupo Bimbo SA de CV\"\n name=\"EMPRESA\"\n />\n\n <Card\n icon=\"mdi mdi-account-circle text-success\"\n value=\"12546\"\n name=\"# CLIENTE SICOSS\"\n />\n\n <Card\n icon=\"mdi mdi-calendar text-purple\"\n value=\"11/02/2021\"\n name=\"FECHA DE VENCIMIENTO\"\n />\n\n <Card\n icon=\"mdi mdi-ticket-account text-warning\"\n value=\"162\"\n name=\"TIMBRES DISPONIBLES\"\n />\n\n </div>\n <div className=\"row\">\n <div className=\"col-lg-8 col-xlg-9\">\n <div className=\"card\">\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"d-flex flex-wrap\">\n <div>\n <h4 className=\"card-title\">ÚLTIMOS PERIODOS DE NÓMINA</h4>\n </div>\n <div className=\"ml-auto\">\n <ul className=\"list-inline\">\n <li>\n <h6 className=\"text-muted text-info\"><i className=\"fa fa-circle font-10 m-r-10\"></i>Sueldo Mensual</h6> </li>\n </ul>\n </div>\n </div>\n </div>\n <div className=\"col-12\">\n <div id=\"earning\" style={{ height: 485 + 'px'}}></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div className=\"col-lg-4 col-xlg-3\">\n\n <div className=\"card\">\n <div className=\"card-body bg-inverse\">\n <h4 className=\"text-white card-title text-center\" style={{ paddingTop: 15 + 'px'}}><i className=\"mdi mdi-star\"></i> Promociones Sicoss</h4>\n </div>\n <div className=\"card-body\">\n <img width=\"100%\" src={ promoImg } alt=\"homepage\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n\n};\n\nfunction graph() {\n window.Morris.Area({\n element: 'earning',\n data: [\n { Salario: 1000000, periodo: '2020-03-01' },\n { Salario: 1500000, periodo: '2020-03-15' },\n { Salario: 1250000, periodo: '2020-04-01' },\n { Salario: 2000000, periodo: '2020-04-15' },\n { Salario: 1340000, periodo: '2020-05-01' },\n { Salario: 930000, periodo: '2020-05-15' },\n { Salario: 1100000, periodo: '2020-06-01' }\n ],\n xkey: 'periodo',\n ykeys: ['Salario'],\n labels: ['Salario'],\n pointSize: 3,\n fillOpacity: 0,\n pointStrokeColors: ['#003b71'],\n behaveLikeLine: true,\n gridLineColor: '#e0e0e0',\n lineWidth: 3,\n hideHover: 'auto',\n lineColors: ['#003b71'],\n resize: true,\n xLabelFormat: function(d) {\n return moment(d).format('DD/MM/YYYY');\n }\n });\n}\n\nconst mapStateToProps = state => {\n return {\n imageUserData:state.ImageUser.imageUserData,\n imageUserError:state.ImageUser.imageUserError,\n\n dataUserData:state.dataUser.dataUserData,\n dataUserError:state.dataUser.dataUserError,\n\n siBalanceData: state.siBalance.siBalanceData,\n siBalanceError: state.siBalance.siBalanceError,\n\n companiesData: state.companies.companiesData,\n companiesError: state.companies.companiesError,\n\n licenseData: state.license.licenseData,\n licenseDataError: state.license.licenseDataError,\n\n nominaData: state.nomina.nominaData,\n nominaError: state.nomina.nominaError,\n };\n};\n\nconst mapDispatchToProps = {\n getDataUserAction,\n getSiBalanceAction,\n companiesAction,\n licenseDataAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));\n","import React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport Home from '../pages/RhDirector/Home.js';\n\nimport Login from '../pages/login/Login.js';\nimport RecoverPassword from '../pages/login/RecoverPassword';\nimport Error404 from '../pages/errors/Error404.js';\n\nconst DirectorRoutes = () => {\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/`} exact>\n <Home />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/login`} exact>\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\n <RecoverPassword />\n </Route>\n\n <Route>\n <Error404 />\n </Route>\n </Switch>\n );\n};\n\nexport default DirectorRoutes;\n","import React, { useEffect, useState } from 'react'\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\nimport { getEmployeeVacationsAction } from '../../api/actions/jefe/EmployeeVactionsAction';\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getParams } from '../../utils';\nimport Modal from 'react-bootstrap/Modal';\nimport Button from 'react-bootstrap/Button';\n\n\nconst Home = props => {\n\n const [loading, setLoading] = useState(true);\n const [msgData, setMsgData] = useState({});\n const [modalVacations, setModalVacations] = useState({});\n const [showModalVacations, setShowModalVacations] = useState(false);\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getWelcomeMessageAction(params, server);\n \n validateSurveys();\n }, []);\n\n useEffect(() => {\n\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\n setMsgData({\n titulo: props.welcomeMessageData.WelcomeMessage.titulo,\n msg: props.welcomeMessageData.WelcomeMessage.mensaje\n });\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\n setMsgData({\n titulo: '',\n msg: ''\n });\n props.getWelcomeMessageAction('PURGE', '');\n }\n\n setLoading(false);\n\n }, [props.welcomeMessageData, props.welcomeMessageError]);\n\n const validateSurveys = () => {\n setLoading(true);\n let { params, server } = getParams();\n props.getSiBalanceAction(params, server);\n if (sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1') {\n const dataSend = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:TrabID\": params['tem:TrabID']\n }\n props.getEmployeeVacationsAction(dataSend, server)\n console.log('USER_DATA', params)\n }\n };\n\n useEffect(() => {\n if (props.employeeVacationsData && props.employeeVacationsData.isOK) {\n if (props.employeeVacationsData?.EmployeeVacations.length > 0) {\n let data = {\n title: 'AVISO IMPORTANTE',\n message: 'Las siguientes incidencias y/o vacaciones est�n pendientes por autorizar o rechazar, por lo que recomendamos se realice la autorizaci�n o rechazo lo antes posible:',\n employees: props.employeeVacationsData.EmployeeVacations\n };\n setShowModalVacations(true);\n setModalVacations(data);\n }\n }\n if (props.dataUserError && props.dataUserError.isOK === false) {\n props.getEmployeeVacationsAction('PURGE', {});\n }\n console.log('EMPLOYEE_VACATIONS', props.employeeVacationsData);\n }, [props.employeeVacationsData, props.incidentAlertError]);\n \n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n </div>\n </>\n );\n} else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Inicio\" icon=\"mdi mdi-home\" />\n <div className=\"container-fluid\">\n\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card \">\n <div className=\"card-header\">\n <div className=\"col-md-12\">\n <Link to={`${process.env.PUBLIC_URL}/welcomeMsg/edit`}>\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\"><i className=\"mdi mdi-pencil\"></i> Editar Mensaje</button>\n </Link>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"text-center\">\n <h3 className=\"mb-3\">{msgData.titulo}</h3>\n </div>\n <div>\n <ReactQuill\n theme=\"bubble\"\n readOnly={true}\n value={msgData.msg}\n modules={{ toolbar: false }}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n {(sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1' ) && (\n <Modal\n show={showModalVacations}\n onHide={() => setShowModalVacations(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <Modal.Header closeButton>\n <Modal.Title>{modalVacations.title}</Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\n <p>{modalVacations.message}</p>\n {modalVacations.employees && modalVacations.employees.length > 0 && (\n <table className='table-container'>\n <thead>\n <tr>\n <th style={{ textAlign: 'center' }}>No.Trabajdor</th>\n <th style={{ textAlign: 'center' }}>Nombre Completo</th>\n <th style={{ textAlign: 'center' }}>Tipo de solicitud</th>\n <th style={{ textAlign: 'center' }}>ReportaID</th>\n </tr>\n </thead>\n <tbody>\n {modalVacations.employees.map((item, index) => (\n <tr key={index}>\n <td style={{ textAlign: 'center' }}>{item.TrabID}</td>\n <td style={{ textAlign: 'center' }}>{item.NombreCompleto}</td>\n <td style={{ textAlign: 'center' }}>{item.TipoSolString}</td>\n <td style={{ textAlign: 'center' }}>{item.ReportaID}</td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={() => setShowModalVacations(false)}>\n Cerrar\n </Button>\n </Modal.Footer>\n </Modal>\n )}\n \n </div>\n <Footer />\n </div>\n </div>\n );\n}\n\n};\n\nconst mapStateToProps = state => {\n return {\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\n employeeVacationsData: state.employeeVacations.employeeVacationsData,\n employeeVacationsError: state.employeeVacations.employeeVacationsError,\n };\n};\n\nconst mapDispatchToProps = {\n getWelcomeMessageAction,\n getEmployeeVacationsAction,\n getSiBalanceAction,\n\n\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\nimport { getEditWelcomeMessageAction } from '../../api/actions/systemAdmin/EditWelcomeMessageAction';\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nconst Home = props => {\n\n const [loading, setLoading] = useState(true);\n const [title, setTitle] = useState('');\n const [msg, setMsg] = useState({});\n const [configEditor, setConfigEditor] = useState({});\n const { addToast } = useToasts();\n\n useEffect(() => {\n\n let config = {\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n ['blockquote', 'code-block'],\n\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\n\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\n\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\n [{ 'font': [] }],\n [{ 'align': [] }],\n\n ],\n }\n };\n\n setConfigEditor(config);\n\n let data = getParams();\n let { params, server } = data;\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getWelcomeMessageAction(params, server);\n\n }, []);\n\n useEffect(() => {\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\n setTitle(props.welcomeMessageData.WelcomeMessage.titulo);\n setMsg(props.welcomeMessageData.WelcomeMessage.mensaje);\n setLoading(false);\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\n props.history.push(`${process.env.PUBLIC_URL}/`);\n props.getWelcomeMessageAction('PURGE', '');\n }\n }, [props.welcomeMessageData, props.welcomeMessageError]);\n\n useEffect(() => {\n if (props.editWelcomeMessageData && props.editWelcomeMessageData.isOK && props.editWelcomeMessageData.EditWelcomeMessage) {\n addToast('Mensaje Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n props.getEditWelcomeMessageAction('PURGE', '');\n\n props.history.push(`${process.env.PUBLIC_URL}/`);\n } else if (props.editWelcomeMessageError && props.editWelcomeMessageError.isOK === false) {\n props.getEditWelcomeMessageAction('PURGE', '');\n }\n }, [props.editWelcomeMessageData, props.editWelcomeMessageError]);\n\n const handleInput = event => {\n setTitle(event.target.value);\n };\n\n const updateMsg = () => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:mensaje': \"<![CDATA[ \" + msg + \" ]]>\",\n 'tem:Titulo': title,\n 'tem:idmensaje': props.welcomeMessageData.WelcomeMessage.id,\n }\n\n props.getEditWelcomeMessageAction(params, server);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MENSAJE DE BIENVENIDA\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n\n <div className=\"row\">\n <div className=\"col-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <h4 className=\"card-title\">Editar Mensaje de Bienvenida</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-group\">\n <div className=\"col-xs-12\">\n <label>Titulo:</label>\n <input\n className=\"form-control\"\n name=\"title\"\n type=\"text\"\n required=\"\"\n value={title}\n onChange={handleInput}\n\n />\n </div>\n </div>\n <div className=\"form-group\">\n <div>\n <label>Mensaje:</label>\n <ReactQuill\n theme=\"snow\"\n value={msg}\n onChange={setMsg}\n modules={configEditor.modules}\n />\n </div>\n </div>\n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={updateMsg}>Actualizar Mensaje</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\n\n editWelcomeMessageData: state.editWelcomeMessage.editWelcomeMessageData,\n editWelcomeMessageError: state.editWelcomeMessage.editWelcomeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getWelcomeMessageAction,\n getEditWelcomeMessageAction,\n\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));\n","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\nimport LefsiderbarRHS from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getAccessMethodAction } from '../../api/actions/systemAdmin/AccessMethodAction';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst AccessMethod = props => {\n\n const [loading, setLoading] = useState(false);\n const [values, setValues] = useState({});\n const [missedRecords, setMissedRecords] = useState([])\n\n const handleInput = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n\n };\n\n const handleSubmit = e => {\n e.preventDefault();\n\n if (!values.allUsers || !values.option1 || !values.option2 || !values.option3) {\n alert('Por favor ingresa todos los campos.');\n return;\n }\n\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:Todos': values.allUsers,\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Configuracion': values.option1 + ':' + values.option3 + ':' + values.option2,\n }\n\n props.getAccessMethodAction(params, server);\n\n }\n\n useEffect(() => {\n if (props.accessMethodData && props.accessMethodData.isOK) {\n setMissedRecords(props.accessMethodData?.AccessMethod?.empleadosFaltantes);\n setLoading(false);\n } else if (props.accessMethodError && props.accessMethodError.isOK === false) {\n setLoading(false);\n props.getAccessMethodAction('PURGE', '');\n }\n }, [props.accessMethodData, props.accessMethodError]);\n\n const missed_records_table = () => {\n let table = [];\n\n for (let i = 0; i < missedRecords.length; i++) {\n const element = missedRecords[i];\n table.push(\n <tr key={i}>\n <td>{element.trabID}</td>\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\n <td>{element.nss}</td>\n <td>{element.curp}</td>\n <td>{element.rfc}</td>\n </tr>\n );\n\n }\n\n return table;\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n {/* <Leftsidebar /> */}\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MÉTODO DE INGRESO\" icon=\"mdi mdi-account-key\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n {missedRecords.length > 0 &&\n <div className=\"card card-outline-danger\">\n <div className=\"card-header\">\n <div className=\"card-title text-white\">\n REGISTROS FALTANTES\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>IMSS</th>\n <th>CURP</th>\n <th>RFC</th>\n </tr>\n </thead>\n <tbody>\n {missed_records_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>}\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Establecer configuración a métodos de acceso</h4>\n </div>\n <div className=\"card-body\">\n <form onSubmit={handleSubmit}>\n <div className=\"form-body text-center\">\n <h3 className=\"card-title\">Procesar empleados:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"allUsers\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"all\" />\n <label htmlFor=\"all\"> Todos</label>\n <input name=\"allUsers\" type=\"radio\" onChange={handleInput} value=\"0\" className=\"with-gap\" id=\"notConfigured\" />\n <label htmlFor=\"notConfigured\"> No Configurados</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Opciones de usuario:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"user1\" />\n <label htmlFor=\"user1\"> No. EMPLEADO</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"user2\" />\n <label htmlFor=\"user2\"> NSS</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"user3\" />\n <label htmlFor=\"user3\"> RFC</label>\n <input name=\"option1\" type=\"radio\" onChange={handleInput} value=\"4\" className=\"with-gap\" id=\"user4\" />\n <label htmlFor=\"user4\"> CURP</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Opciones de contraseña:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"pwd1\" />\n <label htmlFor=\"pwd1\"> No. EMPLEADO</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"pwd2\" />\n <label htmlFor=\"pwd2\"> NSS</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"pwd3\" />\n <label htmlFor=\"pwd3\"> RFC</label>\n <input name=\"option2\" type=\"radio\" onChange={handleInput} value=\"4\" className=\"with-gap\" id=\"pwd4\" />\n <label htmlFor=\"pwd4\"> CURP</label>\n </div>\n </div>\n </div><br />\n <h3 className=\"card-title\">Clave de acceso:</h3>\n <hr />\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"1\" className=\"with-gap\" id=\"firsts\" />\n <label htmlFor=\"firsts\"> 4 Primeros</label>\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"2\" className=\"with-gap\" id=\"lasts\" />\n <label htmlFor=\"lasts\"> 4 Últimos</label>\n <input name=\"option3\" type=\"radio\" onChange={handleInput} value=\"3\" className=\"with-gap\" id=\"eight\" />\n <label htmlFor=\"eight\"> 8 Primeros</label>\n </div>\n </div>\n </div><br />\n </div><br />\n <div className=\"form-actions d-flex justify-content-center\">\n <button type=\"submit\" className=\"btn btn-success\"> <i className=\"fa fa-check\"></i> Guardar</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n accessMethodData: state.accessMethod.accessMethodData,\n accessMethodError: state.accessMethod.accessMethodError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getAccessMethodAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AccessMethod));\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport { getRestartPasswordAction } from '../../api/actions/systemAdmin/RestartPasswordAction';\r\nimport { getSearchEmployeeAction } from '../../api/actions/systemAdmin/SearchEmployeeAction';\r\nimport { getUnlockEmployeesAction } from '../../api/actions/systemAdmin/UnlockEmployeeAction';\r\nimport { getChangePasswordEmployeeAction } from '../../api/actions/systemAdmin/ChangePasswordEmployeeAction';\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\n\r\nconst PasswordReset = props => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [individualOption, setIndividualOption] = useState(null);\r\n const [searchParams, setSearchParams] = useState({});\r\n const [search, setSearch] = useState([]);\r\n const [selectedUser, setSelectedUser] = useState({});\r\n const [pwd, setPwd] = useState(null);\r\n const [missedRecords, setMissedRecords] = useState([])\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n const localStorageValue = localStorage.getItem(\"REACT_APP_OCULTAR_TODOS_PASSRESET\");\r\n if(localStorageValue === \"1\") {\r\n setTimeout(() => {\r\n setIndividualOption(true); \r\n }, 5);\r\n } else {\r\n setIndividualOption(null)\r\n }\r\n setSearchParams({});\r\n setSearch([]);\r\n setSelectedUser({});\r\n setPwd(null);\r\n } else {\r\n setMissedRecords([]);\r\n }\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n let isParametersFilled = JSON.stringify({}) != JSON.stringify(searchParams);\r\n if (individualOption && isParametersFilled) {\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': searchParams.employee_number || '',\r\n 'tem:Nombre': searchParams.first_name || '',\r\n 'tem:Paterno': searchParams.last_name || '',\r\n 'tem:Materno': searchParams.last_last_name || '',\r\n 'tem:NSS': searchParams.nss || '',\r\n 'tem:CURP': searchParams.curp || '',\r\n 'tem:RFC': searchParams.rfc || '',\r\n 'tem:UserID': params['tem:TrabID']\r\n }\r\n\r\n props.getSearchEmployeeAction(params, server);\r\n }\r\n }, [searchParams] );\r\n\r\n useEffect(() => {\r\n if (props.searchEmployeeData && props.searchEmployeeData.isOK === true) {\r\n setSearch({\r\n ...props.searchEmployeeData.SearchEmployee\r\n });\r\n } else if (props.searchEmployeeError && props.searchEmployeeError.isOK === false) {\r\n props.getSearchEmployeeAction('PURGE', '');\r\n }\r\n }, [props.searchEmployeeData, props.searchEmployeeError]);\r\n\r\n useEffect(() => {\r\n if (props.changePasswordEmployeeData && props.changePasswordEmployeeData.isOK === true) {\r\n alert(props.changePasswordEmployeeData.ChangePasswordEmployee?.resultado);\r\n setLoading(false);\r\n props.getChangePasswordEmployeeAction('PURGE', '');\r\n } else if (props.changePasswordEmployeeError && props.changePasswordEmployeeError.isOK === false) {\r\n props.getChangePasswordEmployeeAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.changePasswordEmployeeData, props.changePasswordEmployeeError]);\r\n\r\n useEffect(() => {\r\n if (props.restartPasswordData && props.restartPasswordData.isOK === true) {\r\n alert(props.restartPasswordData.RestartPassword?.resultado);\r\n setMissedRecords(props.restartPasswordData.RestartPassword?.empleadosFaltantes);\r\n props.getRestartPasswordAction('PURGE', '');\r\n setLoading(false);\r\n } else if (props.restartPasswordError && props.restartPasswordError.isOK === false) {\r\n props.getRestartPasswordAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.restartPasswordData, props.restartPasswordError]);\r\n\r\n useEffect(() => {\r\n if (props.unlockEmployeeData && props.unlockEmployeeData.isOK === true) {\r\n alert(props.unlockEmployeeData.UnlockEmployees?.resultado);\r\n props.getUnlockEmployeesAction('PURGE', '');\r\n setLoading(false);\r\n } else if (props.unlockEmployeeError && props.unlockEmployeeError.isOK === false) {\r\n props.getUnlockEmployeesAction('PURGE', '');\r\n setLoading(false);\r\n \r\n }\r\n }, [props.unlockEmployeeData, props.unlockEmployeeError]);\r\n\r\n const handleOption = event => {\r\n if (event.target.value == 'all') {\r\n setIndividualOption(false);\r\n } else if (event.target.value == 'individual') {\r\n setIndividualOption(true);\r\n }\r\n };\r\n\r\n const handleSearch = event => {\r\n setPwd(null);\r\n setSelectedUser({});\r\n\r\n setSearchParams({\r\n ...searchParams,\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n\r\n const handleNewPwd = event => {\r\n setPwd(event.target.value);\r\n };\r\n\r\n const handleChange = e => {\r\n e.preventDefault();\r\n\r\n setLoading(true);\r\n\r\n if (!selectedUser.trabID) {\r\n alert('Por favor selecciona un usuario.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n if (!pwd) {\r\n alert('Por favor escribe una clave de acceso.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': selectedUser.trabID,\r\n 'tem:PwdNuevo': pwd,\r\n 'tem:PassTemporal': true\r\n }\r\n\r\n props.getChangePasswordEmployeeAction(params, server);\r\n\r\n }\r\n\r\n const handleRestart = e => {\r\n e.preventDefault();\r\n\r\n setLoading(true);\r\n\r\n if (individualOption === null) {\r\n alert('Por favor selecciona un tipo de reinicio');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n if (individualOption === true && !selectedUser.trabID) {\r\n alert('Por favor selecciona un usuario para reiniciar su acceso.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:Todos': individualOption === false ? '1' : '0',\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': individualOption === false ? '' : selectedUser.trabID,\r\n 'tem:PassTemporal': true,\r\n }\r\n\r\n props.getRestartPasswordAction(params, server);\r\n }\r\n\r\n const handleUnlock = e => {\r\n e.preventDefault();\r\n\r\n setLoading(true);\r\n\r\n if (individualOption === null) {\r\n alert('Por favor selecciona un tipo de desbloqueo.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n if (individualOption === true && !selectedUser.trabID) {\r\n alert('Por favor selecciona un usuario para desbloquear su acceso.');\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:Todos': individualOption === false ? '1' : '0',\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': individualOption === false ? '' : selectedUser.trabID,\r\n }\r\n\r\n props.getUnlockEmployeesAction(params, server);\r\n }\r\n\r\n const employees_table = () => {\r\n let table = [];\r\n\r\n if (search.length == 0) {\r\n table.push(\r\n <tr key={1}>\r\n <td>No se encontro ningun usuario.</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n );\r\n } else {\r\n for (const person in search) {\r\n if (search.hasOwnProperty(person)) {\r\n const element = search[person];\r\n table.push(\r\n <tr key={person} style={{ cursor: 'pointer' }} onClick={() => {\r\n setPwd(null);\r\n setSelectedUser(element);\r\n }}>\r\n <td>{element.trabID}</td>\r\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\r\n <td>{element.nss}</td>\r\n <td>{element.curp}</td>\r\n <td>{element.rfc}</td>\r\n </tr>\r\n );\r\n }\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const missed_records_table = () => {\r\n let table = [];\r\n\r\n for (let i = 0; i < missedRecords.length; i++) {\r\n const element = missedRecords[i];\r\n table.push(\r\n <tr key={i}>\r\n <td>{element.trabID}</td>\r\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\r\n <td>{element.nss}</td>\r\n <td>{element.curp}</td>\r\n <td>{element.rfc}</td>\r\n </tr>\r\n );\r\n\r\n }\r\n\r\n return table;\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n {/* <Leftsidebar /> */}\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n var changeButton = pwd == null && 'disabled';\r\n var otherButtons = (individualOption && Object.keys(selectedUser).length != 0) || individualOption === false ? false : true;\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REINICIO CONTRASEÑAS\" icon=\"mdi mdi-key\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n {missedRecords.length > 0 &&\r\n <div className=\"card card-outline-danger\">\r\n <div className=\"card-header\">\r\n <div className=\"card-title text-white\">\r\n REGISTROS FALTANTES\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>IMSS</th>\r\n <th>CURP</th>\r\n <th>RFC</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {missed_records_table()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>}\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n {localStorage.getItem(\"REACT_APP_OCULTAR_TODOS_PASSRESET\") === \"1\" ? (\r\n <h4 className=\"card-title text-white\">Reiniciar clave de acceso (contraseña) individual</h4>\r\n ) : (\r\n <h4 className=\"card-title text-white\">Reiniciar clave de acceso (contraseña) individual y masiva</h4>\r\n )}\r\n </div>\r\n <div className=\"card-body\">\r\n <form action=\"#\">\r\n <div className=\"form-body text-center mb-5\">\r\n <h3 className=\"card-title\">Tipo de Reinicio</h3>\r\n <hr />\r\n <div className=\"row p-t-20\">\r\n <div className=\"col-md-12\">\r\n <div className=\"demo-radio-button\">\r\n {localStorage.getItem(\"REACT_APP_OCULTAR_TODOS_PASSRESET\") === \"1\" ? ( \r\n <div>\r\n <input name=\"all\" type=\"radio\" className=\"with-gap\" onChange={handleOption} value=\"individual\" id=\"individual\" defaultChecked= {individualOption} />\r\n <label htmlFor=\"individual\">Individual</label>\r\n \r\n </div> \r\n \r\n ) : (\r\n <div>\r\n <input name=\"all\" type=\"radio\" className=\"with-gap\" onChange={handleOption} value=\"all\" id=\"all\" />\r\n <label htmlFor=\"all\"> Todos</label>\r\n <input name=\"all\" type=\"radio\" className=\"with-gap\" onChange={handleOption} value=\"individual\" id=\"individual\"/>\r\n <label htmlFor=\"individual\"> Individual</label>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {individualOption &&\r\n <div className=\"form-body mb-5\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"card-title text-white\">CRITERIOS DE BÚSQUEDA</div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">No. Empleado</label>\r\n <input type=\"text\" name=\"employee_number\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Paterno</label>\r\n <input type=\"text\" name=\"last_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Materno</label>\r\n <input type=\"text\" name=\"last_last_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Nombre</label>\r\n <input type=\"text\" name=\"first_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n </div>\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-4\">\r\n <label htmlFor=\"name\">RFC</label>\r\n <input type=\"text\" name=\"rfc\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-4\">\r\n <label htmlFor=\"name\">CURP</label>\r\n <input type=\"text\" name=\"curp\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-4\">\r\n <label htmlFor=\"name\">NSS</label>\r\n <input type=\"text\" name=\"nss\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {Object.keys(searchParams).length != 0 &&\r\n <>\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title text-white\">EMPLEADOS ENCONTRADOS</h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\">\r\n\r\n </div>\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>IMSS</th>\r\n <th>CURP</th>\r\n <th>RFC</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {employees_table()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {Object.keys(selectedUser).length != 0 &&\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title text-white\">EMPLEADO SELECCIONADO</h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\">\r\n\r\n </div>\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>Nueva Clave de Acceso</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>{selectedUser.trabID}</td>\r\n <td>{selectedUser.paterno + ' ' + selectedUser.materno + ' ' + selectedUser.nombre}</td>\r\n <td><input type=\"password\" onChange={handleNewPwd} className=\"form-control\" /></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>}\r\n\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div className=\"form-actions d-flex justify-content-center\">\r\n\r\n <button type=\"submit\" className={`btn btn-success mr-4 ${changeButton}`} disabled={changeButton} style={{ cursor: otherButtons ? 'not-allowed' : pwd != null ? 'pointer' : 'not-allowed' }} onClick={handleChange}>\r\n <i className=\"fa fa-check\"></i> Cambiar\r\n </button>\r\n\r\n <button type=\"button\" className={`btn btn-secondary mr-4 ${otherButtons}`} disabled={otherButtons} style={{ cursor: otherButtons ? 'not-allowed' : 'pointer' }} onClick={handleRestart}>\r\n <i className=\"mdi mdi-restart\"></i> Reiniciar\r\n </button>\r\n\r\n <button type=\"button\" className={`btn btn-info ${otherButtons}`} disabled={otherButtons} style={{ cursor: otherButtons ? 'not-allowed' : 'pointer' }} onClick={handleUnlock}>\r\n <i className=\"mdi mdi-lock-open-outline\"></i> Desbloquear\r\n </button>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n restartPasswordData: state.restartPassword.restartPasswordData,\r\n restartPasswordError: state.restartPassword.restartPasswordError,\r\n\r\n searchEmployeeData: state.searchEmployee.searchEmployeeData,\r\n searchEmployeeError: state.searchEmployee.searchEmployeeError,\r\n\r\n changePasswordEmployeeData: state.changePasswordEmployee.changePasswordEmployeeData,\r\n changePasswordEmployeeError: state.changePasswordEmployee.changePasswordEmployeeError,\r\n\r\n unlockEmployeeData: state.unlockEmployees.unlockEmployeeData,\r\n unlockEmployeeError: state.unlockEmployees.unlockEmployeeError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getSearchEmployeeAction,\r\n getChangePasswordEmployeeAction,\r\n getRestartPasswordAction,\r\n getUnlockEmployeesAction\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PasswordReset));\r\n","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getListCorporativeMessageAction } from '../../api/actions/systemAdmin/ListCorporativeMessageAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\n\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getParams, getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Messages = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:usuario': params['tem:TrabID'],\n }\n props.getListCorporativeMessageAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.listCorporativeMessageData && props.listCorporativeMessageData.isOK && props.listCorporativeMessageData?.ListCorporativeMessage != undefined) {\n setLoading(false);\n } else if (props.listCorporativeMessageError && props.listCorporativeMessageError.isOK === false) {\n setLoading(false);\n }\n }, [props.listCorporativeMessageData, props.listCorporativeMessageError])\n\n const messages_table = () => {\n\n let table = [];\n let movimientos = props.listCorporativeMessageData.ListCorporativeMessage;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n } else {\n /* movimientos = movimientos.sort((a, b) => {\n return a.idMensaje - b.idMensaje;\n }); */\n movimientos = movimientos.sort((a, b) => {\n const compared = new moment(a.fecha).format('YYYYMMDDHHmmss') - new moment(b.fecha).format('YYYYMMDDHHmmss');\n return compared;\n });\n movimientos.reverse();\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.idMensaje} onClick={() => _handleRowClick(item.idMensaje, item.Titulo, item.Fecha)} className=\"\" style={{ cursor: 'pointer' }}>\n <td style={{ width: 40 + 'px' }} className=\"hidden-xs-down\"></td>\n <td className=\"hidden-xs-down\"><b>{item.Titulo}</b></td>\n <td className=\"text-right\"> {moment(item.Fecha).format('DD/MM/YYYY')} </td>\n <td style={{ width: 80 + 'px' }} className=\"hidden-xs-down\"><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleRowClick = (id) => {\n props.history.push(`${process.env.PUBLIC_URL}/messages/${id}`, { 'id': id });\n };\n\n const menuSideBar = () => {\n if(props.userType == 10){\n return true;\n }\n return false;\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Mensajes\" icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">MENSAJES AL PERSONAL</h4>\n </div>\n <div className=\"col-6\">\n <Link to={`${process.env.PUBLIC_URL}/messages/new`}>\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\">NUEVO MENSAJE</button>\n </Link>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <tbody>\n {messages_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n listCorporativeMessageData: state.listCorporativeMessage.listCorporativeMessageData,\n listCorporativeMessageError: state.listCorporativeMessage.listCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getListCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Messages));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDetailCorporativeMessageAction } from '../../api/actions/systemAdmin/DetailCorporativeMessageAction';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams, getSesionStorage} from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport ReactQuill from 'react-quill';\nimport 'react-quill/dist/quill.snow.css';\n\nconst MessagesDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({});\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.location.state.id,\n }\n\n props.getDetailCorporativeMessageAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.detailCorporativeMessageData && props.detailCorporativeMessageData.isOK) {\n setData({\n ...props.detailCorporativeMessageData.DetailCorporativeMessage\n });\n setLoading(false);\n } else if (props.detailCorporativeMessageError && props.detailCorporativeMessageError.isOK === false) {\n props.getDetailCorporativeMessageAction('PURGE', '');\n setData({\n Fecha: null,\n Titulo: null,\n Mensaje: null\n });\n setLoading(false);\n }\n }, [props.detailCorporativeMessageData, props.detailCorporativeMessageError]);\n\n const handleEdit = () => {\n const { Titulo, Mensaje, idMensaje } = props.detailCorporativeMessageData.DetailCorporativeMessage;\n props.history.push(`${process.env.PUBLIC_URL}/edit/messages/${idMensaje}`, { 'id': idMensaje, 'title': Titulo, 'msg': Mensaje });\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const { Fecha, Titulo, Mensaje } = data;\n console.log(data);\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/messages\" actual={props.location.state.id} icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <button onClick={handleEdit} className=\"btn btn-success pull-right\"><i className=\"mdi mdi-pencil\"></i> Editar</button>\n </div>\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3>{Titulo}</h3>\n <ReactQuill\n theme=\"bubble\"\n readOnly={true}\n value={Mensaje}\n modules={{ toolbar: false }}\n />\n <hr />\n <small className=\"text-muted\">{moment(Fecha).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n detailCorporativeMessageData: state.detailCorporativeMessage.detailCorporativeMessageData,\n detailCorporativeMessageError: state.detailCorporativeMessage.detailCorporativeMessageError,\n };\n};\n\nconst mapDispatchToProps = {\n getDetailCorporativeMessageAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MessagesDetail));\n","import React, { useState, useEffect } from 'react';\n\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getAllMessagesToRhAction } from '../../api/actions/RhUser/AllMessagesToRhRAction';\n\nimport CryptoJS from 'crypto-js';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport moment from 'moment';\n\nimport { getParams , getSesionStorage} from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst Requests = props => {\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const asyncFetch = async() => {\n let { params, server } = getParams();\n props.getAllMessagesToRhAction(params, server);\n }\n asyncFetch();\n }, []);\n\n useEffect(() => {\n const asyncFetch2 = async() => {\n if (props.allMessagesToRhData && props.allMessagesToRhData.isOK) {\n setLoading(false);\n } else if (props.allMessagesToRhError && props.allMessagesToRhError.isOK === false) {\n props.getAllMessagesToRhAction('PURGE', '');\n props.history.push(`${process.env.PUBLIC_URL}/`);\n }\n }\n asyncFetch2();\n }, [props.allMessagesToRhData, props.allMessagesToRhError]);\n\n const requests_table = () => {\n\n let table = [];\n let movimientos = props.allMessagesToRhData.AllMessagesToRh;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'}>\n <td>No hay datos para mostrar.</td>\n </tr>\n );\n } else {\n movimientos = movimientos.sort((a, b) => {\n return b.Id - a.Id;\n });\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={item.id_msj} onClick={() => _handleRowClick(item.id_msj, item.emisor, item.titulo, item.mensaje, item.fechaCap)} className=\"\" style={{ cursor: 'pointer' }}>\n <td><h3>#{item.id_msj}</h3></td>\n <td>{moment(item.fechaCap).format('DD/MM/YYYY')}</td>\n <td>{item.emisor}</td>\n <td>{item.titulo}</td>\n <td>{item.mensaje}</td>\n <td><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n\n }\n } else {\n table.push(\n <tr className=\"unread\" key={'nodata'}>\n <td>No hay solicitudes</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleRowClick = (id, emisor, titulo, msg, fecha) => {\n props.history.push(`${process.env.PUBLIC_URL}/requests/${id}`, { emisor: emisor, titulo: titulo, msg: msg, fecha: fecha });\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"RH Te Escucha\" icon=\"mdi mdi-account-multiple\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">LISTADO DE SOLICITUDES A RH</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Fecha</th>\n <th>Emisor</th>\n <th>Solicitud</th>\n <th>Mensaje</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {requests_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n allMessagesToRhData: state.allMessagesRh.allMessagesToRhData,\n allMessagesToRhError: state.allMessagesRh.allMessagesToRhError,\n };\n};\n\nconst mapDispatchToProps = {\n getAllMessagesToRhAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Requests));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams, getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst RequestDetail = props => {\n\n const { emisor, titulo, msg, fecha } = props.location.state;\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Mensajes\" redirect=\"/mensajes\" actual={props.match.params.id} icon=\"mdi mdi-message-alert\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3 className=\"mb-5\">{titulo}</h3>\n <p className=\"mb-5\">{msg}</p>\n <hr />\n <small className=\"text-muted\">Emisor: {emisor}</small> <br />\n <small className=\"text-muted\">Mensaje enviado el {moment(fecha).format('DD/MM/YYYY HH:mm')}</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nexport default withRouter(connect(null, null)(RequestDetail));\n","import React, { useEffect, useState, Fragment } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\n\nimport { getAdditionalFieldsAction } from '../../api/actions/systemAdmin/AdditionalFieldsAction';\nimport { getDeleteAddFieldsAction } from '../../api/actions/systemAdmin/DeleteAddFieldsActiion';\nimport { getSelectedAdditionalFieldsAction } from '../../api/actions/systemAdmin/SelectedAdditionalFieldsAction';\n\nimport { getParams, getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n\nconst AdditionalFields = props => {\n\n const { addToast } = useToasts();\n const [loading, setLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [selectedFields, setSelectedFields] = useState([]);\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getAdditionalFieldsAction(params, server);\n\n }, []);\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Campo_Desc': id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n }\n\n props.getDeleteAddFieldsAction(params, server);\n\n };\n\n useEffect(() => {\n if (props.additionalFieldsData && props.additionalFieldsData.isOK) {\n\n let data = getParams();\n let { params, server } = data;\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n props.getSelectedAdditionalFieldsAction(params, server);\n\n } else if (props.additionalFieldsError && props.additionalFieldsError.isOK === false) {\n props.getAdditionalFieldsAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.additionalFieldsData, props.additionalFieldsError]);\n\n useEffect(() => {\n if (props.selectedAdditionalFieldsData && props.selectedAdditionalFieldsData.isOK) {\n setSelectedFields(props.selectedAdditionalFieldsData.SelectedAdditionalFields);\n setHasError(false);\n setLoading(false);\n } else if (props.selectedAdditionalFieldsError && props.selectedAdditionalFieldsError.isOK === false) {\n props.getSelectedAdditionalFieldsAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.selectedAdditionalFieldsData, props.selectedAdditionalFieldsError]);\n\n useEffect(() => {\n if (props.deleteAddFieldsData && props.deleteAddFieldsData.isOK && props.deleteAddFieldsData?.DeleteAddFields) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n });\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getSelectedAdditionalFieldsAction('PURGE', '');\n props.getSelectedAdditionalFieldsAction(params, server);\n props.getDeleteAddFieldsAction('PURGE', '');\n } else if (props.deleteAddFieldsError && props.deleteAddFieldsError.isOK === false) {\n props.getDeleteAddFieldsAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.deleteAddFieldsData, props.deleteAddFieldsError]);\n\n\n const additional_fields = () => {\n let fields = [];\n\n let allFields = [...props.additionalFieldsData?.AdditionalFields].filter(f => (f.id || \"\").toLowerCase() != \"fondoahorro\");\n\n if (allFields) {\n for (let i = 0; i < allFields.length; i++) {\n const element = allFields[i];\n let checked = selectedFields.filter(field => field.campo == element.id);\n fields.push(\n <Fragment key={i}>\n <input name={element.id} type=\"checkbox\" checked={checked.length > 0 ? true : false} onChange={e => handleInput(e, element.id)} value={element.id} className=\"with-gap\" id={element.id} />\n <label htmlFor={element.id}> {element.campo}</label>\n </Fragment>\n );\n\n }\n }\n\n return fields;\n }\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"CAMPOS ADICIONALES\" icon=\"mdi mdi-account-key\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Seleccione los campos extra a visualizar</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-body\">\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button\">\n {!hasError && additional_fields()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n additionalFieldsData: state.additionalFields.additionalFieldsData,\n additionalFieldsError: state.additionalFields.additionalFieldsError,\n\n deleteAddFieldsData: state.deleteAddFields.deleteAddFieldsData,\n deleteAddFieldsError: state.deleteAddFields.deleteAddFieldsError,\n\n selectedAdditionalFieldsData: state.selectedAdditionalFields.selectedAdditionalFieldsData,\n selectedAdditionalFieldsError: state.selectedAdditionalFields.selectedAdditionalFieldsError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getAdditionalFieldsAction,\n getDeleteAddFieldsAction,\n getSelectedAdditionalFieldsAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AdditionalFields));\n","import React, { useState, useEffect } from 'react';\nimport useScript from '../../hooks/useScript';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getBuzonQuejasAction } from '../../api/actions/RhUser/BuzonQuejasAction';\nimport CryptoJS from 'crypto-js';\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getParams, getSesionStorage } from '../../utils';\n\nconst Complaints = props => {\n\n const [ loading, setLoading ] = useState(true);\n\n useEffect(() => {\n\n let params = sessionStorage.getItem('params');\n\n if( params == null ) {\n props.history.push(`${process.env.PUBLIC_URL}/login`);\n } else {\n params = CryptoJS.AES.decrypt(params, process.env.REACT_APP_HASH_SECRET);\n params = JSON.parse(params.toString(CryptoJS.enc.Utf8));\n\n let server = localStorage.getItem(\"REACT_APP_SERVER\");\n props.getBuzonQuejasAction(params, server);\n }\n }, [])\n\n useEffect(() => {\n if( props.buzonQuejasData.BuzonQuejas != undefined ){\n setLoading(false);\n }\n }, [ props.buzonQuejasData ])\n\n const complaints_table = () => {\n\n let table = [];\n let movimientos = props.buzonQuejasData.BuzonQuejas;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n } else {\n /* movimientos = movimientos.sort((a,b) => {\n return a.idMensaje - b.idMensaje;\n }); */\n movimientos = movimientos.sort((a, b) => {\n const compared = new moment(a.fecha).format('YYYYMMDDHHmmss') - new moment(b.fecha).format('YYYYMMDDHHmmss');\n return compared;\n });\n movimientos.reverse();\n \n movimientos.map((item, i) => {\n table.push(\n <tr key={item.idMensaje} onClick={() => _handleRowClick(item.idMensaje)} style={{ cursor: 'pointer' }}>\n <td><h3>#{ item.idMensaje }</h3></td>\n <td>{ item.titulo }</td>\n <td>{ moment(item.fecha).format('DD/MM/YYYY') }</td>\n <td style={{width: 80 + 'px'}} className=\"hidden-xs-down\"><i className=\"mdi mdi-chevron-right\"></i></td>\n </tr>\n );\n });\n }\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay mensajes para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const _handleRowClick = ( id ) => {\n props.history.push(`${process.env.PUBLIC_URL}/complaints/${id}`);\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar/>\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Buzón de Quejas\" icon=\"mdi mdi-message-bulleted-off\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\" onClick={() => console.log(props.buzonQuejasData)}>LISTADO DE BUZÓN DE QUEJAS</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Titulo</th>\n <th>Fecha</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n { complaints_table() }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n buzonQuejasData: state.buzonQuejas.buzonQuejasData,\n buzonQuejasError: state.buzonQuejas.buzonQuejasError,\n };\n};\n\nconst mapDispatchToProps = {\n getBuzonQuejasAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Complaints));\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getDeleteComplaintAction } from '../../api/actions/RhUser/DeleteComplaintAction';\nimport { getBuzonQuejasDetailAction } from '../../api/actions/RhUser/BuzonQuejasDetalleActioon';\nimport { sendRespuestaQuejaAction } from '../../api/actions/systemAdmin/ComplaintResponseAction';\nimport { GetValoresConfigAction } from \"../../api/actions/common/GetValoresConfigAction\";\nimport moment from 'moment';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams , getSesionStorage} from '../../utils';\n\n\nconst ComplaintDetail = props => {\n\n const [loading, setLoading] = useState(true);\n const [form, setValues] = useState({\n message: '',\n });\n\n const [valoresConfig, setValoresConfig] = useState([]);\n\n const _handleInput = event => {\n\n setValues({\n ...form,\n [event.target.name]: event.target.value\n });\n }\n\n useEffect(() => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.match.params.id\n }\n\n props.getBuzonQuejasDetailAction(params, server);\n GetValoresConfig('Kiosco');\n\n }, []);\n\n useEffect(() => {\n if (props.buzonQuejasDetailData && props.buzonQuejasDetailData.BuzonQuejasDetail) {\n setLoading(false);\n }\n }, [props.buzonQuejasDetailData, props.buzonQuejasDetailError]);\n\n const _handleSubmit = e => {\n e.preventDefault();\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:idMensaje': props.match.params.id,\n 'tem:RespuestaQueja': form.message\n }\n\n props.sendRespuestaQuejaAction(params, server);\n };\n\n useEffect(() => {\n if (props.respuestaQuejasData && props.respuestaQuejasData.isOK) {\n alert('Su respuesta ha sido enviada.')\n props.sendRespuestaQuejaAction('PURGE', '');\n setLoading(false);\n } else if (props.respuestaQuejasError && props.respuestaQuejasError.isOK === false) {\n props.sendRespuestaQuejaAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.respuestaQuejasData, props.respuestaQuejasError]);\n\n\n useEffect(() => {\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\n if (configuraciones.length > 0) {\n setValoresConfig(configuraciones);\n }\n else {\n setValoresConfig([]);\n }\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\n setValoresConfig([]);\n props.GetValoresConfigAction(\"PURGE\", \"\");\n }\n }, [props.getValoresConfigData, props.getValoresConfigError]);\n\n\n const GetValoresConfig = (seccion, variable = '') => {\n let { params, server } = getParams();\n\n let send = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:Seccion\": seccion,\n \"tem:Variable\": variable,\n };\n\n props.GetValoresConfigAction(send, server);\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n const { fecha, Mensaje, Titulo } = props.buzonQuejasDetailData.BuzonQuejasDetail;\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title path=\"Buzón de Quejas\" redirect=\"/complaints\" actual={props.match.params.id} icon=\"mdi mdi-message-bulleted-off\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-body p-t-0\">\n <div className=\"card shadow-none\"><br />\n <div className=\"card-body\">\n <h3>{Titulo}</h3>\n <p>{Mensaje}</p>\n <hr />\n <small className=\"text-muted\">{moment(fecha).format('DD/MM/YYYY HH:mm')}</small>\n <div className=\"form-group\"> \n </div> \n {valoresConfig.some(s => (s.Seccion == 'Kiosco' && s.Variable == 'RespondeQueja' && s.Valor == '1')) && \n <form className=\"form-material m-t-40\" onSubmit={_handleSubmit}>\n <label>RESPONDER QUEJA</label>\n <textarea\n name=\"message\"\n className=\"form-control\"\n rows=\"5\"\n onChange={_handleInput}\n value = {form.message}\n >\n </textarea>\n <div className=\"col-lg-3 col-md-4 pull-right\">\n <button type=\"submit\" className=\"btn waves-effect waves-light btn-block btn-info\" >Enviar respuesta</button>\n </div> \n </form>}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n buzonQuejasDetailData: state.buzonQuejasDetalle.buzonQuejasDetailData,\n buzonQuejasDetailError: state.buzonQuejasDetalle.buzonQuejasDetailError,\n\n deleteComplaintData: state.deleteComplaint.deleteComplaintData,\n deleteComplaintError: state.deleteComplaint.deleteComplaintError,\n\n respuestaQuejasData: state.complaintResponse.respuestaQuejasData,\n respuestaQuejasError: state.complaintResponse.respuestaQuejasError,\n\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n getDeleteComplaintAction,\n getBuzonQuejasDetailAction,\n sendRespuestaQuejaAction,\n GetValoresConfigAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ComplaintDetail));\n","import { changeXml, ComplaintAdminResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n QUEJA_RESPUESTA_SUCCESS,\r\n QUEJA_RESPUESTA_ERROR,\r\n QUEJA_RESPUESTA_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const sendRespuestaQuejaAction = (data, server) => {\r\n let configJson = {\r\n 'tem:ResponderQueja': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ResponderQueja\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: QUEJA_RESPUESTA_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET QUEJA_RESPUESTA_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: QUEJA_RESPUESTA_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n ComplaintResponse: ComplaintAdminResponse(body)\r\n }\r\n\r\n console.log('RESPONSE QUEJA_RESPUESTA DATA: ', response);\r\n dispatch({ type: QUEJA_RESPUESTA_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET QUEJA_RESPUESTA DATA: ', response);\r\n dispatch({ type: QUEJA_RESPUESTA_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET QUEJA_RESPUESTA DATA: ', responseError);\r\n dispatch({ type: QUEJA_RESPUESTA_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import { changeXml, AllUsers } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n ALL_USERS_SUCCESS,\n ALL_USERS_ERROR,\n ALL_USERS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getAllUsersAction = (data, server) => {\n let configJson = {\n 'tem:Usuarios': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/Usuarios\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: ALL_USERS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET ALL_USERS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: ALL_USERS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n AllUsers: AllUsers(body)\n }\n\n console.log('RESPONSE ALL_USERS DATA: ', response);\n dispatch({ type: ALL_USERS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET ALL_USERS DATA: ', response);\n dispatch({ type: ALL_USERS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET ALL_USERS DATA: ', responseError);\n dispatch({ type: ALL_USERS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, NewUser, ActualizaUsuarioResponse, EliminaUsuarioResponse, } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n NEW_USER_SUCCESS,\n NEW_USER_ERROR,\n NEW_USER_PURGE,\n\n ACTUALIZAUSUARIO_SUCCESS, \n ACTUALIZAUSUARIO_ERROR, \n ACTUALIZAUSUARIO_PURGE, \n\n ELIMINAUSUARIO_SUCCESS, \n ELIMINAUSUARIO_ERROR, \n ELIMINAUSUARIO_PURGE, \n\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getNewUserAction = (data, server) => {\n let configJson = {\n 'tem:NuevoUsuario': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/NuevoUsuario\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: NEW_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET NEW_USER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: NEW_USER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n NewUser: NewUser(body)\n }\n\n console.log('RESPONSE NEW_USER DATA: ', response);\n dispatch({ type: NEW_USER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET NEW_USER DATA: ', response);\n dispatch({ type: NEW_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET NEW_USER DATA: ', responseError);\n dispatch({ type: NEW_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};\n\nexport const ActualizaUsuarioAction = (data, server) => {\n let responseForNotFound = true;\n let nameService = 'wcfKioscoSicoss';\n let action = 'ActualizaUsuario';\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\n\n let configJson = {};\n configJson['tem:' + action] = { \n ...data \n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\n 'Server': directServer\n },\n };\n\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n };\n config = {\n ...config,\n headers: headers\n };\n }\n\n console.log('TEST RECUEST:', data, config);\n\n return (dispatch) => {\n if (data === 'PURGE') {\n dispatch({ type: ACTUALIZAUSUARIO_PURGE, payload: 'PURGE' });\n } \n else {\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n let notFound = false;\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope'];\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA');\n notFound = true;\n }\n }\n else {\n response = {\n isOK: false,\n error: 'No data'\n };\n }\n }\n\n if (responseForNotFound && notFound) {\n response = {\n isOK: true,\n ActualizaUsuario: ActualizaUsuarioResponse(body)\n };\n console.log('[NOT FOUND] DEFAULT RESPONSE ACTUALIZAUSUARIO DATA: ', response);\n dispatch({ type: ACTUALIZAUSUARIO_SUCCESS, payload: response });\n return;\n }\n \n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n };\n console.log('ERROR GET ACTUALIZAUSUARIO DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: ACTUALIZAUSUARIO_ERROR, payload: response });\n }\n else {\n response = {\n isOK: true,\n ActualizaUsuario: ActualizaUsuarioResponse(body)\n };\n console.log('RESPONSE ACTUALIZAUSUARIO DATA: ', response);\n dispatch({ type: ACTUALIZAUSUARIO_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n };\n console.log('ERROR GET ACTUALIZAUSUARIO DATA: ', response);\n dispatch({ type: ACTUALIZAUSUARIO_ERROR, payload: response });\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n };\n console.log('ERROR NOT RESPONSE GET ACTUALIZAUSUARIO DATA: ', responseError);\n dispatch({ type: ACTUALIZAUSUARIO_ERROR, payload: responseError });\n });\n }\n };\n};\n\nexport const EliminaUsuarioAction = (data, server) => {\n let responseForNotFound = true;\n let nameService = 'wcfKioscoSicoss';\n let action = 'EliminaUsuario';\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\n\n let configJson = {};\n configJson['tem:' + action] = { \n ...data \n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\n 'Server': directServer\n },\n };\n\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n };\n config = {\n ...config,\n headers: headers\n };\n }\n\n console.log('TEST RECUEST:', data, config);\n\n return (dispatch) => {\n if (data === 'PURGE') {\n dispatch({ type: ELIMINAUSUARIO_PURGE, payload: 'PURGE' });\n } \n else {\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n let notFound = false;\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope'];\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA');\n notFound = true;\n }\n }\n else {\n response = {\n isOK: false,\n error: 'No data'\n };\n }\n }\n\n if (responseForNotFound && notFound) {\n response = {\n isOK: true,\n EliminaUsuario: EliminaUsuarioResponse(body)\n };\n console.log('[NOT FOUND] DEFAULT RESPONSE ELIMINAUSUARIO DATA: ', response);\n dispatch({ type: ELIMINAUSUARIO_SUCCESS, payload: response });\n return;\n }\n \n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n };\n console.log('ERROR GET ELIMINAUSUARIO DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: ELIMINAUSUARIO_ERROR, payload: response });\n }\n else {\n response = {\n isOK: true,\n EliminaUsuario: EliminaUsuarioResponse(body)\n };\n console.log('RESPONSE ELIMINAUSUARIO DATA: ', response);\n dispatch({ type: ELIMINAUSUARIO_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n };\n console.log('ERROR GET ELIMINAUSUARIO DATA: ', response);\n dispatch({ type: ELIMINAUSUARIO_ERROR, payload: response });\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n };\n console.log('ERROR NOT RESPONSE GET ELIMINAUSUARIO DATA: ', responseError);\n dispatch({ type: ELIMINAUSUARIO_ERROR, payload: responseError });\n });\n }\n };\n};\n","import { changeXml, changePasswordAdmin } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CHANGE_PASSWORD_ADMIN_SUCCESS,\n CHANGE_PASSWORD_ADMIN_ERROR,\n CHANGE_PASSWORD_ADMIN_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getChangePasswordAdmin = (data, server) => {\n let configJson = {\n 'tem:CambioPassAdmin': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CambioPassAdmin\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CHANGE_PASSWORD_ADMIN_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CHANGE_PASSWORD_ADMIN_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CHANGE_PASSWORD_ADMIN_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ChangePasswordAdmin: changePasswordAdmin(body)\n }\n\n console.log('RESPONSE CHANGE_PASSWORD_ADMIN DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_ADMIN_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CHANGE_PASSWORD_ADMIN DATA: ', response);\n dispatch({ type: CHANGE_PASSWORD_ADMIN_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CHANGE_PASSWORD_ADMIN DATA: ', responseError);\n dispatch({ type: CHANGE_PASSWORD_ADMIN_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, ConsultaRoles } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n CONSULTA_ROLES_SUCCESS,\n CONSULTA_ROLES_ERROR,\n CONSULTA_ROLES_PURGE,\n VALIDATE_ERROR,\n} from \"../../types\";\n\nexport const getConsultaRolesAction = (data, server) => {\n let configJson = {\n \"tem:ConsultaRoles\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaRoles\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n console.log(\"TEST REQUEST CONSULTA_ROLES:\", data, config, obj);\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: CONSULTA_ROLES_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_ROLES_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: CONSULTA_ROLES_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ConsultaRoles: ConsultaRoles(body),\n };\n\n console.log(\"RESPONSE CONSULTA_ROLES DATA: \", response);\n dispatch({ type: CONSULTA_ROLES_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_ROLES DATA: \", response);\n dispatch({ type: CONSULTA_ROLES_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_ROLES DATA: \",\n responseError\n );\n dispatch({ type: CONSULTA_ROLES_ERROR, payload: responseError });\n });\n }\n };\n};\n","import React, { useState, useEffect } from \"react\";\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { getAllUsersAction } from \"../../api/actions/systemAdmin/AllUsersAction\";\nimport { getNewUserAction, ActualizaUsuarioAction, EliminaUsuarioAction } from \"../../api/actions/systemAdmin/NewUserAction\";\nimport { getChangePasswordEmployeeAction } from \"../../api/actions/systemAdmin/ChangePasswordEmployeeAction\";\nimport { getChangePasswordAdmin } from \"../../api/actions/systemAdmin/ChangePaswordAdminAction\";\nimport { getConsultaRolesAction } from \"../../api/actions/systemAdmin/ConsultaRolesAction\";\nimport { GetReportaExtranjerosAction } from \"../../api/actions/systemAdmin/GetReportaExtranjerosAction\";\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport { useToasts } from \"react-toast-notifications\";\n\nimport { getParams } from \"../../utils\";\nimport { alert, confirm } from \"../../utils/common/alert\";\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nconst UsersControl = (props) => {\n const defectoValues = {\n UserID: '',\n Nombre: '',\n Contrasenia: '',\n ContraseniaAnt: '',\n ContraseniaNueva: '',\n actualiza: false, \n };\n\n const { addToast } = useToasts();\n const [loading, setLoading] = useState(true);\n const [showModal, setShowModal] = useState(false);\n const [newPwd, setNewPwd] = useState(null);\n const [showModalNewUser, setShowModalNewUser] = useState(false);\n const [userChangePassword, setUserChangePassword] = useState({});\n const [form, setValues] = useState({...defectoValues});\n const [warnings, setWarn] = useState(null);\n const [roles, setRoles] = useState([]);\n const [roleSelected, setRoleSelected] = useState(\"\");\n const [reportaExtranjeros, setReportaExtranjeros] = useState([]);\n const [reportaExtranjeroSelected, setReportaExtranjeroSelected] = useState(\"\");\n const [allUsers, setAllUsers] = useState([]);\n\n const Inicializar = () => {\n let data = getParams();\n let { params, server } = data;\n props.getAllUsersAction(params, server);\n let rol = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n props.getConsultaRolesAction(rol, server);\n };\n\n useEffect(() => {\n Inicializar();\n }, []);\n\n useEffect(() => {\n if (props.allUsersData && props.allUsersData.isOK) {\n setLoading(false);\n let movimientos = props.allUsersData?.AllUsers;\n if (movimientos && movimientos.length >= 0) {\n setAllUsers(movimientos);\n }\n else {\n setAllUsers([]);\n }\n } \n else if (props.allUsersError && props.allUsersError.isOK === false) {\n props.getAllUsersAction(\"PURGE\", \"\");\n setAllUsers([]);\n props.history.push(`${process.env.PUBLIC_URL}/`);\n }\n }, [props.allUsersData, props.allUsersError]);\n\n useEffect(() => {\n if (\n props.newUserData &&\n props.newUserData.isOK &&\n props.newUserData.NewUser\n ) {\n addToast(\"Usuario agregado exitosamente\", {\n appearance: \"success\",\n autoDismiss: true,\n });\n } else if (props.newUserError && props.newUserError.isOK === false) {\n props.getNewUserAction(\"PURGE\", \"\");\n }\n\n let data = getParams();\n let { params, server } = data;\n props.getAllUsersAction(\"PURGE\", \"\");\n props.getAllUsersAction(params, server);\n }, [props.newUserData, props.newUserError]);\n\n useEffect(() => {\n if ((props.actualizaUsuarioData && props.actualizaUsuarioData.isOK)) {\n let result = {...props.actualizaUsuarioData.ActualizaUsuario};\n if ('Result' in result) {\n result = result.Result;\n }\n\n if (result) {\n addToast(\"Usuario actualizado exitosamente.\", { appearance: \"success\", autoDismiss: true, });\n Inicializar();\n }\n else {\n addToast(\"Usuario no actualizado.\", { appearance: \"error\", autoDismiss: true, });\n }\n\n props.ActualizaUsuarioAction('PURGE', '');\n setLoading(false);\n } \n else if ((props.actualizaUsuarioError && props.actualizaUsuarioError.isOK === false)) {\n addToast(\"Usuario no actualizado.\", { appearance: \"error\", autoDismiss: true, });\n props.ActualizaUsuarioAction('PURGE', '');\n setLoading(false);\n }\n }, [props.actualizaUsuarioData, props.actualizaUsuarioError]);\n\n useEffect(() => {\n if ((props.eliminaUsuarioData && props.eliminaUsuarioData.isOK)) {\n let result = {...props.eliminaUsuarioData.EliminaUsuario};\n if ('Result' in result) {\n result = result.Result;\n }\n\n if (result) {\n addToast(\"Usuario eliminado exitosamente.\", { appearance: \"success\", autoDismiss: true, });\n Inicializar();\n }\n else {\n addToast(\"Usuario no eliminado.\", { appearance: \"error\", autoDismiss: true, });\n }\n\n props.EliminaUsuarioAction('PURGE', '');\n setLoading(false);\n } \n else if ((props.eliminaUsuarioError && props.eliminaUsuarioError.isOK === false)) {\n addToast(\"Ocurrio un error al eliminar.\", { appearance: \"error\", autoDismiss: true, });\n props.EliminaUsuarioAction('PURGE', '');\n setLoading(false);\n }\n }, [props.eliminaUsuarioData, props.eliminaUsuarioError]);\n\n useEffect(() => {\n if (\n props.changePasswordAdminData &&\n props.changePasswordAdminData.isOK &&\n props.changePasswordAdminData.ChangePasswordAdmin === true\n ) {\n addToast(\"Contraseña actualizada.\", {\n appearance: \"success\",\n autoDismiss: true,\n });\n } else if (\n props.changePasswordAdminError &&\n props.changePasswordAdminError.isOK === false\n ) {\n props.getChangePasswordAdmin(\"PURGE\", \"\");\n }\n\n setLoading(false);\n }, [props.changePasswordAdminData, props.changePasswordAdminError]);\n\n useEffect(() => {\n if (props.consultaRolesData && props.consultaRolesData.isOK) {\n if (\n props.consultaRolesData?.ConsultaRoles &&\n props.consultaRolesData?.ConsultaRoles\n ) {\n setRoles(props.consultaRolesData?.ConsultaRoles);\n }\n } else if (\n props.consultaRolesError &&\n props.consultaRolesError.isOK === false\n ) {\n props.getConsultaRolesAction(\"PURGE\", \"\");\n }\n }, [props.consultaRolesData, props.consultaRolesError]);\n\n useEffect(() => {\n console.log('OIHB DATA Rol', roleSelected);\n if (roleSelected == \"8\") {\n GetReportaExtranjeros();\n }\n }, [roleSelected]);\n\n // useEffect(() => {\n // if (showModalNewUser) {\n // setRoleSelected(\"\");\n // setReportaExtranjeroSelected(\"\");\n // }\n // }, [showModalNewUser]);\n\n useEffect(() => {\n if (props.getReportaExtranjerosData && props.getReportaExtranjerosData.isOK === true) {\n let extranjeros = [...props.getReportaExtranjerosData.GetReportaExtranjeros.ReportaExtranjeros];\n extranjeros = extranjeros.filter(item => item.NumEmpGlobal > 0);\n if (extranjeros.length > 0) {\n setReportaExtranjeros(extranjeros);\n }\n else {\n setReportaExtranjeros([]);\n }\n props.GetReportaExtranjerosAction(\"PURGE\", \"\");\n } \n else if (props.getReportaExtranjerosError && props.getReportaExtranjerosError.isOK === false) {\n setReportaExtranjeros([]);\n props.GetReportaExtranjerosAction(\"PURGE\", \"\");\n }\n }, [props.getReportaExtranjerosData, props.getReportaExtranjerosError]);\n\n const GetReportaExtranjeros = () => {\n let {params, server} = getParams();\n props.GetReportaExtranjerosAction(params, server);\n };\n\n const users_table = () => {\n let table = [];\n let movimientos = allUsers;\n\n if (movimientos && movimientos.length >= 0) {\n if (movimientos.length <= 0) {\n table.push(\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\n <td>No hay usuarios para mostrar.</td>\n </tr>\n );\n } \n else {\n movimientos = movimientos.sort((a, b) => {\n return a - b;\n });\n \n let hide = allUsers.some(item => item.descripcionRol.trim().length == 0);\n\n movimientos.map((item, i) => {\n table.push(\n <tr key={i}>\n <td>{item.user_id}</td>\n <td>{item.descripcion}</td>\n {!hide && <td>{item.descripcionRol}</td>}\n {localStorage.getItem(\"REACT_APP_EDITAR_USUARIOS\") == \"1\" && <>\n <td className=\"hidden-xs-down\">\n <label onClick={() => { _handleOpenModalNewUser(item); }} style={ { cursor: 'pointer'} }>\n <i className=\"mdi mdi-pencil\"></i> Editar\n </label>\n </td>\n <td className=\"hidden-xs-down\">\n <label onClick={() => { handleDeleteUser(item); }} style={ { cursor: 'pointer'} }>\n <i className=\"mdi mdi-delete\"></i> Eliminar\n </label>\n </td> \n </>}\n <td className=\"hidden-xs-down\">\n <Link \n to={`${process.env.PUBLIC_URL}/user/${item.user_id}/permissions`}\n style={{ textDecoration: \"none\", color: \"black\" }}\n >\n <i className=\"mdi mdi-pencil\"></i> Editar Permisos\n </Link>\n </td>\n {/* <td className=\"hidden-xs-down\" onClick={() => handleShowModal(item)} style={{ cursor: 'pointer' }}><i className=\"mdi mdi-lock\"></i> Cambiar Contraseña</td> */}\n </tr>\n );\n });\n }\n }\n\n return table;\n };\n\n const handleChangePwd = () => {\n if (\n newPwd.ContraseniaAnt == undefined ||\n newPwd.ContraseniaAnt.replace(/ /g, \"\") == \"\" ||\n newPwd.ContraseniaNueva == undefined ||\n newPwd.ContraseniaNueva.replace(/ /g, \"\") == \"\" ||\n newPwd.ContraseniaNuevaConfirmacion == undefined ||\n newPwd.ContraseniaNuevaConfirmacion.replace(/ /g, \"\") == \"\"\n ) {\n setWarn(\"Todos los campos son obligatorios.\");\n return;\n }\n\n if (newPwd.ContraseniaNueva != newPwd.ContraseniaNuevaConfirmacion) {\n setWarn(\"La confirmación de contraseña no coincide.\");\n return;\n }\n\n setWarn(null);\n setShowModal(false);\n setLoading(true);\n\n let data = getParams();\n let { params, server } = data;\n\n String.prototype.toHtmlEntities = function () {\n return this.replace(/./gm, function (s) {\n return \"&#\" + s.charCodeAt(0) + \";\";\n });\n };\n\n let paramss = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": userChangePassword.user_id,\n \"tem:ContraseniaAnt\": newPwd.ContraseniaAnt.toHtmlEntities(),\n \"tem:ContraseniaNueva\": newPwd.ContraseniaNueva.toHtmlEntities(),\n };\n\n props.getChangePasswordAdmin(paramss, server);\n };\n\n const handleShowModal = (user) => {\n console.log('OIHB DATA', user);\n setUserChangePassword(user);\n setShowModal(true);\n };\n\n const _handleCloseModal = () => {\n setUserChangePassword({});\n setNewPwd(null);\n setWarn(null);\n setShowModal(false);\n };\n\n const _handleOpenModalNewUser = (itemEdit = null) => {\n if (!itemEdit) {\n setValues({...defectoValues});\n setRoleSelected(\"\");\n setReportaExtranjeroSelected(\"\");\n setShowModalNewUser(true);\n }\n else {\n //console.log('OIHB DATA', item);\n setValues({\n ...defectoValues,\n UserID: itemEdit.user_id,\n Nombre: itemEdit.descripcion,\n actualiza: true, \n });\n setRoleSelected(itemEdit.idRol);\n setShowModalNewUser(true);\n }\n };\n\n const _handleCloseModalNewUser = () => {\n setValues({...defectoValues});\n setRoleSelected(\"\");\n setReportaExtranjeroSelected(\"\");\n setWarn(null);\n setShowModalNewUser(false);\n };\n\n const handleNewUser = () => {\n if (\n form.UserID == undefined ||\n form.UserID.replace(/ /g, \"\") == \"\" ||\n form.Nombre == undefined ||\n form.Nombre.replace(/ /g, \"\") == \"\" ||\n (!form.actualiza ? (form.Contrasenia == undefined || form.Contrasenia.replace(/ /g, \"\") == \"\") : false) || \n roleSelected == \"\"\n ) {\n setWarn(\"Todos los campos son obligatorios.\");\n return;\n }\n\n if (form.actualiza && (form.ContraseniaAnt || \"\").trim().length > 0) {\n if ((form.ContraseniaNueva || \"\").trim().length == 0 || (form.ContraseniaNuevaConfirmacion || \"\").trim().length == 0) {\n setWarn(\"Los campos contraseña nueva y confirmación son obligatorios.\");\n return;\n }\n\n if (form.ContraseniaNueva != form.ContraseniaNuevaConfirmacion) {\n setWarn(\"La confirmación de contraseña no coincide.\");\n return;\n }\n \n setWarn(null);\n }\n\n if (roleSelected == \"8\" && reportaExtranjeroSelected.trim().length == 0) {\n setWarn(\"Todos los campos son obligatorios.\");\n return;\n }\n\n setWarn(null);\n setShowModalNewUser(false);\n setLoading(true);\n\n let data = getParams();\n let { params, server } = data;\n\n String.prototype.toHtmlEntities = function () {\n return this.replace(/./gm, function (s) {\n return \"&#\" + s.charCodeAt(0) + \";\";\n });\n };\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": form.UserID || \"\",\n \"tem:Nombre\": form.Nombre || \"\",\n // \"tem:Contrasenia\": form.Contrasenia,\n // \"tem:IdRol\": roleSelected,\n };\n\n if (!form.actualiza) {\n params[\"tem:Contrasenia\"] = form.Contrasenia || \"\";\n }\n else {\n params[\"tem:ContraseniaAnt\"] = form.ContraseniaAnt || \"\";\n params[\"tem:ContraseniaNueva\"] = form.ContraseniaNueva || \"\";\n }\n \n params[\"tem:IdRol\"] = roleSelected || \"0\";\n\n if (roleSelected == \"8\") {\n params[\"tem:IdReportaExtranjero\"] = reportaExtranjeroSelected || \"\";\n }\n else {\n params[\"tem:IdReportaExtranjero\"] = \"\";\n }\n \n console.log(\"OIHB DATA\", params);\n if (!form.actualiza) {\n props.getNewUserAction(params, server);\n }\n else {\n props.ActualizaUsuarioAction(params, server);\n }\n\n _handleCloseModalNewUser();\n };\n\n const handleDeleteUser = (user) => {\n confirm('Se eliminará este elemento ¿Desea continuar?', ['Si', 'No']).then(cancel => {\n if (!cancel) {\n setWarn(null);\n setLoading(true);\n \n let data = getParams();\n let { params, server } = data;\n \n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": user.user_id,\n };\n \n props.EliminaUsuarioAction(params, server);\n }\n });\n };\n\n const _handleInput = (event) => {\n setValues({\n ...form,\n [event.target.name]: event.target.value,\n });\n };\n\n const _handleInputNewPwd = (event) => {\n setNewPwd({\n ...newPwd,\n [event.target.name]: event.target.value,\n });\n };\n\n const renderSelectorRole = () => {\n let options = roles.map((data, ix) => {\n return <option key={'opt'+ix+'_rol'} value={data.ID}>{data.Descripcion}</option>;\n });\n return (\n <select\n value={roleSelected || ''}\n className=\"form-control\"\n onChange={(values) => {\n setRoleSelected(values.target.value);\n }}\n >\n <option key={'opt000_rol'} value={\"\"}></option>\n {options}\n </select>\n );\n };\n\n const renderSelectorReportaExtranjero = () => {\n let options = reportaExtranjeros.map((data, ix) => {\n return <option key={'opt'+ix+'_repext'} value={data.NumEmpGlobal}>[{data.NumEmpGlobal}] {data.NomPersonaExtrajera}</option>;\n });\n\n options = [(<option key={'opt_repext'} value={\"\"}>Selecciona</option>)].concat(options);\n\n return (\n <select\n className=\"form-control\" \n value={reportaExtranjeroSelected} \n onChange={(values) => {\n setReportaExtranjeroSelected(values.target.value);\n }}\n >\n {options}\n </select>\n );\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } \n else {\n let hide = allUsers.some(item => item.descripcionRol.trim().length == 0);\n\n return (\n <div id=\"main-wrapper\">\n <Modal show={showModal} onHide={_handleCloseModal}>\n <Modal.Header closeButton>\n <Modal.Title>Cambio de Contraseña</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {warnings && <div className=\"alert alert-warning\">{warnings}</div>}\n <div className=\"form-group\">\n <h2>{userChangePassword.descripcion}</h2>\n </div>\n <div className=\"form-group\">\n <label>\n Contraseña Anterior <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInputNewPwd}\n name=\"ContraseniaAnt\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n <div className=\"form-group\">\n <label>\n Nueva Contraseña<small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInputNewPwd}\n name=\"ContraseniaNueva\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n <div className=\"form-group\">\n <label>\n Confirmar Contraseña <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInputNewPwd}\n name=\"ContraseniaNuevaConfirmacion\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={_handleCloseModal}>\n Cerrar\n </Button>\n <Button variant=\"success\" onClick={handleChangePwd}>\n Confirmar\n </Button>\n </Modal.Footer>\n </Modal>\n\n <Modal show={showModalNewUser} onHide={_handleCloseModalNewUser}>\n <Modal.Header closeButton>\n <Modal.Title>{!form.actualiza ? 'Nuevo' : 'Actualiza'} Usuario</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <form>\n {warnings && (\n <div className=\"alert alert-warning\">{warnings}</div>\n )}\n <div className=\"form-group\">\n <label>\n ID USUARIO <small>*</small>\n </label>\n <input\n type=\"text\"\n value={form.UserID || ''}\n onChange={_handleInput}\n name=\"UserID\"\n className=\"form-control\"\n placeholder=\"\"\n disabled={form.actualiza ? \"disabled\" : \"\"}\n />\n </div>\n <div className=\"form-group\">\n <label>\n NOMBRE <small>*</small>\n </label>\n <input\n type=\"text\"\n value={form.Nombre || ''}\n onChange={_handleInput}\n name=\"Nombre\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n {!form.actualiza && \n <div className=\"form-group\">\n <label>\n CONTRASEÑA <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInput}\n name=\"Contrasenia\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n }\n\n <div className=\"form-group\">\n <label>\n ROL <small>*</small>\n </label>\n {roles.length > 0 ? renderSelectorRole() : null}\n </div>\n {reportaExtranjeros.length > 0 && roleSelected == \"8\" &&\n <div className=\"form-group\">\n <label>\n REPORTA EXTRANJERO <small>*</small>\n </label>\n {renderSelectorReportaExtranjero()}\n </div>\n }\n\n {form.actualiza && <>\n <div className=\"form-group\">\n <label>\n CONTRASEÑA ANTERIOR <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInput}\n name=\"ContraseniaAnt\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n <div className=\"form-group\">\n <label>\n CONTRASEÑA NUEVA <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInput}\n name=\"ContraseniaNueva\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n <div className=\"form-group\">\n <label>\n CONFIRMAR CONTRASEÑA NUEVA <small>*</small>\n </label>\n <input\n type=\"password\"\n onChange={_handleInput}\n name=\"ContraseniaNuevaConfirmacion\"\n className=\"form-control\"\n placeholder=\"\"\n />\n </div>\n </>}\n </form>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={_handleCloseModalNewUser}>\n Cancelar\n </Button>\n <Button variant=\"success\" onClick={handleNewUser}>\n {!form.actualiza ? 'Agregar' : 'Actualizar'} Usuario\n </Button>\n </Modal.Footer>\n </Modal>\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Control de Usuarios\" icon=\"mdi mdi-account-edit\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">USUARIOS</h4>\n </div>\n <div className=\"col-6\">\n <button\n onClick={() => { _handleOpenModalNewUser();} }\n type=\"button\"\n className=\"btn btn-success waves-effect waves-light pull-right\"\n >\n NUEVO USUARIO\n </button>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"d-flex no-block\"></div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Nombre</th>\n {!hide && <th>Rol</th>}\n {/* <th></th>\n <th></th> */}\n <th>Permisos</th>\n {/* <th>Contraseña</th> */}\n </tr>\n </thead>\n <tbody>{users_table()}</tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n allUsersData: state.allUsers.allUsersData,\n allUsersError: state.allUsers.allUsersError,\n\n newUserData: state.newUser.newUserData,\n newUserError: state.newUser.newUserError,\n\n changePasswordEmployeeData:\n state.changePasswordEmployee.changePasswordEmployeeData,\n changePasswordEmployeeError:\n state.changePasswordEmployee.changePasswordEmployeeError,\n\n changePasswordAdminData: state.changePasswordAdmin.changePasswordAdminData,\n changePasswordAdminError:\n state.changePasswordAdmin.changePasswordAdminError,\n\n consultaRolesData: state.consultaRoles.consultaRolesData,\n consultaRolesError: state.consultaRoles.consultaRolesError,\n\n getReportaExtranjerosData: state.getReportaExtranjeros.getReportaExtranjerosData,\n getReportaExtranjerosError: state.getReportaExtranjeros.getReportaExtranjerosError,\n\n actualizaUsuarioData: state.actualizaUsuario.actualizaUsuarioData,\n actualizaUsuarioError: state.actualizaUsuario.actualizaUsuarioError,\n\n eliminaUsuarioData: state.eliminaUsuario.eliminaUsuarioData,\n eliminaUsuarioError: state.eliminaUsuario.eliminaUsuarioError,\n };\n};\n\nconst mapDispatchToProps = {\n getAllUsersAction,\n getNewUserAction,\n getChangePasswordEmployeeAction,\n getChangePasswordAdmin,\n getConsultaRolesAction,\n GetReportaExtranjerosAction,\n ActualizaUsuarioAction, \n EliminaUsuarioAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UsersControl)\n);\n","import { changeXml, GetReportaExtranjerosResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_REPORTAEXTRANJEROS_SUCCESS,\r\n GET_REPORTAEXTRANJEROS_ERROR,\r\n GET_REPORTAEXTRANJEROS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\nexport const GetReportaExtranjerosAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetReportaExtranjeros';\r\n let directServer = localStorage.getItem(\"REACT_APP_VACATIONS\") + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/I\" + nameService + \"/\" + action,\r\n 'Server': directServer\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n console.log('TEST REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_PURGE, payload: 'PURGE' })\r\n } else {\r\n fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n let notFound = false\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n notFound = true;\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetReportaExtranjeros: GetReportaExtranjerosResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GET_REPORTAEXTRANJEROS DATA: ', response);\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_SUCCESS, payload: response });\r\n return;\r\n }\r\n\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_REPORTAEXTRANJEROS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n GetReportaExtranjeros: GetReportaExtranjerosResponse(body)\r\n }\r\n\r\n console.log('RESPONSE DIAS_BLOQUEADOS DATA: ', response);\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET DIAS_BLOQUEADOS DATA: ', response);\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET DIAS_BLOQUEADOS DATA: ', responseError);\r\n dispatch({ type: GET_REPORTAEXTRANJEROS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n};","\r\nimport { changeXml, GetTBTipoEmpleadoResponse, GetFaltaTipoEmpleadoResponse, InsertFaltaTipoEmpleadoResponse, DeleteFaltaTipoEmpleadoResponse, UpdateFaltaTipoEmpleadoResponse, UpdateTBTipoEmpleadoResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n\r\n GETTBTIPOEMPLEADO_SUCCESS, \r\n GETTBTIPOEMPLEADO_ERROR, \r\n GETTBTIPOEMPLEADO_PURGE, \r\n\r\n UPDATETBTIPOEMPLEADO_SUCCESS, \r\n UPDATETBTIPOEMPLEADO_ERROR, \r\n UPDATETBTIPOEMPLEADO_PURGE, \r\n\r\n GETFALTATIPOEMPLEADO_SUCCESS, \r\n GETFALTATIPOEMPLEADO_ERROR, \r\n GETFALTATIPOEMPLEADO_PURGE, \r\n\r\n INSERTFALTATIPOEMPLEADO_SUCCESS, \r\n INSERTFALTATIPOEMPLEADO_ERROR, \r\n INSERTFALTATIPOEMPLEADO_PURGE, \r\n\r\n DELETEFALTATIPOEMPLEADO_SUCCESS, \r\n DELETEFALTATIPOEMPLEADO_ERROR, \r\n DELETEFALTATIPOEMPLEADO_PURGE, \r\n\r\n UPDATEFALTATIPOEMPLEADO_SUCCESS, \r\n UPDATEFALTATIPOEMPLEADO_ERROR, \r\n UPDATEFALTATIPOEMPLEADO_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetTBTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetTBTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETTBTIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetTBTipoEmpleado: GetTBTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETTBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETTBTIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETTBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETTBTIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetTBTipoEmpleado: GetTBTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE GETTBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETTBTIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETTBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETTBTIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETTBTIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: GETTBTIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateTBTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'UpdateTBTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateTBTipoEmpleado: UpdateTBTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATETBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATETBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateTBTipoEmpleado: UpdateTBTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE UPDATETBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATETBTIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATETBTIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: UPDATETBTIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const GetFaltaTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetFaltaTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETFALTATIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetFaltaTipoEmpleado: GetFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetFaltaTipoEmpleado: GetFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE GETFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: GETFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETFALTATIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: GETFALTATIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const InsertFaltaTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'InsertFaltaTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n InsertFaltaTipoEmpleado: InsertFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE INSERTFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET INSERTFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n InsertFaltaTipoEmpleado: InsertFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE INSERTFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET INSERTFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET INSERTFALTATIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: INSERTFALTATIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const DeleteFaltaTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'DeleteFaltaTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n DeleteFaltaTipoEmpleado: DeleteFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE DELETEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET DELETEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n DeleteFaltaTipoEmpleado: DeleteFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE DELETEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET DELETEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET DELETEFALTATIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: DELETEFALTATIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateFaltaTipoEmpleadoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'UpdateFaltaTipoEmpleado';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateFaltaTipoEmpleado: UpdateFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateFaltaTipoEmpleado: UpdateFaltaTipoEmpleadoResponse(body)\r\n };\r\n console.log('RESPONSE UPDATEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATEFALTATIPOEMPLEADO DATA: ', response);\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATEFALTATIPOEMPLEADO DATA: ', responseError);\r\n dispatch({ type: UPDATEFALTATIPOEMPLEADO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { getAllUsersAction } from \"../../api/actions/systemAdmin/AllUsersAction\";\r\nimport { getNewUserAction } from \"../../api/actions/systemAdmin/NewUserAction\";\r\nimport { getChangePasswordEmployeeAction } from \"../../api/actions/systemAdmin/ChangePasswordEmployeeAction\";\r\nimport { getChangePasswordAdmin } from \"../../api/actions/systemAdmin/ChangePaswordAdminAction\";\r\nimport { getConsultaRolesAction } from \"../../api/actions/systemAdmin/ConsultaRolesAction\";\r\nimport { GetReportaExtranjerosAction } from \"../../api/actions/systemAdmin/GetReportaExtranjerosAction\";\r\n\r\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\r\nimport { \r\n GetTBTipoEmpleadoAction, \r\n GetFaltaTipoEmpleadoAction, \r\n InsertFaltaTipoEmpleadoAction, \r\n DeleteFaltaTipoEmpleadoAction, \r\n UpdateFaltaTipoEmpleadoAction, \r\n} from '../../api/actions/systemAdmin/FaltaTipoEmpleadoAction';\r\n\r\nimport Topbar from \"../layout/Topbar\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title\";\r\nimport Footer from \"../layout/Footer\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport { alert, confirm } from \"../../utils/common/alert\";\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nconst IncidentTypeEmployeeControl = (props) => {\r\n const { params, server } = getParams();\r\n\r\n const { addToast } = useToasts();\r\n // addToast(\"Usuario agregado exitosamente\", {\r\n // appearance: \"success\",\r\n // autoDismiss: true,\r\n // });\r\n const [loading, setLoading] = useState(true);\r\n const [showModalRelationship, setShowModalRelationship] = useState(false);\r\n const [form, setValues] = useState({});\r\n const [warnings, setWarn] = useState(null);\r\n\r\n const [incidencias, setIncidencias] = useState([]);\r\n const [tipoEmpleado, setTipoEmpleado] = useState([]);\r\n const [faltaTipoEmpleado, setFaltaTipoEmpleado] = useState([]);\r\n\r\n const [consumed, setConsumed] = useState(0);\r\n\r\n useEffect(() => {\r\n Inicializar();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.catIncidentsData && props.catIncidentsData.isOK)) {\r\n let catalogo = [];\r\n if ('CatIncidents' in props.catIncidentsData) {\r\n catalogo = [...props.catIncidentsData.CatIncidents];\r\n }\r\n setIncidencias(catalogo);\r\n props.getCatIncidentsAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.catIncidentsError && props.catIncidentsError.isOK === false)) {\r\n setIncidencias([]);\r\n props.getCatIncidentsAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.catIncidentsData, props.catIncidentsError]);\r\n\r\n useEffect(() => {\r\n if ((props.getTBTipoEmpleadoData && props.getTBTipoEmpleadoData.isOK)) {\r\n let catalogo = [];\r\n if ('GetTBTipoEmpleado' in props.getTBTipoEmpleadoData) {\r\n catalogo = [...props.getTBTipoEmpleadoData.GetTBTipoEmpleado.TBTipoEmpleado];\r\n }\r\n setTipoEmpleado(catalogo);\r\n props.GetTBTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.getTBTipoEmpleadoError && props.getTBTipoEmpleadoError.isOK === false)) {\r\n setTipoEmpleado([]);\r\n props.GetTBTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.getTBTipoEmpleadoData, props.getTBTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if ((props.getFaltaTipoEmpleadoData && props.getFaltaTipoEmpleadoData.isOK)) {\r\n let catalogo = [];\r\n if ('GetFaltaTipoEmpleado' in props.getFaltaTipoEmpleadoData) {\r\n catalogo = [...props.getFaltaTipoEmpleadoData.GetFaltaTipoEmpleado.FaltaTipoEmpleado];\r\n }\r\n setFaltaTipoEmpleado(catalogo);\r\n props.GetFaltaTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.getFaltaTipoEmpleadoError && props.getFaltaTipoEmpleadoError.isOK === false)) {\r\n setFaltaTipoEmpleado([]);\r\n props.GetFaltaTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.getFaltaTipoEmpleadoData, props.getFaltaTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if ((props.insertFaltaTipoEmpleadoData && props.insertFaltaTipoEmpleadoData.isOK)) {\r\n if ('InsertFaltaTipoEmpleado' in props.insertFaltaTipoEmpleadoData) {\r\n alert(props.insertFaltaTipoEmpleadoData.InsertFaltaTipoEmpleado.Mensaje);\r\n Inicializar();\r\n }\r\n props.InsertFaltaTipoEmpleadoAction('PURGE', '');\r\n } \r\n else if ((props.insertFaltaTipoEmpleadoError && props.insertFaltaTipoEmpleadoError.isOK === false)) {\r\n props.InsertFaltaTipoEmpleadoAction('PURGE', '');\r\n }\r\n }, [props.insertFaltaTipoEmpleadoData, props.insertFaltaTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if ((props.deleteFaltaTipoEmpleadoData && props.deleteFaltaTipoEmpleadoData.isOK)) {\r\n if ('DeleteFaltaTipoEmpleado' in props.deleteFaltaTipoEmpleadoData) {\r\n alert(props.deleteFaltaTipoEmpleadoData.DeleteFaltaTipoEmpleado.Mensaje);\r\n Inicializar();\r\n }\r\n props.DeleteFaltaTipoEmpleadoAction('PURGE', '');\r\n } \r\n else if ((props.deleteFaltaTipoEmpleadoError && props.deleteFaltaTipoEmpleadoError.isOK === false)) {\r\n props.DeleteFaltaTipoEmpleadoAction('PURGE', '');\r\n }\r\n }, [props.deleteFaltaTipoEmpleadoData, props.deleteFaltaTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if ((props.updateFaltaTipoEmpleadoData && props.updateFaltaTipoEmpleadoData.isOK)) {\r\n if ('UpdateFaltaTipoEmpleado' in props.updateFaltaTipoEmpleadoData) {\r\n alert(props.updateFaltaTipoEmpleadoData.UpdateFaltaTipoEmpleado.Mensaje);\r\n Inicializar();\r\n }\r\n props.UpdateFaltaTipoEmpleadoAction('PURGE', '');\r\n } \r\n else if ((props.updateFaltaTipoEmpleadoError && props.updateFaltaTipoEmpleadoError.isOK === false)) {\r\n props.UpdateFaltaTipoEmpleadoAction('PURGE', '');\r\n }\r\n }, [props.updateFaltaTipoEmpleadoData, props.updateFaltaTipoEmpleadoError]);\r\n\r\n // useEffect(() => {\r\n // if (form != null) {\r\n // console.log('OIHB ESP', form);\r\n // }\r\n // }, [form]);\r\n\r\n useEffect(() => {\r\n //console.log('OIHB ESP', consumed);\r\n if (consumed >= 3) {\r\n setLoading(false);\r\n setConsumed(0);\r\n }\r\n }, [consumed]);\r\n\r\n const Inicializar = () => {\r\n //setLoading(true);\r\n getCatIncidents();\r\n GetTBTipoEmpleado();\r\n GetFaltaTipoEmpleado();\r\n };\r\n\r\n const getCatIncidents = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.getCatIncidentsAction(data, server);\r\n };\r\n\r\n const GetTBTipoEmpleado = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.GetTBTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const GetFaltaTipoEmpleado = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.GetFaltaTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const InsertFaltaTipoEmpleado = (FaltaID, TipoEmpleadoID) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FaltaID': FaltaID,\r\n 'tem:TipoEmpleadoID': TipoEmpleadoID,\r\n };\r\n props.InsertFaltaTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const DeleteFaltaTipoEmpleado = (FTEID) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FTEID': FTEID,\r\n };\r\n props.DeleteFaltaTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const UpdateFaltaTipoEmpleado = (FTEID, FaltaID, TipoEmpleadoID) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FTEID': FTEID,\r\n 'tem:FaltaID': FaltaID,\r\n 'tem:TipoEmpleadoID': TipoEmpleadoID,\r\n };\r\n props.UpdateFaltaTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const _renderSelector = (name, array, value, text) => {\r\n let options = [(<option key={'opt_' + name} value={null}>Sin datos</option>)];\r\n if (array.length > 0) {\r\n options = array.map((m, ix) => {\r\n return (<option key={'opt'+ix+'_' + name} value={m[value]}>[{m[value]}] {m[text]}</option>);\r\n });\r\n\r\n options = [(<option key={'opt_' + name} value={null}>Selecciona</option>)].concat(options);\r\n }\r\n \r\n return (\r\n <select\r\n name={name}\r\n value={form[name]}\r\n className=\"form-control\"\r\n onChange={_handleInput}>\r\n {options}\r\n </select>\r\n );\r\n };\r\n\r\n const _renderTablaFaltaTipoEmpleado = () => {\r\n let data = (<tr><td colSpan=\"3\" style={ {fontWeight: 'bold', textAlign: 'center', color: 'gray'} }>SIN REGISTROS</td></tr>);\r\n if (faltaTipoEmpleado.length > 0) {\r\n data = faltaTipoEmpleado.map((m, ix) => {\r\n let inc = incidencias.find(f => f.id == m.Falta_ID);\r\n let tpemp = tipoEmpleado.find(f => f.TipoEmpleado_ID == m.TipoEmpleado_ID);\r\n\r\n inc = (inc != null ? `[${m.Falta_ID}] ` + inc.descripcion : m.Falta_ID);\r\n tpemp = (tpemp != null ? `[${m.TipoEmpleado_ID}] ` + tpemp.Descripcion : m.TipoEmpleado_ID);\r\n\r\n return (\r\n <tr key={'tr'+ix+'_fte'}>\r\n <td>{inc}</td>\r\n <td>{tpemp}</td>\r\n <td style={ {width:'50px', textAlign: 'center'} } onClick={() => _handleOpenModalRelationship(m.FTE_ID, m.Falta_ID, m.TipoEmpleado_ID)}>\r\n <i className=\"mdi mdi-update\"></i>\r\n </td>\r\n <td style={ {width:'50px', textAlign: 'center'} } onClick={() => _handleDeleteRelationship(m.FTE_ID) }>\r\n <i className=\"mdi mdi-close\"></i>\r\n </td>\r\n </tr>);\r\n });\r\n }\r\n\r\n return (\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>Incidencia</th>\r\n <th>Tipo de Empleado</th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{data}</tbody>\r\n </table>\r\n );\r\n };\r\n\r\n const _handleCloseModalRelationship = () => {\r\n setShowModalRelationship(false);\r\n setWarn(null);\r\n setValues({});\r\n };\r\n\r\n const _handleOpenModalRelationship = (FTE_ID, Falta_ID, TipoEmpleado_ID) => {\r\n setValues({\r\n ...form, \r\n FTE_ID: FTE_ID, \r\n Falta_ID: Falta_ID, \r\n TipoEmpleado_ID: TipoEmpleado_ID, \r\n }); \r\n setShowModalRelationship(true);\r\n };\r\n\r\n const _handleNewRelationship = () => {\r\n if (form.Falta_ID == undefined || form.TipoEmpleado_ID == undefined || \r\n form.Falta_ID == null || form.TipoEmpleado_ID == null) {\r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n let copy = {...form};\r\n _handleCloseModalRelationship();\r\n\r\n if (!copy.FTE_ID) {\r\n InsertFaltaTipoEmpleado(copy.Falta_ID, copy.TipoEmpleado_ID);\r\n }\r\n else {\r\n UpdateFaltaTipoEmpleado(copy.FTE_ID, copy.Falta_ID, copy.TipoEmpleado_ID)\r\n }\r\n };\r\n\r\n const _handleDeleteRelationship = (FTEID) => {\r\n confirm('Se eliminará este elemento ¿Desea continuar?', ['Si', 'No']).then(cancel => {\r\n if (!cancel) {\r\n DeleteFaltaTipoEmpleado(FTEID);\r\n //setShowModalRelationship(false);\r\n }\r\n });\r\n };\r\n\r\n const _handleInput = (event) => {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.value,\r\n });\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal show={showModalRelationship} onHide={_handleCloseModalRelationship}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{form.FTE_ID ? 'Modifcar Relación' : 'Nueva Relación'}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <form>\r\n {warnings && (\r\n <div className=\"alert alert-warning\">{warnings}</div>\r\n )}\r\n <div className=\"form-group\">\r\n <label>\r\n INCIDENCIA\r\n </label>\r\n {_renderSelector('Falta_ID', incidencias, 'id', 'descripcion')}\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n TIPO EMPLEADO\r\n </label>\r\n {_renderSelector('TipoEmpleado_ID', tipoEmpleado, 'TipoEmpleado_ID', 'Descripcion')}\r\n </div>\r\n </form>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModalRelationship}>\r\n Cancelar\r\n </Button>\r\n <Button variant=\"success\" onClick={_handleNewRelationship}>\r\n Guardar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Control de Filtrado Incidencias\" icon=\"mdi mdi-account-edit\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">RELACIÓN INCIDENCIA Y TIPO EMPLEADO</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n <button\r\n onClick={() => setShowModalRelationship(true)}\r\n type=\"button\"\r\n className=\"btn btn-success waves-effect waves-light pull-right\"\r\n >\r\n NUEVA RELACIÓN\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\"></div>\r\n <div className=\"table-responsive m-t-20\">\r\n {_renderTablaFaltaTipoEmpleado()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n catIncidentsData: state.catIncidents.catIncidentsData,\r\n catIncidentsError: state.catIncidents.catIncidentsError,\r\n\r\n getTBTipoEmpleadoData: state.getTBTipoEmpleado.getTBTipoEmpleadoData,\r\n getTBTipoEmpleadoError: state.getTBTipoEmpleado.getTBTipoEmpleadoError,\r\n\r\n getFaltaTipoEmpleadoData: state.getFaltaTipoEmpleado.getFaltaTipoEmpleadoData,\r\n getFaltaTipoEmpleadoError: state.getFaltaTipoEmpleado.getFaltaTipoEmpleadoError,\r\n\r\n insertFaltaTipoEmpleadoData: state.insertFaltaTipoEmpleado.insertFaltaTipoEmpleadoData,\r\n insertFaltaTipoEmpleadoError: state.insertFaltaTipoEmpleado.insertFaltaTipoEmpleadoError,\r\n\r\n deleteFaltaTipoEmpleadoData: state.deleteFaltaTipoEmpleado.deleteFaltaTipoEmpleadoData,\r\n deleteFaltaTipoEmpleadoError: state.deleteFaltaTipoEmpleado.deleteFaltaTipoEmpleadoError,\r\n\r\n updateFaltaTipoEmpleadoData: state.updateFaltaTipoEmpleado.updateFaltaTipoEmpleadoData,\r\n updateFaltaTipoEmpleadoError: state.updateFaltaTipoEmpleado.updateFaltaTipoEmpleadoError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getCatIncidentsAction, \r\n GetTBTipoEmpleadoAction, \r\n GetFaltaTipoEmpleadoAction, \r\n InsertFaltaTipoEmpleadoAction, \r\n DeleteFaltaTipoEmpleadoAction, \r\n UpdateFaltaTipoEmpleadoAction, \r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(IncidentTypeEmployeeControl)\r\n);\r\n","\r\nimport { changeXml, GetTBFaltaResponse, InsertTBFaltaResponse, DeleteTBFaltaResponse, UpdateTBFaltaResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n GETTBFALTA_SUCCESS, \r\n GETTBFALTA_ERROR, \r\n GETTBFALTA_PURGE, \r\n\r\n INSERTTBFALTA_SUCCESS, \r\n INSERTTBFALTA_ERROR, \r\n INSERTTBFALTA_PURGE, \r\n\r\n DELETETBFALTA_SUCCESS, \r\n DELETETBFALTA_ERROR, \r\n DELETETBFALTA_PURGE, \r\n\r\n UPDATETBFALTA_SUCCESS, \r\n UPDATETBFALTA_ERROR, \r\n UPDATETBFALTA_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetTBFaltaAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoTabuladores';\r\n let action = 'GetTBFalta';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETTBFALTA_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetTBFalta: GetTBFaltaResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETTBFALTA DATA: ', response);\r\n dispatch({ type: GETTBFALTA_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETTBFALTA DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETTBFALTA_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetTBFalta: GetTBFaltaResponse(body)\r\n };\r\n console.log('RESPONSE GETTBFALTA DATA: ', response);\r\n dispatch({ type: GETTBFALTA_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETTBFALTA DATA: ', response);\r\n dispatch({ type: GETTBFALTA_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETTBFALTA DATA: ', responseError);\r\n dispatch({ type: GETTBFALTA_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const InsertTBFaltaAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoTabuladores';\r\n let action = 'InsertTBFalta';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: INSERTTBFALTA_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n InsertTBFalta: InsertTBFaltaResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE INSERTTBFALTA DATA: ', response);\r\n dispatch({ type: INSERTTBFALTA_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET INSERTTBFALTA DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INSERTTBFALTA_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n InsertTBFalta: InsertTBFaltaResponse(body)\r\n };\r\n console.log('RESPONSE INSERTTBFALTA DATA: ', response);\r\n dispatch({ type: INSERTTBFALTA_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET INSERTTBFALTA DATA: ', response);\r\n dispatch({ type: INSERTTBFALTA_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET INSERTTBFALTA DATA: ', responseError);\r\n dispatch({ type: INSERTTBFALTA_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const DeleteTBFaltaAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoTabuladores';\r\n let action = 'DeleteTBFalta';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: DELETETBFALTA_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n DeleteTBFalta: DeleteTBFaltaResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE DELETETBFALTA DATA: ', response);\r\n dispatch({ type: DELETETBFALTA_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET DELETETBFALTA DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: DELETETBFALTA_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n DeleteTBFalta: DeleteTBFaltaResponse(body)\r\n };\r\n console.log('RESPONSE DELETETBFALTA DATA: ', response);\r\n dispatch({ type: DELETETBFALTA_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET DELETETBFALTA DATA: ', response);\r\n dispatch({ type: DELETETBFALTA_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET DELETETBFALTA DATA: ', responseError);\r\n dispatch({ type: DELETETBFALTA_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateTBFaltaAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoTabuladores';\r\n let action = 'UpdateTBFalta';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATETBFALTA_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateTBFalta: UpdateTBFaltaResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATETBFALTA DATA: ', response);\r\n dispatch({ type: UPDATETBFALTA_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATETBFALTA DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATETBFALTA_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateTBFalta: UpdateTBFaltaResponse(body)\r\n };\r\n console.log('RESPONSE UPDATETBFALTA DATA: ', response);\r\n dispatch({ type: UPDATETBFALTA_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATETBFALTA DATA: ', response);\r\n dispatch({ type: UPDATETBFALTA_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATETBFALTA DATA: ', responseError);\r\n dispatch({ type: UPDATETBFALTA_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import { changeXml, UpdateValorConfigResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n UPDATEVALORCONFIG_SUCCESS, \r\n UPDATEVALORCONFIG_ERROR, \r\n UPDATEVALORCONFIG_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const UpdateValorConfigAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'UpdateValorConfig';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATEVALORCONFIG_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateValorConfig: UpdateValorConfigResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATEVALORCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEVALORCONFIG_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATEVALORCONFIG DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATEVALORCONFIG_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateValorConfig: UpdateValorConfigResponse(body)\r\n };\r\n console.log('RESPONSE UPDATEVALORCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEVALORCONFIG_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATEVALORCONFIG DATA: ', response);\r\n dispatch({ type: UPDATEVALORCONFIG_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATEVALORCONFIG DATA: ', responseError);\r\n dispatch({ type: UPDATEVALORCONFIG_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { \r\n GetTBFaltaAction, \r\n InsertTBFaltaAction, \r\n UpdateTBFaltaAction,\r\n DeleteTBFaltaAction, \r\n} from '../../api/actions/systemAdmin/TBFaltaAction';\r\nimport { GetValoresConfigAction } from '../../api/actions/common/GetValoresConfigAction';\r\nimport { UpdateValorConfigAction } from '../../api/actions/common/UpdateValorConfigAction';\r\n\r\nimport Topbar from \"../layout/Topbar\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title\";\r\nimport Footer from \"../layout/Footer\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport { alert, confirm } from \"../../utils/common/alert\";\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nconst TabFaltaControl = (props) => {\r\n const { params, server } = getParams();\r\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\r\n\r\n const { addToast } = useToasts();\r\n // addToast(\"Usuario agregado exitosamente\", {\r\n // appearance: \"success\",\r\n // autoDismiss: true,\r\n // });\r\n const [loading, setLoading] = useState(true);\r\n const [loadingCheck, setLoadingCheck] = useState(false);\r\n const [showModalTBFalta, setShowModalTBFalta] = useState(false);\r\n const [form, setValues] = useState({});\r\n const [warnings, setWarn] = useState(null);\r\n\r\n const [optSolInc] = useState([\r\n {value: 0, text: 'Ambas'},\r\n {value: 1, text: 'No'},\r\n {value: 2, text: 'Si'},\r\n ]);\r\n const [optSolIncSelected, setOptSolIncSelected] = useState(2);\r\n const [tbFalta, setTBFalta] = useState([]);\r\n //const [valoresConfig, setValoresConfig] = useState([]);\r\n const [formSolicitudIncidencia, setFormSolicitudIncidencia] = useState([]);\r\n const [formularioIncidencia, setFormularioIncidencia] = useState((process.env.REACT_APP_IS_KRONES == '1'));\r\n\r\n const [consumed, setConsumed] = useState(0);\r\n\r\n useEffect(() => {\r\n Inicializar();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.getTBFaltaData && props.getTBFaltaData.isOK)) {\r\n let catalogo = [];\r\n if ('GetTBFalta' in props.getTBFaltaData) {\r\n catalogo = [...props.getTBFaltaData.GetTBFalta.TBFalta];\r\n }\r\n setTBFalta(catalogo);\r\n props.GetTBFaltaAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.getTBFaltaError && props.getTBFaltaError.isOK === false)) {\r\n setTBFalta([]);\r\n props.GetTBFaltaAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.getTBFaltaData, props.getTBFaltaError]);\r\n\r\n useEffect(() => {\r\n if ((props.insertTBFaltaData && props.insertTBFaltaData.isOK)) {\r\n let result = {...props.insertTBFaltaData.InsertTBFalta};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.InsertTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.insertTBFaltaError && props.insertTBFaltaError.isOK === false)) {\r\n props.InsertTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.insertTBFaltaData, props.insertTBFaltaError]);\r\n\r\n useEffect(() => {\r\n if ((props.updateTBFaltaData && props.updateTBFaltaData.isOK)) {\r\n let result = {...props.updateTBFaltaData.UpdateTBFalta};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.UpdateTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.updateTBFaltaError && props.updateTBFaltaError.isOK === false)) {\r\n props.UpdateTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.updateTBFaltaData, props.updateTBFaltaError]);\r\n\r\n useEffect(() => {\r\n if ((props.deleteTBFaltaData && props.deleteTBFaltaData.isOK)) {\r\n let result = {...props.deleteTBFaltaData.DeleteTBFalta};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.DeleteTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.deleteTBFaltaError && props.deleteTBFaltaError.isOK === false)) {\r\n props.DeleteTBFaltaAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.deleteTBFaltaData, props.deleteTBFaltaError]);\r\n\r\n useEffect(() => {\r\n if (props.getValoresConfigData && props.getValoresConfigData.isOK === true) {\r\n let configuraciones = [...props.getValoresConfigData.ValoresConfig.Configuraciones];\r\n if (configuraciones.length > 0) {\r\n\r\n // var formInc = configuraciones.find(f => f.Seccion == 'SICONSULTA' && f.Variable == 'FormularioIncidencia');\r\n // if (formInc != null) { \r\n // setFormularioIncidencia(process.env.REACT_APP_IS_KRONES == '1' && formInc.Valor == '1');\r\n // }\r\n //setValoresConfig(configuraciones);\r\n let solInc = configuraciones.find(f => f.Seccion == 'Generales' && f.Variable == 'SolicitudIncidencia'); \r\n if (solInc != null) {\r\n setFormSolicitudIncidencia(formalizaSolicitudIncidencia(solInc.Valor));\r\n }\r\n\r\n }\r\n else {\r\n //setValoresConfig([]);\r\n setFormSolicitudIncidencia([]);\r\n }\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n } \r\n else if (props.getValoresConfigError && props.getValoresConfigError.isOK === false) {\r\n //setValoresConfig([]);\r\n setFormSolicitudIncidencia([]);\r\n props.GetValoresConfigAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getValoresConfigData, props.getValoresConfigError]);\r\n\r\n useEffect(() => {\r\n if ((props.updateValorConfigData && props.updateValorConfigData.isOK)) {\r\n //let result = {...props.updateValorConfigData.UpdateValorConfig};\r\n //if ('Exito' in result && 'Mensaje' in result) {\r\n //if (result.Exito) {\r\n Inicializar();\r\n //}\r\n //}\r\n\r\n props.UpdateValorConfigAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.updateValorConfigError && props.updateValorConfigError.isOK === false)) {\r\n Inicializar();\r\n props.UpdateValorConfigAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.updateValorConfigData, props.updateValorConfigError]);\r\n\r\n useEffect(() => {\r\n if (form != null) {\r\n console.log('OIHB ESP', form);\r\n }\r\n }, [form]);\r\n\r\n useEffect(() => {\r\n // console.log('OIHB ESP', consumed);\r\n if (consumed >= 1) {\r\n setLoading(false);\r\n setConsumed(0);\r\n }\r\n }, [consumed]);\r\n\r\n const Inicializar = () => {\r\n GetTBFalta();\r\n // GetValoresConfig('SICONSULTA');\r\n GetValoresConfig('Generales');\r\n };\r\n\r\n const GetTBFalta = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.GetTBFaltaAction(data, server);\r\n };\r\n\r\n const InsertTBFalta = (FaltaID, Descripcion, Descuenta, DescuentaVacacion) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FaltaID': FaltaID,\r\n 'tem:Descripcion': Descripcion,\r\n 'tem:Descuenta': Descuenta,\r\n 'tem:DescuentaVacacion': DescuentaVacacion,\r\n };\r\n props.InsertTBFaltaAction(data, server);\r\n };\r\n\r\n const UpdateTBFalta = (FaltaID, Descripcion, Descuenta, DescuentaVacacion) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FaltaID': FaltaID,\r\n 'tem:Descripcion': Descripcion,\r\n 'tem:Descuenta': Descuenta,\r\n 'tem:DescuentaVacacion': DescuentaVacacion,\r\n };\r\n props.UpdateTBFaltaAction(data, server);\r\n };\r\n\r\n const DeleteTBFalta = (FaltaID) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:FaltaID': FaltaID,\r\n };\r\n props.DeleteTBFaltaAction(data, server);\r\n };\r\n\r\n const GetValoresConfig = (seccion, variable = '') => {\r\n let data = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion, \r\n \"tem:Variable\": variable,\r\n };\r\n \r\n props.GetValoresConfigAction(data, server);\r\n };\r\n\r\n const UpdateValorConfig = (seccion, variable, Valor) => {\r\n let data = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion, \r\n \"tem:Variable\": variable, \r\n \"tem:Valor\": Valor,\r\n };\r\n \r\n props.UpdateValorConfigAction(data, server);\r\n };\r\n\r\n const formalizaSolicitudIncidencia = (Valor) => {\r\n let solInc = [];\r\n\r\n solInc = Valor.split(',').map(m1 => { \r\n let obj = { Checked: false, FaltaID: '', Formulario: '' };\r\n\r\n let spl = m1.split('=');\r\n if (spl.length > 0) {\r\n obj.Checked = true;\r\n obj.FaltaID = spl[0];\r\n if (spl.length > 1) obj.Formulario = spl[1];\r\n }\r\n\r\n return obj;\r\n });\r\n\r\n //console.log('OIHB DATA', solInc);\r\n return solInc;\r\n };\r\n\r\n const desFormalizaSolicitudIncidencia = (SolInc = []) => {\r\n let valor = \"\";\r\n let solInc = SolInc.filter(f => f.Checked);\r\n\r\n if (solInc.length > 0) {\r\n valor = solInc.map(m => {\r\n let item = m.FaltaID;\r\n if ((m.Formulario || '').trim().length > 0) item += \"=\" + m.Formulario;\r\n return item;\r\n }).join(',');\r\n }\r\n\r\n return valor;\r\n };\r\n\r\n const actualizaSolicitudIncidencia = (Checked, FaltaID, Formulario = null) => {\r\n let copy = [...formSolicitudIncidencia];\r\n let obj = copy.find(s => s.FaltaID == FaltaID);\r\n if (obj == null) {\r\n copy.push({\r\n Checked: Checked,\r\n FaltaID: FaltaID,\r\n Formulario: (Formulario || ''),\r\n });\r\n //setFormSolicitudIncidencia(copy);\r\n }\r\n else {\r\n obj.Checked = Checked;\r\n obj.Formulario = (Formulario != null ? Formulario : '');\r\n //setFormSolicitudIncidencia(copy);\r\n }\r\n\r\n return copy;\r\n };\r\n\r\n const _renderTablaTBFalta = () => {\r\n let data = (<tr><td colSpan=\"3\" style={ {fontWeight: 'bold', textAlign: 'center', color: 'gray'} }>SIN REGISTROS</td></tr>);\r\n\r\n let copyTBFalta = [...tbFalta];\r\n copyTBFalta.forEach(fe => {\r\n let solinc = formSolicitudIncidencia.find(f => f.Checked && f.FaltaID == fe.Falta_ID);\r\n fe.SolIncChecked = (solinc != null ? 'true' : 'false');\r\n fe.SolIncFormulario = (solinc != null ? solinc.Formulario : null);\r\n });\r\n\r\n //console.log('OIHB DATA renderTabla', optSolIncSelected);\r\n\r\n if (optSolIncSelected == 1) {\r\n copyTBFalta = copyTBFalta.filter(f => f.SolIncChecked == 'false');\r\n }\r\n else if (optSolIncSelected == 2) {\r\n copyTBFalta = copyTBFalta.filter(f => f.SolIncChecked == 'true');\r\n }\r\n\r\n if (copyTBFalta.length > 0) {\r\n data = copyTBFalta.map((m, ix) => {\r\n return (\r\n <tr key={'tr'+ix+'_fte'}>\r\n\r\n <td>{m.Falta_ID}</td>\r\n <td>{m.Descripcion}</td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n // <input name={'tdChk_Desc' + m.Falta_ID} \r\n // checked={(m.Descuenta == 'true')}\r\n // type=\"checkbox\" \r\n // onChange={e => {\r\n // setLoadingCheck(true);\r\n // UpdateTBFalta(m.Falta_ID, m.Descripcion, e.target.checked, m.DescuentaVacacion);\r\n // }} \r\n // className=\"with-gap\" \r\n // id={'tdChk_Desc' + m.Falta_ID} />\r\n <label>{(m.Descuenta == 'true' ? 'Si' : 'No')}</label>\r\n }\r\n </td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n // <input name={'tdChk_DescVac' + m.Falta_ID} \r\n // checked={(m.DescuentaVacacion == 'true')}\r\n // type=\"checkbox\" \r\n // onChange={e => {\r\n // setLoadingCheck(true);\r\n // UpdateTBFalta(m.Falta_ID, m.Descripcion, m.Descuenta, e.target.checked);\r\n // }} \r\n // className=\"with-gap\" \r\n // id={'tdChk_DescVac' + m.Falta_ID} />\r\n <label>{(m.DescuentaVacacion == 'true' ? 'Si' : 'No')}</label>\r\n }\r\n </td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n <input name={'tdChk_SolInc' + m.Falta_ID} \r\n checked={formSolicitudIncidencia.some(s => s.Checked && s.FaltaID == m.Falta_ID)}\r\n type=\"checkbox\" \r\n onChange={e => {\r\n setLoadingCheck(true);\r\n _handleSolicitudIncidencias(e.target.checked, m.Falta_ID, '');\r\n }} \r\n className=\"with-gap\" \r\n id={'tdChk_SolInc' + m.Falta_ID} />\r\n // <label>{(m.SolIncChecked == 'true' ? 'Si' : 'No')}</label>\r\n }\r\n </td>\r\n <td style={ {width:'50px', textAlign: 'center', cursor: 'pointer'} } onClick={() => _handleOpenModalTBFalta(true, m.Falta_ID, m.Descripcion, m.Descuenta, m.DescuentaVacacion, m.SolIncChecked, m.SolIncFormulario)}>\r\n <i className=\"mdi mdi-update\"></i> Editar\r\n </td>\r\n <td style={ {width:'50px', textAlign: 'center', cursor: 'pointer'} } onClick={() => _handleDeleteTBFalta(m.Falta_ID) }>\r\n <i className=\"mdi mdi-close\"></i> Eliminar\r\n </td>\r\n </tr>);\r\n });\r\n }\r\n\r\n return (\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>Falta ID</th>\r\n <th>Descripción</th>\r\n <th>Descuenta</th>\r\n <th>Desc. Vacación</th>\r\n <th>Sol. Incidencia</th>\r\n <th></th>\r\n {/* <th></th> */}\r\n </tr>\r\n </thead>\r\n <tbody>{data}</tbody>\r\n </table>\r\n );\r\n };\r\n\r\n const _handleOpenModalTBFalta = (IsUpdate = false, FaltaID = null, Descripcion = null, Descuenta = 'false', DescuentaVacacion = 'false', SolIncChecked = 'true', SolIncFormulario = null) => {\r\n setValues({\r\n ...form, \r\n IsUpdate: IsUpdate,\r\n FaltaID: FaltaID, \r\n Descripcion: Descripcion, \r\n Descuenta: Descuenta, \r\n DescuentaVacacion: DescuentaVacacion,\r\n SolIncChecked: SolIncChecked,\r\n SolIncFormulario: SolIncFormulario,\r\n }); \r\n setShowModalTBFalta(true);\r\n };\r\n\r\n const _handleCloseModalTBFalta = () => {\r\n setShowModalTBFalta(false);\r\n setWarn(null);\r\n setValues({});\r\n };\r\n\r\n const _handleNewTBFalta = () => {\r\n if ((form.Descripcion == undefined || form.Descripcion == null) || \r\n (form.Descuenta == undefined || form.Descuenta == null) || \r\n (form.DescuentaVacacion == undefined || form.DescuentaVacacion == null)) { \r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n let copyForm = {...form};\r\n _handleCloseModalTBFalta();\r\n\r\n _handleSolicitudIncidencias((copyForm.SolIncChecked == 'true'), copyForm.FaltaID, copyForm.SolIncFormulario);\r\n // //console.log('OIHB DATA', 'ANTES', copyForm, formSolicitudIncidencia);\r\n // let copySolInc = actualizaSolicitudIncidencia((copyForm.SolIncChecked == 'true'), copyForm.FaltaID, copyForm.SolIncFormulario);\r\n // let valor = desFormalizaSolicitudIncidencia(copySolInc);\r\n // //console.log('OIHB DATA', 'DESPUES', copyForm, copySolInc);\r\n // UpdateValorConfig('Generales', 'SolicitudIncidencia', valor);\r\n\r\n if (!copyForm.IsUpdate) {\r\n InsertTBFalta(copyForm.FaltaID, copyForm.Descripcion, copyForm.Descuenta, copyForm.DescuentaVacacion);\r\n }\r\n else {\r\n UpdateTBFalta(copyForm.FaltaID, copyForm.Descripcion, copyForm.Descuenta, copyForm.DescuentaVacacion);\r\n }\r\n };\r\n\r\n const _handleSolicitudIncidencias = (Checked, FaltaID, Formulario) => {\r\n //console.log('OIHB DATA', 'ANTES', copyForm, formSolicitudIncidencia);\r\n let copySolInc = actualizaSolicitudIncidencia(Checked, FaltaID, Formulario);\r\n let valor = desFormalizaSolicitudIncidencia(copySolInc);\r\n //console.log('OIHB DATA', 'DESPUES', copyForm, copySolInc);\r\n UpdateValorConfig('Generales', 'SolicitudIncidencia', valor);\r\n };\r\n\r\n const _handleDeleteTBFalta = (FaltaID) => {\r\n confirm('Se eliminará este elemento ¿Desea continuar?', ['Si', 'No']).then(cancel => {\r\n if (!cancel) {\r\n _handleSolicitudIncidencias(false, FaltaID, '');\r\n DeleteTBFalta(FaltaID);\r\n }\r\n });\r\n };\r\n\r\n const _handleInput = (event) => {\r\n if (event.target.type == 'text') {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.value,\r\n });\r\n }\r\n else if (event.target.type == 'checkbox') {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.checked ? 'true' : 'false',\r\n });\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal show={showModalTBFalta} onHide={_handleCloseModalTBFalta}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{form.IsUpdate ? 'Modifcar Falta' : 'Nueva Falta'}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <form>\r\n {warnings && (\r\n <div className=\"alert alert-warning\">{warnings}</div>\r\n )}\r\n <div className=\"form-group\">\r\n <label>Falta ID</label>\r\n <input\r\n value={form.FaltaID}\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"FaltaID\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n disabled={form.IsUpdate}\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Descripcion</label>\r\n <input\r\n value={form.Descripcion}\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"Descripcion\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Descuenta</label>\r\n <input\r\n checked={(form.Descuenta == 'true')}\r\n type=\"checkbox\" \r\n onChange={_handleInput}\r\n name=\"Descuenta\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Descuenta Vacación</label>\r\n <input\r\n checked={(form.DescuentaVacacion == 'true')}\r\n type=\"checkbox\" \r\n onChange={_handleInput}\r\n name=\"DescuentaVacacion\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Solicitud Incidencia Activo</label>\r\n <input\r\n checked={form.SolIncChecked == 'true'}\r\n type=\"checkbox\" \r\n onChange={_handleInput}\r\n name=\"SolIncChecked\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n {(formularioIncidencia && form.SolIncChecked == 'true') && <div className=\"form-group\">\r\n <label>Solicitud Incidencia Formulario</label>\r\n <input\r\n value={form.SolIncFormulario}\r\n type=\"text\" \r\n onChange={_handleInput}\r\n name=\"SolIncFormulario\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>}\r\n </form>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModalTBFalta}>\r\n Cancelar\r\n </Button>\r\n <Button variant=\"success\" onClick={_handleNewTBFalta}>\r\n Guardar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Control de Tabulador de Faltas\" icon=\"mdi mdi-account-edit\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">TABULADOR DE FALTAS</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n <button\r\n onClick={() => _handleOpenModalTBFalta()}\r\n type=\"button\"\r\n className=\"btn btn-success waves-effect waves-light pull-right\"\r\n >\r\n NUEVA FALTA\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\"></div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-md-3\">\r\n <div className=\"form-group\">\r\n <label>Solicitud Inicidencias</label>\r\n <select\r\n value={optSolIncSelected}\r\n className=\"form-control\"\r\n onChange={(e) => {\r\n setOptSolIncSelected(e.target.value);\r\n }}>\r\n {optSolInc.map((data, ix) => {\r\n return <option key={'opt'+ix+'_rol'} value={data.value}>{data.text}</option>;\r\n })}\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"table-responsive m-t-20\">\r\n {_renderTablaTBFalta()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getTBFaltaData: state.getTBFalta.getTBFaltaData,\r\n getTBFaltaError: state.getTBFalta.getTBFaltaError,\r\n\r\n insertTBFaltaData: state.insertTBFalta.insertTBFaltaData,\r\n insertTBFaltaError: state.insertTBFalta.insertTBFaltaError,\r\n\r\n updateTBFaltaData: state.updateTBFalta.updateTBFaltaData,\r\n updateTBFaltaError: state.updateTBFalta.updateTBFaltaError,\r\n\r\n deleteTBFaltaData: state.deleteTBFalta.deleteTBFaltaData,\r\n deleteTBFaltaError: state.deleteTBFalta.deleteTBFaltaError,\r\n\r\n deleteTBFaltaData: state.deleteTBFalta.deleteTBFaltaData,\r\n deleteTBFaltaError: state.deleteTBFalta.deleteTBFaltaError,\r\n\r\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n\r\n updateValorConfigData: state.updateValorConfig.updateValorConfigData,\r\n updateValorConfigError: state.updateValorConfig.updateValorConfigError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n GetTBFaltaAction, \r\n InsertTBFaltaAction, \r\n UpdateTBFaltaAction,\r\n DeleteTBFaltaAction, \r\n GetValoresConfigAction,\r\n UpdateValorConfigAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(TabFaltaControl)\r\n);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { \r\n GetTBFaltaAction, \r\n InsertTBFaltaAction, \r\n UpdateTBFaltaAction,\r\n DeleteTBFaltaAction, \r\n} from '../../api/actions/systemAdmin/TBFaltaAction';\r\n\r\nimport { \r\n GetTBAutorizadorFijoAction, \r\n InsertTBAutorizadorFijoAction, \r\n UpdateTBAutorizadorFijoAction,\r\n DeleteTBAutorizadorFijoAction, \r\n } from '../../api/actions/systemAdmin/TBAutorizadorFijoAction';\r\n\r\nimport { GetValoresConfigAction } from '../../api/actions/common/GetValoresConfigAction';\r\nimport { UpdateValorConfigAction } from '../../api/actions/common/UpdateValorConfigAction';\r\n\r\nimport Topbar from \"../layout/Topbar\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title\";\r\nimport Footer from \"../layout/Footer\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport { alert, confirm } from \"../../utils/common/alert\";\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nconst TBAutorizadorFijoControl = (props) => {\r\n const { params, server } = getParams();\r\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\r\n\r\n const { addToast } = useToasts();\r\n // addToast(\"Usuario agregado exitosamente\", {\r\n // appearance: \"success\",\r\n // autoDismiss: true,\r\n // });\r\n const [loading, setLoading] = useState(true);\r\n const [loadingCheck, setLoadingCheck] = useState(false);\r\n const [showModalTBFalta, setShowModalTBFalta] = useState(false);\r\n const [form, setValues] = useState({});\r\n const [warnings, setWarn] = useState(null);\r\n\r\n const [optSolInc] = useState([\r\n {value: 0, text: 'Ambas'},\r\n {value: 1, text: 'No'},\r\n {value: 2, text: 'Si'},\r\n ]);\r\n const [optSolIncSelected, setOptSolIncSelected] = useState(0);\r\n const [tbAutorizadorFijo, setTBAutorizadorFijo] = useState([]);\r\n\r\n const [consumed, setConsumed] = useState(0);\r\n\r\n useEffect(() => {\r\n Inicializar();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.getTBAutorizadorFijoData && props.getTBAutorizadorFijoData.isOK)) {\r\n let catalogo = [];\r\n if ('GetTBAutorizadorFijo' in props.getTBAutorizadorFijoData) {\r\n catalogo = [...props.getTBAutorizadorFijoData.GetTBAutorizadorFijo.TBAutorizadorFijo];\r\n }\r\n setTBAutorizadorFijo(catalogo);\r\n props.GetTBAutorizadorFijoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.getTBAutorizadorFijoError && props.getTBAutorizadorFijoError.isOK === false)) {\r\n setTBAutorizadorFijo([]);\r\n props.GetTBAutorizadorFijoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.getTBAutorizadorFijoData, props.getTBAutorizadorFijoError]);\r\n\r\n useEffect(() => {\r\n if ((props.insertTBAutorizadorFijoData && props.insertTBAutorizadorFijoData.isOK)) {\r\n let result = {...props.insertTBAutorizadorFijoData.InsertTBAutorizadorFijo};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.InsertTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.insertTBAutorizadorFijoError && props.insertTBAutorizadorFijoError.isOK === false)) {\r\n props.InsertTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.insertTBAutorizadorFijoData, props.insertTBAutorizadorFijoError]);\r\n\r\n useEffect(() => {\r\n if ((props.updateTBAutorizadorFijoData && props.updateTBAutorizadorFijoData.isOK)) {\r\n let result = {...props.updateTBAutorizadorFijoData.UpdateTBAutorizadorFijo};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.UpdateTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.updateTBAutorizadorFijoError && props.updateTBAutorizadorFijoError.isOK === false)) {\r\n props.UpdateTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.updateTBAutorizadorFijoData, props.updateTBAutorizadorFijoError]);\r\n\r\n useEffect(() => {\r\n if ((props.deleteTBAutorizadorFijoData && props.deleteTBAutorizadorFijoData.isOK)) {\r\n let result = {...props.deleteTBAutorizadorFijoData.DeleteTBAutorizadorFijo};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.DeleteTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.deleteTBAutorizadorFijoError && props.deleteTBAutorizadorFijoError.isOK === false)) {\r\n props.DeleteTBAutorizadorFijoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.deleteTBAutorizadorFijoData, props.deleteTBAutorizadorFijoError]);\r\n\r\n\r\n useEffect(() => {\r\n if (form != null) {\r\n console.log('OIHB ESP', form);\r\n }\r\n }, [form]);\r\n\r\n useEffect(() => {\r\n // console.log('OIHB ESP', consumed);\r\n if (consumed >= 1) {\r\n setLoading(false);\r\n setConsumed(0);\r\n }\r\n }, [consumed]);\r\n\r\n const Inicializar = () => {\r\n //GetTBFalta();\r\n // GetValoresConfig('SICONSULTA');\r\n GetTBAutorizadorFijo();\r\n GetValoresConfig('Generales');\r\n };\r\n\r\n const GetTBAutorizadorFijo = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.GetTBAutorizadorFijoAction(data, server);\r\n };\r\n\r\n const InsertTBAutorizadorFijo = (TrabID, ReportaID, Activo = 'true', AsignarReporta = 'true') => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': TrabID,\r\n 'tem:ReportaID': ReportaID,\r\n 'tem:Activo': Activo,\r\n 'tem:AsignarReporta': AsignarReporta,\r\n };\r\n props.InsertTBAutorizadorFijoAction(data, server);\r\n };\r\n\r\n const UpdateTBAutorizadorFijo = (IdAF, TrabID, ReportaID, Activo, AsignarReporta = 'true') => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:IdAF': IdAF,\r\n 'tem:TrabID': TrabID,\r\n 'tem:ReportaID': ReportaID,\r\n 'tem:Activo': Activo,\r\n 'tem:AsignarReporta': AsignarReporta,\r\n };\r\n props.UpdateTBAutorizadorFijoAction(data, server);\r\n };\r\n\r\n const DeleteTBAutorizadorFijo = (IdAF) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:IdAF': IdAF,\r\n };\r\n props.DeleteTBAutorizadorFijoAction(data, server);\r\n };\r\n\r\n const GetValoresConfig = (seccion, variable = '') => {\r\n let data = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:Seccion\": seccion, \r\n \"tem:Variable\": variable,\r\n };\r\n \r\n props.GetValoresConfigAction(data, server);\r\n };\r\n\r\n const formalizaSolicitudIncidencia = (Valor) => {\r\n let solInc = [];\r\n\r\n solInc = Valor.split(',').map(m1 => { \r\n let obj = { Checked: false, FaltaID: '', Formulario: '' };\r\n\r\n let spl = m1.split('=');\r\n if (spl.length > 0) {\r\n obj.Checked = true;\r\n obj.FaltaID = spl[0];\r\n if (spl.length > 1) obj.Formulario = spl[1];\r\n }\r\n\r\n return obj;\r\n });\r\n\r\n //console.log('OIHB DATA', solInc);\r\n return solInc;\r\n };\r\n\r\n const _renderTablaTBAutorizadorFijo = () => {\r\n let data = (<tr><td colSpan=\"3\" style={ {fontWeight: 'bold', textAlign: 'center', color: 'gray'} }>SIN REGISTROS</td></tr>);\r\n\r\n let copyTBAutorizadorFijo = [...tbAutorizadorFijo];\r\n // copyTBAutorizadorFijo.forEach(fe => {\r\n // let solinc = formSolicitudIncidencia.find(f => f.Checked && f.FaltaID == fe.Falta_ID);\r\n // fe.SolIncChecked = (solinc != null ? 'true' : 'false');\r\n // fe.SolIncFormulario = (solinc != null ? solinc.Formulario : null);\r\n // });\r\n\r\n //console.log('OIHB DATA renderTabla', optSolIncSelected);\r\n if (optSolIncSelected == 1) {\r\n copyTBAutorizadorFijo = copyTBAutorizadorFijo.filter(f => f.Activo.toLocaleLowerCase() == 'false');\r\n }\r\n else if (optSolIncSelected == 2) {\r\n copyTBAutorizadorFijo = copyTBAutorizadorFijo.filter(f => f.Activo.toLocaleLowerCase() == 'true');\r\n }\r\n\r\n if (copyTBAutorizadorFijo.length > 0) {\r\n data = copyTBAutorizadorFijo.map((m, ix) => {\r\n return (\r\n <tr key={'tr'+ix+'_fte'}>\r\n\r\n <td>{m.Trab_ID}</td>\r\n <td>{m.Reporta_ID}</td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n <input name={'tdChk_Activo' + ix} \r\n checked={m.Activo.toLocaleLowerCase() == 'true'}\r\n type=\"checkbox\" \r\n onChange={e => {\r\n setLoadingCheck(true);\r\n UpdateTBAutorizadorFijo(m.IdAF, m.Trab_ID, m.Reporta_ID, e.target.checked, m.AsignarReporta);\r\n }} \r\n className=\"with-gap\" \r\n id={'tdChk_Activo' + ix} />\r\n // <label>{(m.SolIncChecked == 'true' ? 'Si' : 'No')}</label>\r\n }\r\n </td>\r\n <td style={ {width:'50px', textAlign: 'center', cursor: 'pointer'} } onClick={() => _handleOpenModalTBFalta(true, m.IdAF, m.Trab_ID, m.Reporta_ID, m.Activo, 'true')}>\r\n <i className=\"mdi mdi-update\"></i> Editar\r\n </td>\r\n <td style={ {width:'50px', textAlign: 'center', cursor: 'pointer'} } onClick={() => _handleDeleteTBFalta(m.IdAF) }>\r\n <i className=\"mdi mdi-close\"></i> Eliminar\r\n </td>\r\n </tr>);\r\n });\r\n }\r\n\r\n return (\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>No. Reporta</th>\r\n <th>Activo</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{data}</tbody>\r\n </table>\r\n );\r\n };\r\n\r\n const _handleOpenModalTBFalta = (IsUpdate = false, IdAF = null, TrabID = null, ReportaID = null, Activo = 'true', AsignarReporta = 'true') => {\r\n setValues({\r\n ...form, \r\n IsUpdate: IsUpdate,\r\n IdAF: IdAF,\r\n TrabID: TrabID, \r\n ReportaID: ReportaID, \r\n Activo: Activo, \r\n AsignarReporta: AsignarReporta,\r\n }); \r\n setShowModalTBFalta(true);\r\n };\r\n\r\n const _handleCloseModalTBFalta = () => {\r\n setShowModalTBFalta(false);\r\n setWarn(null);\r\n setValues({});\r\n };\r\n\r\n const _handleNewTBFalta = () => {\r\n if ((form.TrabID || '').trim().length == 0 || \r\n (form.ReportaID || '').trim().length == 0 || \r\n (form.Activo || '').trim().length == 0) { \r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n let copyForm = {...form};\r\n _handleCloseModalTBFalta();\r\n\r\n if (!copyForm.IsUpdate) {\r\n InsertTBAutorizadorFijo(copyForm.TrabID, copyForm.ReportaID, copyForm.Activo, copyForm.AsignarReporta);\r\n }\r\n else {\r\n UpdateTBAutorizadorFijo(copyForm.IdAF, copyForm.TrabID, copyForm.ReportaID, copyForm.Activo, copyForm.AsignarReporta);\r\n }\r\n };\r\n\r\n const _handleDeleteTBFalta = (IdAF) => {\r\n confirm('Se eliminará este elemento ¿Desea continuar?', ['Si', 'No']).then(cancel => {\r\n if (!cancel) {\r\n DeleteTBAutorizadorFijo(IdAF);\r\n }\r\n });\r\n };\r\n\r\n const _handleInput = (event) => {\r\n if (event.target.type == 'text') {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.value,\r\n });\r\n }\r\n else if (event.target.type == 'checkbox') {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.checked ? 'true' : 'false',\r\n });\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal show={showModalTBFalta} onHide={_handleCloseModalTBFalta}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{form.IsUpdate ? 'Modifcar Autorizador Fijo' : 'Nuevo Autorizador Fijo'}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <form>\r\n {warnings && (\r\n <div className=\"alert alert-warning\">{warnings}</div>\r\n )}\r\n <div className=\"form-group\">\r\n <label>Número de Empleado</label>\r\n <input\r\n value={form.TrabID || ''}\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"TrabID\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Número de Reporta</label>\r\n <input\r\n value={form.ReportaID || ''}\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"ReportaID\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Activo</label>\r\n <input\r\n checked={(form.Activo == 'true')}\r\n type=\"checkbox\" \r\n onChange={_handleInput}\r\n name=\"Activo\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n {/* <label>{form.Activo == 'true' ? 'Asignar' : 'Limpiar'} reporta al terminar</label> */}\r\n <label>Asignar reporta al terminar</label>\r\n <input\r\n checked={(form.AsignarReporta == 'true')}\r\n type=\"checkbox\" \r\n onChange={_handleInput}\r\n name=\"AsignarReporta\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n </form>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModalTBFalta}>\r\n Cancelar\r\n </Button>\r\n <Button variant=\"success\" onClick={_handleNewTBFalta}>\r\n Guardar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Control de Tabulador de Autorizador Fijo\" icon=\"mdi mdi-account-edit\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">TABULADOR DE AUTORIZADOR FIJO</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n <button\r\n onClick={() => _handleOpenModalTBFalta()}\r\n type=\"button\"\r\n className=\"btn btn-success waves-effect waves-light pull-right\"\r\n >\r\n NUEVO AUTORIZADOR FIJO\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\"></div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-md-3\">\r\n <div className=\"form-group\">\r\n <label>Autorizadores Fijos Activos</label>\r\n <select\r\n value={optSolIncSelected}\r\n className=\"form-control\"\r\n onChange={(e) => {\r\n setOptSolIncSelected(e.target.value);\r\n }}>\r\n {optSolInc.map((data, ix) => {\r\n return <option key={'opt'+ix+'_rol'} value={data.value}>{data.text}</option>;\r\n })}\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"table-responsive m-t-20\">\r\n {_renderTablaTBAutorizadorFijo()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getTBFaltaData: state.getTBFalta.getTBFaltaData,\r\n getTBFaltaError: state.getTBFalta.getTBFaltaError,\r\n\r\n insertTBFaltaData: state.insertTBFalta.insertTBFaltaData,\r\n insertTBFaltaError: state.insertTBFalta.insertTBFaltaError,\r\n\r\n updateTBFaltaData: state.updateTBFalta.updateTBFaltaData,\r\n updateTBFaltaError: state.updateTBFalta.updateTBFaltaError,\r\n\r\n deleteTBFaltaData: state.deleteTBFalta.deleteTBFaltaData,\r\n deleteTBFaltaError: state.deleteTBFalta.deleteTBFaltaError,\r\n\r\n deleteTBFaltaData: state.deleteTBFalta.deleteTBFaltaData,\r\n deleteTBFaltaError: state.deleteTBFalta.deleteTBFaltaError,\r\n\r\n getValoresConfigData: state.getValoresConfig.getValoresConfigData,\r\n getValoresConfigError: state.getValoresConfig.getValoresConfigError,\r\n\r\n updateValorConfigData: state.updateValorConfig.updateValorConfigData,\r\n updateValorConfigError: state.updateValorConfig.updateValorConfigError,\r\n\r\n\r\n getTBAutorizadorFijoData: state.getTBAutorizadorFijo.getTBAutorizadorFijoData,\r\n getTBAutorizadorFijoError: state.getTBAutorizadorFijo.getTBAutorizadorFijoError,\r\n\r\n insertTBAutorizadorFijoData: state.insertTBAutorizadorFijo.insertTBAutorizadorFijoData,\r\n insertTBAutorizadorFijoError: state.insertTBAutorizadorFijo.insertTBAutorizadorFijoError,\r\n\r\n deleteTBAutorizadorFijoData: state.deleteTBAutorizadorFijo.deleteTBAutorizadorFijoData,\r\n deleteTBAutorizadorFijoError: state.deleteTBAutorizadorFijo.deleteTBAutorizadorFijoError,\r\n\r\n updateTBAutorizadorFijoData: state.updateTBAutorizadorFijo.updateTBAutorizadorFijoData,\r\n updateTBAutorizadorFijoError: state.updateTBAutorizadorFijo.updateTBAutorizadorFijoError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n GetTBFaltaAction, \r\n InsertTBFaltaAction, \r\n UpdateTBFaltaAction,\r\n DeleteTBFaltaAction, \r\n GetValoresConfigAction,\r\n UpdateValorConfigAction,\r\n\r\n GetTBAutorizadorFijoAction, \r\n InsertTBAutorizadorFijoAction, \r\n UpdateTBAutorizadorFijoAction,\r\n DeleteTBAutorizadorFijoAction, \r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(TBAutorizadorFijoControl)\r\n);\r\n","\r\nimport { changeXml, GetTBAutorizadorFijoResponse, InsertTBAutorizadorFijoResponse, DeleteTBAutorizadorFijoResponse, UpdateTBAutorizadorFijoResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n GETTBAUTORIZADORFIJO_SUCCESS, \r\n GETTBAUTORIZADORFIJO_ERROR, \r\n GETTBAUTORIZADORFIJO_PURGE, \r\n\r\n INSERTTBAUTORIZADORFIJO_SUCCESS, \r\n INSERTTBAUTORIZADORFIJO_ERROR, \r\n INSERTTBAUTORIZADORFIJO_PURGE, \r\n\r\n DELETETBAUTORIZADORFIJO_SUCCESS, \r\n DELETETBAUTORIZADORFIJO_ERROR, \r\n DELETETBAUTORIZADORFIJO_PURGE, \r\n\r\n UPDATETBAUTORIZADORFIJO_SUCCESS, \r\n UPDATETBAUTORIZADORFIJO_ERROR, \r\n UPDATETBAUTORIZADORFIJO_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetTBAutorizadorFijoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'GetTBAutorizadorFijo';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETTBAUTORIZADORFIJO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetTBAutorizadorFijo: GetTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: GETTBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETTBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetTBAutorizadorFijo: GetTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('RESPONSE GETTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: GETTBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: GETTBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETTBAUTORIZADORFIJO DATA: ', responseError);\r\n dispatch({ type: GETTBAUTORIZADORFIJO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const InsertTBAutorizadorFijoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'InsertTBAutorizadorFijo';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n InsertTBAutorizadorFijo: InsertTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE INSERTTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET INSERTTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n InsertTBAutorizadorFijo: InsertTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('RESPONSE INSERTTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET INSERTTBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET INSERTTBAUTORIZADORFIJO DATA: ', responseError);\r\n dispatch({ type: INSERTTBAUTORIZADORFIJO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const DeleteTBAutorizadorFijoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'DeleteTBAutorizadorFijo';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n DeleteTBAutorizadorFijo: DeleteTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE DELETETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET DELETETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n DeleteTBAutorizadorFijo: DeleteTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('RESPONSE DELETETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET DELETETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET DELETETBAUTORIZADORFIJO DATA: ', responseError);\r\n dispatch({ type: DELETETBAUTORIZADORFIJO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const UpdateTBAutorizadorFijoAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoSicoss';\r\n let action = 'UpdateTBAutorizadorFijo';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n UpdateTBAutorizadorFijo: UpdateTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE UPDATETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET UPDATETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n UpdateTBAutorizadorFijo: UpdateTBAutorizadorFijoResponse(body)\r\n };\r\n console.log('RESPONSE UPDATETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET UPDATETBAUTORIZADORFIJO DATA: ', response);\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET UPDATETBAUTORIZADORFIJO DATA: ', responseError);\r\n dispatch({ type: UPDATETBAUTORIZADORFIJO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { \r\n GetTBTipoEmpleadoAction, \r\n UpdateTBTipoEmpleadoAction, \r\n} from '../../api/actions/systemAdmin/FaltaTipoEmpleadoAction';\r\n\r\nimport Topbar from \"../layout/Topbar\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title\";\r\nimport Footer from \"../layout/Footer\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport { alert, confirm } from \"../../utils/common/alert\";\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nconst TypeEmployeeControl = (props) => {\r\n const { params, server } = getParams();\r\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\r\n\r\n const { addToast } = useToasts();\r\n // addToast(\"Usuario agregado exitosamente\", {\r\n // appearance: \"success\",\r\n // autoDismiss: true,\r\n // });\r\n const [loading, setLoading] = useState(true);\r\n const [loadingCheck, setLoadingCheck] = useState(false);\r\n const [showModalTipoEmpleado, setShowModalTipoEmpleado] = useState(false);\r\n const [form, setValues] = useState({});\r\n const [warnings, setWarn] = useState(null);\r\n\r\n const [tipoEmpleado, setTipoEmpleado] = useState([]);\r\n\r\n const [consumed, setConsumed] = useState(0);\r\n\r\n useEffect(() => {\r\n Inicializar();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.getTBTipoEmpleadoData && props.getTBTipoEmpleadoData.isOK)) {\r\n let catalogo = [];\r\n if ('GetTBTipoEmpleado' in props.getTBTipoEmpleadoData) {\r\n catalogo = [...props.getTBTipoEmpleadoData.GetTBTipoEmpleado.TBTipoEmpleado];\r\n }\r\n setTipoEmpleado(catalogo);\r\n props.GetTBTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n } \r\n else if ((props.getTBTipoEmpleadoError && props.getTBTipoEmpleadoError.isOK === false)) {\r\n setTipoEmpleado([]);\r\n props.GetTBTipoEmpleadoAction('PURGE', '');\r\n setConsumed(consumed + 1);\r\n }\r\n }, [props.getTBTipoEmpleadoData, props.getTBTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if ((props.updateTBTipoEmpleadoData && props.updateTBTipoEmpleadoData.isOK)) {\r\n let result = {...props.updateTBTipoEmpleadoData.UpdateTBTipoEmpleado};\r\n if ('Exito' in result && 'Mensaje' in result) {\r\n alert(result.Mensaje);\r\n if (result.Exito) {\r\n Inicializar();\r\n }\r\n }\r\n\r\n props.UpdateTBTipoEmpleadoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n } \r\n else if ((props.updateTBTipoEmpleadoError && props.updateTBTipoEmpleadoError.isOK === false)) {\r\n props.UpdateTBTipoEmpleadoAction('PURGE', '');\r\n setLoadingCheck(false);\r\n }\r\n }, [props.updateTBTipoEmpleadoData, props.updateTBTipoEmpleadoError]);\r\n\r\n useEffect(() => {\r\n if (form != null) {\r\n console.log('OIHB ESP', form);\r\n }\r\n }, [form]);\r\n\r\n useEffect(() => {\r\n // console.log('OIHB ESP', consumed);\r\n if (consumed >= 1) {\r\n setLoading(false);\r\n setConsumed(0);\r\n }\r\n }, [consumed]);\r\n\r\n const Inicializar = () => {\r\n GetTBTipoEmpleado();\r\n };\r\n\r\n const GetTBTipoEmpleado = () => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n props.GetTBTipoEmpleadoAction(data, server);\r\n };\r\n\r\n const UpdateTBTipoEmpleado = (TipoEmpleadoID, OmiteDiaFestivo, OmiteSabado, OmiteDomingo) => {\r\n let data = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TipoEmpleadoID': TipoEmpleadoID,\r\n 'tem:OmiteDiaFestivo': OmiteDiaFestivo,\r\n 'tem:OmiteSabado': OmiteSabado,\r\n 'tem:OmiteDomingo': OmiteDomingo,\r\n };\r\n props.UpdateTBTipoEmpleadoAction(data, server);\r\n };\r\n\r\n // const _renderSelector = (name, array, value, text) => {\r\n // let options = [(<option key={'opt_' + name} value={null}>Sin datos</option>)];\r\n // if (array.length > 0) {\r\n // options = array.map((m, ix) => {\r\n // return (<option key={'opt'+ix+'_' + name} value={m[value]}>[{m[value]}] {m[text]}</option>);\r\n // });\r\n\r\n // options = [(<option key={'opt_' + name} value={null}>Selecciona</option>)].concat(options);\r\n // }\r\n \r\n // return (\r\n // <select\r\n // name={name}\r\n // value={form[name]}\r\n // className=\"form-control\"\r\n // onChange={_handleInput}>\r\n // {options}\r\n // </select>\r\n // );\r\n // };\r\n\r\n const _renderTablaTBTipoEmpleado = () => {\r\n let data = (<tr><td colSpan=\"3\" style={ {fontWeight: 'bold', textAlign: 'center', color: 'gray'} }>SIN REGISTROS</td></tr>);\r\n if (tipoEmpleado.length > 0) {\r\n data = tipoEmpleado.map((m, ix) => {\r\n return (\r\n <tr key={'tr'+ix+'_fte'}>\r\n <td>{m.TipoEmpleado_ID}</td>\r\n <td>{m.Descripcion}</td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n <input name={'tdChk_' + m.TipoEmpleado_ID} \r\n checked={(m.OmiteDiaFestivo == 'true')}\r\n type=\"checkbox\" \r\n onClick={() => { }} \r\n onChange={e => {\r\n setLoadingCheck(true);\r\n UpdateTBTipoEmpleado(m.TipoEmpleado_ID, e.target.checked, m.OmiteSabado, m.OmiteDomingo);\r\n }} \r\n className=\"with-gap\" \r\n id={'tdChk_' + m.TipoEmpleado_ID} />}\r\n </td>\r\n\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n <input name={'tdChk_Sab' + m.TipoEmpleado_ID} \r\n checked={(m.OmiteSabado == 'true')}\r\n type=\"checkbox\" \r\n onClick={() => { }} \r\n onChange={e => {\r\n setLoadingCheck(true);\r\n UpdateTBTipoEmpleado(m.TipoEmpleado_ID, m.OmiteDiaFestivo, e.target.checked, m.OmiteDomingo);\r\n }} \r\n className=\"with-gap\" \r\n id={'tdChk_Sab' + m.TipoEmpleado_ID} />}\r\n </td>\r\n <td>\r\n {loadingCheck ? \r\n <img src={LoadingGif} style={{ width: 20 }} /> \r\n : \r\n <input name={'tdChk_Dom' + m.TipoEmpleado_ID} \r\n checked={(m.OmiteDomingo == 'true')}\r\n type=\"checkbox\" \r\n onClick={() => { }} \r\n onChange={e => {\r\n setLoadingCheck(true);\r\n UpdateTBTipoEmpleado(m.TipoEmpleado_ID, m.OmiteDiaFestivo, m.OmiteSabado, e.target.checked);\r\n }} \r\n className=\"with-gap\" \r\n id={'tdChk_Dom' + m.TipoEmpleado_ID} />}\r\n </td>\r\n {/* <td style={ {width:'50px', textAlign: 'center'} } onClick={() => _handleOpenModalTipoEmpleado(m.TipoEmpleado_ID, m.OmiteDiaFestivo)}>\r\n <i className=\"mdi mdi-update\"></i>\r\n </td> */}\r\n {/* <td style={ {width:'50px', textAlign: 'center'} } onClick={() => _handleDeleteTipoEmpleado(m.FTE_ID) }>\r\n <i className=\"mdi mdi-close\"></i>\r\n </td> */}\r\n </tr>);\r\n });\r\n }\r\n\r\n return (\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>Tipo de Empleado</th>\r\n <th>Descripción</th>\r\n <th>Omite Día Festivo</th>\r\n <th>Omite Sábado</th>\r\n <th>Omite Domingo</th>\r\n <th></th>\r\n {/* <th></th> */}\r\n </tr>\r\n </thead>\r\n <tbody>{data}</tbody>\r\n </table>\r\n );\r\n };\r\n\r\n const _handleOpenModalTipoEmpleado = (TipoEmpleadoID, OmiteDiaFestivo) => {\r\n setValues({\r\n ...form, \r\n TipoEmpleado_ID: TipoEmpleadoID, \r\n OmiteDiaFestivo: OmiteDiaFestivo,\r\n }); \r\n setShowModalTipoEmpleado(true);\r\n };\r\n\r\n const _handleCloseModalTipoEmpleado = () => {\r\n setShowModalTipoEmpleado(false);\r\n setWarn(null);\r\n setValues({});\r\n };\r\n\r\n const _handleNewTipoEmpleado = () => {\r\n if (form.OmiteDiaFestivo == undefined ||\r\n form.OmiteDiaFestivo == null) {\r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n let copy = {...form};\r\n _handleCloseModalTipoEmpleado();\r\n\r\n if (!copy.TipoEmpleado_ID) {\r\n // InsertTBTipoEmpleado(copy.TipoEmpleado_ID);\r\n }\r\n else {\r\n UpdateTBTipoEmpleado(copy.TipoEmpleado_ID, copy.OmiteDiaFestivo)\r\n }\r\n };\r\n\r\n // const _handleDeleteTipoEmpleado = (TipoEmpleadoID) => {\r\n // confirm('Se eliminará este elemento ¿Desea continuar?', ['Si', 'No']).then(cancel => {\r\n // if (!cancel) {\r\n // DeleteTBTipoEmpleado(TipoEmpleadoID);\r\n // }\r\n // });\r\n // };\r\n\r\n const _handleInput = (event) => {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.value,\r\n });\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal show={showModalTipoEmpleado} onHide={_handleCloseModalTipoEmpleado}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{form.FTE_ID ? 'Modifcar Tipo Empleado' : 'Nueva Tipo Empleado'}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <form>\r\n {warnings && (\r\n <div className=\"alert alert-warning\">{warnings}</div>\r\n )}\r\n <div className=\"form-group\">\r\n {/* <label>\r\n INCIDENCIA\r\n </label>\r\n {_renderSelector('Falta_ID', incidencias, 'id', 'descripcion')}\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n TIPO EMPLEADO\r\n </label>\r\n {_renderSelector('TipoEmpleado_ID', tipoEmpleado, 'TipoEmpleado_ID', 'Descripcion')} */}\r\n </div>\r\n </form>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModalTipoEmpleado}>\r\n Cancelar\r\n </Button>\r\n <Button variant=\"success\" onClick={_handleNewTipoEmpleado}>\r\n Guardar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Control de Tipo Empleado\" icon=\"mdi mdi-account-edit\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">TIPO EMPLEADO</h4>\r\n </div>\r\n {/* <div className=\"col-6\">\r\n <button\r\n onClick={() => setShowModalTipoEmpleado(true)}\r\n type=\"button\"\r\n className=\"btn btn-success waves-effect waves-light pull-right\"\r\n >\r\n NUEVO\r\n </button>\r\n </div> */}\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\"></div>\r\n <div className=\"table-responsive m-t-20\">\r\n {_renderTablaTBTipoEmpleado()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getTBTipoEmpleadoData: state.getTBTipoEmpleado.getTBTipoEmpleadoData,\r\n getTBTipoEmpleadoError: state.getTBTipoEmpleado.getTBTipoEmpleadoError,\r\n\r\n updateTBTipoEmpleadoData: state.updateTBTipoEmpleado.updateTBTipoEmpleadoData,\r\n updateTBTipoEmpleadoError: state.updateTBTipoEmpleado.updateTBTipoEmpleadoError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n GetTBTipoEmpleadoAction, \r\n UpdateTBTipoEmpleadoAction, \r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(TypeEmployeeControl)\r\n);\r\n","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\n// RP\nimport { getEmployerRecordsAction } from '../../../api/actions/systemAdmin/EmployerRecorrdsAction';\nimport { getEmployerRecordsPermitsAction } from '../../../api/actions/systemAdmin/EmployerRecordsPermitsAction';\nimport { getInsertDeletePermitRPAction } from '../../../api/actions/systemAdmin/InsertDeletePermitRPAction';\n\nimport { getParams } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\n//import LoadingGif from '../../../assets/images/loading.gif';\n\nconst RPPermissions = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n \n const [loading, setLoading] = useState(true);\n const [collapsed, setCollapsed] = useState(true);\n const [authorized, setAuthorized] = useState([]);\n const [optionsClicked, setOptionsClicked] = useState({});\n const [all, setAll] = useState(null);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getEmployerRecordsAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.employerRecordsData && props.employerRecordsData.isOK) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n props.getEmployerRecordsPermitsAction(params, server);\n } else if (props.employerRecordsError && props.employerRecordsError.isOK === false) {\n props.getEmployerRecordsAction('PURGE', '');\n }\n }, [props.employerRecordsData, props.employerRecordsError]);\n\n useEffect(() => {\n if (props.employerRecordsPermitsData && props.employerRecordsPermitsData.isOK) {\n if (props.employerRecordsPermitsData.EmployerRecordsPermits.length == props.employerRecordsData.EmployerRecords.length)\n setAll(true);\n else\n setAll(false);\n\n setAuthorized(props.employerRecordsPermitsData.EmployerRecordsPermits);\n setLoading(false);\n } else if (props.employerRecordsPermitsError && props.employerRecordsPermitsError.isOK === false) {\n props.getEmployerRecordsPermitsAction('PURGE', '');\n }\n }, [props.employerRecordsPermitsData, props.employerRecordsPermitsError]);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n if (props.insertDeletePermitRPData && props.insertDeletePermitRPData.isOK) {\n props.getEmployerRecordsPermitsAction('PURGE', '');\n props.getEmployerRecordsPermitsAction(params, server);\n } else if (props.insertDeletePermitRPError && props.insertDeletePermitRPError.isOK === false) {\n props.getEmployerRecordsPermitsAction('PURGE', '');\n props.getEmployerRecordsPermitsAction(params, server);\n }\n }, [props.insertDeletePermitRPData, props.insertDeletePermitRPError]);\n\n const permissions_table = () => {\n\n let table = [];\n let permisos = props.employerRecordsData.EmployerRecords;\n\n if (permisos && permisos.length >= 0) {\n permisos = permisos.sort((a, b) => {\n return a.id - b.id;\n });\n\n permisos.map((item, i) => {\n let checked = authorized.filter(permiso => permiso.descripcion == item.id);\n if (optionsClicked[item.id] && optionsClicked[item.id][0] === true) {\n const isOn = optionsClicked[item.id][1];\n if (isOn && checked.length <= 0) {\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, !isOn]\n });\n } else if (!isOn && checked.length > 0) {\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, isOn]\n });\n }\n }\n table.push(\n <tr key={i}>\n <td>{item.id}</td>\n <td className=\"hidden-xs-down\">{item.descripcion}</td>\n <td>\n {optionsClicked[item.id] && optionsClicked[item.id][0] === true ?\n <img src={LoadingGif} style={{ width: 20 }} />\n :\n <>\n <input name={item.id + '~rp'} checked={checked.length > 0 ? true : false} type=\"checkbox\" onClick={() => handleClickOption(item.id, checked.length > 0)} onChange={e => handleInput(e, item.id)} value={item.id} className=\"with-gap\" id={item.id + '~rp'} />\n <label htmlFor={item.id + '~rp'}></label>\n </>\n }\n </td>\n </tr>\n );\n });\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay permisos para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const handleClickOption = (id, isOn) => {\n setOptionsClicked({\n ...optionsClicked,\n [id]: [true, isOn]\n });\n };\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n 'tem:RegPat_ID': id == 'allOptions' ? 0 : id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n 'tem:Todos': id == 'allOptions' ? '1' : '0'\n }\n\n props.getInsertDeletePermitRPAction(params, server);\n\n };\n\n const triggerCollapse = () => {\n setCollapsed(!collapsed);\n }\n return (\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">Registros Patronales</h4>\n </div>\n <div className=\"col-6\">\n {!loading && <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\" data-toggle=\"collapse\" data-target=\"#collapseRP\" aria-expanded=\"false\" aria-controls=\"collapseRP\" onClick={triggerCollapse}>\n {collapsed ?\n <i className=\"mdi mdi-chevron-down\"></i>\n :\n <i className=\"mdi mdi-chevron-up\"></i>\n }\n </button>}\n </div>\n </div>\n </div>\n <div className=\"card-body collapse\" id=\"collapseRP\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Descripción</th>\n <th>\n <input name=\"all~rp\" type=\"checkbox\" checked={all} onClick={() => setAll(!all)} onChange={e => handleInput(e, 'allOptions')} className=\"filled-in\" id=\"all~rp\" />\n <label htmlFor=\"all~rp\">Todos</label>\n </th>\n </tr>\n </thead>\n <tbody>\n {!loading && permissions_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n\n employerRecordsData: state.employerRecords.employerRecordsData,\n employerRecordsError: state.employerRecords.employerRecordsError,\n\n employerRecordsPermitsData: state.employerRecordsPermits.employerRecordsPermitsData,\n employerRecordsPermitsError: state.employerRecordsPermits.employerRecordsPermitsError,\n\n insertDeletePermitRPData: state.insertDeletePermitRP.insertDeletePermitRPData,\n insertDeletePermitRPError: state.insertDeletePermitRP.insertDeletePermitRPError,\n };\n};\n\nconst mapDispatchToProps = {\n getEmployerRecordsAction,\n getEmployerRecordsPermitsAction,\n getInsertDeletePermitRPAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(RPPermissions));\n","import { changeXml, employerRecords } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n EMPLOYER_RECORDS_SUCCESS,\n EMPLOYER_RECORDS_ERROR,\n EMPLOYER_RECORDS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getEmployerRecordsAction = (data, server) => {\n let configJson = {\n 'tem:CatalogoRP': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoRP\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: EMPLOYER_RECORDS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET EMPLOYER_RECORDS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: EMPLOYER_RECORDS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n EmployerRecords: employerRecords(body)\n }\n\n console.log('RESPONSE EMPLOYER_RECORDS DATA: ', response);\n dispatch({ type: EMPLOYER_RECORDS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET EMPLOYER_RECORDS DATA: ', response);\n dispatch({ type: EMPLOYER_RECORDS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET EMPLOYER_RECORDS DATA: ', responseError);\n dispatch({ type: EMPLOYER_RECORDS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, employerRecordsPermits } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n EMPLOYER_RECORDS_PERMITS_SUCCESS,\n EMPLOYER_RECORDS_PERMITS_ERROR,\n EMPLOYER_RECORDS_PERMITS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getEmployerRecordsPermitsAction = (data, server) => {\n let configJson = {\n 'tem:PermisosXUserRP': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PermisosXUserRP\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: EMPLOYER_RECORDS_PERMITS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET EMPLOYER_RECORDS_PERMITS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: EMPLOYER_RECORDS_PERMITS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n EmployerRecordsPermits: employerRecordsPermits(body)\n }\n\n console.log('RESPONSE EMPLOYER_RECORDS_PERMITS DATA: ', response);\n dispatch({ type: EMPLOYER_RECORDS_PERMITS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET EMPLOYER_RECORDS_PERMITS DATA: ', response);\n dispatch({ type: EMPLOYER_RECORDS_PERMITS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET EMPLOYER_RECORDS_PERMITS DATA: ', responseError);\n dispatch({ type: EMPLOYER_RECORDS_PERMITS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, insertDeletePermitRP } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_DELETE_PERMIT_RP_SUCCESS,\n INSERT_DELETE_PERMIT_RP_ERROR,\n INSERT_DELETE_PERMIT_RP_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getInsertDeletePermitRPAction = (data, server) => {\n let configJson = {\n 'tem:SavePermisoXUserRP': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SavePermisoXUserRP\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_DELETE_PERMIT_RP_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_RP_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_DELETE_PERMIT_RP_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n insertDeletePermitRP: insertDeletePermitRP(body)\n }\n\n console.log('RESPONSE INSERT_DELETE_PERMIT_RP DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_RP_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_RP DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_RP_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_DELETE_PERMIT_RP DATA: ', responseError);\n dispatch({ type: INSERT_DELETE_PERMIT_RP_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, centerPermit } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n CENTERS_PERMITS_SUCCESS,\n CENTERS_PERMITS_ERROR,\n CENTERS_PERMITS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getCenterPermitAction = (data, server) => {\n let configJson = {\n 'tem:PermisosXUserCentro': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PermisosXUserCentro\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: CENTERS_PERMITS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET CENTERS_PERMITS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: CENTERS_PERMITS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n CenterPermit: centerPermit(body)\n }\n\n console.log('RESPONSE CENTERS_PERMITS DATA: ', response);\n dispatch({ type: CENTERS_PERMITS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET CENTERS_PERMITS DATA: ', response);\n dispatch({ type: CENTERS_PERMITS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET CENTERS_PERMITS DATA: ', responseError);\n dispatch({ type: CENTERS_PERMITS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\n// Centros\nimport { getCenterCatalogAction } from '../../../api/actions/systemAdmin/CenterCatalogAction';\nimport { getCenterPermitAction } from '../../../api/actions/systemAdmin/CenterPermitAction';\nimport { getInsertDeletePermitCenterAction } from '../../../api/actions/systemAdmin/InsertDeletePermitCenterAction';\n\nimport { getParams } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\n//import LoadingGif from '../../../assets/images/loading.gif';\n\nconst CenterPermissions = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n \n const [loading, setLoading] = useState(true);\n const [collapsed, setCollapsed] = useState(true);\n const [authorized, setAuthorized] = useState([]);\n const [optionsClicked, setOptionsClicked] = useState({});\n const [all, setAll] = useState(null);\n\n useEffect(() => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getCenterCatalogAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.centersCatalogData && props.centersCatalogData.isOK) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n props.getCenterPermitAction(params, server);\n } else if (props.centersCatalogError && props.centersCatalogError.isOK === false) {\n props.getCenterCatalogAction('PURGE', '');\n }\n }, [props.centersCatalogData, props.centersCatalogError]);\n\n useEffect(() => {\n if (props.centersPermitsData && props.centersPermitsData.isOK) {\n if (props.centersPermitsData.CenterPermit.length == props.centersCatalogData.CenterCatalog.length)\n setAll(true);\n else\n setAll(false);\n\n setAuthorized(props.centersPermitsData.CenterPermit);\n setLoading(false);\n } else if (props.centersPermitsError && props.centersPermitsError.isOK === false) {\n props.getCenterPermitAction('PURGE', '');\n }\n }, [props.centersPermitsData, props.centersPermitsError]);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n if (props.insertDeletePermitCenterData && props.insertDeletePermitCenterData.isOK) {\n props.getCenterPermitAction('PURGE', '');\n props.getCenterPermitAction(params, server);\n } else if (props.insertDeletePermitCenterError && props.insertDeletePermitCenterError.isOK === false) {\n props.getCenterPermitAction('PURGE', '');\n props.getCenterPermitAction(params, server);\n }\n }, [props.insertDeletePermitCenterData, props.insertDeletePermitCenterError]);\n\n const permissions_table = () => {\n\n let table = [];\n let permisos = props.centersCatalogData?.CenterCatalog;\n\n if (permisos && permisos.length >= 0) {\n permisos = permisos.sort((a, b) => {\n return a.id - b.id;\n });\n\n permisos.map((item, i) => {\n let checked = authorized.filter(permiso => permiso.descripcion == item.id);\n if(optionsClicked[item.id] && optionsClicked[item.id][0] === true){\n const isOn = optionsClicked[item.id][1];\n if(isOn && checked.length <= 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, !isOn]\n });\n } else if(!isOn && checked.length > 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, isOn]\n });\n }\n }\n table.push(\n <tr key={i}>\n <td>{item.id}</td>\n <td className=\"hidden-xs-down\">{item.descripcion}</td>\n <td>\n {optionsClicked[item.id] && optionsClicked[item.id][0] === true ?\n <img src={LoadingGif} style={{ width: 20 }} />\n :\n <>\n <input name={item.id + '~center'} checked={checked.length > 0 ? true : false} type=\"checkbox\" onClick={() => handleClickOption(item.id, checked.length > 0)} onChange={e => handleInput(e, item.id)} value={item.id} className=\"with-gap\" id={item.id + '~center'} />\n <label htmlFor={item.id + '~center'}></label>\n </>\n }\n </td>\n </tr>\n );\n });\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay permisos para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n \n const handleClickOption = (id, isOn) => {\n setOptionsClicked({\n ...optionsClicked,\n [id]: [true, isOn]\n });\n };\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n 'tem:Centro_ID': id == 'allOptions' ? '0' : id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n 'tem:Todos': id == 'allOptions' ? '1' : '0'\n }\n\n props.getInsertDeletePermitCenterAction(params, server);\n\n };\n\n const triggerCollapse = () => {\n setCollapsed(!collapsed);\n };\n\n return (\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">Centros</h4>\n </div>\n <div className=\"col-6\">\n {!loading && <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\" data-toggle=\"collapse\" data-target=\"#collapseCenter\" aria-expanded=\"false\" aria-controls=\"collapseCenter\" onClick={triggerCollapse}>\n {collapsed ?\n <i className=\"mdi mdi-chevron-down\"></i>\n :\n <i className=\"mdi mdi-chevron-up\"></i>\n }\n </button>}\n </div>\n </div>\n </div>\n <div className=\"card-body collapse\" id=\"collapseCenter\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Descripción</th>\n <th>\n <input name=\"all~center\" type=\"checkbox\" checked={all} onClick={() => setAll(!all)} onChange={e => handleInput(e, 'allOptions')} className=\"filled-in\" id=\"all~center\" />\n <label htmlFor=\"all~center\">Todos</label>\n </th>\n </tr>\n </thead>\n <tbody>\n {!loading && permissions_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n\n centersCatalogData: state.centersCatalog.centersCatalogData,\n centersCatalogError: state.centersCatalog.centersCatalogError,\n\n centersPermitsData: state.centerPermit.centersPermitsData,\n centersPermitsError: state.centerPermit.centersPermitsError,\n\n insertDeletePermitCenterData: state.insertDeletePermitCenter.insertDeletePermitCenterData,\n insertDeletePermitCenterError: state.insertDeletePermitCenter.insertDeletePermitCenterError,\n };\n};\n\nconst mapDispatchToProps = {\n getCenterCatalogAction,\n getCenterPermitAction,\n getInsertDeletePermitCenterAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CenterPermissions));\n","import { changeXml, insertDeletePermitCenter } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_DELETE_PERMIT_CENTER_SUCCESS,\n INSERT_DELETE_PERMIT_CENTER_ERROR,\n INSERT_DELETE_PERMIT_CENTER_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getInsertDeletePermitCenterAction = (data, server) => {\n let configJson = {\n 'tem:SavePermisoXUserCentro': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SavePermisoXUserCentro\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_DELETE_PERMIT_CENTER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_CENTER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_DELETE_PERMIT_CENTER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n insertDeletePermitCenter: insertDeletePermitCenter(body)\n }\n\n console.log('RESPONSE INSERT_DELETE_PERMIT_CENTER DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_CENTER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_CENTER DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_CENTER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_DELETE_PERMIT_CENTER DATA: ', responseError);\n dispatch({ type: INSERT_DELETE_PERMIT_CENTER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, departmentPermits } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n DEPARTMENT_PERMITS_SUCCESS,\n DEPARTMENT_PERMITS_ERROR,\n DEPARTMENT_PERMITS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getDepartmentPermitsAction = (data, server) => {\n let configJson = {\n 'tem:PermisosXUserDepto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PermisosXUserDepto\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DEPARTMENT_PERMITS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DEPARTMENT_PERMITS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DEPARTMENT_PERMITS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DepartmentPermits: departmentPermits(body)\n }\n\n console.log('RESPONSE DEPARTMENT_PERMITS DATA: ', response);\n dispatch({ type: DEPARTMENT_PERMITS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DEPARTMENT_PERMITS DATA: ', response);\n dispatch({ type: DEPARTMENT_PERMITS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DEPARTMENT_PERMITS DATA: ', responseError);\n dispatch({ type: DEPARTMENT_PERMITS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\n// Deptos\nimport { getDeptsCatalogAction } from '../../../api/actions/systemAdmin/DeptsCatalogAction'\nimport { getDepartmentPermitsAction } from '../../../api/actions/systemAdmin/DepartmentPermitsAction';\nimport { getInsertDeletePermitDeptoAction } from '../../../api/actions/systemAdmin/InsertDeletePermitDeptoAction';\n\nimport { getParams } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\n//import LoadingGif from '../../../assets/images/loading.gif';\n\nconst DepartamentsPermissions = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n \n const [loading, setLoading] = useState(true);\n const [collapsed, setCollapsed] = useState(true);\n const [authorized, setAuthorized] = useState([]);\n const [optionsClicked, setOptionsClicked] = useState({});\n const [all, setAll] = useState(null);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getDeptsCatalogAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.deptsCatalogData && props.deptsCatalogData.isOK) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n props.getDepartmentPermitsAction(params, server);\n } else if (props.deptsCatalogError && props.deptsCatalogError.isOK === false) {\n props.getDeptsCatalogAction('PURGE', '');\n }\n }, [props.deptsCatalogData, props.deptsCatalogError])\n\n useEffect(() => {\n if (props.departmentPermitsData && props.departmentPermitsData.isOK) {\n if (props.departmentPermitsData.DepartmentPermits.length == props.deptsCatalogData.DeptsCatalog.length)\n setAll(true);\n else\n setAll(false);\n\n setAuthorized(props.departmentPermitsData.DepartmentPermits);\n setLoading(false);\n } else if (props.departmentPermitsError && props.departmentPermitsError.isOK === false) {\n props.getDepartmentPermitsAction('PURGE', '');\n }\n }, [props.departmentPermitsData, props.departmentPermitsError]);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n if (props.insertDeletePermitDeptoData && props.insertDeletePermitDeptoData.isOK) {\n props.getDepartmentPermitsAction('PURGE', '');\n props.getDepartmentPermitsAction(params, server);\n } else if (props.insertDeletePermitDeptoError && props.insertDeletePermitDeptoError.isOK === false) {\n props.getDepartmentPermitsAction('PURGE', '');\n props.getDepartmentPermitsAction(params, server);\n }\n }, [props.insertDeletePermitDeptoData, props.insertDeletePermitDeptoError]);\n\n const permissions_table = () => {\n\n let table = [];\n let permisos = props.deptsCatalogData?.DeptsCatalog;\n\n if (permisos && permisos.length >= 0) {\n permisos = permisos.sort((a, b) => {\n return a.id - b.id;\n });\n\n permisos.map((item, i) => {\n let checked = authorized.filter(permiso => permiso.descripcion == item.id);\n if(optionsClicked[item.id] && optionsClicked[item.id][0] === true){\n const isOn = optionsClicked[item.id][1];\n if(isOn && checked.length <= 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, !isOn]\n });\n } else if(!isOn && checked.length > 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, isOn]\n });\n }\n }\n table.push(\n <tr key={i}>\n <td>{item.id}</td>\n <td className=\"hidden-xs-down\">{item.descripcion}</td>\n <td>\n {optionsClicked[item.id] && optionsClicked[item.id][0] === true ?\n <img src={LoadingGif} style={{ width: 20 }} />\n :\n <>\n <input name={item.id + '~dpto'} checked={checked.length > 0 ? true : false} type=\"checkbox\" onClick={() => handleClickOption(item.id, checked.length > 0)} onChange={e => handleInput(e, item.id)} value={item.id} className=\"with-gap\" id={item.id + '~dpto'} />\n <label htmlFor={item.id + '~dpto'}></label>\n </>\n }\n </td>\n </tr>\n );\n });\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay permisos para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const handleClickOption = (id, isOn) => {\n setOptionsClicked({\n ...optionsClicked,\n [id]: [true, isOn]\n });\n };\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n 'tem:Depto_ID': id == 'allOptions' ? '0' : id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n 'tem:Todos': id == 'allOptions' ? '1' : '0'\n }\n\n props.getInsertDeletePermitDeptoAction(params, server);\n\n };\n\n const triggerCollapse = () => {\n setCollapsed(!collapsed);\n }\n return (\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">Departamentos</h4>\n </div>\n <div className=\"col-6\">\n {!loading && <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\" data-toggle=\"collapse\" data-target=\"#collapseDepto\" aria-expanded=\"false\" aria-controls=\"collapseDepto\" onClick={triggerCollapse}>\n {collapsed ?\n <i className=\"mdi mdi-chevron-down\"></i>\n :\n <i className=\"mdi mdi-chevron-up\"></i>\n }\n </button>}\n </div>\n </div>\n </div>\n <div className=\"card-body collapse\" id=\"collapseDepto\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Descripción</th>\n <th>\n <input name=\"all~dpto\" type=\"checkbox\" checked={all} onClick={() => setAll(!all)} onChange={e => handleInput(e, 'allOptions')} className=\"filled-in\" id=\"all~dpto\" />\n <label htmlFor=\"all~dpto\">Todos</label>\n </th>\n </tr>\n </thead>\n <tbody>\n {!loading && permissions_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n\n deptsCatalogData: state.deptsCatalog.deptsCatalogData,\n deptsCatalogError: state.deptsCatalog.deptsCatalogError,\n\n departmentPermitsData: state.departmentPermits.departmentPermitsData,\n departmentPermitsError: state.departmentPermits.departmentPermitsError,\n\n insertDeletePermitDeptoData: state.insertDeletePermitDepto.insertDeletePermitDeptoData,\n insertDeletePermitDeptoError: state.insertDeletePermitDepto.insertDeletePermitDeptoError,\n\n };\n};\n\nconst mapDispatchToProps = {\n getDeptsCatalogAction,\n getDepartmentPermitsAction,\n getInsertDeletePermitDeptoAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(DepartamentsPermissions));\n","import { changeXml, insertDeletePermitDepto } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_DELETE_PERMIT_DEPTO_SUCCESS,\n INSERT_DELETE_PERMIT_DEPTO_ERROR,\n INSERT_DELETE_PERMIT_DEPTO_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getInsertDeletePermitDeptoAction = (data, server) => {\n let configJson = {\n 'tem:SavePermisoXUserDepartamento': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SavePermisoXUserDepartamento\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_DELETE_PERMIT_DEPTO_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_DEPTO_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_DELETE_PERMIT_DEPTO_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n insertDeletePermitDepto: insertDeletePermitDepto(body)\n }\n\n console.log('RESPONSE INSERT_DELETE_PERMIT_DEPTO DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_DEPTO_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_DELETE_PERMIT_DEPTO DATA: ', response);\n dispatch({ type: INSERT_DELETE_PERMIT_DEPTO_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_DELETE_PERMIT_DEPTO DATA: ', responseError);\n dispatch({ type: INSERT_DELETE_PERMIT_DEPTO_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, PermitPositionUser } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n PERMIT_POSITION_USER_SUCCESS,\n PERMIT_POSITION_USER_ERROR,\n PERMIT_POSITION_USER_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getPermitPositionUserAction = (data, server) => {\n let configJson = {\n 'tem:PermisosXUserPuestos': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/PermisosXUserPuestos\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: PERMIT_POSITION_USER_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET PERMIT_POSITION_USER_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: PERMIT_POSITION_USER_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n PermitPositionUser: PermitPositionUser(body)\n }\n\n console.log('RESPONSE PERMIT_POSITION_USER DATA: ', response);\n dispatch({ type: PERMIT_POSITION_USER_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET PERMIT_POSITION_USER DATA: ', response);\n dispatch({ type: PERMIT_POSITION_USER_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET PERMIT_POSITION_USER DATA: ', responseError);\n dispatch({ type: PERMIT_POSITION_USER_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\n// Position\nimport { getJobCatalogAction } from '../../../api/actions/systemAdmin/JobCatalogAction';\nimport { getPermitPositionUserAction } from '../../../api/actions/systemAdmin/PermitPositionReducer';\nimport { getInsertDeletePosAction } from '../../../api/actions/systemAdmin/InsertDeletePosAction';\n\nimport { getParams } from '../../../utils';\nimport { alert } from '../../../utils/common/alert';\n\n//import LoadingGif from '../../../assets/images/loading.gif';\n\nconst PositionPermissions = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n \n const [loading, setLoading] = useState(true);\n const [collapsed, setCollapsed] = useState(true);\n const [authorized, setAuthorized] = useState([]);\n const [optionsClicked, setOptionsClicked] = useState({});\n const [all, setAll] = useState(null);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getJobCatalogAction(params, server);\n }, []);\n\n useEffect(() => {\n if (props.jobCatalogData && props.jobCatalogData.isOK) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n props.getPermitPositionUserAction(params, server);\n } else if (props.jobCatalogError && props.jobCatalogError.isOK === false) {\n props.getJobCatalogAction('PURGE', '');\n }\n }, [props.jobCatalogData, props.jobCatalogError]);\n\n useEffect(() => {\n if (props.permitPositionUserData && props.permitPositionUserData.isOK) {\n if (props.permitPositionUserData.PermitPositionUser.length == props.jobCatalogData.JobCatalog.length)\n setAll(true);\n else\n setAll(false);\n\n setAuthorized(props.permitPositionUserData.PermitPositionUser);\n setLoading(false);\n } else if (props.permitPositionUserError && props.permitPositionUserError.isOK === false) {\n props.getPermitPositionUserAction('PURGE', '');\n }\n }, [props.permitPositionUserData, props.permitPositionUserError]);\n\n useEffect(() => {\n if (props.insertDeletePosData?.InsertDeletePos == true) {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n props.getPermitPositionUserAction('PURGE', '');\n props.getPermitPositionUserAction(params, server);\n }\n }, [props.insertDeletePosData]);\n\n useEffect(() => {\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n }\n\n if (props.insertDeletePosData && props.insertDeletePosData.isOK) {\n props.getPermitPositionUserAction('PURGE', '');\n props.getPermitPositionUserAction(params, server);\n } else if (props.insertDeletePosError && props.insertDeletePosError.isOK === false) {\n props.getPermitPositionUserAction('PURGE', '');\n props.getPermitPositionUserAction(params, server);\n }\n }, [props.insertDeletePosData, props.insertDeletePosError]);\n\n const permissions_table = () => {\n\n let table = [];\n let permisos = props.jobCatalogData?.JobCatalog;\n\n if (permisos && permisos.length >= 0) {\n permisos = permisos.sort((a, b) => {\n return a.id - b.id;\n });\n\n permisos.map((item, i) => {\n let checked = authorized.filter(permiso => permiso.descripcion == item.id);\n if(optionsClicked[item.id] && optionsClicked[item.id][0] === true){\n const isOn = optionsClicked[item.id][1];\n if(isOn && checked.length <= 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, !isOn]\n });\n } else if(!isOn && checked.length > 0){\n setOptionsClicked({\n ...optionsClicked,\n [item.id]: [false, isOn]\n });\n }\n }\n table.push(\n <tr key={i}>\n <td>{item.id}</td>\n <td className=\"hidden-xs-down\">{item.descripcion}</td>\n <td>\n {optionsClicked[item.id] && optionsClicked[item.id][0] === true ?\n <img src={LoadingGif} style={{ width: 20 }} />\n :\n <>\n <input name={item.id + '~pos'} checked={checked.length > 0 ? true : false} type=\"checkbox\" onClick={() => handleClickOption(item.id, checked.length > 0)} onChange={e => handleInput(e, item.id)} value={item.id} className=\"with-gap\" id={item.id + '~pos'} />\n <label htmlFor={item.id + '~pos'}></label>\n </>\n }\n </td>\n </tr>\n );\n });\n } else {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay permisos para mostrar.</td>\n </tr>\n );\n }\n\n return table;\n };\n\n const handleClickOption = (id, isOn) => {\n setOptionsClicked({\n ...optionsClicked,\n [id]: [true, isOn]\n });\n };\n\n const handleInput = (e, id) => {\n\n let data = getParams();\n let { params, server } = data;\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': props.match.params.user,\n 'tem:Puesto_ID': id == 'allOptions' ? '0' : id,\n 'tem:Borrar': e.target.checked ? '0' : '1',\n 'tem:Todos': id == 'allOptions' ? '1' : '0'\n }\n\n props.getInsertDeletePosAction(params, server);\n\n };\n\n const triggerCollapse = () => {\n setCollapsed(!collapsed);\n }\n return (\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title\">Puesto</h4>\n </div>\n <div className=\"col-6\">\n {!loading && <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\" data-toggle=\"collapse\" data-target=\"#collapsePos\" aria-expanded=\"false\" aria-controls=\"collapsePos\" onClick={triggerCollapse}>\n {collapsed ?\n <i className=\"mdi mdi-chevron-down\"></i>\n :\n <i className=\"mdi mdi-chevron-up\"></i>\n }\n </button>}\n </div>\n </div>\n </div>\n <div className=\"card-body collapse\" id=\"collapsePos\">\n <div className=\"d-flex no-block\">\n\n </div>\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Descripción</th>\n <th>\n <input name=\"all~pos\" type=\"checkbox\" checked={all} onClick={() => setAll(!all)} onChange={e => handleInput(e, 'allOptions')} className=\"filled-in\" id=\"all~pos\" />\n <label htmlFor=\"all~pos\">Todos</label>\n </th>\n </tr>\n </thead>\n <tbody>\n {!loading && permissions_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n\n jobCatalogData: state.jobCatalog.jobCatalogData,\n jobCatalogError: state.jobCatalog.jobCatalogError,\n\n permitPositionUserData: state.permitPositionUser.permitPositionUserData,\n permitPositionUserError: state.permitPositionUser.permitPositionUserError,\n\n insertDeletePosData: state.insertDeletePos.insertDeletePosData,\n insertDeletePosError: state.insertDeletePos.insertDeletePosError,\n };\n};\n\nconst mapDispatchToProps = {\n getJobCatalogAction,\n getPermitPositionUserAction,\n getInsertDeletePosAction\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PositionPermissions));\n","import { changeXml, InsertDeletePos } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n INSERT_DELETE_POS_SUCCESS,\n INSERT_DELETE_POS_ERROR,\n INSERT_DELETE_POS_PURGE,\n VALIDATE_ERROR,\n} from '../../types'\n\n\nexport const getInsertDeletePosAction = (data, server) => {\n let configJson = {\n 'tem:SavePermisoXUserPuesto': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/SavePermisoXUserPuesto\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: INSERT_DELETE_POS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET INSERT_DELETE_POS_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: INSERT_DELETE_POS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n InsertDeletePos: InsertDeletePos(body)\n }\n\n console.log('RESPONSE INSERT_DELETE_POS DATA: ', response);\n dispatch({ type: INSERT_DELETE_POS_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET INSERT_DELETE_POS DATA: ', response);\n dispatch({ type: INSERT_DELETE_POS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET INSERT_DELETE_POS DATA: ', responseError);\n dispatch({ type: INSERT_DELETE_POS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport RPPermissions from './Permissions/RPPermissions';\nimport CenterPermissions from './Permissions/CenterPermissions';\nimport DepartamentsPermissions from './Permissions/DepartamentsPermissions';\nimport PositionPermissions from './Permissions/PositionPermissions';\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getParams } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nconst UsersControl = props => {\n\n const [loading, setLoading] = useState(false);\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Control de Usuarios\" icon=\"mdi mdi-account-edit\" />\n <div className=\"container-fluid\">\n\n <div className=\"row\">\n <div className=\"col-md-12 col-sm-12\">\n <RPPermissions />\n </div>\n\n <div className=\"col-md-12 col-sm-12\">\n <CenterPermissions />\n </div>\n\n <div className=\"col-md-12 col-sm-12\">\n <DepartamentsPermissions />\n </div>\n\n <div className=\"col-md-12 col-sm-12\">\n <PositionPermissions />\n </div>\n </div>\n\n\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n };\n};\n\nconst mapDispatchToProps = {\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(UsersControl));\n","import React, { useEffect, useState } from \"react\";\r\nimport { NavLink, withRouter } from 'react-router-dom';\r\nimport QR from '../layout/QRCode.js';\r\n\r\nconst Leftsidebar = () => {\r\n const logoSiConsulta = process.env.PUBLIC_URL + '/assets/images/Si_logo_full.png';\r\n\r\n const [showModalQR, setShowModalQR] = useState(false);\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"REACT_APP_MUESTRA_QR\") === '1' ? <QR showModalQR={showModalQR} onClosed={() => setShowModalQR(false)} /> : null}\r\n <aside className=\"left-sidebar\">\r\n <div className=\"scroll-sidebar\">\r\n <nav className=\"sidebar-nav\">\r\n <ul id=\"sidebarnav\">\r\n <li className=\"nav-devider\"></li>\r\n <li> <NavLink activeClassName=\"active\" className=\"waves-effect waves-dark\" to={`${process.env.PUBLIC_URL}/`} aria-expanded=\"false\"><i className=\"mdi mdi-bank\"></i><span className=\"hide-menu\">Recibos Generados por Empleados</span></NavLink>\r\n </li>\r\n <li>\r\n <div className=\"text-center\" aria-expanded=\"false\">\r\n <img width=\"90\" src={logoSiConsulta} className=\"light-logo hide-menu\" alt=\"homepage\" style={{ paddingTop: 20 + 'px' }} />\r\n </div>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </aside>\r\n </>\r\n );\r\n}\r\n\r\nexport default withRouter(Leftsidebar);\r\n","import React, { useEffect, useState } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar.js\";\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport ReceiptOperatorLeftsidebar from \"../layout/ReceiptOperatorLeftsidebar.js\";\nimport EmployeeLeftsidebar from \"../layout/EmployeeLeftsidebar\";\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { getReceiptGenerationEmployeeAction, getEmployeeCatalogAction } from '../../api/actions/systemAdmin/ReceiptGenerationEmployeeAction';\nimport { CSVLink } from \"react-csv\";\nimport Select from \"react-select\";\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { getParams, openLink, getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\nimport { getUrlPdfAction } from \"../../api/actions/empleado/UrlPdfAction\";\nimport { getUrlXmlAction } from \"../../api/actions/empleado/UrlXmlAction\";\nimport download from \"downloadjs\";\n\nconst PayrollReceipts = props => {\n\n const [loading, setLoading] = useState(true);\n const [initDate, setInitDate] = useState(null);\n const [finalDate, setFinalDate] = useState(null);\n const [data, setData] = useState(null);\n const [csvData, setCsvData] = useState([]);\n const [rutasNomPDF, setRutasNomPDF] = useState('');\n const [rutasNomXml, setRutasNomXml] = useState('');\n const [pdf, setPdf] = useState({ CFDI: null, Especial: null });\n\n const [empleados, setEmpleados] = useState([]);\n const [empleadoSeleccionado, setEmpleadoSeleccionado] = useState([]);\n let defaultOption = [{ label: \"TODOS\", value: \"*\" }];\n useEffect(() => {\n\n if (initDate && finalDate) {\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:fechaInicio': initDate.toISOString(),\n 'tem:fechaFinal': finalDate.toISOString(),\n 'tem:User_ID': params['tem:TrabID'],\n }\n\n props.getReceiptGenerationEmployeeAction(params, server);\n }\n }, [initDate, finalDate]);\n\n useEffect(() => {\n if (props.receiptGenerationEmployeeData && props.receiptGenerationEmployeeData.isOK === true) {\n let data = props.receiptGenerationEmployeeData.ReceiptGenerationEmployee;\n let info = data || [];\n let csv = [[\n 'Nombre',\n 'No. Empleado',\n 'Fecha Generación',\n 'Año / Periodo',\n 'Tipo de Periodo',\n 'Tipo Nomina',\n 'Centro',\n 'Tipo de Consulta',\n 'Ultimo acceso al sistema',\n ]];\n\n if (info.length > 0) {\n info.map((rec, r) => {\n let name = rec.nombre;\n let trabId = rec.trab_ID;\n rec.detallesRecibo.map((item, i) => {\n let date = new Date(item.fechaGeneracion);\n csv.push([\n name,\n trabId,\n `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`,\n item.anioPeriodo,\n item.tipoPeriodo,\n item.tipoNomina,\n item.centro,\n item.tipoConsulta,\n item.ultimoAcceso,\n ]);\n });\n });\n }\n //console.log('OIHB', csv); \n setCsvData(csv);\n setData(props.receiptGenerationEmployeeData.ReceiptGenerationEmployee);\n if (info.length > 0 && info[0].detallesRecibo.length > 0) {\n const rutasNomPDFBytes = info[0].detallesRecibo[0].rutasNomPDF;\n setRutasNomPDF(rutasNomPDFBytes);\n }\n if (info.length > 0 && info[0].detallesRecibo.length > 0) {\n const rutasNomXmlBytes = info[0].detallesRecibo[0].rutasNomXml;\n setRutasNomXml(rutasNomXmlBytes);\n }\n props.getReceiptGenerationEmployeeAction('PURGE', '');\n setLoading(false);\n }\n else if (props.receiptGenerationEmployeeError && props.receiptGenerationEmployeeError.isOK === false) {\n let csv = [[\n 'Fecha Generación',\n 'Año / Periodo',\n 'Tipo de Periodo',\n 'Tipo Nomina',\n 'Centro',\n 'Tipo de Consulta',\n 'Ultimo acceso al sistema',\n ]];\n setCsvData(csv);\n props.getReceiptGenerationEmployeeAction('PURGE', '');\n }\n }, [props.receiptGenerationEmployeeData, props.receiptGenerationEmployeeError]);\n\n function descargarArchivoZIP() {\n const base64String = rutasNomPDF;\n const binaryData = atob(base64String);\n\n const uint8Array = new Uint8Array(binaryData.length);\n for (let i = 0; i < binaryData.length; i++) {\n uint8Array[i] = binaryData.charCodeAt(i);\n }\n\n const blob = new Blob([uint8Array], { type: 'application/zip' });\n\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'Pdfs.zip';\n a.style.display = 'none';\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n function descargarArchivoZIPXml() {\n const base64String = rutasNomXml;\n const binaryData = atob(base64String);\n\n const uint8Array = new Uint8Array(binaryData.length);\n for (let i = 0; i < binaryData.length; i++) {\n uint8Array[i] = binaryData.charCodeAt(i);\n }\n\n const blob = new Blob([uint8Array], { type: 'application/zip' });\n\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'Xmls.zip';\n a.style.display = 'none';\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n\n function descargarPdf(item, trabID) {\n // const base64String = item.rutasNomPDF;\n // const binaryData = atob(base64String);\n\n // const uint8Array = new Uint8Array(binaryData.length);\n // for (let i = 0; i < binaryData.length; i++) {\n // uint8Array[i] = binaryData.charCodeAt(i);\n // }\n\n // const blob = new Blob([uint8Array], { type: 'application/zip' });\n\n // const url = window.URL.createObjectURL(blob);\n // const a = document.createElement('a');\n // a.href = url;\n // a.download = 'Pdfs.zip';\n // a.style.display = 'none';\n // document.body.appendChild(a);\n // a.click();\n // window.URL.revokeObjectURL(url);\n let { params, server } = getParams();\n let data = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:TrabID\": trabID,\n \"tem:Ano\": item.anio,\n \"tem:PeriodoID\": item.periodoID,\n \"tem:NumPeriodo\": item.numeroPeriodo,\n \"tem:TipoNominaID\": item.tipoNominaID,\n \"tem:FechaInicio\": item.fechaInicio,\n \"tem:FechaFinal\": item.fechaFin,\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getUrlPdfAction(data, server);\n }\n\n async function descargarPdfMasivos() {\n let { params, server } = getParams();\n if (initDate && finalDate) {\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:fechaInicio': initDate.toISOString(),\n 'tem:fechaFinal': finalDate.toISOString(),\n 'tem:User_ID': params['tem:TrabID'],\n }\n props.getReceiptGenerationEmployeeAction(params, server);\n } else {\n alert(\"No seleccionó fechas\")\n }\n\n }\n\n function GetEmpleados() {\n let { params, server } = getParams();\n let _params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getEmployeeCatalogAction(_params, server);\n }\n\n useEffect(() => {\n if (props.urlPdfData && props.urlPdfData.isOK) {\n let UrlPdf = props.urlPdfData.UrlPdf || { CFDI: null, Especial: null };\n UrlPdf.CFDI = (UrlPdf.CFDI || \"\").trim();\n UrlPdf.Especial = (UrlPdf.Especial || \"\").trim();\n\n if (pdf.CFDI == null && pdf.Especial == null) {\n setPdf({ ...UrlPdf });\n }\n\n if ((UrlPdf.CFDI.length == 0 && UrlPdf.Especial.length == 0)) {\n alert(\"No se logró obtener el PDF\");\n }\n if (UrlPdf.CFDI.length > 0) {\n downloadXml(UrlPdf.CFDI);\n }\n if (UrlPdf.Especial.length > 0) {\n downloadXml(UrlPdf.Especial);\n }\n //setLoading(false);\n props.getUrlPdfAction(\"PURGE\", \"\");\n }\n else if (props.urlPdfError && props.urlPdfError.isOK === false) {\n alert(\"Erorr pdf\")\n setPdf({ CFDI: null, Especial: null });\n //setLoading(false);\n props.getUrlPdfAction(\"PURGE\", \"\");\n }\n }, [props.urlPdfData, props.urlPdfError]);\n\n useEffect(() => {\n setLoading(true);\n GetEmpleados();\n }, []);\n\n useEffect(() => {\n if (props.employeeCatalogData.isOK) {\n let array = props.employeeCatalogData.employeeCatalogResponse;\n let options = [];\n array.forEach((array) => {\n options.push({\n value: array.id,\n label: array.descripcion\n });\n });\n setEmpleados([...options]);\n } else {\n\n }\n setLoading(false);\n }, [props.employeeCatalogData, props.employeeCatalogError]);\n\n const downloadXml = async (url) => {\n //url = transformaUrl(url);\n\n let res = null;\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\n\n const config = {\n method: \"POST\",\n body: JSON.stringify({ url: url }),\n };\n res = await fetch(server, config);\n }\n else {\n // res = await fetch(url);\n openLink(url);\n return;\n }\n\n const blob = await res.blob();\n let arr = url.split(\"/\");\n let name = arr[arr.length - 1];\n\n download(blob, name);\n };\n\n\n const onChangeSelection = (v, func) => {\n let selected = (v == null ? [] : v);\n if (selected.some(s => s.value == \"*\")) {\n selected = defaultOption;\n }\n func(selected);\n };\n const data_table = () => {\n console.log(\"Emp\", empleadoSeleccionado);\n let table = [];\n let info = data || [];\n if (!info || info.length <= 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay datos para mostrar.</td>\n </tr>\n );\n }\n else {\n if (empleadoSeleccionado.length > 0) {\n let trabSeleccionado = empleadoSeleccionado.map(x => x.value);\n info = info.filter(item => trabSeleccionado.includes(item.trab_ID));\n if (info.length == 0) {\n table.push(\n <tr key={'error'} style={{ cursor: 'default' }}>\n <td>No hay datos para mostrar.</td>\n </tr>\n );\n }\n }\n info.map((rec, r) => {\n let name = rec.nombre;\n let trabId = rec.trab_ID;\n rec.detallesRecibo.map((item, i) => {\n let date = new Date(item.fechaGeneracion);\n table.push(\n <tr key={r + '_' + i}>\n <td>{name}</td>\n <td>{trabId}</td>\n <td>{`${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`}</td>\n <td>{item.anioPeriodo}</td>\n <td>{item.tipoPeriodo}</td>\n <td>{item.tipoNomina}</td>\n <td>{item.centro}</td>\n <td>{item.tipoConsulta}</td>\n <td>{item.ultimoAcceso}</td>\n {(sessionStorage.getItem(\"SICONSULTA_DescargaReciboAdmin\") === \"1\" && item.tipoConsulta === \"Descarga PDF\") &&\n <td>\n <button type='button' className='btn btn-primary' onClick={() => { descargarPdf(item, trabId) }}>Pdf</button>\n </td>\n }\n {/* <td>{item.recibosNomPDF}</td>\n <td>{item.recibosNomXml}</td>\n */}\n </tr>\n );\n });\n });\n }\n\n return table;\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 2:\n return <EmployeeLeftsidebar />;\n break;\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 9:\n return <ReceiptOperatorLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar/>\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"RECIBOS GENERADOS POR EMPLEADO\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">Criterio de Búsqueda</h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n {/* <div className='row'>\n <div className='col-12'>\n <button type='button' className='btn btn-default' onClick={() => { descargarPdfMasivos(); }}>Descargar</button>\n </div>\n </div> */}\n <div className=\"row\">\n <div className='col-md-4 mb-4'>\n <label>Empleados:</label>\n <div>\n <Select\n disabled={empleadoSeleccionado.length > 0 ? false : true}\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\n placeholder=\"Selecciona...\"\n value={empleadoSeleccionado}\n options={empleados}\n onChange={(v) => onChangeSelection(v, setEmpleadoSeleccionado)}\n isMulti={true}\n noOptionsMessage={() => \"No se encontraron resultados.\"}\n />\n </div>\n </div>\n <div className=\"col-md-4 mb-4\">\n <label>Desde:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n maxDate={new Date()}\n selected={initDate}\n onChange={new_date => {\n setInitDate(new_date);\n }}\n />\n </div>\n </div>\n\n <div className=\"col-md-4 mb-4\">\n <label>Hasta:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n minDate={initDate}\n disabled={!initDate}\n maxDate={new Date()}\n selected={finalDate}\n onChange={new_date => {\n setFinalDate(new_date);\n }}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n {!loading && <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"card-title text-white\">Reporte de Recibos Generados por Empleado</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <CSVLink data={csvData} filename={\"Recibos de Nomina.csv\"} className=\"btn btn-info m-r-15\">Exportar csv</CSVLink>\n {sessionStorage.getItem(\"SICONSULTA_DescargaMasiva\") === \"1\" &&\n <div>\n <button onClick={descargarArchivoZIP} className=\"btn btn-info m-r-15\">Descargar Pdfs</button>\n <button onClick={descargarArchivoZIPXml} className=\"btn btn-info\">Descargar Xmls</button>\n </div>\n }\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th>Nombre</th>\n <th>No. Empleado</th>\n <th>Fecha Generación</th>\n <th>Año / Periodo</th>\n <th>Tipo de Periodo</th>\n <th>Tipo Nomina</th>\n <th>Centro</th>\n <th>Tipo de Consulta</th>\n <th>Ultimo acceso al sistema</th>\n {sessionStorage.getItem(\"SICONSULTA_DescargaReciboAdmin\") === \"1\" &&\n <th>Descargar</th>\n }\n </tr>\n </thead>\n\n <tbody>\n {data_table()}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>}\n\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n\n};\n\nconst mapStateToProps = state => {\n return {\n receiptGenerationEmployeeData: state.receiptGenerationEmployee.receiptGenerationEmployeeData,\n receiptGenerationEmployeeError: state.receiptGenerationEmployee.receiptGenerationEmployeeError,\n\n urlPdfData: state.urlPdf.urlPdfData,\n urlPdfError: state.urlPdf.urlPdfError,\n\n urlXmlData: state.urlXml.urlXmlData,\n urlXmlError: state.urlXml.urlXmlError,\n\n employeeCatalogData: state.employeeCatalog.employeeCatalogData,\n employeeCatalogError: state.employeeCatalog.employeeCatalogError\n };\n};\n\nconst mapDispatchToProps = {\n getReceiptGenerationEmployeeAction,\n getEmployeeCatalogAction,\n getUrlPdfAction,\n getUrlXmlAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PayrollReceipts));\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { vacationsCalendarAction } from '../../api/actions/common/VacationsCalendarAction';\r\nimport { Calendar, momentLocalizer } from 'react-big-calendar'\r\nimport style from 'react-big-calendar/lib/css/react-big-calendar.css';\r\nimport moment from 'moment'\r\n\r\n\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\nimport { event } from 'jquery';\r\n\r\nconst localizer = momentLocalizer(moment)\r\n\r\nconst CalendarVacations = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [culture, setCulture] = useState('es')\r\n const [events, setEvents] = useState([])\r\n const [selectedDay, setSelectedDay] = useState(new Date())\r\n let year = new Date().getFullYear()\r\n let month = new Date().getMonth()\r\n let days = [\r\n { name: 'Seleccione', date: '' },\r\n { name: 'Enero', date: `01/01/${year}` },\r\n { name: 'Febrero', date: `02/01/${year}` },\r\n { name: 'Marzo', date: `03/01/${year}` },\r\n { name: 'Abril', date: `04/01/${year}` },\r\n { name: 'Mayo', date: `05/01/${year}` },\r\n { name: 'Junio', date: `06/01/${year}` },\r\n { name: 'Julio', date: `07/01/${year}` },\r\n { name: 'Agosto', date: `08/01/${year}` },\r\n { name: 'Septiembre', date: `09/01/${year}` },\r\n { name: 'Octubre', date: `10/01/${year}` },\r\n { name: 'Noviembre', date: `11/01/${year}` },\r\n { name: 'Diciembre', date: `12/01/${year}` },\r\n ]\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n }\r\n props.vacationsCalendarAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.vacationsCalendarData && props.vacationsCalendarData.isOK) {\r\n console.log('EVENTS', props.vacationsCalendarData.VacationsCalendars)\r\n setLoading(false);\r\n setEvents(props.vacationsCalendarData.VacationsCalendars)\r\n } else if (props.vacationsCalendarError && props.vacationsCalendarError.isOK === false) {\r\n props.vacationsCalendarAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsCalendarData, props.vacationsCalendarError]);\r\n\r\n\r\n const renderItem = (event) => {\r\n return (\r\n <div>\r\n {event.title}\r\n </div>\r\n )\r\n }\r\n\r\n\r\n const renderSelector = () => {\r\n let options = days.map((data) => {\r\n return (\r\n <option value={data.date} >{data.name}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n class=\"form-control\"\r\n onChange={(values) => { setSelectedDay(values.target.value != '' ? new Date(values.target.value) : new Date) }}>\r\n <option hidden selected>{days[month].name}</option>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CALENDARIO DE VACACIONES\" icon=\"mdi mdi-briefcase-check\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block justify-content-between\">\r\n <h4 className=\"card-title\">CALENDARIO DE VACACIONES</h4>\r\n </div>\r\n <div className='col-12 col-lg-12 row'>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#A9DAA4', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Vacaciones'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#003B71', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Incidencias'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\" style={{ marginBottom: '20px' }}>\r\n {/*renderSelector()*/}\r\n </div>\r\n </div>\r\n <div className=\"table-responsive \">\r\n <Calendar\r\n style={{ height: '700px' }}\r\n //step={60}\r\n localizer={localizer}\r\n toolbar={true}\r\n //date={selectedDay}\r\n events={events}\r\n defaultView={'month'}\r\n views={['month']}\r\n popup={true}\r\n culture='es'\r\n tooltipAccessor={(e) => e.title}\r\n eventPropGetter={(event) => {\r\n console.log('EVENT_', event)\r\n const backgroundColor = event.type === '1' ? '#A9DAA4' : '#003B71';\r\n return { style: { backgroundColor, fontSize: 13, paddingBottom: 5, paddingTop: 5 } }\r\n }}\r\n components={{\r\n event: renderItem,\r\n }}\r\n messages={{ 'today': \"Hoy\", \"previous\": 'Atrás', \"next\": \"Siguiente\" }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n\r\n};\r\n\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n vacationsCalendarData: state.vacationCalendar.vacationsCalendarData,\r\n vacationsCalendarError: state.vacationCalendar.vacationsCalendarError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n vacationsCalendarAction\r\n};\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CalendarVacations));\r\n\r\n","import React, { useEffect, useState } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Topbar from \"../layout/Topbar.js\";\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport { getURLReporteDocDeacargadosEmpAction } from \"../../api/actions/systemAdmin/URLReporteDocDeacargadosEmpAction\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { getParams, getSesionStorage } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\nimport download from \"downloadjs\";\n\nconst DownLoadReports = (props) => {\n const [loading, setLoading] = useState(true);\n const [initDate, setInitDate] = useState(null);\n const [finalDate, setFinalDate] = useState(null);\n\n let getReport = () => {\n if (initDate && finalDate) {\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n // 'tem:User_ID': params['tem:TrabID'],\n \"tem:userID\": params[\"tem:TrabID\"],\n \"tem:FechaInicio\": initDate.toISOString(),\n \"tem:FechaFin\": finalDate.toISOString(),\n };\n\n props.getURLReporteDocDeacargadosEmpAction(params, server);\n }\n };\n\n useEffect(() => {\n if (\n props.urlReporteDocDeacargadosEmpData &&\n props.urlReporteDocDeacargadosEmpData.isOK === true\n ) {\n let url = props.urlReporteDocDeacargadosEmpData.URLReporteDocDeacargadosEmp;\n download(url);\n } else if (\n props.urlReporteDocDeacargadosEmpError &&\n props.urlReporteDocDeacargadosEmpError.isOK === false\n ) {\n props.insertGuardaArchivoAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [\n props.urlReporteDocDeacargadosEmpData,\n props.urlReporteDocDeacargadosEmpError,\n ]);\n\n let download = async (url) => {\n const downloadLink = document.createElement(\"a\");\n\n downloadLink.href = url;\n downloadLink.download = url.split(/[/ ]+/).pop();\n downloadLink.click();\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"DESCARGAR REPORTES\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">\n Criterio de Búsqueda\n </h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-md-6 mb-4\">\n <label>Desde:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n selected={initDate}\n onChange={(new_date) => {\n setInitDate(new_date);\n }}\n />\n </div>\n </div>\n\n <div className=\"col-md-6 mb-4\">\n <label>Hasta:</label>\n <div className=\"\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n minDate={initDate}\n disabled={!initDate}\n selected={finalDate}\n onChange={(new_date) => {\n setFinalDate(new_date);\n }}\n />\n </div>\n </div>\n\n <div className=\"col-md-4 mb-4\">\n <button\n disabled={!initDate || !finalDate}\n className=\"btn btn-info form-control text-white\"\n onClick={getReport}\n >\n Descargar\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n urlReporteDocDeacargadosEmpData:\n state.urlReporteDocDeacargadosEmp.urlReporteDocDeacargadosEmpData,\n urlReporteDocDeacargadosEmpError:\n state.urlReporteDocDeacargadosEmp.urlReporteDocDeacargadosEmpError,\n };\n};\n\nconst mapDispatchToProps = {\n getURLReporteDocDeacargadosEmpAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(DownLoadReports)\n);\n","import { changeXml, URLReporteDocDeacargadosEmp } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n VALIDATE_ERROR,\n URL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS,\n URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR,\n URL_REPORTE_DOC_DEACARGADOS_EMP_PURGE,\n} from \"../../types\";\n\nexport const getURLReporteDocDeacargadosEmpAction = (data, server) => {\n let configJson = {\n \"tem:URLReporteDocDeacargadosEmp\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n SOAPAction:\n \"http://tempuri.org/IwcfKioscoReportes/URLReporteDocDeacargadosEmp\",\n Server: localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoReportes.svc',\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n let newServer = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoReportes.svc' : server\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({\n type: URL_REPORTE_DOC_DEACARGADOS_EMP_PURGE,\n payload: \"PURGE\",\n });\n } else {\n fetch(newServer, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\n \"ERROR GET INSERT_INCIDENTS_ERROR DATA: \",\n response\n );\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({\n type: URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR,\n payload: response,\n });\n } else {\n response = {\n isOK: true,\n URLReporteDocDeacargadosEmp:\n URLReporteDocDeacargadosEmp(body),\n };\n\n console.log(\"RESPONSE INSERT_INCIDENTS DATA: \", response);\n dispatch({\n type: URL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS,\n payload: response,\n });\n }\n }\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET INSERT_INCIDENTS DATA: \", response);\n dispatch({\n type: URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR,\n payload: response,\n });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET INSERT_INCIDENTS DATA: \",\n responseError\n );\n dispatch({\n type: URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR,\n payload: responseError,\n });\n });\n }\n };\n};\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Topbar from \"../layout/Topbar.js\";\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\nimport { getDeleteFilesAction } from \"../../api/actions/systemAdmin/DeleteFilesAction\";\nimport { getConsultaVarExtFileAction } from \"../../api/actions/systemAdmin/ConsultaVarExtFileAction\";\nimport { getConsultaArchivosAction } from \"../../api/actions/systemAdmin/ConsultaArchivosAction\";\nimport { insertGuardaArchivoAction } from \"../../api/actions/systemAdmin/GuardaArchivoAction\";\n\nimport { getParams, getSesionStorage } from \"../../utils\";\nimport { alert } from \"../../utils/common/alert\";\n\nconst typeOfFilesAccepted1 =\n \".gif, .png, .jpeg, .jpg, .doc, .docx, .xls, .pdf, .txt, .xml, .zip\";\nconst typeOfFilesAccepted2 = \".pdf\";\n\nconst UploadFiles = (props) => {\n const [loading, setLoading] = useState(true);\n const [uploadType, setUploadType] = useState(null);\n const [fileName, setFileName] = useState(\"\");\n const [fileBased64, setFileBased64] = useState(\"\");\n const [existFiles, setExistFiles] = useState(false);\n\n let handleSubmit = (event) => {\n event.preventDefault();\n saveArchivos(fileBased64, fileName);\n };\n\n let handleChangeInputFile = (event) => {\n event.preventDefault();\n getBase64(event.target.files[0]);\n setFileName(event.target.files[0].name);\n };\n\n let getBase64 = (file) => {\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n setFileBased64(reader.result);\n };\n };\n\n let consultVar = () => {\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getConsultaVarExtFileAction(params, server);\n };\n\n let consultArchivos = () => {\n setLoading(true);\n props.getConsultaArchivosAction(\"PURGE\", \"\");\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n };\n\n props.getConsultaArchivosAction(params, server);\n };\n\n let saveArchivos = (file64, fileName) => {\n setLoading(true);\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:Archivo\": file64,\n \"tem:Nombre\": fileName,\n };\n\n props.insertGuardaArchivoAction(params, server);\n };\n\n let deleteFilesFunc = (idxFile, deleteMany) => {\n setLoading(true);\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:Idx_Archivo\": idxFile,\n \"tem:Todos\": deleteMany,\n };\n\n props.getDeleteFilesAction(params, server);\n };\n\n let downloadBase64 = (base64, fileName) => {\n const downloadLink = document.createElement(\"a\");\n\n downloadLink.href = base64;\n downloadLink.download = fileName;\n downloadLink.click();\n };\n\n useEffect(() => {\n consultVar();\n consultArchivos();\n }, []);\n\n useEffect(() => {\n if (props.consultaVarExtData && props.consultaVarExtData.isOK === true) {\n if (props.consultaVarExtData.ConsultaVarExt)\n setUploadType(typeOfFilesAccepted1);\n } else if (\n props.consultaVarExtError &&\n props.consultaVarExtError.isOK === false\n ) {\n setUploadType(typeOfFilesAccepted2);\n props.getConsultaVarExtFileAction(\"PURGE\", \"\");\n }\n }, [props.consultaVarExtData, props.consultaVarExtError]);\n\n useEffect(() => {\n if (\n props.consultaArchivosData &&\n props.consultaArchivosData.isOK === true\n ) {\n setExistFiles(true);\n setFileName(\"\");\n setFileBased64(\"\");\n setLoading(false);\n } else if (\n props.consultaArchivosError &&\n props.consultaArchivosError.isOK === false\n ) {\n setExistFiles(false);\n props.getConsultaArchivosAction(\"PURGE\", \"\");\n setFileName(\"\");\n setFileBased64(\"\");\n setLoading(false);\n }\n }, [props.consultaArchivosData, props.consultaArchivosError]);\n\n useEffect(() => {\n if (props.deleteFilesData && props.deleteFilesData.isOK === true) {\n consultArchivos();\n } else if (\n props.deleteFilesError &&\n props.deleteFilesError.isOK === false\n ) {\n props.getDeleteFilesAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.deleteFilesData, props.deleteFilesError]);\n\n useEffect(() => {\n if (props.guardaArchivosData && props.guardaArchivosData.isOK === true) {\n consultArchivos();\n } else if (\n props.guardaArchivosError &&\n props.guardaArchivosError.isOK === false\n ) {\n props.insertGuardaArchivoAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.guardaArchivosData, props.guardaArchivosError]);\n\n function data_table() {\n let table = [];\n let info = props.consultaArchivosData?.ConsultaArchivos || [];\n\n if (!info || info.length <= 0) {\n table.push(\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\n <td>No hay archivos para mostrar.</td>\n </tr>\n );\n } else {\n info.map((item, i) => {\n table.push(\n <tr key={i}>\n <td>{item[\"Nombre\"]}</td>\n <td>\n <button\n onClick={() =>\n downloadBase64(item[\"Contenido\"], item[\"Nombre\"])\n }\n className=\"btn btn-primary form-control text-white\"\n >\n Descargar\n </button>\n </td>\n <td>\n <button\n onClick={() => deleteFilesFunc(item[\"Idx_Archivo\"], \"0\")}\n className=\"btn btn-danger form-control text-white\"\n >\n Eliminar\n </button>\n </td>\n </tr>\n );\n });\n }\n\n return table;\n }\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"CARGAR ARCHIVOS\" icon=\"mdi mdi-bank\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"col-6\">\n <h4 className=\"card-title text-white\">\n Añade el archivo\n </h4>\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n <div className=\"row align-items-center\">\n <div className=\"col-md-12 mb-2 mx-4 row\">\n Se aceptan únicamente archivos con extensión{\" \"}\n {uploadType}\n </div>\n <div className=\"col-md-12 my-2 mx-4 row\">\n <input\n type=\"file\"\n onChange={handleChangeInputFile}\n accept={uploadType}\n />\n </div>\n <div className=\"col-md-3 my-2 mx-4 row\">\n <button\n className=\"btn btn-info form-control text-white\"\n onClick={handleSubmit}\n disabled={!fileBased64}\n >\n Subir Archivo\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"col-md-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"card-title text-white\">Archivos subidos</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table table-hover no-wrap\">\n <thead>\n <tr>\n <th style={{ width: 70 + \"%\" }}>Nombre</th>\n <th colSpan={2}>\n {existFiles && (\n <button\n onClick={() => deleteFilesFunc(\"0\", \"1\")}\n className=\"btn btn-danger form-control text-white\"\n >\n Eliminar Todo\n </button>\n )}\n </th>\n <th></th>\n </tr>\n </thead>\n\n <tbody>{data_table()}</tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n consultaVarExtData: state.consultaVarExt.consultaVarExtData,\n consultaVarExtError: state.consultaVarExt.consultaVarExtError,\n\n consultaArchivosData: state.consultaArchivos.consultaArchivosData,\n consultaArchivosError: state.consultaArchivos.consultaArchivosError,\n\n deleteFilesData: state.deleteFiles.deleteFilesData,\n deleteFilesError: state.deleteFiles.deleteFilesError,\n\n guardaArchivosData: state.guardaArchivos.guardaArchivosData,\n guardaArchivosError: state.guardaArchivos.guardaArchivosError,\n };\n};\n\nconst mapDispatchToProps = {\n getConsultaVarExtFileAction,\n getConsultaArchivosAction,\n insertGuardaArchivoAction,\n getDeleteFilesAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(UploadFiles)\n);\n","import { changeXml, ConsultaVarExt } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n CONSULTA_EXT_SUCCESS,\n CONSULTA_EXT_ERROR,\n CONSULTA_EXT_PURGE,\n VALIDATE_ERROR,\n} from \"../../types\";\n\nexport const getConsultaVarExtFileAction = (data, server) => {\n let configJson = {\n \"tem:ConsultaVarExtFile\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaVarExtFile\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: CONSULTA_EXT_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_ROLES_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: CONSULTA_EXT_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n ConsultaVarExt: ConsultaVarExt(body),\n };\n\n console.log(\"RESPONSE CONSULTA_ROLES DATA: \", response);\n dispatch({ type: CONSULTA_EXT_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_ROLES DATA: \", response);\n dispatch({ type: CONSULTA_EXT_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_ROLES DATA: \",\n responseError\n );\n dispatch({ type: CONSULTA_EXT_ERROR, payload: responseError });\n });\n }\n };\n};\n","import { changeXml, GuardaArchivo } from \"../../endpoints\";\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\nimport xml2js, { parseString } from \"react-native-xml2js\";\nimport {\n VALIDATE_ERROR,\n SAVE_ARCHIVO_SUCCESS,\n SAVE_ARCHIVO_ERROR,\n SAVE_ARCHIVO_PURGE,\n} from \"../../types\";\n\nexport const insertGuardaArchivoAction = (data, server) => {\n let configJson = {\n \"tem:GuardaArchivo\": {\n ...data,\n },\n };\n\n let obj = changeXml(configJson);\n\n let config = {\n method: \"POST\",\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml', http://tempuri.org/IwcfKioscoSicoss/\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/GuardaArchivo\",\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\n let headers = {\n \"Content-Type\": \"text/xml\",\n ...config.headers,\n };\n config = {\n ...config,\n headers: headers,\n };\n }\n\n\n return (dispatch) => {\n if (data === \"PURGE\") {\n dispatch({ type: SAVE_ARCHIVO_PURGE, payload: \"PURGE\" });\n } else {\n fetch(server, config)\n .then((response) => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {};\n let body = {};\n if (\"s:Envelope\" in resultJson) {\n const envelope = resultJson[\"s:Envelope\"];\n if (\"s:Body\" in envelope) {\n body = envelope[\"s:Body\"][0];\n if (\"s:Fault\" in body) {\n console.log(\"ERROR DE RESPUESTA\");\n }\n } else {\n response = {\n isOK: false,\n error: \"No data\",\n };\n }\n }\n let valid = ValidationNoAuthorization(body);\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error,\n };\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\n dispatch({ type: VALIDATE_ERROR, payload: valid });\n dispatch({ type: SAVE_ARCHIVO_ERROR, payload: response });\n } else {\n response = {\n isOK: true,\n GuardaArchivo: GuardaArchivo(body),\n };\n\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\n dispatch({ type: SAVE_ARCHIVO_SUCCESS, payload: response });\n }\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err,\n };\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\n dispatch({ type: SAVE_ARCHIVO_ERROR, payload: response });\n }\n });\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error,\n };\n console.log(\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\n responseError\n );\n dispatch({ type: SAVE_ARCHIVO_ERROR, payload: responseError });\n });\n }\n };\n};","import { changeXml, DeleteFiles } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n VALIDATE_ERROR,\n DELETE_FILES_SUCCESS,\n DELETE_FILES_ERROR,\n DELETE_FILES_PURGE,\n} from '../../types'\n\n\nexport const getDeleteFilesAction = (data, server) => {\n let configJson = {\n 'tem:DeleteFiles': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/DeleteFiles\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('TEST REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: DELETE_FILES_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n console.log('ERROR GET DELETE_FILES_ERROR DATA: ', response);\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: DELETE_FILES_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n DeleteFiles: DeleteFiles(body)\n }\n\n console.log('RESPONSE DELETE_ADD_FIELDS DATA: ', response);\n dispatch({ type: DELETE_FILES_SUCCESS, payload: response })\n }\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET DELETE_ADD_FIELDS DATA: ', response);\n dispatch({ type: DELETE_FILES_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET DELETE_ADD_FIELDS DATA: ', responseError);\n dispatch({ type: DELETE_FILES_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useEffect, useState, Fragment } from 'react'\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Topbar from '../layout/Topbar.js';\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar';\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\nimport { useToasts } from 'react-toast-notifications';\nimport Select from \"react-select\";\n\nimport { getAdminMenuAction } from '../../api/actions/eulen/AdminMenuAction';\nimport { getAdminMenuActivateAction } from '../../api/actions/eulen/AdminMenuActivateAction';\nimport { getTypesNominaAction } from '../../api/actions/RhUser/GetTypesNominaAction';\nimport { getNominaPeriodsAction } from '../../api/actions/RhUser/GetNominaPeriodsAction';\nimport { UpdateValorConfigAction } from '../../api/actions/common/UpdateValorConfigAction';\n\nimport { getParams, getSesionStorage } from '../../utils';\nimport { alert } from '../../utils/common/alert';\n\n//import LoadingGif from '../../assets/images/loading.gif';\n\n\nconst Menu = props => {\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\n \n const { addToast } = useToasts();\n const [loading, setLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [optionsClicked, setOptionsClicked] = useState([]);\n\n const [periodosNomina, setPeriodosNomina] = useState([]);\n const [menuPorTipoNomina, setMenuPorTipoNomina] = useState([]);\n const defaultOption = [{value: '*', label: 'TODOS'}];\n const [menuConf, setMenuConf] = useState([{ Num: 1, Descripcion: 'Empleado', IdRoles: [0,1,2] }]);\n const [menuConfSelected, setMenuConfSelected] = useState({ });\n \n useEffect(() => {\n loadData();\n\n let menu = [...menuConf];\n setMenuConfSelected(menu[0]);\n\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") == \"1\") {\n menu.push({ Num: 2, Descripcion: 'Administrador', IdRoles: [5] });\n setMenuConf(menu);\n }\n\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa']\n }\n\n props.getAdminMenuAction(params, server);\n };\n\n useEffect(() => {\n if (props.adminMenuData && props.adminMenuData.isOK) {\n GetNominaPeriods();\n setHasError(false);\n setLoading(false);\n } \n else if (props.adminMenuError && props.adminMenuError.isOK === false) {\n props.getAdminMenuAction('PURGE', '');\n setHasError(true);\n setLoading(false);\n }\n }, [props.adminMenuData, props.adminMenuError]);\n\n useEffect(() => {\n if( props.nominaPeriodsData && props.nominaPeriodsData.isOK === true ) {\n let catalogo = [];\n if ('NominaPeriods' in props.nominaPeriodsData) {\n catalogo = [...props.nominaPeriodsData.NominaPeriods];\n GetMenuPorTipoNomina(catalogo);\n }\n setPeriodosNomina(catalogo);\n props.getNominaPeriodsAction('PURGE', '');\n } \n else if( props.nominaPeriodsError && props.nominaPeriodsError.isOK === true ){\n setPeriodosNomina([]);\n props.getNominaPeriodsAction('PURGE', '');\n }\n\n }, [ props.nominaPeriodsData, props.nominaPeriodsError ]);\n\n useEffect(() => {\n if (props.adminMenuActivateData && props.adminMenuActivateData.isOK) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n autoDismissTimeout: 1500\n });\n props.getAdminMenuActivateAction('PURGE', '');\n loadData();\n } else if (props.adminMenuActivateError && props.adminMenuActivateError.isOK === false) {\n props.getAdminMenuActivateAction('PURGE', '');\n setLoading(false);\n }\n\n }, [props.adminMenuActivateData, props.adminMenuActivateError]);\n\n useEffect(() => {\n if ((props.updateValorConfigData && props.updateValorConfigData.isOK)) {\n addToast('Registro Actualizado', {\n appearance: 'success',\n autoDismiss: true,\n autoDismissTimeout: 1500\n });\n props.UpdateValorConfigAction('PURGE', '');\n setLoading(false);\n } \n else if ((props.updateValorConfigError && props.updateValorConfigError.isOK === false)) {\n props.UpdateValorConfigAction('PURGE', '');\n setLoading(false);\n }\n }, [props.updateValorConfigData, props.updateValorConfigError]);\n\n const GetNominaPeriods = () => {\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Anio': 0,\n }\n\n props.getNominaPeriodsAction(params, server);\n };\n\n const GetMenuPorTipoNomina = (periodos = []) => {\n let Valor = sessionStorage.getItem(\"SICONSULTA_MenuPorTipoNomina\");\n let formaliza = formalizaMenuPorTipoNomina(Valor);\n\n [...props.adminMenuData?.AdminMenu].filter(fl => !formaliza.some(sm => sm.MenuID == fl.MenuID)).forEach(m1 => {\n formaliza.push({ MenuID: m1.MenuID, PeriodosID: [] });\n });\n\n let find = null;\n formaliza.filter(fl => fl.PeriodosID.length > 0).forEach(m1 => {\n if (m1.PeriodosID.length == periodos.length) {\n m1.PeriodosID = defaultOption;\n }\n else {\n m1.PeriodosID.forEach(m2 => {\n find = periodos.find(fn => fn.Periodo_ID == m2.value);\n if (find) m2.label = find.Descripcion;\n });\n }\n });\n\n setMenuPorTipoNomina(formaliza);\n\n console.log(\"OIHB PV\", Valor, formaliza, props.adminMenuData);\n };\n\n const UpdateValorConfig = (seccion, variable, Valor) => {\n let { params, server } = getParams();\n\n let data = {\n \"tem:sToken\": params['tem:sToken'],\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\n \"tem:Seccion\": seccion, \n \"tem:Variable\": variable, \n \"tem:Valor\": Valor,\n };\n \n props.UpdateValorConfigAction(data, server);\n };\n\n const formalizaMenuPorTipoNomina = (Valor) => {\n let list = [];\n Valor = (Valor || '').trim();\n\n Valor.split('|').forEach(m1 => { \n let obj = { MenuID: 0, PeriodosID: [] };\n\n let items = m1.trim().split('=');\n if (items.length == 2) {\n obj.MenuID = items[0];\n obj.PeriodosID = (items[1] || '').trim().split(',').map(m2 => { return {label: '', value: m2}; });\n list.push(obj);\n }\n });\n \n return list;\n };\n\n const desFormalizaMenuPorTipoNomina = (ArrMenu = []) => {\n let valor = \"\";\n let arrMenu = ArrMenu.filter(f2 => (f2.PeriodosID || []).length > 0);\n\n if (arrMenu.length > 0) { \n valor = arrMenu.map(m1 => { return m1.MenuID + \"=\" + m1.PeriodosID.map(m2 => { return m2.value; }).join(',') }).join('|');\n }\n\n return valor;\n };\n\n const renderSelectorRol = () => {\n let options = menuConf.map((data, ix) => {\n return <option key={'opt'+ix+'_rol'} value={data.Num}>{data.Descripcion}</option>;\n });\n return (\n <select\n value={menuConfSelected.Num || 0}\n className=\"form-control p-2 col-6\"\n onChange={(values) => {\n let menuSel = menuConf.find(f => f.Num == values.target.value);\n if (menuSel) {\n setMenuConfSelected(menuSel);\n }\n }}\n >\n {menuConf.length == 0 && <option key={'opt000_rol'} value={\"\"}></option>}\n {options}\n </select>\n );\n };\n\n const additional_fields = () => {\n let fields = [];\n\n let allFields = [...props.adminMenuData?.AdminMenu];\n\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") == \"1\") {\n let selectedIdRoles = [...menuConfSelected.IdRoles];\n allFields = allFields.filter(f => selectedIdRoles.some(s => s == f.IdRol));\n }\n else {\n allFields = allFields.filter(f => menuConf[0].IdRoles.some(s => s == f.IdRol));\n }\n \n\n if (allFields) {\n\n allFields.forEach(menu => {\n\n let item = optionsClicked.filter(opt => opt.id == menu.MenuID);\n let load = item.length > 0;\n\n if (item.length > 0) {\n if (item[0].isOn == menu.Habilitado) {\n load = true;\n } else {\n let newOptions = optionsClicked.filter(opt => opt.id != menu.MenuID);\n setOptionsClicked(newOptions);\n }\n }\n\n fields.push(\n <div key={'fields' + menu.MenuID} className=\"col-sm-12 col-md-6 col-lg-3\">\n {load ?\n <img src={LoadingGif} style={{ width: 20 }} className=\"mr-2\" />\n :\n <input name={menu.MenuID} type=\"checkbox\" checked={menu.Habilitado == 'true' ? true : false} onChange={() => handleInput(menu)} value={menu.MenuID} className=\"with-gap\" id={menu.MenuID} />}\n <label htmlFor={menu.MenuID}> {menu.Descripcion}</label>\n </div>\n );\n });\n\n\n fields.push(<>\n <div key={'fields'} className=\"col-12\">\n <br/>\n </div>\n <div key={'fields00'} className=\"col-12 form-actions d-flex justify-content-center\">\n\n <button type=\"submit\" className={`btn btn-success mr-4`} onClick={() => allOptions('1')}>\n <i className=\"fa fa-check\"></i> Activar Todos\n </button>\n\n <button type=\"button\" className={`btn btn-danger mr-4`} onClick={() => allOptions('0')}>\n <i className=\"mdi mdi-times\"></i> Desactivar Todos\n </button>\n\n </div>\n </>);\n\n }\n\n return fields;\n }\n\n const handleInput = menu => {\n\n setOptionsClicked([\n ...optionsClicked,\n {\n id: menu.MenuID,\n isOn: menu.Habilitado\n }\n ]);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:MenuID': menu.MenuID,\n 'tem:Habilitar': menu.Habilitado == 'true' ? '0' : '1',\n 'tem:Todos': '0',\n }\n\n props.getAdminMenuActivateAction(params, server);\n\n };\n\n const allOptions = onOff => {\n\n setLoading(true);\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:MenuID': '0',\n 'tem:Habilitar': onOff,\n 'tem:Todos': '1',\n }\n\n props.getAdminMenuActivateAction(params, server);\n\n };\n\n const additional_fields2 = () => {\n let fields = [];\n\n let allFields = [...props.adminMenuData?.AdminMenu].filter(fl => fl.Habilitado == \"true\");\n\n if (allFields.length > 0) {\n allFields.forEach(menu => {\n fields.push(\n <div key={'fields2' + menu.MenuID} className=\"col-sm-12 col-md-6 col-lg-3\">\n <label style={ {display: 'inline'} }> {menu.Descripcion}</label>\n\n <Select\n styles={{ menu: (provided) => ({...provided, zIndex: 9999,}), }}\n value={menuPorTipoNomina.find(fl => fl.MenuID == menu.MenuID)?.PeriodosID}\n placeholder=\"Periodos de nómina.\"\n options={getOptionsTiposNomina()}\n onChange={(v) => selectTipoNomina(menu.MenuID, v)}\n isMulti={true}\n noOptionsMessage={() => \"No se encontraron resultados.\" }\n />\n </div>\n );\n });\n\n //if (menuPorTipoNomina.some(sm => sm.PeriodosID.length > 0)) {\n fields.push(<>\n <div key={'fields2'} className=\"col-12\">\n <br/>\n </div>\n <div key={'fields200'} className=\"col-12 form-actions d-flex justify-content-center\">\n <button type=\"submit\" className={`btn btn-success mr-4`} onClick={() => saveMenuTN('1')}>\n <i className=\"fa fa-check\"></i> Guardar Cambios\n </button>\n\n <button type=\"button\" className={`btn btn-danger mr-4`} onClick={() => saveMenuTN('0')}>\n <i className=\"mdi mdi-times\"></i> Limpiar Todos\n </button>\n </div>\n </>);\n //}\n }\n \n return fields;\n };\n\n const getOptionsTiposNomina = () => {\n return defaultOption.concat(periodosNomina.map((item) => { \n return { \n value: item.Periodo_ID, \n label: item.Descripcion \n };\n }));\n };\n\n const selectTipoNomina = (MenuID, v) => {\n let selected = (v == null ? [] : v);\n if (selected.some(s => s.value == \"*\")) {\n selected = [{label:\"TODOS\", value:\"*\"}];\n }\n\n let menu = [...menuPorTipoNomina];\n let find = menu.find(fl => fl.MenuID == MenuID);\n if (find) {\n find.PeriodosID = selected;\n setMenuPorTipoNomina(menu);\n }\n\n console.log('OIHB PV', selected);\n };\n\n const saveMenuTN = onOff => {\n setLoading(true);\n\n let menu = [...menuPorTipoNomina];\n let allFields = [...props.adminMenuData?.AdminMenu].filter(fl => fl.Habilitado == \"true\");\n\n if (onOff != 1) {\n menu.filter(fl => allFields.some(sm => fl.MenuID == sm.MenuID)).forEach(m1 => { \n m1.PeriodosID = []; \n });\n setMenuPorTipoNomina(menu);\n }\n else {\n menu.filter(fl => fl.PeriodosID.some(sm => sm.value == \"*\")).forEach(m1 => {\n m1.PeriodosID = periodosNomina.map(m2 => { \n return { \n value: m2.Periodo_ID, \n label: m2.Descripcion \n };\n });\n });\n }\n\n let desformaliza = desFormalizaMenuPorTipoNomina(menu);\n sessionStorage.setItem(\"SICONSULTA_MenuPorTipoNomina\", desformaliza);\n UpdateValorConfig(\"SICONSULTA\", \"MenuPorTipoNomina\", desformaliza);\n\n GetMenuPorTipoNomina(periodosNomina);\n };\n\n const Leftsidebar = () => {\n let storage = getSesionStorage('userType');\n switch (storage.typeUser) {\n case 5:\n return <SystemAdminLeftsidebar />;\n break;\n case 10:\n return <RHSpecialLeftsidebar />;\n break;\n default:\n return <SystemAdminLeftsidebar />;\n }\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n </div>\n </>\n );\n } \n else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"MENU\" icon=\"mdi mdi-menu\" />\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <div className=\"row\">\n <div className=\"d-flex flex-wrap justify-content-between\" style={ {padding: '12px'}}>\n <h4 className=\"card-title m-b-0 text-white\">Seleccione las opciones que estarán presentes en el menú.</h4>\n {localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") == \"1\" && renderSelectorRol()}\n </div>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"form-body\">\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button row\">\n {!hasError && additional_fields()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {localStorage.getItem(\"REACT_APP_MENU_POR_NOMINAS\") == \"1\" && <div className=\"col-lg-12\">\n <div className=\"card card-outline-info\">\n <div className=\"card-header\">\n <h4 className=\"m-b-0 text-white\">Seleccione que periodo de nómina filtrará a cada opción menú habilitado.</h4>\n </div>\n <div className=\"card-body\">\n <div className=\"form-body\">\n <div className=\"row p-t-20\">\n <div className=\"col-md-12\">\n <div className=\"demo-radio-button row\">\n {!hasError && additional_fields2()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>}\n\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n\n};\n\nconst mapStateToProps = state => {\n return {\n\n adminMenuData: state.adminMenu.adminMenuData,\n adminMenuError: state.adminMenu.adminMenuError,\n\n adminMenuActivateData: state.adminMenuActivate.adminMenuActivateData,\n adminMenuActivateError: state.adminMenuActivate.adminMenuActivateError,\n\n typesNominaData: state.getTypesNomina.typesNominaData,\n typesNominaError: state.getTypesNomina.typesNominaError,\n\n nominaPeriodsData: state.getNominaPeriods.nominaPeriodsData,\n nominaPeriodsError: state.getNominaPeriods.nominaPeriodsError,\n\n updateValorConfigData: state.updateValorConfig.updateValorConfigData,\n updateValorConfigError: state.updateValorConfig.updateValorConfigError,\n };\n};\n\nconst mapDispatchToProps = {\n getAdminMenuAction,\n getAdminMenuActivateAction,\n getTypesNominaAction,\n getNominaPeriodsAction,\n UpdateValorConfigAction,\n}\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Menu));\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar.js\";\r\nimport RHSpecialLeftsidebar from '../layout/RHSpecialLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport { getTipoEncuestaAction, getEmpleadosGUIA1Action, getUbicacionesConteoAction, getSeleccionEmpUbiAction, setEnviarEncuestasGUIA2_3Action, setEnviarEncuestasGUIA1Action } from '../../api/actions/systemAdmin/GetTipoEncuestasAction.js';\r\n\r\nimport { getCenterCatalogAction } from '../../api/actions/systemAdmin/CenterCatalogAction';\r\nimport { getDeptsCatalogAction } from '../../api/actions/systemAdmin/DeptsCatalogAction'\r\nimport { getJobCatalogAction } from '../../api/actions/systemAdmin/JobCatalogAction';\r\n\r\nimport { getCenterPermitAction } from '../../api/actions/systemAdmin/CenterPermitAction';//<--\r\nimport { getDepartmentPermitsAction } from '../../api/actions/systemAdmin/DepartmentPermitsAction';//<--\r\nimport { getPermitPositionUserAction } from '../../api/actions/systemAdmin/PermitPositionReducer';//<--\r\n\r\nimport { getParams , getSesionStorage} from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\n\r\n//import LoadingGif from '../../assets/images/loading.gif';\r\nimport { string } from 'postcss-selector-parser';\r\n\r\nconst SuveryNom035 = props => {\r\n const LoadingGif = process.env.PUBLIC_URL + '/assets/images/loading.gif';\r\n \r\n const [loading, setLoading] = useState(true);\r\n const [dataTipoEncuestas, setDataTipoEncuestas] = useState([]);\r\n const [dataUbicacionesConteo, setDataUbicacionesConteo] = useState([]);\r\n const [dataSeleccionEmpUbi, setDataSeleccionEmpUbi] = useState([]);\r\n\r\n // Comentado: Se ha desactivado la filtración por permisos a todo lo relacionado a \"authorized\"\r\n const [authorizedCenter, setAuthorizedCenter] = useState([]);\r\n const [authorizedDepts, setAuthorizedDepts] = useState([]);\r\n const [authorizedJobs, setAuthorizedJobs] = useState([]);\r\n // Comentado\r\n const [dataCenterCatalog, setDataCenterCatalog] = useState([]);\r\n const [dataDeptsCatalog, setDataDeptsCatalog] = useState([]);\r\n const [dataJobCatalog, setDataJobCatalog] = useState([]);\r\n const [dataEmpleadosGUIA1, setDataEmpleadosGUIA1] = useState([]);\r\n const [dataValuesGUIA1, setDataValuesGUIA1] = useState({ Centro_ID: \"0\", Depto_ID: \"0\", Puesto_ID: \"0\", Busqueda: \"\" });\r\n const [dataValuesGUIA2_3, setDataValuesGUIA2_3] = useState({ Table_ID: 0, SecondTableShow: false});\r\n const [dataInfo, setDataInfo] = useState(\"\");\r\n\r\n // const [dataEnviarEncuestasGUIA2_3, setDataEnviarEncuestasGUIA2_3] = useState({});\r\n const [dataValorGUIA, setDataValorGUIA] = useState(\"1\");\r\n\r\n //let defaultOption = [{Table_ID:\"0\", descripcion:\"-- TODOS --\"}]\r\n let defaultOption = [{id:\"0\", descripcion:\"-- TODOS --\"}]\r\n let defaultValuesGUIA1 = { Centro_ID: \"0\", Depto_ID: \"0\", Puesto_ID: \"0\", Busqueda: \"\" }\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getTipoEncuestaAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.getTipoEncuestasData || {isOK:false}).isOK)\r\n {\r\n setDataTipoEncuestas([\r\n ...props.getTipoEncuestasData.TipoEncuestas\r\n ]);\r\n\r\n // let { params, server } = getParams()\r\n // params = {\r\n // \"tem:sToken\": params[\"tem:sToken\"],\r\n // \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n // }\r\n // props.getUbicacionesConteoAction(params, server)\r\n props.getTipoEncuestaAction(\"PURGE\", \"\");\r\n onChange_tipoEncuestas(dataValorGUIA);\r\n }\r\n else if (props.getTipoEncuestasError && props.getTipoEncuestasError.isOK == false) {\r\n setDataTipoEncuestas([]);\r\n setLoading(false);\r\n props.getTipoEncuestaAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.getTipoEncuestasData,\r\n props.getTipoEncuestasError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.centersPermitsData || {isOK:false}).isOK) {\r\n setAuthorizedCenter([...props.centersPermitsData.CenterPermit])\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n 'tem:UserID': params[\"tem:TrabID\"],\r\n };\r\n\r\n props.getDepartmentPermitsAction(params, server);\r\n props.getCenterPermitAction(\"PURGE\", \"\");\r\n } \r\n else if (props.centersPermitsError && props.centersPermitsError.isOK == false) {\r\n setAuthorizedCenter([]);\r\n setLoading(false);\r\n props.getCenterPermitAction(\"PURGE\", \"\");\r\n }\r\n }, [props.centersPermitsData, props.centersPermitsError]);\r\n\r\n useEffect(() => {\r\n if ((props.departmentPermitsData || {isOK:false}).isOK) {\r\n setAuthorizedDepts([...props.departmentPermitsData.DepartmentPermits]);\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n 'tem:UserID': params[\"tem:TrabID\"],\r\n };\r\n\r\n props.getPermitPositionUserAction(params, server);\r\n props.getDepartmentPermitsAction(\"PURGE\", \"\");\r\n } \r\n else if (props.departmentPermitsError && props.departmentPermitsError.isOK == false) {\r\n setAuthorizedDepts([]);\r\n setLoading(false);\r\n props.getDepartmentPermitsAction(\"PURGE\", \"\");\r\n }\r\n }, [props.departmentPermitsData, props.departmentPermitsError]);\r\n\r\n useEffect(() => {\r\n if ((props.permitPositionUserData || {isOK:false}).isOK) {\r\n setAuthorizedJobs([...props.permitPositionUserData.PermitPositionUser]);\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getCenterCatalogAction(params, server);\r\n props.getPermitPositionUserAction(\"PURGE\", \"\");\r\n } \r\n else if (props.permitPositionUserError && props.permitPositionUserError.isOK == false) {\r\n setAuthorizedJobs([]);\r\n setLoading(false);\r\n props.getPermitPositionUserAction(\"PURGE\", \"\");\r\n }\r\n }, [props.permitPositionUserData, props.permitPositionUserError]);\r\n\r\n useEffect(() => {\r\n if ((props.centersCatalogData || {isOK:false}).isOK)\r\n {\r\n let arrdcc = [...props.centersCatalogData.CenterCatalog];\r\n //arrdcc = arrdcc.filter(fdcc => (authorizedCenter || []).some(sm => sm.Descripcion == fdcc.ID))\r\n \r\n setDataCenterCatalog(defaultOption.concat(arrdcc));\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getDeptsCatalogAction(params, server);\r\n props.getCenterCatalogAction(\"PURGE\", \"\");\r\n }\r\n else if (props.centersCatalogError && props.centersCatalogError.isOK == false) {\r\n setDataCenterCatalog([]);\r\n setLoading(false);\r\n props.getCenterCatalogAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.centersCatalogData,\r\n props.centersCatalogError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.deptsCatalogData || {isOK:false}).isOK)\r\n {\r\n let arrddc = [...props.deptsCatalogData.DeptsCatalog];\r\n //arrddc = arrddc.filter(fddc => (authorizedDepts || []).some(sm => sm.Descripcion == fddc.ID))\r\n\r\n setDataDeptsCatalog(defaultOption.concat(arrddc));\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getJobCatalogAction(params, server);\r\n props.getDeptsCatalogAction(\"PURGE\", \"\");\r\n }\r\n else if (props.deptsCatalogError && props.deptsCatalogError.isOK == false) {\r\n setDataDeptsCatalog([]);\r\n setLoading(false);\r\n props.getDeptsCatalogAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.deptsCatalogData,\r\n props.deptsCatalogError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.jobCatalogData || {isOK:false}).isOK)\r\n {\r\n let arrdjc = [...props.jobCatalogData.JobCatalog];\r\n //arrdjc = arrdjc.filter(fdjc => (authorizedJobs || []).some(sm => sm.Descripcion == fdjc.ID))\r\n\r\n setDataJobCatalog(defaultOption.concat(arrdjc));\r\n props.getJobCatalogAction(\"PURGE\", \"\");\r\n }\r\n else if (props.jobCatalogError && props.jobCatalogError.isOK == false) {\r\n setDataJobCatalog([]);\r\n setLoading(false);\r\n props.getJobCatalogAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.jobCatalogData,\r\n props.jobCatalogError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.getEmpleadosGUIA1Data || {isOK:false}).isOK)\r\n {\r\n let deg1Arr = [...props.getEmpleadosGUIA1Data.EmpleadosGUIA1];\r\n if((dataValuesGUIA1.Busqueda || \"\").length > 0)\r\n {\r\n let arrBusqueda = dataValuesGUIA1.Busqueda.split(',');\r\n deg1Arr = deg1Arr.filter(item => arrBusqueda.some(text => item.TrabID.includes(text.trim()) || item.NombreCompleto.toUpperCase().includes(text.trim().toUpperCase())));\r\n }\r\n deg1Arr = deg1Arr.map((item, i) => { return { Id: i.toString(), NombreCompleto: item.NombreCompleto, TrabID: item.TrabID, Seleccionado: \"false\", Enviar: \"false\" } } );\r\n setDataEmpleadosGUIA1(deg1Arr);\r\n props.getEmpleadosGUIA1Action(\"PURGE\", \"\");\r\n }\r\n else if (props.getEmpleadosGUIA1Error && props.getEmpleadosGUIA1Error.isOK == false) {\r\n setDataInfo(\"No se encontraron resultados.\");\r\n setDataEmpleadosGUIA1([]);\r\n setLoading(false);\r\n props.getEmpleadosGUIA1Action(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.getEmpleadosGUIA1Data,\r\n props.getEmpleadosGUIA1Error,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.getUbicacionesConteoData || {isOK:false}).isOK)\r\n {\r\n setDataUbicacionesConteo([\r\n ...props.getUbicacionesConteoData.UbicacionesConteo\r\n ]);\r\n\r\n let { params, server } = getParams();\r\n props.getUbicacionesConteoData.UbicacionesConteo.map((item, i) => {\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:IDSelect\": item.Ubicacion_ID,\r\n };\r\n props.getSeleccionEmpUbiAction(params, server);\r\n });\r\n\r\n props.getUbicacionesConteoAction(\"PURGE\", \"\");\r\n }\r\n else if (props.getUbicacionesConteoError && props.getUbicacionesConteoError.isOK == false) {\r\n setLoading(false);\r\n props.getUbicacionesConteoAction(\"PURGE\", \"\");\r\n }\r\n }, [\r\n props.getUbicacionesConteoData,\r\n props.getUbicacionesConteoError,\r\n ]);\r\n\r\n useEffect(() => {\r\n if ((props.getSeleccionEmpUbiData || {isOK:false}).isOK) {\r\n let dseuArr = [];\r\n if (dataSeleccionEmpUbi) {\r\n dseuArr = dseuArr.concat(dataSeleccionEmpUbi);\r\n }\r\n dseuArr = dseuArr.concat([...props.getSeleccionEmpUbiData.SeleccionEmpUbi]);\r\n setDataSeleccionEmpUbi(dseuArr);\r\n props.getSeleccionEmpUbiAction(\"PURGE\", \"\");\r\n }\r\n setLoading(false);\r\n }, [\r\n props.getSeleccionEmpUbiData,\r\n props.getSeleccionEmpUbiError,\r\n ]);\r\n\r\n const resetSomeStates = () => {\r\n setDataInfo(\"\")\r\n setDataValuesGUIA1({...defaultValuesGUIA1})\r\n setDataValuesGUIA2_3({ Table_ID: 0, SecondTableShow: false })\r\n setDataCenterCatalog([])\r\n setDataDeptsCatalog([])\r\n setDataJobCatalog([])\r\n setDataEmpleadosGUIA1([])\r\n setDataUbicacionesConteo([])\r\n setDataSeleccionEmpUbi([])\r\n props.getCenterCatalogAction(\"PURGE\", \"\");\r\n props.getDeptsCatalogAction(\"PURGE\", \"\");\r\n props.getJobCatalogAction(\"PURGE\", \"\");\r\n props.getEmpleadosGUIA1Action(\"PURGE\", \"\")\r\n props.getUbicacionesConteoAction(\"PURGE\", \"\")\r\n props.getSeleccionEmpUbiAction(\"PURGE\", \"\")\r\n };\r\n\r\n const counts_seleccionEmpUbi = (ubicacion_id, seleccionado) => {\r\n return (dataSeleccionEmpUbi || []).filter(f => f.Ubicacion_ID == ubicacion_id && f.Seleccionado == seleccionado).length\r\n }\r\n\r\n // Events tipoEncuestas\r\n const onChange_tipoEncuestas = (valor) => {\r\n resetSomeStates();\r\n setDataValorGUIA(valor);\r\n\r\n if (valor == \"1\") {\r\n // setDataUbicacionesConteo([])\r\n // setDataSeleccionEmpUbi([])\r\n // setDataValuesGUIA2_3({ Table_ID: 0, SecondTableShow: false})\r\n // props.getUbicacionesConteoAction(\"PURGE\", \"\")\r\n // props.getSeleccionEmpUbiAction(\"PURGE\", \"\")\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n 'tem:UserID': params[\"tem:TrabID\"],\r\n };\r\n\r\n props.getCenterPermitAction(params, server);\r\n\r\n // props.getCenterCatalogAction(params, server);\r\n // props.getDeptsCatalogAction(params, server);\r\n // props.getJobCatalogAction(params, server);\r\n }\r\n else if(valor == \"3\") {\r\n // setDataCenterCatalog([])\r\n // setDataDeptsCatalog([])\r\n // setDataJobCatalog([])\r\n // setDataEmpleadosGUIA1([])\r\n // props.getCenterCatalogAction(\"PURGE\", \"\");\r\n // props.getDeptsCatalogAction(\"PURGE\", \"\");\r\n // props.getJobCatalogAction(\"PURGE\", \"\");\r\n // props.getEmpleadosGUIA1Action(\"PURGE\", \"\")\r\n\r\n let { params, server } = getParams();\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n props.getUbicacionesConteoAction(params, server);\r\n }\r\n };\r\n\r\n // Events empleadosGUIA1\r\n const onClickRow_empleadosGUIA1 = (id, enviar) => {\r\n let deg1Arr = [...dataEmpleadosGUIA1]\r\n\r\n if (id == \"*\") {\r\n deg1Arr.map((item) => {\r\n item.Enviar = enviar\r\n })\r\n }\r\n else {\r\n let idx = (deg1Arr.findIndex(f => f.Id == id) || 0)\r\n if (idx >= 0) {\r\n deg1Arr[idx].Enviar = enviar\r\n } \r\n }\r\n\r\n setDataEmpleadosGUIA1(deg1Arr)\r\n };\r\n\r\n const onClick_empleadosGUIA1 = () => {\r\n setDataInfo(\"\")\r\n //props.getEmpleadosGUIA1Action(\"PURGE\", \"\")\r\n\r\n let { params, server } = getParams()\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Centro_ID\": dataValuesGUIA1.Centro_ID,\r\n \"tem:Depto_ID\": dataValuesGUIA1.Depto_ID,\r\n \"tem:Puesto_ID\": dataValuesGUIA1.Puesto_ID,\r\n \"tem:UserID\": params[\"tem:TrabID\"],\r\n }\r\n\r\n props.getEmpleadosGUIA1Action(params, server)\r\n };\r\n\r\n // Events ubicacionesConteo\r\n const isAllCheckeds_ubicacionesConteo = () => {\r\n let result = (dataUbicacionesConteo || []).length > 0\r\n if (result) {\r\n result = !dataUbicacionesConteo.find(fduc => fduc.Seleccionado == \"false\")\r\n }\r\n return result\r\n };\r\n\r\n const onCheck_ubicacionesConteo = (ubicacion_id) => {\r\n let ducArr = [...dataUbicacionesConteo]\r\n\r\n if (ubicacion_id == \"*\"){\r\n let seleccionado = isAllCheckeds_ubicacionesConteo() ? \"false\" : \"true\"\r\n ducArr.map( (item, i) => {\r\n item.Seleccionado = seleccionado\r\n })\r\n }\r\n else {\r\n let idx = (ducArr.findIndex(f => f.Ubicacion_ID == ubicacion_id) || 0)\r\n if (idx >= 0) {\r\n ducArr[idx].Seleccionado = (ducArr[idx].Seleccionado == \"true\" ? \"false\" : \"true\")\r\n }\r\n }\r\n\r\n setDataUbicacionesConteo(ducArr)\r\n };\r\n\r\n const onChange_guiaUbicacionesConteo = (ubicacion_id, guia) => {\r\n let ducArr = [...dataUbicacionesConteo]\r\n let idx = (ducArr.findIndex(f => f.Ubicacion_ID == ubicacion_id) || 0)\r\n\r\n if (idx >= 0) {\r\n ducArr[idx].Guia = guia\r\n }\r\n\r\n setDataUbicacionesConteo(ducArr)\r\n };\r\n\r\n // Events seleccionEmpUbi\r\n const isAllCheckeds_seleccionEmpUbi = (ubicacion_id) => {\r\n let result = false\r\n let dseuArr = (dataSeleccionEmpUbi || []).filter(fdseu => fdseu.Ubicacion_ID == ubicacion_id)\r\n\r\n if (dseuArr.length > 0) {\r\n result = !dseuArr.find(fdseu => fdseu.Seleccionado == \"false\")\r\n }\r\n\r\n return result\r\n };\r\n\r\n const onCheck_seleccionEmpUbi = (ubicacion_id, trab_id) => {\r\n let dseuArr = [...dataSeleccionEmpUbi]\r\n\r\n if (trab_id == \"*\"){\r\n let seleccionado = isAllCheckeds_seleccionEmpUbi(ubicacion_id) ? \"false\" : \"true\"\r\n dseuArr.filter(fdseu => fdseu.Ubicacion_ID == ubicacion_id ).map( (item, i) => {\r\n item.Seleccionado = seleccionado\r\n })\r\n }\r\n else {\r\n let idx = (dseuArr.findIndex(fdseu => fdseu.Ubicacion_ID == ubicacion_id && fdseu.Trab_ID == trab_id) || 0)\r\n if (idx >= 0) {\r\n dseuArr[idx].Seleccionado = (dseuArr[idx].Seleccionado == \"true\" ? \"false\" : \"true\")\r\n }\r\n }\r\n\r\n setDataSeleccionEmpUbi(dseuArr)\r\n };\r\n\r\n // Componente de frente\r\n const _renderSelect_tipoEncuestas = () => {\r\n if ((dataTipoEncuestas || []).length == 0) {\r\n return (<></>) \r\n }\r\n\r\n return (\r\n <select className=\"form-control p-2 col-3\" onChange={(e) => { onChange_tipoEncuestas(e.target.value) }} >\r\n { \r\n dataTipoEncuestas.map((item, i) => {\r\n return (<option value={item.Valor} selected={(item.Valor == dataValorGUIA ? \"selected\" : \"\")}>{item.Descripcion}</option>)\r\n })\r\n }\r\n </select>)\r\n };\r\n\r\n const _renderSelect = (property, options, value, text) => {\r\n return (\r\n <select className=\"form-control p-2\" \r\n onChange={(e) => { \r\n let dValues = {...dataValuesGUIA1}; \r\n dValues[property] = e.target.value; \r\n setDataValuesGUIA1(dValues); \r\n console.log(JSON.stringify(dataValuesGUIA1))\r\n }}>\r\n {\r\n (options || []).map((item) => { return (<option value={item[value]}>{item[text]}</option>) })\r\n }\r\n </select>)\r\n };\r\n\r\n const rowsTable_empleadosGUIA1 = (enviados, asignar) => {\r\n let options = []\r\n\r\n if (dataEmpleadosGUIA1) {\r\n dataEmpleadosGUIA1.filter(f => f.Enviar == enviados).map(\r\n (item, i) => {\r\n options.push(\r\n <tr style={ { cursor: \"pointer\" } } onClick={() => { onClickRow_empleadosGUIA1(item.Id, asignar) }}>\r\n <td style={ { cursor: \"pointer\" } }>{item.TrabID + \": \" + item.NombreCompleto}</td>\r\n </tr>)\r\n }\r\n );\r\n }\r\n\r\n return options;\r\n };\r\n\r\n const _renderEncuestasGUIA1 = () => {\r\n return (<>\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-4\">\r\n CENTRO\r\n { _renderSelect(\"Centro_ID\", dataCenterCatalog, \"id\", \"descripcion\") }\r\n </div>\r\n <div className=\"form-group col-md-4\">\r\n DEPARTAMENTO\r\n { _renderSelect(\"Depto_ID\", dataDeptsCatalog, \"id\", \"descripcion\") }\r\n </div>\r\n <div className=\"form-group col-md-4\">\r\n PUESTO\r\n { _renderSelect(\"Puesto_ID\", dataJobCatalog, \"id\", \"descripcion\") }\r\n </div>\r\n <div className=\"form-group col-md-6\">\r\n NOMBRE O NÚMERO DE EMPLEADO\r\n <input type=\"text\" className=\"form-control p-2\" onChange={(e) => { \r\n let dValues = {...dataValuesGUIA1}; \r\n dValues[\"Busqueda\"] = e.target.value; \r\n setDataValuesGUIA1(dValues); \r\n console.log(JSON.stringify(dataValuesGUIA1))\r\n }} />\r\n </div>\r\n <div className=\"col-md-12\">\r\n <button type=\"submit\" className=\"btn btn-success\" style={ {cursor: \"pointer\", float: \"left\", marginBottom:\"5px\"} } onClick={() => { onClick_empleadosGUIA1() }}>\r\n <i className=\"fa fa-back\"></i> Buscar \r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-12\">\r\n {dataInfo.length > 0 && <label style={{ color: 'red', fontWeight: 'bold' }}><br/>{dataInfo}</label>}\r\n </div>\r\n <div className=\"form-group col-md-12\">\r\n <div style={{minWidth:\"47%\", maxWidth:\"47%\", float: \"left\"}}>\r\n <div style={ { maxHeight: \"400px\", minHeight: \"400px\", overflow: \"auto\", border: \"1px solid #ced4da\" } }>\r\n <table className=\"table nowrap stylish-table\">\r\n <tbody>\r\n { rowsTable_empleadosGUIA1(\"false\", \"true\") }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div style={{minWidth:\"6%\", maxWidth:\"6%\", float: \"left\"}}>\r\n <center>\r\n <div class=\"btn-group-vertical\" role=\"group\" style={{margin:\"5px\"}}>\r\n <button type=\"button\" className=\"btn btn-secondary\" onClick={() => { onClickRow_empleadosGUIA1(\"*\", \"true\") }}>{\">>\"}</button>\r\n <button type=\"button\" className=\"btn btn-secondary\" onClick={() => { onClickRow_empleadosGUIA1(\"*\", \"false\") }}>{\"<<\"}</button>\r\n </div> \r\n </center>\r\n </div>\r\n <div style={{minWidth:\"47%\", maxWidth:\"47%\", float:\"left\"}}>\r\n <div style={ { maxHeight: \"400px\", minHeight: \"400px\", overflow: \"auto\", border: \"1px solid #ced4da\" } }>\r\n <table className=\"table nowrap stylish-table\">\r\n <tbody>\r\n { rowsTable_empleadosGUIA1(\"true\", \"false\") }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </>)\r\n };\r\n\r\n const rowsTable_ubicacionesConteo = () => {\r\n let options = []\r\n if (dataUbicacionesConteo) {\r\n dataUbicacionesConteo.map((item, i) => {\r\n options.push(\r\n <tr>\r\n <td>\r\n {\r\n <>\r\n <input type=\"checkbox\" className=\"with-gap\" id={item.Ubicacion_ID + \"~rp\"} name={item.Ubicacion_ID + \"~rp\"} \r\n checked={(item.Seleccionado == \"true\")} \r\n onClick={() => { onCheck_ubicacionesConteo(item.Ubicacion_ID) }} \r\n onChange={() => {}}\r\n value={item.Ubicacion_ID} />\r\n <label htmlFor={item.Ubicacion_ID + \"~rp\"}></label>\r\n </>\r\n }\r\n </td>\r\n <td>{item.Total}</td>\r\n <td>{counts_seleccionEmpUbi(item.Ubicacion_ID, \"true\")}</td>\r\n <td>{item.Ubicacion}</td>\r\n <td>{item.Ultimoenvio}</td>\r\n <td>\r\n <select className=\"form-control p-2\" onChange={(e) => { onChange_guiaUbicacionesConteo(item.Ubicacion_ID, e.target.value) }} disabled={(item.Seleccionado != \"true\")} >\r\n <option value=\"2\" selected={item.Guia == \"2\"}>Guía II (1 - 50 Empleados)</option>\r\n <option value=\"3\" selected={item.Guia == \"3\"}>Guía III (+50 Empleados)</option>\r\n </select>\r\n </td>\r\n <td>\r\n {\r\n item.Seleccionado == \"true\" ? \r\n (<i className=\"mdi mdi-pencil\" style={{cursor: \"pointer\"}} onClick={() => { setDataValuesGUIA2_3({ Table_ID: item.Ubicacion_ID, SecondTableShow: true }) }}></i>)\r\n : \r\n (<>     </>)\r\n }\r\n </td>\r\n </tr>)\r\n });\r\n }\r\n return options;\r\n };\r\n\r\n const rowsTable_seleccionEmpUbi = () => {\r\n let options = []\r\n if (dataSeleccionEmpUbi) {\r\n dataSeleccionEmpUbi.filter(f => f.Ubicacion_ID == dataValuesGUIA2_3.Table_ID).map((item, i) => {\r\n options.push(\r\n <tr>\r\n <td>\r\n {\r\n <>\r\n <input type=\"checkbox\" className=\"with-gap\" id={item.Trab_ID + \"~rp\"} name={item.Trab_ID + \"~rp\"} \r\n checked={(item.Seleccionado == \"true\")} \r\n onClick={() => { onCheck_seleccionEmpUbi(item.Ubicacion_ID, item.Trab_ID) }} \r\n onChange={() => {}}\r\n value={item.Trab_ID} />\r\n <label htmlFor={item.Trab_ID + \"~rp\"}></label>\r\n </>\r\n }\r\n </td>\r\n <td>{item.Trab_ID}</td>\r\n <td>{(item.Paterno + \" \" + item.Materno + \" \" + item.Nombre)}</td>\r\n <td>{item.Email}</td>\r\n </tr>)\r\n });\r\n }\r\n return options;\r\n };\r\n \r\n const _renderEncuestasGUIA2_3 = () => {\r\n return (\r\n <div className=\"table-responsive m-t-20\">\r\n {!dataValuesGUIA2_3.SecondTableShow ? \r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <td>\r\n {\r\n <>\r\n <input type=\"checkbox\" className=\"with-gap\" id={\"~rp\"} name={\"~rp\"} \r\n checked={isAllCheckeds_ubicacionesConteo()} \r\n onClick={() => { onCheck_ubicacionesConteo(\"*\") }} \r\n onChange={() => {}}\r\n value={\"\"} />\r\n <label htmlFor={\"~rp\"}></label>\r\n </>\r\n }\r\n </td>\r\n <td colSpan=\"6\">Seleccionar todas las Ubicaciones</td>\r\n </tr>\r\n <tr>\r\n <th></th>\r\n <th>Total</th>\r\n <th>Muestra</th>\r\n <th>Ubicación</th>\r\n <th>Ultimo envío</th>\r\n <th>Tipo que aplica</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n { rowsTable_ubicacionesConteo() }\r\n </tbody>\r\n </table>\r\n :\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <td>\r\n {\r\n <>\r\n <input type=\"checkbox\" className=\"with-gap\" id={\"~rp\"} name={\"~rp\"} \r\n checked={isAllCheckeds_seleccionEmpUbi(dataValuesGUIA2_3.Table_ID)} \r\n onClick={() => { onCheck_seleccionEmpUbi(dataValuesGUIA2_3.Table_ID, \"*\") }} \r\n onChange={() => {}}\r\n value={\"\"} />\r\n <label htmlFor={\"~rp\"}></label>\r\n </>\r\n }\r\n </td>\r\n <td colSpan=\"3\">Seleccionar todas las Ubicaciones</td>\r\n </tr>\r\n <tr>\r\n <th></th>\r\n <th>Num.</th>\r\n <th>Nombre</th>\r\n <th>E-Mail</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n { rowsTable_seleccionEmpUbi() }\r\n </tbody>\r\n </table>\r\n }\r\n </div>\r\n )\r\n };\r\n\r\n // Envios \r\n const EnviarEncuestasGUIA1 = () => {\r\n setDataInfo(\"\")\r\n let deg1Arr = dataEmpleadosGUIA1.filter(fdeg1 => fdeg1.Enviar == \"true\")\r\n \r\n if (deg1Arr.length > 0) {\r\n let tem_deg1Arr = []\r\n\r\n deg1Arr.map((item_deg1) => {\r\n tem_deg1Arr.push({ \"arr:string\": item_deg1.TrabID })\r\n })\r\n\r\n let { params, server } = getParams()\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:lstEmp\": tem_deg1Arr\r\n }\r\n\r\n console.log(\"setEnviarEncuestasGUIA1Action\", JSON.stringify(params))\r\n props.setEnviarEncuestasGUIA1Action(params, server)\r\n }\r\n\r\n //setTimeout(() => { props.getEmpleadosGUIA1Action(\"PURGE\", \"\") }, 2000)\r\n };\r\n\r\n const EnviarEncuestasGUIA2_3 = () => {\r\n let ducArr = dataUbicacionesConteo.filter(fduc => fduc.Seleccionado == \"true\")\r\n ducArr.map((item_duc, i_duc) => {\r\n let dseuArr = dataSeleccionEmpUbi.filter(fdseu => fdseu.Ubicacion_ID == item_duc.Ubicacion_ID && fdseu.Seleccionado == \"true\")\r\n \r\n if (dseuArr.length > 0) {\r\n let tem_dseuArr = []\r\n\r\n dseuArr.map((item_dseu, i_dseu) => {\r\n let obj = {}\r\n for (var [key, value] of Object.entries(item_dseu)) {\r\n obj[\"sic:\" + key] = value\r\n }\r\n tem_dseuArr.push({ \"sic:DetalleUbicacionEmpleadov2\": obj })\r\n })\r\n\r\n let { params, server } = getParams()\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:IDSelect\": item_duc.Ubicacion_ID,\r\n \"tem:guiaSelect\": item_duc.Guia,\r\n \"tem:lstEmp\": tem_dseuArr\r\n }\r\n\r\n console.log(\"setEnviarEncuestasGUIA2_3Action\", JSON.stringify(params))\r\n props.setEnviarEncuestasGUIA2_3Action(params, server)\r\n }\r\n })\r\n\r\n //setTimeout(() => { onChange_tipoEncuestas(\"3\") }, 2000)\r\n };\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n case 10:\r\n return <RHSpecialLeftsidebar/>\r\n break;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n {/* <Leftsidebar /> */}\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n let disabledBtnEnviar = true\r\n if (dataValorGUIA == \"1\") {\r\n disabledBtnEnviar = ((dataEmpleadosGUIA1 || []).filter(fdeg1 => fdeg1.Enviar == \"true\").length == 0)\r\n }\r\n else if(dataValorGUIA == \"3\") {\r\n \r\n let arrFilter = (dataUbicacionesConteo || []).filter(fduc => fduc.Seleccionado == \"true\")\r\n arrFilter = arrFilter.filter(f => (dataSeleccionEmpUbi || []).some(s => s.Seleccionado == \"true\" && s.Ubicacion_ID == f.Ubicacion_ID))\r\n disabledBtnEnviar = (arrFilter.length == 0)\r\n }\r\n \r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"ENCUESTAS NOM 035\" icon=\"mdi mdi-file\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n\r\n <div className=\"card-header\">\r\n <div className=\"d-flex\">\r\n <h4 className=\"card-title p-2\">TIPO DE ENCUESTA</h4>\r\n { _renderSelect_tipoEncuestas() }\r\n </div>\r\n\r\n <button type=\"submit\" className={`btn btn-success ${disabledBtnEnviar && \"disabled\"}`}\r\n style={ {cursor: (disabledBtnEnviar ? \"not-allowed\" : \"pointer\"), float: \"left\", marginRight: \"10px\"} } \r\n onClick={() => {dataValorGUIA == \"1\" ? EnviarEncuestasGUIA1() : EnviarEncuestasGUIA2_3() }} \r\n disabled={disabledBtnEnviar}>\r\n <i className=\"fa fa-back\"></i> Enviar\r\n </button>  \r\n\r\n {\r\n dataValuesGUIA2_3.SecondTableShow &&(\r\n <button type=\"submit\" className=\"btn btn-success\" style={ {cursor: \"pointer\", float: \"left\"} } onClick={() => { setDataValuesGUIA2_3({ Table_ID:0, SecondTableShow: false }) }}>\r\n <i className=\"fa fa-back\"></i> Regresar\r\n </button>)\r\n }\r\n </div>\r\n\r\n <div className=\"card-body\">\r\n { dataValorGUIA == \"1\" ? _renderEncuestasGUIA1() : _renderEncuestasGUIA2_3() }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n getTipoEncuestasData: state.tipoEncuestas.getTipoEncuestasData,\r\n getTipoEncuestasError: state.tipoEncuestas.getTipoEncuestasError,\r\n\r\n centersPermitsData: state.centerPermit.centersPermitsData,//<--\r\n centersPermitsError: state.centerPermit.centersPermitsError,//<--\r\n departmentPermitsData: state.departmentPermits.departmentPermitsData,//<--\r\n departmentPermitsError: state.departmentPermits.departmentPermitsError,//<--\r\n permitPositionUserData: state.permitPositionUser.permitPositionUserData,//<--\r\n permitPositionUserError: state.permitPositionUser.permitPositionUserError,//<--\r\n\r\n centersCatalogData: state.centersCatalog.centersCatalogData,\r\n centersCatalogError: state.centersCatalog.centersCatalogError,\r\n\r\n deptsCatalogData: state.deptsCatalog.deptsCatalogData,\r\n deptsCatalogError: state.deptsCatalog.deptsCatalogError,\r\n\r\n jobCatalogData: state.jobCatalog.jobCatalogData,\r\n jobCatalogError: state.jobCatalog.jobCatalogError,\r\n\r\n getEmpleadosGUIA1Data: state.empleadosGUIA1.getEmpleadosGUIA1Data,\r\n getEmpleadosGUIA1Error: state.empleadosGUIA1.getEmpleadosGUIA1Error,\r\n\r\n getUbicacionesConteoData: state.ubicacionesConteo.getUbicacionesConteoData,\r\n getUbicacionesConteoError: state.ubicacionesConteo.getUbicacionesConteoError,\r\n\r\n getSeleccionEmpUbiData: state.seleccionEmpUbi.getSeleccionEmpUbiData,\r\n getSeleccionEmpUbiError: state.seleccionEmpUbi.getSeleccionEmpUbiError,\r\n\r\n setEnviarEncuestasGUIA1Data: state.enviarEncuestasGUIA1.setEnviarEncuestasGUIA1Data,\r\n setEnviarEncuestasGUIA1Error: state.enviarEncuestasGUIA1.setEnviarEncuestasGUIA1Error,\r\n \r\n setEnviarEncuestasGUIA2_3Data: state.enviarEncuestasGUIA2_3.setEnviarEncuestasGUIA2_3Data,\r\n setEnviarEncuestasGUIA2_3Error: state.enviarEncuestasGUIA2_3.setEnviarEncuestasGUIA2_3Error,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getTipoEncuestaAction,\r\n getCenterPermitAction,//<--\r\n getDepartmentPermitsAction,//<--\r\n getPermitPositionUserAction,//<--\r\n getCenterCatalogAction,\r\n getDeptsCatalogAction,\r\n getJobCatalogAction,\r\n getEmpleadosGUIA1Action,\r\n getUbicacionesConteoAction,\r\n getSeleccionEmpUbiAction,\r\n setEnviarEncuestasGUIA1Action,\r\n setEnviarEncuestasGUIA2_3Action,\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SuveryNom035));\r\n","import { changeXml, changeXmlSicExtend, changeXmlArr, GetTipoEncuestaResponse, GetEmpleadosGUIA1Response, GetUbicacionesConteoResponse, GetSeleccionEmpUbiResponse, SetEnviarEncuestasGUIA1Response, SetEnviarEncuestasGUIA2_3Response } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n GET_TIPO_ENCUESTAS_SUCCESS,\r\n GET_TIPO_ENCUESTAS_ERROR,\r\n GET_TIPO_ENCUESTAS_PURGE,\r\n\r\n GET_EMPLEADOS_GUIA1_SUCCESS,\r\n GET_EMPLEADOS_GUIA1_ERROR,\r\n GET_EMPLEADOS_GUIA1_PURGE,\r\n\r\n GET_UBICACIONES_CONTEO_SUCCESS,\r\n GET_UBICACIONES_CONTEO_ERROR,\r\n GET_UBICACIONES_CONTEO_PURGE,\r\n\r\n GET_SELECCION_EMP_UBI_SUCCESS,\r\n GET_SELECCION_EMP_UBI_ERROR,\r\n GET_SELECCION_EMP_UBI_PURGE,\r\n\r\n ENVIAR_ENCUESTA_GUIA1_SUCCESS,\r\n ENVIAR_ENCUESTA_GUIA1_ERROR,\r\n ENVIAR_ENCUESTA_GUIA1_PURGE,\r\n\r\n ENVIAR_ENCUESTA_GUIA23_SUCCESS,\r\n ENVIAR_ENCUESTA_GUIA23_ERROR,\r\n ENVIAR_ENCUESTA_GUIA23_PURGE,\r\n\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getTipoEncuestaAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetTipoEncuestas': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetTipoEncuestas\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_TIPO_ENCUESTAS_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET CONSULTA_ENCUESTA_NOM035 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_TIPO_ENCUESTAS_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n TipoEncuestas: GetTipoEncuestaResponse(body)\r\n }\r\n console.log('RESPONSE CONSULTA_ENCUESTA_NOM035 DATA: ', response);\r\n dispatch({ type: GET_TIPO_ENCUESTAS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET CONSULTA_ENCUESTA_NOM035 DATA: ', response);\r\n dispatch({ type: GET_TIPO_ENCUESTAS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET CONSULTA_ENCUESTA_NOM035 DATA: ', responseError);\r\n dispatch({ type: GET_TIPO_ENCUESTAS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const getEmpleadosGUIA1Action = (data, server) => {\r\n let configJson = {\r\n 'tem:GetEmpleadosGUIA1': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n console.log('OIHB', obj)\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetEmpleadosGUIA1\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_EMPLEADOS_GUIA1_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_EMPLEADOS_GUIA1 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_EMPLEADOS_GUIA1_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n EmpleadosGUIA1: GetEmpleadosGUIA1Response(body)\r\n }\r\n console.log('RESPONSE GET_EMPLEADOS_GUIA1 DATA: ', response);\r\n dispatch({ type: GET_EMPLEADOS_GUIA1_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET GET_EMPLEADOS_GUIA1 DATA: ', response);\r\n dispatch({ type: GET_EMPLEADOS_GUIA1_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET GET_EMPLEADOS_GUIA1 DATA: ', responseError);\r\n dispatch({ type: GET_EMPLEADOS_GUIA1_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const getUbicacionesConteoAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetUbicacionesConteo': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetUbicacionesConteo\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_UBICACIONES_CONTEO_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_UBICACIONES_CONTEO DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_UBICACIONES_CONTEO_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UbicacionesConteo: GetUbicacionesConteoResponse(body)\r\n }\r\n console.log('RESPONSE GET_UBICACIONES_CONTEO DATA: ', response);\r\n dispatch({ type: GET_UBICACIONES_CONTEO_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET GET_UBICACIONES_CONTEO DATA: ', response);\r\n dispatch({ type: GET_UBICACIONES_CONTEO_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET GET_UBICACIONES_CONTEO DATA: ', responseError);\r\n dispatch({ type: GET_UBICACIONES_CONTEO_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const getSeleccionEmpUbiAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GetSeleccionEmpUbi': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/GetSeleccionEmpUbi\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: GET_SELECCION_EMP_UBI_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET GET_SELECCION_EMP_UBI DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: GET_SELECCION_EMP_UBI_ERROR, payload: response })\r\n } \r\n else {\r\n response = GetSeleccionEmpUbiResponse(body)\r\n // response = {\r\n // isOK: true,\r\n // conteo: conteo,\r\n // SeleccionEmpUbi: GetSeleccionEmpUbiResponse(body)\r\n // }\r\n console.log('RESPONSE GET_SELECCION_EMP_UBI DATA: ', response);\r\n dispatch({ type: GET_SELECCION_EMP_UBI_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET GET_SELECCION_EMP_UBI DATA: ', response);\r\n dispatch({ type: GET_SELECCION_EMP_UBI_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET GET_SELECCION_EMP_UBI DATA: ', responseError);\r\n dispatch({ type: GET_SELECCION_EMP_UBI_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n};\r\n\r\nexport const setEnviarEncuestasGUIA1Action = (data, server) => {\r\n let configJson = {\r\n 'tem:EnviarEncuestasGUIA1': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXmlArr(configJson);\r\n console.log(\"xml\", obj)\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/EnviarEncuestasGUIA1\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA1_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET ENVIAR_ENCUESTA_GUIA1 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA1_ERROR, payload: response })\r\n } \r\n else {\r\n response = SetEnviarEncuestasGUIA1Response(body)\r\n // response = {\r\n // isOK: true,\r\n // conteo: conteo,\r\n // SeleccionEmpUbi: GetSeleccionEmpUbiResponse(body)\r\n // }\r\n console.log('RESPONSE ENVIAR_ENCUESTA_GUIA1 DATA: ', response);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA1_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET ENVIAR_ENCUESTA_GUIA1 DATA: ', response);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA1_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET ENVIAR_ENCUESTA_GUIA1 DATA: ', responseError);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA1_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n};\r\n\r\nexport const setEnviarEncuestasGUIA2_3Action = (data, server) => {\r\n let configJson = {\r\n 'tem:EnviarEncuestasGUIA2_3': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXmlSicExtend(configJson);\r\n console.log(\"xml\", obj)\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoTabuladores/EnviarEncuestasGUIA2_3\",\r\n 'Server': localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\") {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n let newSever = localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoTabuladores.svc' : server\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA23_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(newSever, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } \r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET ENVIAR_ENCUESTA_GUIA23 DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA23_ERROR, payload: response })\r\n } \r\n else {\r\n response = SetEnviarEncuestasGUIA2_3Response(body)\r\n // response = {\r\n // isOK: true,\r\n // conteo: conteo,\r\n // SeleccionEmpUbi: GetSeleccionEmpUbiResponse(body)\r\n // }\r\n console.log('RESPONSE ENVIAR_ENCUESTA_GUIA23 DATA: ', response);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA23_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET ENVIAR_ENCUESTA_GUIA23 DATA: ', response);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA23_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET ENVIAR_ENCUESTA_GUIA23 DATA: ', responseError);\r\n dispatch({ type: ENVIAR_ENCUESTA_GUIA23_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction\";\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction\";\r\nimport { getEmpleadosAllAction } from \"../../api/actions/perdiem/EmpleadosAllAction\";\r\nimport { getEmpRepoAction } from \"../../api/actions/perdiem/EmpRepoAction\";\r\nimport { ReportConvertAction } from \"../../api/actions/perdiem/ReportConvertAction\";\r\nimport { getXlsPerdiemAction } from \"../../api/actions/perdiem/GetXlsPerdiemAction\";\r\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert\";\r\n\r\nconst AccountingReport = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [deptos, setDeptos] = useState([]);\r\n const [centros, setCentros] = useState([]);\r\n const [centroSel, setCentroSel] = useState([]);\r\n const [deptoSel, setDeptoSel] = useState(\"\");\r\n const [jefes, setJefes] = useState([]);\r\n const [jefe, setJefe] = useState(\"\");\r\n const [empleados, setEmpleados] = useState([]);\r\n const [empeladosSelect, setEmpleadosSelect] = useState([]);\r\n const [aditional, setAditional] = useState(\"TODOS\");\r\n const [concepts, setConcepts] = useState([]);\r\n const [initialDate, setInitialDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(\"\");\r\n const [filtersOptions, setFiltersOptions] = useState({});\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n\r\n const [filters, setFilters] = useState({});\r\n\r\n let year = new Date().getFullYear();\r\n let month = new Date().getMonth();\r\n let days = [\r\n { name: `Enero - ${year}`, date: `${year}/01/01` },\r\n { name: `Febrero - ${year}`, date: `${year}/02/01` },\r\n { name: `Marzo - ${year}`, date: `${year}/03/01` },\r\n { name: `Abril - ${year}`, date: `${year}/04/01` },\r\n { name: `Mayo - ${year}`, date: `${year}/05/01` },\r\n { name: `Junio - ${year}`, date: `${year}/06/01` },\r\n { name: `Julio - ${year}`, date: `${year}/07/01` },\r\n { name: `Agosto - ${year}`, date: `${year}/08/01` },\r\n { name: `Septiembre - ${year}`, date: `${year}/09/01` },\r\n { name: `Octubre - ${year}`, date: `${year}/10/01` },\r\n { name: `Noviembre - ${year}`, date: `${year}/11/01` },\r\n { name: `Diciembre - ${year}`, date: `${year}/12/01` },\r\n ];\r\n\r\n console.log(\"DATES=>\", initialDate, endDate);\r\n\r\n useEffect(() => {\r\n props.ConceptsAction(\"\");\r\n getCompaniesOptions();\r\n\r\n let filters = [\r\n \"client\",\r\n \"projectCoordinator\",\r\n \"technicalName\",\r\n \"cityClient\",\r\n \"noMachine\",\r\n \"contactClient\",\r\n \"clientName\",\r\n \"typeWork\",\r\n \"REK\",\r\n ];\r\n\r\n let tmpObject = {};\r\n filters.forEach(async (filter) => {\r\n let { results } = await getFilterOptions(filter);\r\n tmpObject = {\r\n ...tmpObject,\r\n [filter]: results,\r\n };\r\n setFiltersOptions(tmpObject);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let newConcept = [];\r\n if (props.conceptsData && props.conceptsData.isOK) {\r\n console.log(\"CONCEPTS\", props.conceptsData.Concepts);\r\n let concepts = props.conceptsData.Concepts.results;\r\n\r\n if (concepts && concepts.length > 0) {\r\n concepts.map((concept) => {\r\n newConcept.push(concept);\r\n });\r\n }\r\n setConcepts(newConcept);\r\n props.ConceptsAction(\"PURGE\");\r\n } else if (props.conceptsError && props.conceptsError.isOK === false) {\r\n props.ConceptsAction(\"PURGE\");\r\n setLoading(false);\r\n }\r\n }, [props.conceptsData, props.conceptsError]);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n };\r\n props.getDeptosCenterAction(newParams, server);\r\n };\r\n\r\n useEffect(() => {\r\n if (centroSel.length > 0 && deptoSel.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n \"tem:Centros\": centrosS.join(\",\"),\r\n \"tem:Departamentos\": deptosS.join(\",\"),\r\n };\r\n console.log(newParams);\r\n props.getJefesPerdiemAction(newParams, server);\r\n }\r\n }, [deptoSel]);\r\n\r\n const getEmpleados = () => {\r\n let { params, server } = getParams();\r\n if (centroSel.length > 0 && deptoSel.length > 0 && jefe.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n\r\n let jefeS = [];\r\n jefe.map((sel) => {\r\n jefeS.push(sel.value);\r\n });\r\n\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": centrosS.join(),\r\n \"tem:deptos\": deptosS.join(),\r\n \"tem:Jefe\": jefeS.join(\",\"),\r\n \"tem:user_id\": params[\"tem:TrabID\"],\r\n };\r\n console.log(\"EMPLEADOS\", newParams);\r\n props.getEmpleadosAllAction(newParams, server);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.deptosCenterData && props.deptosCenterData.isOK) {\r\n setDeptos(props.deptosCenterData.DeptosCenter.depto);\r\n setCentros(props.deptosCenterData.DeptosCenter.cento);\r\n } else if (\r\n props.deptosCenterError &&\r\n props.deptosCenterError.isOK === false\r\n ) {\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n }, [props.deptosCenterData, props.deptosCenterError]);\r\n\r\n useEffect(() => {\r\n if (props.jefesPerdiemData && props.jefesPerdiemData.isOK) {\r\n console.log(\"JEFES\", props.jefesPerdiemData.JefesPerdiem);\r\n setJefes(props.jefesPerdiemData.JefesPerdiem);\r\n } else if (\r\n props.jefesPerdiemError &&\r\n props.jefesPerdiemError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.jefesPerdiemData, props.jefesPerdiemError]);\r\n\r\n useEffect(() => {\r\n if (props.empleadosAllData && props.empleadosAllData.isOK) {\r\n console.log(\"EMPLEADOS\", props.empleadosAllData.EmpleadosAll);\r\n setEmpleados(props.empleadosAllData.EmpleadosAll);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empleadosAllData, props.empleadosAllError]);\r\n\r\n useEffect(() => {\r\n if (props.empRepoData && props.empRepoData.isOK) {\r\n console.log(\"EMP_REPO\", props.empRepoData.EmpRepo);\r\n ProcessData(props.empRepoData.EmpRepo);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empRepoData, props.empRepoError]);\r\n\r\n useEffect(() => {\r\n if (props.reportConvertData && props.reportConvertData.isOK) {\r\n console.log(\"REPORT_CONVERT\", props.reportConvertData.ReportConvert);\r\n sendDataToGetUrl(props.reportConvertData.ReportConvert);\r\n } else if (\r\n props.reportConvertError &&\r\n props.reportConvertError.isOK === false\r\n ) {\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.reportConvertData, props.reportConvertError]);\r\n\r\n useEffect(() => {\r\n if (props.getXlsPerdiemData && props.getXlsPerdiemData.isOK) {\r\n console.log(\"DOWNLOAD_XLS\", props.getXlsPerdiemData.GetXlsPerdiem);\r\n downloadXLS(props.getXlsPerdiemData.GetXlsPerdiem);\r\n } else if (\r\n props.getXlsPerdiemError &&\r\n props.getXlsPerdiemError.isOK === false\r\n ) {\r\n alert(\"No se pudo descargar el reporte\");\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getXlsPerdiemData, props.getXlsPerdiemError]);\r\n\r\n const ProcessData = (data) => {\r\n if (data && data.length > 0) {\r\n let { params } = getParams();\r\n let arrData = [];\r\n data.map((emp) => {\r\n let dat = {\r\n employee: emp.Nombre,\r\n center: emp.Centro_Costo,\r\n description: emp.Tecnologia,\r\n id: emp.Trab_ID,\r\n company: params[\"tem:IdEmpresa\"] || \"kimo\",\r\n };\r\n arrData.push(dat);\r\n });\r\n\r\n let dataS = {\r\n data: arrData,\r\n date:\r\n initialDate.getFullYear() +\r\n \"/\" +\r\n (initialDate.getMonth() + 1) +\r\n \"/\" +\r\n initialDate.getDate(),\r\n //\"dateEnd\": endDate,\r\n filters,\r\n };\r\n console.log(\"ReportConvert DATA=>\", dataS);\r\n\r\n props.ReportConvertAction(dataS);\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const sendDataToGetUrl = (dataEmp) => {\r\n console.log(\"getXlsPerdiem DATA=>\", dataEmp);\r\n if (dataEmp.results && dataEmp.results.length > 0) {\r\n let { params, server } = getParams();\r\n let emple = [];\r\n dataEmp.results.map((info, i) => {\r\n let da = {\r\n \"wcf:ReporteContaDetalle\": {\r\n \"wcf:Centro_Costo\": info.center,\r\n \"wcf:Ciudad\": info.cityClient,\r\n \"wcf:ContactoCliente\": info.contactClient,\r\n \"wcf:CoordinadorProy\": info.projectCoordinator,\r\n \"wcf:Importe\": info.total,\r\n \"wcf:NoMaquina\": info.noMachine,\r\n \"wcf:Nombre\": info.name,\r\n \"wcf:NombreCliente\": info.clientName,\r\n \"wcf:Numero\": info.number,\r\n \"wcf:RazonSocial\": info.client,\r\n \"wcf:Rek\": info.rek,\r\n \"wcf:Servicio\": info.typeWork,\r\n \"wcf:Tecnologia\": info.description,\r\n },\r\n };\r\n emple.push(da);\r\n });\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": params[\"tem:TrabID\"],\r\n \"tem:Empleados\": {\r\n \"wcf:Empleados\": emple,\r\n \"wcf:Mes\": dataEmp.month,\r\n \"wcf:anio\": dataEmp.year,\r\n \"wcf:total\": dataEmp.total,\r\n },\r\n };\r\n console.log(\"getXlsPerdiem DATA=>\", newParams);\r\n\r\n props.getXlsPerdiemAction(newParams, server);\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const downloadXLS = async (url) => {\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } else {\r\n res = await fetch(url);\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n download(blob, name);\r\n props.getXlsPerdiemAction(\"PURGE\", \"\");\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n };\r\n\r\n const dataOptions = () => {\r\n let options = concepts;\r\n // return options.map((option) => (\r\n // <option key={option.concept} value={option.concept}>\r\n // {option.concept}\r\n // </option>\r\n // ));\r\n return options.map((option) => ({\r\n value: option.concept,\r\n label: option.concept,\r\n }));\r\n };\r\n\r\n const getFilterOptionsFromState = (filter) => {\r\n if (filtersOptions[filter]) {\r\n return filtersOptions[filter].map((option) => ({\r\n value: option,\r\n label: option,\r\n }));\r\n // <option key={option + i} value={option}>\r\n // {option}\r\n // </option>\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const getFilterOptions = async (filter) => {\r\n const url =\r\n localStorage.getItem(\"REACT_APP_PERDIEM\") +\r\n `perdiems/reports/filters-options?filter=${filter}`;\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n return res.json();\r\n };\r\n\r\n const dataDates = () => {\r\n return days.map((option, i) => (\r\n <option key={i} value={option.date}>\r\n {option.name}\r\n </option>\r\n ));\r\n };\r\n\r\n const selecEmpleados = (option) => {\r\n let empSel = empeladosSelect;\r\n if (empSel.indexOf(option.id) !== -1) {\r\n empSel = empSel.filter((item) => item !== option.id);\r\n } else {\r\n empSel.push(option.id);\r\n }\r\n setEmpleadosSelect(empSel);\r\n console.log(\"EMP\", empSel);\r\n };\r\n\r\n const employeesTable = () => {\r\n return empleados.map((option) => (\r\n <tr>\r\n <td style={{ width: \"10%\" }}>\r\n <input\r\n name=\"employee\"\r\n type=\"checkbox\"\r\n value={option.id}\r\n className=\"with-gap\"\r\n id={option.id}\r\n onChange={() => {\r\n selecEmpleados(option);\r\n }}\r\n />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: \"45%\" }}>{option.id}</td>\r\n <td style={{ width: \"45%\" }}>{option.name}</td>\r\n </tr>\r\n ));\r\n };\r\n\r\n const selectOption = (type, v) => {\r\n if (v) {\r\n let todos = v.filter((item) => item.value === \"TODOS\");\r\n if (todos.length > 0) v = todos;\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n [type]: v.map((val) => val.value),\r\n });\r\n };\r\n\r\n const downloadReport = async () => {\r\n let { params, server } = getParams();\r\n if (empeladosSelect && empeladosSelect.length > 0) {\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Empleados\": empeladosSelect.join(),\r\n };\r\n console.log(newParams);\r\n props.getEmpRepoAction(newParams, server);\r\n } else {\r\n alert(\"Selecciona por lo menos 1 empleado\");\r\n }\r\n };\r\n\r\n const selectCenters = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setCentroSel(selected);\r\n };\r\n\r\n const selectDeptos = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n console.log('OIHB selected', selected);\r\n setDeptoSel(selected);\r\n };\r\n\r\n const selectBoss = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setJefe(selected);\r\n };\r\n\r\n const getCenters = () => {\r\n let center = centros;\r\n let newCenters = [];\r\n if (center && center.length > 0) {\r\n center.map((center) => {\r\n newCenters.push({\r\n value: center.Centro_ID,\r\n label: center.Descripcion,\r\n });\r\n });\r\n return newCenters;\r\n }\r\n };\r\n\r\n const getDeptos = () => {\r\n let departamento = deptos;\r\n let newdepartamento = [];\r\n if (departamento && departamento.length > 0) {\r\n departamento.map((dep) => {\r\n newdepartamento.push({\r\n value: dep.Depto_ID,\r\n label: dep.Descripcion,\r\n });\r\n });\r\n return newdepartamento;\r\n }\r\n };\r\n\r\n const getBoss = () => {\r\n let boss = jefes;\r\n let newdboss = [];\r\n if (boss && boss.length > 0) {\r\n boss.map((dep) => {\r\n newdboss.push({\r\n value: dep.Trab_id_Jefe,\r\n label: dep.NombreCompleto,\r\n });\r\n });\r\n return newdboss;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO CONTABILIDAD\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Concentrado de reporte de Contabilidad\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte con\r\n todos los servicios de uno o varios empleados en un rango\r\n de fechas.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los centros.\"\r\n options={getCenters()}\r\n onChange={(v) => selectCenters(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getDeptos()}\r\n onChange={(v) => selectDeptos(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getBoss()}\r\n onChange={(v) => selectBoss(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {aditional.length > 0 &&\r\n centroSel.length > 0 &&\r\n deptoSel.length > 0 &&\r\n jefe.length > 0 ? (\r\n <p>\r\n <a\r\n disabled={jefe.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n getEmpleados();\r\n }}\r\n >\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n ) : null}\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">\r\n Listado de Empleados\r\n </h4>\r\n <div>\r\n <table\r\n id=\"example23\"\r\n className=\"display nowrap table table-hover table-striped table-bordered\"\r\n cellSpacing=\"0\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"10%\" }}>\r\n Selección\r\n </th>\r\n <th style={{ width: \"45%\" }}>ID</th>\r\n <th style={{ width: \"45%\" }}>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>{employeesTable()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Filtros</h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6 col-sm-12\">\r\n <label>Selecciona un Mes</label>\r\n <br />\r\n <DatePicker\r\n selected={initialDate}\r\n onChange={(date) => setInitialDate(date)}\r\n dateFormat=\"MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n showMonthYearPicker\r\n className=\"form-control\"\r\n locale=\"es-ES\"\r\n />\r\n {/* <select\r\n className=\"form-control custom-select\"\r\n data-placeholder=\"Selecciona un mes\"\r\n tabIndex=\"1\"\r\n onChange={(val) => {\r\n setInitialDate(val.target.value);\r\n }}\r\n >\r\n <option value=\"0\">Selecciona un mes</option>\r\n {dataDates()}\r\n </select> */}\r\n </div>\r\n {/* <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setInitialDate(val.target.value) }} />\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setEndDate(val.target.value) }} />\r\n\r\n </div>\r\n </div>*/}\r\n\r\n <div className=\"col-md-6 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={dataOptions()}\r\n onChange={(v) => selectOption(\"concept\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Razón Social Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"client\")}\r\n onChange={(v) => selectOption(\"client\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Coordinador de Proyecto</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"projectCoordinator\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"projectCoordinator\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Técnico de KRONES</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"technicalName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"technicalName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Ciudad</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"cityClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"cityClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>No. Máq</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"noMachine\"\r\n )}\r\n onChange={(v) => selectOption(\"noMachine\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Contacto Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"contactClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"contactClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Nombre del Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"clientName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"clientName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>\r\n Servicio, reporte o respaldo de datos\r\n </label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"typeWork\"\r\n )}\r\n onChange={(v) => selectOption(\"typeWork\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>REK</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"REK\")}\r\n onChange={(v) => selectOption(\"REK\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-info m-l-5\"\r\n onClick={() => downloadReport()}\r\n >\r\n Descargar Reporte\r\n <i className=\"mdi mdi-download\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n empleadosAllData: state.empleadosAll.empleadosAllData,\r\n empleadosAllError: state.empleadosAll.empleadosAllError,\r\n\r\n empRepoData: state.empRepo.empRepoData,\r\n empRepoError: state.empRepo.empRepoError,\r\n\r\n reportConvertData: state.reportConvert.reportConvertData,\r\n reportConvertError: state.reportConvert.reportConvertError,\r\n\r\n getXlsPerdiemData: state.getXlsPerdiem.getXlsPerdiemData,\r\n getXlsPerdiemError: state.getXlsPerdiem.getXlsPerdiemError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n conceptsData: state.concepts.conceptsData,\r\n conceptsError: state.concepts.conceptsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction,\r\n getJefesPerdiemAction,\r\n getEmpleadosAllAction,\r\n getEmpRepoAction,\r\n ReportConvertAction,\r\n getXlsPerdiemAction,\r\n ConceptsAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(AccountingReport)\r\n);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { getDeptosCenterAction } from '../../api/actions/perdiem/DeptosCenterAction';\r\n\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport download from 'downloadjs';\r\n\r\nconst ServiceReportsReport = props => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n getCompaniesOptions();\r\n }, []);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:User_id': params['tem:TrabID'],\r\n }\r\n props.getDeptosCenterAction(newParams, server)\r\n };\r\n\r\n const centersOptions = () => {\r\n let options = ['100-Loeffler Max', '101-Russek Max', '102-Corporativo Max', '103-IASA Max', '200-Loeffler Leh', '201-Russek Leh', '202-Corporativo Leh', '203-IASA Leh', '300-Loeffler Coreh', '301-Russek Coreh', '302-Iasa Coreh', '303-Corporativo Coreh', '304-Corporativo Russek Coreh', '305-Corporativo Loeffler Coreh', '306-Corporativo Iasa Coreh', '400-Loeffler PFM', '401-Russek PFM', '402-Iasa PFM', '403-Corporativo PFM', '404-Corporativo Russek PFM', '405-Corporativo Loeffler PFM', '406-Corporativo Iasa PFM', '500-Loeffler Acierto', '501-Russek Acierto', '502-IASA Acierto', '504-Corporativo Russek', '505-Corporativo Loeffler', '600-Loeffler Russek', '601-Russek Russek', '602-Iasa Russek', '604-Corporativo Russek', '605-Corporativo Loeffler', '700-Loeffler IASA', '701-Russek IASA', '702-IASA IASA', '704-Corporativo IASA', '705-Corporativo Loeffler'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const deptosOptions = () => {\r\n\r\n let options = ['0-GENERAL', '1-Liquidos', '2-Ovulos y supositorios', '3-Cremas', '4-Solidos', '5-Inyectables', '6-Acondicionamiento', '7-Polvos gran volumen', '8-Impresion', '9-Mantenimiento', '10-Almacen', '11-Limpieza y jardineria', '12-Comedor', '13-Roperia', '14-Vigilancia', '15-Administracion Produccion', '16-Fisico quimico', '17-Microbiologia', '18-Documentacion', '19-Validacion', '20-Desarrollo', '21-Contabilidad', '22-Tesoreria', '23-Recursos Humanos', '24-Compras', '25-Sistemas', '26-Ventas privada', '27-Ventas gobierno', '28-Maquilas', '29-Credito y cobranza', '30-Mercadotecnia', '31-Embarques', '32-Planeacion', '33-Inspeccion', '34-Autoservicios', '35-Diseno', '36-Asuntos Regulatorios', '37-Aseguramiento de Calidad', '38-Sistemas de Calidad', '39-Direccion General', '40-Administracion y Finanzas', '41-Operaciones', '42-Control de Calidad', '43-Marcas propias', '44-Contraloría', '45-Farmacenter', '46-Manufactura', '47-Ingeniería', '48-Cadena de Suministro', '100-Fabricacion llenado', '101-Líquidos 1', '102-Liquidos 2', '103-Óvulos y supositorios', '104-Cremas', '105-Sólidos', '106-Inyectables', '111-Polvos gran volumen', '112-Acondicionamiento', '115-Ropería', '116-Mantenimiento', '117-Intendencia', '118-Proyectos', '119-Seguridad e Higiene', '120-Sistemas Criticos', '200-Laboratorio FQ y MB', '221-Microbiología', '222-Inspección de Calidad', '223-Sistemas de Calidad', '224-Validación', '225-Asuntos Regulatorios', '226-Desarrollo', '300-Planeación', '331-Almacén IASA', '332-Centro de Distribución', '333-Almacén 110', '334-Almacén 114', '400-Rep. Sureste', '441-Rep. Especiales', '442-Rep. Norte DF', '443-Rep. Sur DF', '444-Rep. Occidente Centro', '445-Rep. Norte', '446-Rep. Farma', '447-Sup DF', '448-Rep. Similares', '449-Sup Occidente', '450-Jefe Demos', '451-Gerencia Genéricos', '452-Marcas Propias', '500-Demovendedor', '551-Gerente de distrito', '552-Gerente de Monterrey', '553-Gerente de Guadalajara', '554-Delegado Médico DF 1', '555-Delegado Médico DF 2', '556-Delegado Médico DF 3', '557-Delegado Médico DF 4', '558-Delegado Médico DF 5', '559-Delegado Médico DF 6', '560-Delegado Médico DF 7', '561-Delegado Médico DF 8', '562-Delegado Médico DF 9', '563-Delegado Médico DF 10', '564-Delegado Médico GDL 1', '565-Delegado Médico GDL 2', '566-Delegado Médico GDL 3', '567-Delegado Médico MTY 1', '568-Delegado Médico MTY 2', '569-Gte. de Exportaciones', '600-Gerencia de Ventas Veterinaria', '661-Rep. C55-C60', '662-Rep. N15', '663-Rep. S90', '664-Rep. S30', '665-Rep. S20', '666-Rep. S11', '667-Rep. S10', '668-Rep C40-C-50-C75', '670-Mercadotecnia', '671-Sup Sureste', '672-Sup. DF y Bajío', '673-Promos de Autoservicio', '700-Rep', '701-Distribuidora', '702-Promos de Veterinaria', '703-Promos de Humana', '704-Innopharma', '705-Relaciones Industriales ', '706-Selección e Integración P', '707-Desarrollo Organizacional', '708-Administración y Finanzas', '709-Impuestos', '710-Planeación Financiera', '711-Inteligencia de Negocios', '712-Acondicionamiento Sólidos', '713-Acondicionamiento Líquidos 1', '714-Acondicionamiento Ovu y Sup', '715-Promoffler', '716-Coordinación Represent. Veter.', '717-Representantes Veterinaria', '718-Desarrollo Veterinario', '719-Codificado', '720-Dirección General'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const chiefsOptions = () => {\r\n let options = ['9-FERNANDO', '13-LUIS', '17-GONZALO', '19-SILVIA ROSANA', '20-RICARDO', '23-DIEGO', '24-ELIZABETH', '27-ARTURO', '108-ASTRID', '193-ALBERTO DANIEL', '209-PATRICIA', '237-CARLOS ALBERTO', '416-ENRIQUE', '556-ADELAIDA', '754-ALEJANDRO CESAR', '829-IVETTE', '948-CLAUDIA', '1023-ELIZABETH', '1042-NOEMI', '1083-JUAN CARLOS', '1095-BERENICE', '1267-JOAQUIN', '1275-MIGUEL ANGEL', '1285-GENARO', '1412-ARACELI ELIGIA', '1527-JOSE ARTURO', '1528-JAIME', '1546-MARIA TERESA', '1547-RAUL', '1548-JORGE ARIEL', '1549-GERMAN', '1550-JESUS FERNANDO', '1554-JOSE ANGEL', '1555-ANEL', '1556-IRMA', '1557-ALEJANDRO', '1559-JULIO CESAR', '1701-JUAN PABLO', '1761-JORGE GABRIEL', '1791-ALFONSO', '1832-JOSE DE JESUS', '1871-YESSICA LILIA', '1882-LUIS ANTONIO', '1883-JOSE LUIS', '2081-LUIS ANGEL', '2121-OSCAR JORGE', '2217-JUAN MANUEL', '2304-RICARDO', '2309-JOSE MARTIN', '2313-ANTONIO', '2315-LORENA', '2335-JOSE ANTONIO', '2336-HUMBERTO', '2376-APOLO LEONARDO', '2378-CARLOS ROBERTO', '2380-MAGALY', '2388-JOSE ANTONIO GUADALUPE', '2440-OSCAR CUAUHTEMOC', '2442-OTILIO', '2486-CECILIA', '2490-JORGE', '2522-OSCAR', '2537-MIGUEL', '2549-TERESA', '2555-ARTURO', '2570-LUIS FERNANDO', '2600-ALEJANDRO RAFAEL', '2631-JUAN CARLOS', '2647-OSCAR', '2654-JAIME DAVID', '2684-MARIA DEL ROSARIO', '2699-JOSE EVARISTO', '2717-LUIS STEEB', '2718-GUILLERMO', '2740-JOSE ALBERTO', '2744-MARIO CESAR', '2758-FRANCISCO', '2763-JACOBO', '2786-LEOPOLDO', '2803-FERNANDO', '2844-LUIS JAVIER', '2845-ZAYURI ARSIL', '2865-ANTONIO FRANCISCO', '2869-LUIS ALFONSO', '2877-JOSE ANTONIO', '2939-RUBEN', '2940-SERGIO', '2963-JOSE CARLOS', '2964-JUAN MELCHOR', '2981-IVAN EDUARDO', '2982-JESUS EMANUEL', '2994-MAURICIO', '3030-MARIA ISABEL', '3036-JORGE LUIS', '3038-MARISOL', '3056-ENRIQUE', '3071-PATRICIA', '3089-ROOSIVELT', '3127-VANESA', '3142-FRANCISCO JAVIER', '3228-OSCAR LEOPOLDO', '3229-CLAUDIA DEL CARMEN', '3307-JOSE ANTONIO', '3319-EFRAIN', '3327-JAIME ALEJANDRO', '3335-ARTURO', '3343-MARTHA LETICIA', '3373-RODRIGO', '3396-EDUARDO', '3429-BOGAR', '3455-SANDRA', '3506-ANA LETICIA', '3602-SERGIO', '3650-JORGE IGNACIO', '3703-JESSICA IVONNE', '3717-SAUL', '3728-VICTOR', '3729-JULIO CESAR', '3736-MARCO ANTONIO', '3808-JOSE LUIS', '3824-EMMA GABRIELA', '3842-GABRIEL', '3898-MARIA DEL REFUGIO', '3921-LIZ JANET', '3926-MIRIAM GUADALUPE', '3945-GUADALUPE JANNET', '3946-JOSE JUAN', '3982-FRANCISCO JAVIER', '3997-ARIKSANDY', '4050-MARIA DEL CARMEN', '4051-HECTOR', '4055-ISMAEL', '4190-EDGAR GUSTAVO', '4231-ESMERALDA BELINDA', '4310-EDGAR FRANCISCO', '4322-LUIS ANTONIO', '4332-ERNESTO', '4350-JULIETA', '4395-CLAUDIO ANWAR', '4401-NORMA ANGELICA', '4434-JUAN CARLOS', '4436-ALEJANDRO', '4520-FELIPE', '4528-ABEL', '4531-SILVIA ALICIA', '4533-CARLOS', '4564-GUILLERMO', '4694-NATALIA', '4700-ALBERTO EMILIO', '4754-JUAN', '4769-IVON', '4776-LUIS RAFAEL', '4784-VICTOR MANUEL', '4823-SARA ANGELICA', '4831-CLAUDIA MARISOL', '4851-CLAUDIA ALEJANDRA', '4858-JORGE', '4919-SANDRA', '4933-GABRIELA', '4950-ISMAEL ADRIAN', '4983-SAMUEL GERMANY', '4989-KENIA', '5020-MIGUEL ANGEL', '5040-DANIEL', '5043-JOSE LUIS', '5049-NANCY YARETH', '5124-OSWALDO', '5143-VICTOR', '5162-EDUARDO', '5164-KARLA XOCHITL', '5181-LUIS IVAN', '5207-ELEONORA ALEJANDRA', '5211-NOE MARTIN', '5216-ANDONI', '5224-MARIA LUISA', '5225-SUSANA FERNANDA', '5235-EDGAR', '5256-HAZIEL ABDEL', '5262-EVARISTO', '5267-MARIA FERNANDA', '5352-RAUL', '5542-JOEL', '5621-MARTIN RAUL', '5658-JOSE DAVID', '5660-MARIA JUDITH', '5687-BETHEL'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const dataOptions = () => {\r\n let options = ['Trabajo con cliente (servicio nacional)', 'Trabajo con cliente (servicio nacional-contingencia)', 'Trabajo con cliente (servicio extranjero)', 'Horas en garantía (sin cobro al cliente)', 'Día de descanso en sitio (sábado)', 'Día de descanso en sitio (domingo)', 'Visita oficina', 'Mantenimiento de auto', 'Capacitación-elearnings (nacional)', 'Capacitación-elearnings (extranjero)', 'Vacaciones', 'Incapacidad', 'Días stand by', 'Reunión anual de servicio técnico', 'Días festivos']\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const employeesTable = () => {\r\n let options = [\r\n { id: '3365', name: 'IVETTE' },\r\n { id: '3366', name: 'DIANA' },\r\n { id: '3361', name: 'VIRGINIA' },\r\n { id: '3362', name: 'JUAN ALBERTO' },\r\n { id: '3358', name: 'LUIS ENRIQUE' },\r\n { id: '3350', name: 'NAARA SARAHI' },\r\n { id: '3351', name: 'JUANA VIRGINIA' },\r\n { id: '3352', name: 'ELSA' },\r\n { id: '3353', name: 'J LUZ' },\r\n { id: '3354', name: 'MARTHA ANGELICA' },\r\n { id: '3224', name: 'MARIA DEL PILAR' },\r\n { id: '3069', name: 'LAURA' },\r\n { id: '3070', name: 'MARIA AZUCENA' },\r\n { id: '3066', name: 'MANUELA' },\r\n { id: '3067', name: 'ANTHONY' },\r\n { id: '3055', name: 'ALICIA' },\r\n { id: '3046', name: 'JULIO CESAR' },\r\n { id: '2970', name: 'ESAHU' },\r\n { id: '2965', name: 'GABRIELA NATHALY' },\r\n { id: '2966', name: 'HUGO URIEL' },\r\n { id: '2930', name: 'VIRIDIANA' },\r\n { id: '2937', name: 'ALMA PATRICIA' },\r\n { id: '2619', name: 'ROBERTO' },\r\n { id: '2598', name: 'TERESA' },\r\n { id: '2469', name: 'MARIA MERCEDES' },\r\n { id: '2126', name: 'PATRICIA' },\r\n { id: '1820', name: 'JOSE ANTONIO' },\r\n { id: '1534', name: 'SEBASTIANA' },\r\n { id: '1489', name: 'MARTHA ARACELI' },\r\n { id: '1316', name: 'PETRONILA' },\r\n { id: '1366', name: 'ISMAEL' },\r\n { id: '986', name: 'JAVIER' },\r\n { id: '782', name: 'OMAR' },\r\n { id: '6', name: 'EMILIO' }\r\n ]\r\n\r\n return options.map(option => <tr>\r\n <td style={{ width: '10%' }}>\r\n <input name=\"employee\" type=\"radio\" value={option.id} className=\"with-gap\" id={option.id} />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: '45%' }}>{option.id}</td>\r\n <td style={{ width: '45%' }}>{option.name}</td>\r\n </tr>)\r\n }\r\n\r\n const downloadReport = async () => {\r\n let res = await fetch('https://siconsultaservicios.softwaresicoss.com.mx/api/perdiems/reports/services-reports', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n const blob = await res.blob();\r\n\r\n download(blob, 'Concentrado de reportes de servicios.xlsx');\r\n }\r\n\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO REPORTES\" icon=\"mdi mdi-chart-line\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">Concentrado de reporte de Servicio</h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">Por favor, selecciona los datos del empleado a seleccionar. En esta sección podrás descargar un reporte con todos los servicios de un empleado.</h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option>Selecciona un Centro ...</option>\r\n {centersOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option>Selecciona un Departamento ...</option>\r\n {deptosOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option value=\"0\">Selecciona un Jefe ...</option>\r\n {chiefsOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option value=\"0\">Selecciona una Opción ...</option>\r\n {dataOptions}\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n <p>\r\n <a className=\"btn btn-info\" data-toggle=\"collapse\" href=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">Listado de Empleados</h4>\r\n <div>\r\n <table id=\"example23\" className=\"display nowrap table table-hover table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n <thead>\r\n <tr>\r\n <th>Selección</th>\r\n <th>ID</th>\r\n <th>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {employeesTable()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Selección de Fechas </h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <label>Fecha de Inicio</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"01/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"31/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button type=\"button\" className=\"btn btn-info m-l-5\" onClick={() => downloadReport()}>Descargar Reporte <i className=\"mdi mdi-download\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <Footer />\r\n </div>\r\n </div >\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ServiceReportsReport));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport DirectorGralLeftsidebar from \"../layout/DirectorGralLeftsidebar\";\r\nimport RHVacationLeftsidebar from \"../layout/RHVacationLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction\";\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction\";\r\n//import { getEmpleadosAllAction } from \"../../api/actions/perdiem/EmpleadosAllAction\";\r\nimport { GeneraRptVacacionIncidenciaAction } from \"../../api/actions/systemAdmin/GeneraRptVacacionIncidenciaAction\";\r\n\r\nimport Card from \"../../components/shared/Card.js\";\r\nimport xlsxImage from \"../../assets/payroll/xlsx.png\";\r\n\r\nimport { getParams, getSesionStorage } from \"../../utils\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert\";\r\n\r\nconst ReportVacationsIncidents = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [centros, setCentros] = useState([]);\r\n const [centrosSel, setCentrosSel] = useState([]);\r\n //const [deptos, setDeptos] = useState([]);\r\n //const [deptoSel, setDeptoSel] = useState(\"\");\r\n const [jefes, setJefes] = useState([]);\r\n const [jefesSel, setJefesSel] = useState(\"\");\r\n //const [empleados, setEmpleados] = useState([]);\r\n //const [empleadosSel, setEmpleadosSel] = useState([]);\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [rpt, setRpt] = useState(null);\r\n\r\n useEffect(() => {\r\n departamentosCentros();\r\n // let filters = [\r\n // \"client\",\r\n // \"projectCoordinator\",\r\n // \"technicalName\",\r\n // \"cityClient\",\r\n // \"noMachine\",\r\n // \"contactClient\",\r\n // \"clientName\",\r\n // \"typeWork\",\r\n // \"REK\",\r\n // ];\r\n\r\n // let tmpObject = {};\r\n // filters.forEach(async (filter) => {\r\n // let { results } = await getFilterOptions(filter);\r\n // tmpObject = {\r\n // ...tmpObject,\r\n // [filter]: results,\r\n // };\r\n // setFiltersOptions(tmpObject);\r\n // });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.deptosCenterData && props.deptosCenterData.isOK) {\r\n console.log(\"DEPTOS_CENTERS\", props.DeptosCenter);\r\n //setDeptos(props.deptosCenterData.DeptosCenter.depto);\r\n setCentros(props.deptosCenterData.DeptosCenter.cento);\r\n } \r\n else if (props.deptosCenterError && props.deptosCenterError.isOK === false) {\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n }, [props.deptosCenterData, props.deptosCenterError]);\r\n\r\n useEffect(() => {\r\n if (props.jefesPerdiemData && props.jefesPerdiemData.isOK) {\r\n console.log(\"JEFES\", props.jefesPerdiemData.JefesPerdiem);\r\n setJefes(props.jefesPerdiemData.JefesPerdiem);\r\n } \r\n else if (props.jefesPerdiemError && props.jefesPerdiemError.isOK === false) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.jefesPerdiemData, props.jefesPerdiemError]);\r\n\r\n useEffect(() => {\r\n if (props.generaRptVacacionIncidenciaData && props.generaRptVacacionIncidenciaData.isOK) {\r\n console.log(\"DOWNLOAD_RPT\", props.generaRptVacacionIncidenciaData.UrlRpt);\r\n setRpt(props.generaRptVacacionIncidenciaData.UrlRpt);\r\n //downloadXLS(props.generaRptVacacionIncidenciaData.UrlRpt);\r\n } \r\n else if (props.generaRptVacacionIncidenciaError && props.generaRptVacacionIncidenciaError.isOK === false) {\r\n props.GeneraRptVacacionIncidenciaAction(\"PURGE\", \"\");\r\n }\r\n }, [props.generaRptVacacionIncidenciaData, props.generaRptVacacionIncidenciaError]);\r\n\r\n useEffect(() => {\r\n if (centrosSel.length > 0) {\r\n let centrosVal = centrosSel.map(item => { return item.value; }) || [];\r\n //let deptosVal = deptoSel.map(item => { return item.value; }) || [];\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n \"tem:Centros\": centrosVal.join(\",\"),\r\n \"tem:Departamentos\": \"0\",//deptosVal.join(\",\"),\r\n };\r\n props.getJefesPerdiemAction(newParams, server);\r\n }\r\n }, [centrosSel]);\r\n\r\n useEffect(() => { \r\n props.getJefesPerdiemAction('PURGE', '');\r\n }, [centrosSel]);\r\n\r\n const departamentosCentros = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n };\r\n props.getDeptosCenterAction(newParams, server);\r\n };\r\n\r\n /*\r\n const empleadosAll = () => {\r\n let { params, server } = getParams();\r\n if (centrosSel.length > 0 && deptoSel.length > 0 && jefesSel.length > 0) {\r\n let centrosS = [];\r\n centrosSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n\r\n let jefeS = [];\r\n jefesSel.map((sel) => {\r\n jefeS.push(sel.value);\r\n });\r\n\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": centrosS.join(),\r\n \"tem:deptos\": deptosS.join(),\r\n \"tem:Jefe\": jefeS.join(\",\"),\r\n \"tem:user_id\": params[\"tem:TrabID\"],\r\n };\r\n console.log(\"EMPLEADOS\", newParams);\r\n props.getEmpleadosAllAction(newParams, server);\r\n }\r\n };\r\n */\r\n\r\n const generaReporte = async () => {\r\n setRpt(null);\r\n if (centrosSel.length > 0 && \r\n jefesSel.length > 0 && \r\n (initDate && finalDate)) {\r\n let { params, server } = getParams();\r\n\r\n let centrosVal = (centrosSel.map(item => { return item.value; }) || []);\r\n let jefesVal = jefesSel.map(item => { return item.value; }) || [];\r\n\r\n if (centrosVal.some(s => s == \"0\")) { \r\n centrosVal = centrosVal.filter(f => f == \"0\");\r\n }\r\n if (jefesVal.some(s => s == \"0\")) { \r\n jefesVal = jefesVal.filter(f => f == \"0\");\r\n }\r\n\r\n let newParams = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:UserID': params['tem:TrabID'],\r\n 'tem:centros': centrosVal.join(\",\"),\r\n 'tem:empresas': params['tem:IdEmpresa'],\r\n 'tem:jefes': jefesVal.join(\",\"),\r\n 'tem:inicio': initDate.toISOString(),\r\n 'tem:fin': finalDate.toISOString(),\r\n };\r\n\r\n console.log('OIHB Rpt params', newParams);\r\n\r\n props.GeneraRptVacacionIncidenciaAction(newParams, server);\r\n }\r\n };\r\n\r\n const downloadXLS = async (url) => {\r\n url = url.replace('wcfKioscoReportes.svc/', '');\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } \r\n else {\r\n res = await fetch(url);\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n download(blob, name);\r\n };\r\n\r\n /*\r\n const getFilterOptions = async (filter) => {\r\n const url =\r\n localStorage.getItem(\"REACT_APP_PERDIEM\") +\r\n `perdiems/reports/filters-options?filter=${filter}`;\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n return res.json();\r\n };\r\n */\r\n\r\n const getOptionsCentros = () => {\r\n return centros.map((item) => { \r\n return { \r\n value: item.Centro_ID, \r\n label: item.Descripcion \r\n } \r\n });\r\n };\r\n\r\n /*\r\n const getOptionsDeptos = () => {\r\n let departamento = deptos;\r\n let newdepartamento = [];\r\n if (departamento && departamento.length > 0) {\r\n departamento.map((dep) => {\r\n newdepartamento.push({\r\n value: dep.Depto_ID,\r\n label: dep.Descripcion,\r\n });\r\n });\r\n return newdepartamento;\r\n }\r\n };\r\n */\r\n\r\n const getOptionsJefes = () => {\r\n return jefes.map((item) => { \r\n return { \r\n value: item.Trab_id_Jefe, \r\n label: item.NombreCompleto \r\n } \r\n });\r\n };\r\n\r\n const selectCentro = (v) => {\r\n setRpt(null);\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n setCentrosSel(selected);\r\n //console.log('OIHB center sel', selected);\r\n };\r\n\r\n const selectJefe = (v) => {\r\n setRpt(null);\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n setJefesSel(selected);\r\n };\r\n\r\n /*\r\n const selectDepto = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setDeptoSel(selected);\r\n };\r\n */\r\n\r\n \r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n case 6:\r\n return <RHVacationLeftsidebar />;\r\n break;\r\n case 7:\r\n return <DirectorGralLeftsidebar />;\r\n break;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n {Leftsidebar()}\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REPORTE VACACIONES E INCIDENCIAS\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Reporte Vacaciones e Incidencias\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte de vacaciones e incidencias\r\n de uno o varios empleados en un rango de fechas.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <Select\r\n disabled={centrosSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los centros.\"\r\n value={centrosSel}\r\n options={getOptionsCentros()}\r\n onChange={(v) => selectCentro(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los jefes.\"\r\n options={getOptionsJefes()}\r\n onChange={(v) => selectJefe(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Desde</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\"></div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Hasta</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {centrosSel.length > 0 && \r\n jefesSel.length > 0 && \r\n (initDate && finalDate) ? (\r\n <p>\r\n <a\r\n disabled={jefesSel.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n generaReporte();\r\n }}\r\n >\r\n Generar Reporte\r\n </a>\r\n </p>\r\n ) : null}\r\n </div>\r\n \r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {rpt != null && \r\n <Card\r\n src={xlsxImage}\r\n classNameSrc=\"mdi\"\r\n value=\"\"\r\n name=\"Descargar reporte\"\r\n onClick={() => downloadXLS(rpt)}\r\n type=\"img\"\r\n />\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n // empleadosAllData: state.empleadosAll.empleadosAllData,\r\n // empleadosAllError: state.empleadosAll.empleadosAllError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n generaRptVacacionIncidenciaData: state.rptVacationsIncidents.generaRptVacacionIncidenciaData,\r\n generaRptVacacionIncidenciaError: state.rptVacationsIncidents.generaRptVacacionIncidenciaError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction,\r\n getJefesPerdiemAction,\r\n //getEmpleadosAllAction,\r\n GeneraRptVacacionIncidenciaAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(ReportVacationsIncidents)\r\n);\r\n","import { changeXml, GeneraRptVacacionIncidenciaResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n REPORT_VACATIONS_INCIDENTS_SUCCESS,\r\n REPORT_VACATIONS_INCIDENTS_ERROR,\r\n REPORT_VACATIONS_INCIDENTS_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types';\r\n\r\nexport const GeneraRptVacacionIncidenciaAction = (data, server) => {\r\n let configJson = {\r\n 'tem:GeneraRptVacacionIncidencia': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoReportes/GeneraRptVacacionIncidencia\",\r\n //'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n 'Server': localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1' ? null : localStorage.getItem(\"REACT_APP_VACATIONS\") + 'wcfKioscoReportes.svc'\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n\r\n console.log('REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: REPORT_VACATIONS_INCIDENTS_PURGE, payload: 'PURGE' })\r\n } \r\n else {\r\n fetch(server, config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET REPORT_VACATIONS_INCIDENTS_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: REPORT_VACATIONS_INCIDENTS_ERROR, payload: response })\r\n } \r\n else {\r\n response = {\r\n isOK: true,\r\n UrlRpt: GeneraRptVacacionIncidenciaResponse(body)\r\n }\r\n\r\n console.log('RESPONSE REPORT_VACATIONS_INCIDENTS DATA: ', response);\r\n dispatch({ type: REPORT_VACATIONS_INCIDENTS_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET REPORT_VACATIONS_INCIDENTS DATA: ', response);\r\n dispatch({ type: REPORT_VACATIONS_INCIDENTS_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET REPORT_VACATIONS_INCIDENTS DATA: ', responseError);\r\n dispatch({ type: REPORT_VACATIONS_INCIDENTS_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { getAllUsersAction } from \"../../api/actions/systemAdmin/AllUsersAction\";\r\nimport { getNewUserAction } from \"../../api/actions/systemAdmin/NewUserAction\";\r\nimport { getChangePasswordEmployeeAction } from \"../../api/actions/systemAdmin/ChangePasswordEmployeeAction\";\r\nimport { getChangePasswordAdmin } from \"../../api/actions/systemAdmin/ChangePaswordAdminAction\";\r\nimport { getConsultaRolesAction } from \"../../api/actions/systemAdmin/ConsultaRolesAction\";\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport { alert } from \"../../utils/common/alert\";\r\n\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { getSicossUsuarios, updateLastActivity } from \"../../api/actions/securityPolicy/CallApiIdentity\";\r\n\r\nconst UsersSecurityPolicy = (props) => {\r\n const { addToast } = useToasts();\r\n const [loading, setLoading] = useState(true);\r\n const [showModal, setShowModal] = useState(false);\r\n const [newPwd, setNewPwd] = useState(null);\r\n const [showModalNewUser, setShowModalNewUser] = useState(false);\r\n const [userChangePassword, setUserChangePassword] = useState({});\r\n const [form, setValues] = useState({});\r\n const [warnings, setWarn] = useState(null);\r\n const [roles, setRoles] = useState([]);\r\n const [roleSelected, setRoleSelected] = useState(\"\");\r\n\r\n const [usuarios, setUsuarios] = useState([]);\r\n\r\n useEffect(() => {\r\n loadUsersSecurityPolicy();\r\n //let { params, server } = getParams();\r\n // props.getAllUsersAction(params, server);\r\n // let rol = {\r\n // \"tem:sToken\": params[\"tem:sToken\"],\r\n // \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n // };\r\n // props.getConsultaRolesAction(rol, server);\r\n }, []);\r\n\r\n// useEffect(() => {\r\n// if (props.allUsersData && props.allUsersData.isOK) {\r\n// setLoading(false);\r\n// } else if (props.allUsersError && props.allUsersError.isOK === false) {\r\n// props.getAllUsersAction(\"PURGE\", \"\");\r\n// props.history.push(`${process.env.PUBLIC_URL}/`);\r\n// }\r\n// }, [props.allUsersData, props.allUsersError]);\r\n\r\n// useEffect(() => {\r\n// if (\r\n// props.newUserData &&\r\n// props.newUserData.isOK &&\r\n// props.newUserData.NewUser\r\n// ) {\r\n// addToast(\"Usuario agregado exitosamente\", {\r\n// appearance: \"success\",\r\n// autoDismiss: true,\r\n// });\r\n// } else if (props.newUserError && props.newUserError.isOK === false) {\r\n// props.getNewUserAction(\"PURGE\", \"\");\r\n// }\r\n\r\n// let data = getParams();\r\n// let { params, server } = data;\r\n// props.getAllUsersAction(\"PURGE\", \"\");\r\n// props.getAllUsersAction(params, server);\r\n// }, [props.newUserData, props.newUserError]);\r\n\r\n// useEffect(() => {\r\n// if (\r\n// props.changePasswordAdminData &&\r\n// props.changePasswordAdminData.isOK &&\r\n// props.changePasswordAdminData.ChangePasswordAdmin === true\r\n// ) {\r\n// addToast(\"Contraseña actualizada.\", {\r\n// appearance: \"success\",\r\n// autoDismiss: true,\r\n// });\r\n// } else if (\r\n// props.changePasswordAdminError &&\r\n// props.changePasswordAdminError.isOK === false\r\n// ) {\r\n// props.getChangePasswordAdmin(\"PURGE\", \"\");\r\n// }\r\n\r\n// setLoading(false);\r\n// }, [props.changePasswordAdminData, props.changePasswordAdminError]);\r\n\r\n// useEffect(() => {\r\n// if (props.consultaRolesData && props.consultaRolesData.isOK) {\r\n// if (\r\n// props.consultaRolesData?.ConsultaRoles &&\r\n// props.consultaRolesData?.ConsultaRoles\r\n// ) {\r\n// setRoles(props.consultaRolesData?.ConsultaRoles);\r\n// }\r\n// } else if (\r\n// props.consultaRolesError &&\r\n// props.consultaRolesError.isOK === false\r\n// ) {\r\n// props.getConsultaRolesAction(\"PURGE\", \"\");\r\n// }\r\n// }, [props.consultaRolesData, props.consultaRolesError]);\r\n\r\n const users_table = () => {\r\n let table = [];\r\n\r\n if (usuarios && usuarios.length >= 0) {\r\n if (usuarios.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay usuarios para mostrar.</td>\r\n </tr>\r\n );\r\n } \r\n else {\r\n // movimientos = movimientos.sort((a, b) => {\r\n // return a - b;\r\n // });\r\n\r\n usuarios.map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item.userIdentity}</td>\r\n <td>{item.userSicoss}</td>\r\n <td>{item.nombre}</td>\r\n <td>{item.diasInactivo}</td>\r\n {item.diasInactivo >= item.limiteDiasInactivo ?\r\n <td className=\"hidden-xs-down\" onClick={() => hanldeUpdateLastActivity(item.userSicoss)} style={{ cursor: 'pointer' }}><i className=\"mdi mdi-lock\"></i> Reactivar</td> : \r\n <td>No</td>}\r\n </tr>\r\n );\r\n });\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const loadUsersSecurityPolicy = async () => {\r\n setLoading(true);\r\n\r\n let { params } = getParams();\r\n let sicossUsuarios = await getSicossUsuarios();\r\n if (sicossUsuarios) {\r\n let today = new Date();\r\n sicossUsuarios = sicossUsuarios.filter(f => f.clienteId == params[\"tem:IdEmpresa\"]);\r\n sicossUsuarios.map(m => {\r\n m.diasInactivo = Math.round((today - new Date(Date.parse(m.ultimaActividad))) / (1000 * 60 * 60 * 24))\r\n });\r\n \r\n setUsuarios(sicossUsuarios);\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n const hanldeUpdateLastActivity = async (user) => {\r\n setLoading(true);\r\n\r\n let { params } = getParams();\r\n let update = await updateLastActivity(params[\"tem:IdEmpresa\"], user);\r\n if (update) {\r\n alert('Se ha reactivado el usuario.');\r\n await loadUsersSecurityPolicy();\r\n }\r\n else {\r\n alert('No se logró reactivar el usuario');\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n const handleChangePwd = () => {\r\n if (\r\n newPwd.ContraseniaAnt == undefined ||\r\n newPwd.ContraseniaAnt.replace(/ /g, \"\") == \"\" ||\r\n newPwd.ContraseniaNueva == undefined ||\r\n newPwd.ContraseniaNueva.replace(/ /g, \"\") == \"\" ||\r\n newPwd.ContraseniaNuevaConfirmacion == undefined ||\r\n newPwd.ContraseniaNuevaConfirmacion.replace(/ /g, \"\") == \"\"\r\n ) {\r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n if (newPwd.ContraseniaNueva != newPwd.ContraseniaNuevaConfirmacion) {\r\n setWarn(\"La confirmación de contraseña no coincide.\");\r\n return;\r\n }\r\n\r\n setWarn(null);\r\n setShowModal(false);\r\n setLoading(true);\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n String.prototype.toHtmlEntities = function () {\r\n return this.replace(/./gm, function (s) {\r\n return \"&#\" + s.charCodeAt(0) + \";\";\r\n });\r\n };\r\n\r\n let paramss = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": userChangePassword.user_id,\r\n \"tem:ContraseniaAnt\": newPwd.ContraseniaAnt.toHtmlEntities(),\r\n \"tem:ContraseniaNueva\": newPwd.ContraseniaNueva.toHtmlEntities(),\r\n };\r\n\r\n props.getChangePasswordAdmin(paramss, server);\r\n };\r\n\r\n const handleShowModal = (user) => {\r\n setUserChangePassword(user);\r\n setShowModal(true);\r\n };\r\n\r\n const _handleCloseModal = () => {\r\n setUserChangePassword({});\r\n setNewPwd(null);\r\n setWarn(null);\r\n setShowModal(false);\r\n };\r\n\r\n const _handleCloseModalNewUser = () => {\r\n setWarn(null);\r\n setShowModalNewUser(false);\r\n };\r\n\r\n const handleNewUser = () => {\r\n if (\r\n form.UserID == undefined ||\r\n form.UserID.replace(/ /g, \"\") == \"\" ||\r\n form.Nombre == undefined ||\r\n form.Nombre.replace(/ /g, \"\") == \"\" ||\r\n form.Contrasenia == undefined ||\r\n form.Contrasenia.replace(/ /g, \"\") == \"\" ||\r\n roleSelected == \"\"\r\n ) {\r\n setWarn(\"Todos los campos son obligatorios.\");\r\n return;\r\n }\r\n\r\n setWarn(null);\r\n setShowModalNewUser(false);\r\n setLoading(true);\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n\r\n String.prototype.toHtmlEntities = function () {\r\n return this.replace(/./gm, function (s) {\r\n return \"&#\" + s.charCodeAt(0) + \";\";\r\n });\r\n };\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": form.UserID,\r\n \"tem:Nombre\": form.Nombre,\r\n \"tem:Contrasenia\": form.Contrasenia,\r\n \"tem:IdRol\": roleSelected,\r\n };\r\n console.log(\"ROLES\", params);\r\n props.getNewUserAction(params, server);\r\n };\r\n\r\n const _handleInput = (event) => {\r\n setValues({\r\n ...form,\r\n [event.target.name]: event.target.value,\r\n });\r\n };\r\n\r\n const _handleInputNewPwd = (event) => {\r\n setNewPwd({\r\n ...newPwd,\r\n [event.target.name]: event.target.value,\r\n });\r\n };\r\n\r\n const renderSelectorRole = () => {\r\n let options = roles.map((data) => {\r\n return <option value={data.ID}>{data.Descripcion}</option>;\r\n });\r\n return (\r\n <select\r\n class=\"form-control\"\r\n onChange={(values) => {\r\n setRoleSelected(values.target.value);\r\n }}\r\n >\r\n {options}\r\n </select>\r\n );\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Modal show={showModal} onHide={_handleCloseModal}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>Cambio de Contraseña</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {warnings && <div className=\"alert alert-warning\">{warnings}</div>}\r\n <div className=\"form-group\">\r\n <h2>{userChangePassword.descripcion}</h2>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n Contraseña Anterior <small>*</small>\r\n </label>\r\n <input\r\n type=\"password\"\r\n onChange={_handleInputNewPwd}\r\n name=\"ContraseniaAnt\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n Nueva Contraseña<small>*</small>\r\n </label>\r\n <input\r\n type=\"password\"\r\n onChange={_handleInputNewPwd}\r\n name=\"ContraseniaNueva\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n Confirmar Contraseña <small>*</small>\r\n </label>\r\n <input\r\n type=\"password\"\r\n onChange={_handleInputNewPwd}\r\n name=\"ContraseniaNuevaConfirmacion\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModal}>\r\n Cerrar\r\n </Button>\r\n <Button variant=\"success\" onClick={handleChangePwd}>\r\n Confirmar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Modal show={showModalNewUser} onHide={_handleCloseModalNewUser}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>Nuevo Usuario</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <form>\r\n {warnings && (\r\n <div className=\"alert alert-warning\">{warnings}</div>\r\n )}\r\n <div className=\"form-group\">\r\n <label>\r\n ID USUARIO <small>*</small>\r\n </label>\r\n <input\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"UserID\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n NOMBRE <small>*</small>\r\n </label>\r\n <input\r\n type=\"text\"\r\n onChange={_handleInput}\r\n name=\"Nombre\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n CONTRASEÑA <small>*</small>\r\n </label>\r\n <input\r\n type=\"password\"\r\n onChange={_handleInput}\r\n name=\"Contrasenia\"\r\n className=\"form-control\"\r\n placeholder=\"\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label>\r\n ROL <small>*</small>\r\n </label>\r\n {roles.length > 0 ? renderSelectorRole() : null}\r\n </div>\r\n </form>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={_handleCloseModalNewUser}>\r\n Cancelar\r\n </Button>\r\n <Button variant=\"success\" onClick={handleNewUser}>\r\n Agregar Usuario\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Usuarios Politica de Seguridad\" icon=\"mdi mdi-account-edit\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title\">USUARIOS</h4>\r\n </div>\r\n <div className=\"col-6\">\r\n {/* <button\r\n onClick={() => setShowModalNewUser(true)}\r\n type=\"button\"\r\n className=\"btn btn-success waves-effect waves-light pull-right\"\r\n >\r\n NUEVO USUARIO\r\n </button> */}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block\"></div>\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>Id</th>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>Días Inactivo</th>\r\n <th>Cuenta Inactiva</th>\r\n </tr>\r\n </thead>\r\n <tbody>{users_table()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n allUsersData: state.allUsers.allUsersData,\r\n allUsersError: state.allUsers.allUsersError,\r\n\r\n newUserData: state.newUser.newUserData,\r\n newUserError: state.newUser.newUserError,\r\n\r\n changePasswordEmployeeData:\r\n state.changePasswordEmployee.changePasswordEmployeeData,\r\n changePasswordEmployeeError:\r\n state.changePasswordEmployee.changePasswordEmployeeError,\r\n\r\n changePasswordAdminData: state.changePasswordAdmin.changePasswordAdminData,\r\n changePasswordAdminError:\r\n state.changePasswordAdmin.changePasswordAdminError,\r\n\r\n consultaRolesData: state.consultaRoles.consultaRolesData,\r\n consultaRolesError: state.consultaRoles.consultaRolesError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getAllUsersAction,\r\n getNewUserAction,\r\n getChangePasswordEmployeeAction,\r\n getChangePasswordAdmin,\r\n getConsultaRolesAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(UsersSecurityPolicy)\r\n);\r\n","\r\nimport { changeXml, GetReporte1SolicitudVacacioneCamposIncidenciasResponse, } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport { parseString } from 'react-native-xml2js';\r\n\r\nimport {\r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS, \r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR, \r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nexport const GetReporte1SolicitudVacacioneCamposIncidenciasAction = (data, server) => {\r\n let responseForNotFound = true;\r\n let nameService = 'wcfKioscoReportes';\r\n let action = 'GetReporte1SolicitudVacacioneCamposIncidencias';\r\n let directServer = localStorage.getItem('REACT_APP_VACATIONS') + nameService + '.svc';\r\n\r\n let configJson = {};\r\n configJson['tem:' + action] = { \r\n ...data \r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n 'SOAPAction': 'http://tempuri.org/I' + nameService + '/' + action,\r\n 'Server': directServer\r\n },\r\n };\r\n\r\n if (localStorage.getItem('REACT_APP_IS_PRIVATE') == '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n };\r\n config = {\r\n ...config,\r\n headers: headers\r\n };\r\n }\r\n\r\n console.log('TEST RECUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n if (data === 'PURGE') {\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE, payload: 'PURGE' });\r\n } \r\n else {\r\n fetch((localStorage.getItem('REACT_APP_IS_PRIVATE') == '1' ? directServer : server), config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n let notFound = false;\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope'];\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA');\r\n notFound = true;\r\n }\r\n }\r\n else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n };\r\n }\r\n }\r\n\r\n if (responseForNotFound && notFound) {\r\n response = {\r\n isOK: true,\r\n GetReporte1SolicitudVacacioneCamposIncidencias: GetReporte1SolicitudVacacioneCamposIncidenciasResponse(body)\r\n };\r\n console.log('[NOT FOUND] DEFAULT RESPONSE GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS DATA: ', response);\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS, payload: response });\r\n return;\r\n }\r\n \r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n };\r\n console.log('ERROR GET GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR, payload: response });\r\n }\r\n else {\r\n response = {\r\n isOK: true,\r\n GetReporte1SolicitudVacacioneCamposIncidencias: GetReporte1SolicitudVacacioneCamposIncidenciasResponse(body)\r\n };\r\n console.log('RESPONSE GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS DATA: ', response);\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n };\r\n console.log('ERROR GET GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS DATA: ', response);\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR, payload: response });\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n };\r\n console.log('ERROR NOT RESPONSE GET GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS DATA: ', responseError);\r\n dispatch({ type: GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar.js\";\r\nimport DirectorGralLeftsidebar from \"../layout/DirectorGralLeftsidebar.js\";\r\nimport RHVacationLeftsidebar from \"../layout/RHVacationLeftsidebar.js\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction.js\";\r\nimport { GetReporte1SolicitudVacacioneCamposIncidenciasAction } from \"../../api/actions/systemAdmin/GetReporte1SolicitudVacacioneCamposIncidenciasAction\";\r\n\r\nimport Card from \"../../components/shared/Card.js\";\r\nimport xlsxImage from \"../../assets/payroll/xlsx.png\";\r\n\r\nimport { getParams, getSesionStorage } from \"../../utils/index.js\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert.js\";\r\n\r\nconst ReportRequestsIncidents = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [catIncidents, setCatIncidents] = useState([]);\r\n const [selectedIncidents, setSelectedIncidents] = useState(\"\");\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [rpt, setRpt] = useState(null);\r\n const defaultOption = [{value: '*', label: 'TODOS'}];\r\n\r\n useEffect(() => {\r\n getCatIncidents();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.catIncidentsData && props.catIncidentsData.isOK) {\r\n let cat = [...props.catIncidentsData.CatIncidents];\r\n setCatIncidents(cat);\r\n setLoading(false);\r\n } \r\n else if (props.catIncidentsError && props.catIncidentsError.isOK === false) {\r\n setCatIncidents([]);\r\n setLoading(false);\r\n props.getCatIncidentsAction('PURGE', '');\r\n }\r\n }, [props.catIncidentsData, props.catIncidentsError]);\r\n\r\n useEffect(() => {\r\n if (props.getReporte1SolicitudVacacioneCamposIncidenciasData && props.getReporte1SolicitudVacacioneCamposIncidenciasData.isOK) {\r\n setRpt(props.getReporte1SolicitudVacacioneCamposIncidenciasData.GetReporte1SolicitudVacacioneCamposIncidencias.RutaDescargaRpt);\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(\"PURGE\", \"\");\r\n } \r\n else if (props.getReporte1SolicitudVacacioneCamposIncidenciasError && props.getReporte1SolicitudVacacioneCamposIncidenciasError.isOK === false) {\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getReporte1SolicitudVacacioneCamposIncidenciasData, props.getReporte1SolicitudVacacioneCamposIncidenciasError]);\r\n\r\n const getCatIncidents = () => {\r\n let { params, server } = getParams();\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n \r\n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1') {\r\n _params['tem:TrabID'] = params['tem:TrabID'];\r\n }\r\n \r\n props.getCatIncidentsAction(_params, server);\r\n };\r\n\r\n const generaReporte = async () => {\r\n setRpt(null);\r\n if (selectedIncidents.length > 0 && (initDate && finalDate)) {\r\n let { params, server } = getParams();\r\n\r\n //let incidentsVal = selectedIncidents.map(item => { return item.value; }) || [];\r\n let incidentsVal = [...selectedIncidents.map(item => { return item.value; })];\r\n if (incidentsVal.some(s => s == '*')) {\r\n incidentsVal = [...catIncidents.map(m => m.id)];\r\n }\r\n\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:GeneraReporteExcel': true,\r\n 'tem:FechaInicio': initDate.toISOString(),\r\n 'tem:FechaFin': finalDate.toISOString(),\r\n 'tem:TiposIncidencias': incidentsVal.join(\",\"),\r\n };\r\n\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(_params, server);\r\n }\r\n };\r\n\r\n const downloadXLS = async (url) => {\r\n //window.open(url, '_blank');\r\n url = url.replace('wcfKioscoReportes.svc/', '');\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } \r\n else {\r\n res = await fetch(url);\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n download(blob, name);\r\n };\r\n\r\n const getOptionsIncidents = () => {\r\n return defaultOption.concat(catIncidents.map((item) => { \r\n return { \r\n value: item.id, \r\n label: item.descripcion \r\n } \r\n }));\r\n };\r\n\r\n const selectIncident = (v) => {\r\n setRpt(null);\r\n // let selected = v;\r\n // if (selected == null) {\r\n // selected = [];\r\n // }\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = [{label:\"TODOS\", value:\"*\"}];\r\n }\r\n setSelectedIncidents(selected);\r\n };\r\n \r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n case 6:\r\n return <RHVacationLeftsidebar />;\r\n break;\r\n case 7:\r\n return <DirectorGralLeftsidebar />;\r\n break;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n {Leftsidebar()}\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REPORTE SOLICITUDES DE INCIDENCIAS\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Reporte Solicitudes de Incidencias\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del reporte. \r\n En esta sección podrás descargar un reporte sobre solicitudes de incidencias.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Tipo solicitud</label>\r\n <Select\r\n disabled={selectedIncidents.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n value={selectedIncidents}\r\n placeholder=\"Selecciona los catIncidents.\"\r\n options={getOptionsIncidents()}\r\n onChange={(v) => selectIncident(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Desde</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Hasta</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {selectedIncidents.length > 0 && \r\n (initDate && finalDate) ? (\r\n <p>\r\n <a\r\n disabled={selectedIncidents.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n generaReporte();\r\n }}\r\n >\r\n Generar Reporte\r\n </a>\r\n </p>\r\n ) : null}\r\n </div>\r\n \r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {rpt != null && \r\n <Card\r\n src={xlsxImage}\r\n classNameSrc=\"mdi\"\r\n value=\"\"\r\n name=\"Descargar reporte\"\r\n onClick={() => downloadXLS(rpt)}\r\n type=\"img\"\r\n />\r\n }\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n catIncidentsData: state.catIncidents.catIncidentsData,\r\n catIncidentsError: state.catIncidents.catIncidentsError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n getReporte1SolicitudVacacioneCamposIncidenciasData: state.getReporte1SolicitudVacacioneCamposIncidencias.getReporte1SolicitudVacacioneCamposIncidenciasData,\r\n getReporte1SolicitudVacacioneCamposIncidenciasError: state.getReporte1SolicitudVacacioneCamposIncidencias.getReporte1SolicitudVacacioneCamposIncidenciasError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getCatIncidentsAction,\r\n getJefesPerdiemAction,\r\n GetReporte1SolicitudVacacioneCamposIncidenciasAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(ReportRequestsIncidents)\r\n);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport SystemAdminLeftsidebar from \"../layout/SystemAdminLeftsidebar.js\";\r\nimport DirectorGralLeftsidebar from \"../layout/DirectorGralLeftsidebar.js\";\r\nimport RHVacationLeftsidebar from \"../layout/RHVacationLeftsidebar.js\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getCatIncidentsAction } from '../../api/actions/empleado/CatIncidentsAction';\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction.js\";\r\nimport { GetReporte1SolicitudVacacioneCamposIncidenciasAction } from \"../../api/actions/systemAdmin/GetReporte1SolicitudVacacioneCamposIncidenciasAction\";\r\n\r\nimport Card from \"../../components/shared/Card.js\";\r\nimport xlsxImage from \"../../assets/payroll/xlsx.png\";\r\n\r\nimport { getParams, getSesionStorage } from \"../../utils/index.js\";\r\nimport moment from 'moment';\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert.js\";\r\n\r\nconst ReportRequestsIncidentsAttachedFile = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [catIncidents, setCatIncidents] = useState([]);\r\n const [selectedIncidents, setSelectedIncidents] = useState(\"\");\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [rpt, setRpt] = useState(null);\r\n const [datos, setDatos] = useState([]);\r\n const defaultOption = [{value: '*', label: 'TODOS'}];\r\n\r\n useEffect(() => {\r\n getCatIncidents();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.catIncidentsData && props.catIncidentsData.isOK) {\r\n let cat = [...props.catIncidentsData.CatIncidents];\r\n setCatIncidents(cat);\r\n setLoading(false);\r\n } \r\n else if (props.catIncidentsError && props.catIncidentsError.isOK === false) {\r\n setCatIncidents([]);\r\n setLoading(false);\r\n props.getCatIncidentsAction('PURGE', '');\r\n }\r\n }, [props.catIncidentsData, props.catIncidentsError]);\r\n\r\n useEffect(() => {\r\n if (props.getReporte1SolicitudVacacioneCamposIncidenciasData && props.getReporte1SolicitudVacacioneCamposIncidenciasData.isOK) {\r\n setRpt(props.getReporte1SolicitudVacacioneCamposIncidenciasData.GetReporte1SolicitudVacacioneCamposIncidencias.RutaDescargaRpt);\r\n setDatos([...props.getReporte1SolicitudVacacioneCamposIncidenciasData.GetReporte1SolicitudVacacioneCamposIncidencias.SolicitudVacacioneCamposIncidencias]);\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(\"PURGE\", \"\");\r\n } \r\n else if (props.getReporte1SolicitudVacacioneCamposIncidenciasError && props.getReporte1SolicitudVacacioneCamposIncidenciasError.isOK === false) {\r\n setRpt(null);\r\n setDatos([]);\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getReporte1SolicitudVacacioneCamposIncidenciasData, props.getReporte1SolicitudVacacioneCamposIncidenciasError]);\r\n\r\n const getCatIncidents = () => {\r\n let { params, server } = getParams();\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n };\r\n \r\n if (localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1') {\r\n _params['tem:TrabID'] = params['tem:TrabID'];\r\n }\r\n \r\n props.getCatIncidentsAction(_params, server);\r\n };\r\n\r\n const consultarDatos = async () => {\r\n setRpt(null);\r\n if (selectedIncidents.length > 0 && (initDate && finalDate)) {\r\n let { params, server } = getParams();\r\n\r\n //let incidentsVal = selectedIncidents.map(item => { return item.value; }) || [];\r\n let incidentsVal = [...selectedIncidents.map(item => { return item.value; })];\r\n if (incidentsVal.some(s => s == '*')) {\r\n incidentsVal = [...catIncidents.map(m => m.id)];\r\n }\r\n\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:GeneraReporteExcel': true,\r\n 'tem:FechaInicio': initDate.toISOString(),\r\n 'tem:FechaFin': finalDate.toISOString(),\r\n 'tem:TiposIncidencias': incidentsVal.join(\",\"),\r\n 'tem:SoloArchivoAdjunto': true,\r\n 'tem:ProcesaArchivoAdjunto': true,\r\n };\r\n\r\n props.GetReporte1SolicitudVacacioneCamposIncidenciasAction(_params, server);\r\n }\r\n };\r\n\r\n const downloadUrl = async (url) => {\r\n //document.location.href=url;\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } \r\n else {\r\n res = await fetch(url, { method: 'GET' });\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n setLoading(false);\r\n download(blob, name);\r\n };\r\n\r\n const getOptionsIncidents = () => {\r\n return defaultOption.concat(catIncidents.map((item) => { \r\n return { \r\n value: item.id, \r\n label: item.descripcion \r\n } \r\n }));\r\n };\r\n\r\n const selectIncident = (v) => {\r\n setRpt(null);\r\n // let selected = v;\r\n // if (selected == null) {\r\n // selected = [];\r\n // }\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = [{label:\"TODOS\", value:\"*\"}];\r\n }\r\n setSelectedIncidents(selected);\r\n };\r\n \r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n break;\r\n case 6:\r\n return <RHVacationLeftsidebar />;\r\n break;\r\n case 7:\r\n return <DirectorGralLeftsidebar />;\r\n break;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n const _renderReportTable = () => {\r\n let table = [];\r\n let lista = [...datos];\r\n\r\n if (lista.length == 0) table.push(<tr key={\"tr_00\"}><td>Sin resultados.</td></tr>);\r\n\r\n lista.map((item, i) => {\r\n let color;\r\n\r\n switch (item.Status) {\r\n case 'Solicitado':\r\n color = '#faa52c';\r\n break;\r\n\r\n case 'Aprobado':\r\n color = '#93c03f';\r\n break;\r\n\r\n case 'Rechazado':\r\n color = '#be2b71';\r\n break;\r\n\r\n case 'Rechazada':\r\n color = '#be2b71';\r\n break;\r\n\r\n default:\r\n color = '#003b71';\r\n }\r\n\r\n table.push(\r\n <tr key={item.SolicitudID}>\r\n <td>{item.TrabID}</td>\r\n <td>{item.TipoSolString}</td>\r\n <td>{item.Dias}</td>\r\n <td>{item.RangoFechas === 'true' ? 'DE ' + moment(item.FechaInicio).format('DD-MM-YYYY') + ' A ' + moment(item.FechaFin).format('DD-MM-YYYY') : moment(item.FechaInicio).format('DD-MM-YYYY')}</td>\r\n <td>{item.MotivoVacacion}</td>\r\n <td>{item.Comentario}</td>\r\n <td>{item.Reporta_ID}</td>\r\n <td>{moment(item.FechaSolicitud).format('DD-MM-YYYY')}</td>\r\n <td>{(item.FechaProcesa.trim().length > 0 ? moment(item.FechaProcesa).format('DD-MM-YYYY') : 'N/A')}</td>\r\n <td>\r\n {item.RutaDescarga.trim().length > 0 && \r\n <button type=\"button\" style={ { float: 'right'} } className=\"btn btn-info m-l-5\" onClick={() => downloadUrl(item.RutaDescarga)}>\r\n Descargar<i className=\"mdi mdi-download\"></i>\r\n </button>}\r\n </td>\r\n </tr>\r\n );\r\n });\r\n\r\n return (\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>No. de empleado</th>\r\n <th>Tipo de incidencia</th>\r\n <th>No. de días</th>\r\n <th>Fechas</th>\r\n <th>Motivo del empleado</th>\r\n <th>Comentario del jefe</th>\r\n <th>No. del jefe</th>\r\n <th>Fecha de solicitud</th>\r\n <th>Fecha de autorización</th>\r\n <th>Archivo Adjunto</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {table}\r\n </tbody>\r\n </table>\r\n </div>);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n {Leftsidebar()}\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REPORTE ARCHIVO ADJUNTO EN SOLICITUDES DE INCIDENCIAS\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Reporte Archivo Adjunto en Solicitudes de Incidencias\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la visualización del reporte. \r\n En esta sección podrás descargar el archivo adjunto de cada una de las solicitudes de incidencias (bajo disponibilidad).\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Tipo solicitud</label>\r\n <Select\r\n disabled={selectedIncidents.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n value={selectedIncidents}\r\n placeholder=\"Selecciona los catIncidents.\"\r\n options={getOptionsIncidents()}\r\n onChange={(v) => selectIncident(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Desde</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-2\">\r\n <div className=\"form-group\">\r\n <label>Hasta</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {selectedIncidents.length > 0 && \r\n (initDate && finalDate) ? (\r\n <p>\r\n <a\r\n disabled={selectedIncidents.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n consultarDatos();\r\n }}\r\n >\r\n Consultar datos\r\n </a>\r\n </p>\r\n ) : null}\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div className=\"card-body\">\r\n {datos.length > 0 && _renderReportTable()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n catIncidentsData: state.catIncidents.catIncidentsData,\r\n catIncidentsError: state.catIncidents.catIncidentsError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n getReporte1SolicitudVacacioneCamposIncidenciasData: state.getReporte1SolicitudVacacioneCamposIncidencias.getReporte1SolicitudVacacioneCamposIncidenciasData,\r\n getReporte1SolicitudVacacioneCamposIncidenciasError: state.getReporte1SolicitudVacacioneCamposIncidencias.getReporte1SolicitudVacacioneCamposIncidenciasError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getCatIncidentsAction,\r\n getJefesPerdiemAction,\r\n GetReporte1SolicitudVacacioneCamposIncidenciasAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(ReportRequestsIncidentsAttachedFile)\r\n);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\n\r\nimport { getSearchEmployeeAction } from \"../../api/actions/systemAdmin/SearchEmployeeAction.js\";\r\nimport { getConsultaArchivosPersonalesAction } from \"../../api/actions/empleado/ConsultaArchivosPersonales.js\";\r\nimport { getDeletePersonalFilesAction } from \"../../api/actions/empleado/DeletePersonalFilesAction.js\";\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport Leftsidebar from \"../layout/SystemAdminLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\nimport { getParams } from \"../../utils\";\r\n\r\nconst DownloadDocument = (props) => {\r\n const [loading, setLoading] = useState(true);\r\n const [fileName, setFileName] = useState(\"\");\r\n const [fileBased64, setFileBased64] = useState(\"\");\r\n const [existFiles, setExistFiles] = useState(false);\r\n \r\n const [searchParams, setSearchParams] = useState({});\r\n const [search, setSearch] = useState([]);\r\n const [missedRecords, setMissedRecords] = useState([])\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n setSearchParams({});\r\n setSearch([]);\r\n } else {\r\n setMissedRecords([]);\r\n }\r\n }, [loading]);\r\n\r\n useEffect(() => {\r\n let isParametersFilled = JSON.stringify({}) != JSON.stringify(searchParams);\r\n if (isParametersFilled) {\r\n let data = getParams();\r\n let { params, server } = data;\r\n \r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': searchParams.employee_number || '',\r\n 'tem:Nombre': searchParams.first_name || '',\r\n 'tem:Paterno': searchParams.last_name || '',\r\n 'tem:Materno': searchParams.last_last_name || '',\r\n 'tem:NSS': searchParams.nss || '',\r\n 'tem:CURP': searchParams.curp || '',\r\n 'tem:RFC': searchParams.rfc || '',\r\n 'tem:UserID': params['tem:TrabID']\r\n }\r\n \r\n props.getSearchEmployeeAction(params, server);\r\n }\r\n }, [searchParams] );\r\n\r\n\r\n useEffect(() => {\r\n if (props.searchEmployeeData && props.searchEmployeeData.isOK === true) {\r\n setSearch({\r\n ...props.searchEmployeeData.SearchEmployee\r\n });\r\n } else if (props.searchEmployeeError && props.searchEmployeeError.isOK === false) {\r\n props.getSearchEmployeeAction('PURGE', '');\r\n }\r\n }, [props.searchEmployeeData, props.searchEmployeeError]);\r\n\r\n\r\n const handleSearch = event => { \r\n setSearchParams({\r\n ...searchParams,\r\n [event.target.name]: event.target.value\r\n });\r\n setShowResults(true);\r\n };\r\n\r\n\r\n let consultPersonalArchivos = () => {\r\n setLoading(true);\r\n props.getConsultaArchivosPersonalesAction(\"PURGE\", \"\");\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getConsultaArchivosPersonalesAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n consultPersonalArchivos();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n props.consultaArchivosPersonalesData &&\r\n props.consultaArchivosPersonalesData.isOK === true\r\n ) {\r\n setExistFiles(true);\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n } else if (\r\n props.consultaArchivosPersonalesError &&\r\n props.consultaArchivosPersonalesError.isOK === false\r\n ) {\r\n setExistFiles(false);\r\n props.getConsultaArchivosPersonalesAction(\"PURGE\", \"\");\r\n setFileName(\"\");\r\n setFileBased64(\"\");\r\n setLoading(false);\r\n }\r\n }, [props.consultaArchivosPersonalesData, props.consultaArchivosPersonalesError]);\r\n\r\n let downloadBase64 = (base64, fileName) => {\r\n const downloadLink = document.createElement(\"a\");\r\n\r\n downloadLink.href = base64;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n };\r\n\r\n function data_table() {\r\n let table = [];\r\n let info = props.consultaArchivosPersonalesData?.ConsultaArchivosPersonales || [];\r\n if (!info || info.length <= 0) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay archivos para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n let filteredInfo = [...info];\r\n\r\n const applyFilter = (field, filterValue) => {\r\n if (filterValue) {\r\n const lowerCaseFilter = filterValue.toLowerCase();\r\n filteredInfo = filteredInfo.filter(item => {\r\n const fieldValue = item[field].toLowerCase();\r\n return fieldValue.includes(lowerCaseFilter);\r\n });\r\n }\r\n };\r\n applyFilter(\"Trab_id\", searchParams.employee_number);\r\n applyFilter(\"Nombre\", searchParams.first_name);\r\n applyFilter(\"Paterno\", searchParams.last_name);\r\n applyFilter(\"Materno\", searchParams.last_last_name);\r\n \r\n if (filteredInfo.length === 0) {\r\n table.push(\r\n <tr key={1}>\r\n <td colSpan=\"5\">No se encontraron resultados.</td>\r\n </tr>\r\n );\r\n } else {\r\n filteredInfo.forEach((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item[\"Trab_id\"]}</td>\r\n <td>{item[\"Nombre\"] + \" \" + item[\"Paterno\"] + \" \" + item[\"Materno\"]}</td>\r\n <td>{item[\"Tipo\"]}</td>\r\n <td>{item[\"NombreArchivo\"]}</td>\r\n <td>\r\n <button\r\n onClick={() => downloadBase64(item[\"Contenido\"], item[\"NombreArchivo\"])}\r\n className=\"btn btn-primary form-control text-white\"\r\n >\r\n Descargar\r\n </button>\r\n </td>\r\n </tr>\r\n );\r\n \r\n });\r\n }\r\n }\r\n\r\n return table;\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONSULTAR ARCHIVOS EMPLEADOS\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <div className=\"card-title text-white\">Criterios de búsqueda</div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">No. Empleado</label>\r\n <input type=\"text\" name=\"employee_number\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Paterno</label>\r\n <input type=\"text\" name=\"last_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Materno</label>\r\n <input type=\"text\" name=\"last_last_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Nombre</label>\r\n <input type=\"text\" name=\"first_name\" onChange={handleSearch} className=\"form-control\" />\r\n </div>\r\n </div>\r\n </div>\r\n {showResults && (\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Archivos subidos</h4>\r\n </div>\r\n )}\r\n {showResults && (\r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\">\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th style={{ width: 10 + \"%\" }}>Id</th>\r\n <th style={{ width: 20 + \"%\" }}>Nombre</th>\r\n <th style={{ width: 20 + \"%\" }}>Tipo de documento</th>\r\n <th style={{ width: 20 + \"%\" }}>Archivo</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{data_table()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n } \r\n}; \r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n consultaArchivosPersonalesData: state.consultaArchivosPersonales.consultaArchivosPersonalesData,\r\n consultaArchivosPersonalesError: state.consultaArchivosPersonales.consultaArchivosPersonalesError,\r\n\r\n deletePersonalFilesData: state.deletePersonalFiles.deletePersonalFilesData,\r\n deletePersonalFilesError: state.deletePersonalFiles.deletePersonalFilesError,\r\n \r\n searchEmployeeData: state.searchEmployee.searchEmployeeData,\r\n searchEmployeeError: state.searchEmployee.searchEmployeeError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getConsultaArchivosPersonalesAction,\r\n getDeletePersonalFilesAction,\r\n getSearchEmployeeAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(DownloadDocument)\r\n);","import { changeXml, ConsultaArchivosPersonales } from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n CONSULTA_ARCHIVOPERSO_SUCCESS,\r\n CONSULTA_ARCHIVOPERSO_ERROR,\r\n CONSULTA_ARCHIVOPERSO_PURGE,\r\n VALIDATE_ERROR,\r\n} from \"../../types\";\r\n\r\nexport const getConsultaArchivosPersonalesAction = (data, server) => {\r\n let configJson = {\r\n \"tem:ConsultaArchivosPersonales\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ConsultaArchivosPersonales\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS_ERROR DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ConsultaArchivosPersonales: ConsultaArchivosPersonales(body),\r\n };\r\n\r\n console.log(\"RESPONSE CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET CONSULTA_ARCHIVOS DATA: \", response);\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET CONSULTA_ARCHIVOS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: CONSULTA_ARCHIVOPERSO_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import { changeXml, IncidentDataResponse} from \"../../endpoints\";\r\nimport { ValidationNoAuthorization } from \"../../endpoints/ValidateError\";\r\nimport xml2js, { parseString } from \"react-native-xml2js\";\r\nimport {\r\n INCIDENTS_REPORT_SUCCESS,\r\n INCIDENTS_REPORT_ERROR,\r\n INCIDENTS_REPORT_PURGE,\r\n VALIDATE_ERROR,\r\n } from '../../types';\r\n\r\nexport const getReportIncidentAction = (data, server) => {\r\n let configJson = {\r\n \"tem:ObtieneIncidencias\": {\r\n ...data,\r\n },\r\n };\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: \"POST\",\r\n body: obj,\r\n headers: {\r\n SOAPAction: \"http://tempuri.org/IwcfKioscoSicoss/ObtieneIncidencias\",\r\n Server: localStorage.getItem(\"REACT_APP_CLIENT_SERVER\"),\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n let headers = {\r\n \"Content-Type\": \"text/xml\",\r\n ...config.headers,\r\n };\r\n config = {\r\n ...config,\r\n headers: headers,\r\n };\r\n }\r\n\r\n\r\n return (dispatch) => {\r\n if (data === \"PURGE\") {\r\n dispatch({ type: INCIDENTS_REPORT_PURGE, payload: \"PURGE\" });\r\n } else {\r\n fetch(server, config)\r\n .then((response) => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {};\r\n let body = {};\r\n if (\"s:Envelope\" in resultJson) {\r\n const envelope = resultJson[\"s:Envelope\"];\r\n if (\"s:Body\" in envelope) {\r\n body = envelope[\"s:Body\"][0];\r\n if (\"s:Fault\" in body) {\r\n console.log(\"ERROR DE RESPUESTA\");\r\n }\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: \"No data\",\r\n };\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body);\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid });\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n } else {\r\n response = {\r\n isOK: true,\r\n ObtenerIncidencia: IncidentDataResponse(body),\r\n };\r\n\r\n console.log(\"RESPONSE INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_SUCCESS, payload: response });\r\n }\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err,\r\n };\r\n console.log(\"ERROR GET INCIDENTS DATA: \", response);\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: response });\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error,\r\n };\r\n console.log(\r\n \"ERROR NOT RESPONSE GET INCIDENTS DATA: \",\r\n responseError\r\n );\r\n dispatch({ type: INCIDENTS_REPORT_ERROR, payload: responseError });\r\n });\r\n }\r\n };\r\n};","import React, { useEffect, useState } from 'react'\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/SystemAdminLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { getReportIncidentAction } from '../../api/actions/systemAdmin/ReportIncidentsAction.js';\r\nimport { getParams } from '../../utils';\r\nimport { CSVLink } from \"react-csv\";\r\n\r\nconst IncidentsReport = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [dataIncidents, setDataIncidents] = useState([]);\r\n const [csvData, setCsvData] = useState([]);\r\n const [filtroEstatus, setFiltroEstatus] = useState(\"\");\r\n\r\n let consultIncid = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getReportIncidentAction(params, server);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n consultIncid()\r\n }, []);\r\n \r\n\r\n const handleFiltroEstatusChange = (event) => {\r\n setFiltroEstatus(event.target.value);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if ((props.incidentsReportData || { isOK: false }).isOK) { \r\n let dataIncidents = props.incidentsReportData.ObtenerIncidencia;\r\n let info = dataIncidents || [];\r\n \r\n info = info.filter((item) => filtroEstatus ? item.Estatus === filtroEstatus : true);\r\n\r\n let csv = [\r\n ['Tipo Incidencia', 'Empleado', 'Dia(s)', 'Fecha(s) solicitud', 'Estatus']\r\n ];\r\n \r\n if (info.length > 0) {\r\n info.forEach((item) => {\r\n csv.push([\r\n item.TipoSolicitud,\r\n `${item.Nombre} ${item.Paterno} ${item.Materno}`,\r\n item.Dia,\r\n item.Fechas,\r\n item.Estatus,\r\n item.Motivo,\r\n ]);\r\n });\r\n }\r\n setCsvData(csv);\r\n setDataIncidents(info);\r\n setLoading(false);\r\n } else if (props.incidentsReportError && props.incidentsReportError.isOK === false) {\r\n let csv = [[]];\r\n setCsvData(csv);\r\n props.getReportIncidentAction('PURGE', '');\r\n }\r\n }, [\r\n props.incidentsReportData,\r\n props.incidentsReportError,\r\n filtroEstatus\r\n ]);\r\n\r\n\r\n\r\n const getTablaIncidencias = () => {\r\n let table = [];\r\n let incidents = dataIncidents || [];\r\n if (!incidents || incidents.length <= 0 ) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay incidencias para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n incidents\r\n .filter((item) => {\r\n // Aquí filtramos por Estatus si hay un filtro seleccionado\r\n return filtroEstatus ? item.Estatus === filtroEstatus : true;\r\n })\r\n .map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item.TipoSolicitud}</td>\r\n <td>{item.Nombre + \" \" + item.Paterno + \" \" + item.Materno}</td>\r\n <td>{item.Dia}</td>\r\n <td>{item.Fechas}</td>\r\n <td>{item.Estatus}</td>\r\n <td>{item.Motivo}</td>\r\n </tr>\r\n );\r\n });\r\n }\r\n return table;\r\n}\r\n \r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"DESCARGAR REPORTE INCIDENCIAS\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <h4 className=\"card-title text-white\">Filtrar Búsqueda</h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"form-group\">\r\n <label htmlFor=\"filtroEstatus\">Estatus</label>\r\n <select\r\n id=\"filtroEstatus\"\r\n className=\"form-control\"\r\n value={filtroEstatus}\r\n onChange={handleFiltroEstatusChange}\r\n >\r\n <option value=\"\">Todos</option>\r\n <option value=\"Solicitado\">Solicitado</option>\r\n <option value=\"Rechazado\">Rechazado</option>\r\n <option value=\"Aprobado\">Aprobado</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Incidencias</h4>\r\n </div>\r\n <div className=\"table-responsive m-t-20\">\r\n <CSVLink\r\n data={csvData}\r\n filename={\"Reporte Incidencias.csv\"}\r\n className=\"btn btn-info ml-2\"\r\n >\r\n Descargar Reporte\r\n </CSVLink>\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>Tipo Incidencia</th>\r\n <th>Empleado</th>\r\n <th>Día(s)</th>\r\n <th>Fecha(s) solicitud</th>\r\n <th>Estatus</th>\r\n <th>Motivo</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{getTablaIncidencias()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n incidentsReportData: state.incidentsReport.incidentsReportData,\r\n incidentsReportError: state.incidentsReport.incidentsReportError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getReportIncidentAction,\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentsReport));\r\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport RHVacationLeftsidebar from '../layout/RHVacationLeftsidebar.js'\r\nimport SystemAdminLeftsidebar from '../layout/SystemAdminLeftsidebar.js';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { getReportIncidentAction } from '../../api/actions/systemAdmin/ReportIncidentsAction.js';\r\nimport { getParams, getSesionStorage } from '../../utils/index.js';\r\nimport { CSVLink } from \"react-csv\";\r\n\r\n\r\nconst IncidentsReport = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [dataIncidents, setDataIncidents] = useState([]);\r\n const [csvData, setCsvData] = useState([]);\r\n \r\n\r\n let consultIncid = () => {\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n\r\n props.getReportIncidentAction(params, server);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n consultIncid()\r\n }, []);\r\n \r\n useEffect(() => {\r\n if ((props.incidentsReportData || { isOK: false }).isOK) { \r\n let dataIncidents = props.incidentsReportData.ObtenerIncidencia;\r\n let info = dataIncidents || [];\r\n let csv = [[\r\n 'Tipo incidencia',\r\n 'Empleado',\r\n 'Días',\r\n 'Fecha (s) Solicitud',\r\n 'Estatus',\r\n ]];\r\n\r\n if (info.length > 0) {\r\n info.forEach((item) => {\r\n csv.push([\r\n item.TipoSolicitud,\r\n `${item.Nombre} ${item.Paterno} ${item.Materno}`,\r\n item.Dia,\r\n item.Fechas,\r\n item.Estatus,\r\n ]);\r\n });\r\n }\r\n\r\n setCsvData(csv);\r\n setDataIncidents(info);\r\n props.getReportIncidentAction(\"PURGE\", \"\");\r\n setLoading(false);\r\n } else if (props.incidentsReportError && props.incidentsReportError.isOK === false) {\r\n let csv = [[]];\r\n setCsvData(csv);\r\n props.getReportIncidentAction('PURGE', '');\r\n }\r\n }, [\r\n props.incidentsReportData,\r\n props.incidentsReportError,\r\n ]);\r\n\r\n\r\n const Leftsidebar = () => {\r\n let storage = getSesionStorage('userType');\r\n console.log('OIHB employee type', storage);\r\n switch (storage.typeUser) {\r\n case 5:\r\n return <SystemAdminLeftsidebar />;\r\n case 6:\r\n return <RHVacationLeftsidebar />;\r\n default:\r\n return <SystemAdminLeftsidebar />;\r\n }\r\n };\r\n\r\n\r\n const getTablaIncidencias = () => {\r\n let table = [];\r\n let incidents = dataIncidents || [];\r\n if (!incidents || incidents.length <= 0 ) {\r\n table.push(\r\n <tr key={\"error\"} style={{ cursor: \"default\" }}>\r\n <td>No hay incidencias para mostrar.</td>\r\n </tr>\r\n );\r\n } else {\r\n\r\n incidents.map((item, i) => {\r\n table.push(\r\n <tr key={i}>\r\n <td>{item.TipoSolicitud}</td>\r\n <td>{item.Nombre + \" \" + item.Paterno + \" \" + item.Materno}</td>\r\n <td>{item.Dia}</td>\r\n <td>{item.Fechas}</td>\r\n <td>{item.Estatus}</td>\r\n </tr>\r\n );\r\n });\r\n }\r\n return table;\r\n}\r\n \r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"INCIDENCIAS SOLICITADAS\" icon=\"mdi mdi-bank\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\"> \r\n </div>\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title text-white\">Incidencias</h4>\r\n </div>\r\n \r\n <div className=\"table-responsive m-t-20\">\r\n <div>\r\n <CSVLink\r\n data={csvData}\r\n filename={\"Solicitudes Pendientes.csv\"}\r\n className=\"btn btn-info ml-2\"\r\n >\r\n Descargar Reporte\r\n </CSVLink>\r\n </div>\r\n <table className=\"table nowrap stylish-table\">\r\n <thead>\r\n <tr>\r\n <th>Tipo Incidencia</th>\r\n <th>Empleado</th>\r\n <th>Día(s)</th>\r\n <th>Fecha(s) solicitud</th>\r\n <th>Estatus</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>{getTablaIncidencias()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n );\r\n }\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n incidentsReportData: state.incidentsReport.incidentsReportData,\r\n incidentsReportError: state.incidentsReport.incidentsReportError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getReportIncidentAction,\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IncidentsReport));\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getParams, getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from '../utils';\r\n\r\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\r\n\r\nimport Home from '../pages/systemAdmin/Home';\r\nimport EditWelcomeMessage from '../pages/systemAdmin/EditWelcomeMessage';\r\nimport AccessMethod from '../pages/systemAdmin/AccessMethod';\r\nimport PasswordsReset from '../pages/systemAdmin/PasswordsReset';\r\nimport Messages from '../pages/systemAdmin/Messages';\r\nimport NewMessage from '../pages/systemAdmin/NewMessage';\r\nimport MessagesDetail from '../pages/systemAdmin/MessagesDetail';\r\nimport EditMessage from '../pages/systemAdmin/EditMessage';\r\nimport Requests from '../pages/systemAdmin/Requests';\r\nimport RequestDetail from '../pages/systemAdmin/RequestDetail';\r\nimport AdditionalFields from '../pages/systemAdmin/AdditionalFields';\r\nimport Complaints from '../pages/systemAdmin/Complaints';\r\nimport ComplaintDetail from '../pages/systemAdmin/ComplaintDetail';\r\nimport UsersControl from '../pages/systemAdmin/UsersControl';\r\nimport IncidentTypeEmployeeControl from '../pages/systemAdmin/IncidentTypeEmployeeControl';\r\nimport TabFaltaControl from '../pages/systemAdmin/TabFaltaControl';\r\nimport TBAutorizadorFijoControl from '../pages/systemAdmin/TBAutorizadorFijoControl';\r\nimport TypeEmployeeControl from '../pages/systemAdmin/TypeEmployeeControl';\r\nimport UserPermissions from '../pages/systemAdmin/UserPermissions';\r\nimport PayrollReceipts from '../pages/systemAdmin/PayrollReceipts';\r\nimport VacationsCalendar from '../pages/systemAdmin/CalendarVacations'\r\nimport DownloadReports from \"../pages/systemAdmin/DownloadReports\";\r\nimport UploadFiles from \"../pages/systemAdmin/UploadFiles\";\r\nimport Menu from '../pages/systemAdmin/Menu';\r\nimport SuveryNom035 from '../pages/systemAdmin/SuveryNom035';\r\nimport AccountingReport from '../pages/systemAdmin/AccountingReport';\r\nimport ServiceReportsReport from '../pages/systemAdmin/ServiceReportsReport';\r\nimport ReportVacationsIncidents from '../pages/systemAdmin/ReportVacationsIncidents';\r\nimport TechnicalServicesConcentrate from '../pages/systemAdmin/TechnicalServicesConcentrate';\r\nimport UsersSecurityPolicy from '../pages/systemAdmin/UsersSecurityPolicy';\r\nimport ReportRequestsIncidents from '../pages/systemAdmin/ReportRequestsIncidents';\r\nimport ReportRequestsIncidentsAttachedFile from '../pages/systemAdmin/ReportRequestsIncidentsAttachedFile';\r\n\r\nimport DownloadDocument from '../pages/systemAdmin/DownloadDocument';\r\nimport IncidentReportDownload from '../pages/systemAdmin/IncidentReportDownload';\r\n\r\n//DEVLYN\r\nimport IncidentsAuthorization from '../pages/employee/chief/IncidentsAuthorization';\r\nimport IncidentsRequestDetail from '../pages/employee/chief/IncidentRequestDetail';\r\n\r\nimport VacationsAuthorization from '../pages/employee/chief/VacationsAuthorization';\r\nimport VacationsAuthorizationDetail from '../pages/employee/chief/VacationRequestDetail.js';\r\n\r\nimport EmployeeVacationsControlV2 from '../pages/employee/chief/EmployeeVacationsControlV2.js';\r\nimport EmployeeVacationsControl from '../pages/employee/chief/EmployeeVacationsControl.js';\r\n\r\nimport IncidenciasSolicitadas from '../pages/systemAdmin/RequestedIncidents';\r\n\r\nimport VacacionIncidentRequest from '../pages/systemAdmin/VacationsIncidentsRequested';\r\n\r\n\r\n\r\nimport Login from '../pages/login/Login.js';\r\nimport RecoverPassword from '../pages/login/RecoverPassword';\r\nimport Error404 from '../pages/errors/Error404.js';\r\n\r\nconst EmployeeRoutes = (props) => {\r\n const [loading, setLoading] = useState(true);\r\n const [menu, setMenu] = useState([]);\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [infoLogin, setInfoLogin] = useState(null);\r\n\r\n useEffect(() => {\r\n setEmployeeType(getEmployeeType());\r\n setInfoLogin(getInfoUserLogin());\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n \r\n props.getAdminMenuAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.adminMenuData && props.adminMenuData.isOK) {\r\n setMenu([...props.adminMenuData.AdminMenu].filter(fl => fl.IdRol == 5));\r\n setLoading(false);\r\n } \r\n else if (props.adminMenuError && props.adminMenuError.isOK === false) {\r\n setMenu([]);\r\n props.getAdminMenuAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.adminMenuData, props.adminMenuError]);\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") != \"1\") return true;\r\n \r\n if ((nombreMenu || \"\").trim().length == 0) return true;\r\n\r\n let MenuID = '0';\r\n let permite = false;\r\n if (menu.length > 0) {\r\n let find = menu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <Switch>\r\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <Home/>\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n } \r\n else {\r\n return (\r\n <Switch>\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <Home />\r\n </Route>}\r\n\r\n {permiteMenu(\"access\") && <Route path={`${process.env.PUBLIC_URL}/access`} exact >\r\n <AccessMethod />\r\n </Route>}\r\n\r\n {permiteMenu(\"passwords\") && <Route path={`${process.env.PUBLIC_URL}/passwords`} >\r\n <PasswordsReset />\r\n </Route>}\r\n\r\n {permiteMenu(\"messages\") && <Route path={`${process.env.PUBLIC_URL}/messages`} exact >\r\n <Messages />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/messages/new`} exact >\r\n <NewMessage />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/messages/:id`} >\r\n <MessagesDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/edit/messages/:id`} >\r\n <EditMessage />\r\n </Route>}\r\n\r\n {permiteMenu(\"requests\") && <Route path={`${process.env.PUBLIC_URL}/requests`} exact >\r\n <Requests />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/requests/:id`} >\r\n <RequestDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"users\") && <Route path={`${process.env.PUBLIC_URL}/users`} exact >\r\n <UsersControl />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/user/:user/permissions`} exact >\r\n <UserPermissions />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONF_TIPOEMPLEADO\") == '1' && \r\n permiteMenu(\"typeEmployee\") && <Route path={`${process.env.PUBLIC_URL}/typeEmployee`} exact >\r\n <TypeEmployeeControl />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_LIMITAR_INCIDENCIAS\") == '1' && \r\n permiteMenu(\"incidentTypeEmployee\") && <Route path={`${process.env.PUBLIC_URL}/incidentTypeEmployee`} exact >\r\n <IncidentTypeEmployeeControl />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONF_TABULADOR_FALTA\") == '1' && \r\n permiteMenu(\"tabFalta\") && <Route path={`${process.env.PUBLIC_URL}/tabFalta`} exact >\r\n <TabFaltaControl />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONF_TABULADOR_AF\") == '1' && \r\n permiteMenu(\"tabAutorizadorFijo\") && <Route path={`${process.env.PUBLIC_URL}/tabAutorizadorFijo`} exact >\r\n <TBAutorizadorFijoControl />\r\n </Route>}\r\n\r\n {permiteMenu(\"users-security-policy\") && <Route path={`${process.env.PUBLIC_URL}/users-security-policy`} exact >\r\n <UsersSecurityPolicy />\r\n </Route>}\r\n\r\n {permiteMenu(\"fields\") && <Route path={`${process.env.PUBLIC_URL}/fields`} exact >\r\n <AdditionalFields />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/menu`} exact >\r\n <Menu />\r\n </Route>}\r\n\r\n {permiteMenu(\"complaints\") && <Route path={`${process.env.PUBLIC_URL}/complaints`} exact >\r\n <Complaints />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/complaints/:id`} exact >\r\n <ComplaintDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"payroll\") && <Route path={`${process.env.PUBLIC_URL}/payroll`} exact >\r\n <PayrollReceipts />\r\n </Route>}\r\n\r\n {permiteMenu(\"reports\") && <Route path={`${process.env.PUBLIC_URL}/reports`} exact >\r\n <DownloadReports />\r\n </Route>}\r\n\r\n {permiteMenu(\"upload\") && <Route path={`${process.env.PUBLIC_URL}/upload`} exact >\r\n <UploadFiles />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/welcomeMsg/edit`} exact >\r\n <EditWelcomeMessage />\r\n </Route>}\r\n\r\n {process.env.REACT_APP_IS_KRONES == '1' && <>\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/vacation-calendar`} exact >\r\n <VacationsCalendar />\r\n </Route>}\r\n\r\n {process.env.REACT_APP_IS_KRONES_PERDIEM == '1' && <>\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/general-report-accounting`} exact >\r\n <AccountingReport />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/general-report-services`} exact >\r\n <ServiceReportsReport />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/technical-services-concentrate`}>\r\n <TechnicalServicesConcentrate />\r\n </Route>}\r\n </>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/report-vacations-incidents`}>\r\n <ReportVacationsIncidents />\r\n </Route>}\r\n </>}\r\n\r\n {localStorage.getItem(\"REACT_APP_REPORTE_INCIDENCIAS\") == '1' && \r\n permiteMenu(\"report-requests-incidents\") && <Route path={`${process.env.PUBLIC_URL}/report-requests-incidents`} exact >\r\n <ReportRequestsIncidents />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_REPORTE_ARCHADJINCI\") == '1' && \r\n permiteMenu(\"report-requests-incidents-attached-file\") && <Route path={`${process.env.PUBLIC_URL}/report-requests-incidents-attached-file`} exact >\r\n <ReportRequestsIncidentsAttachedFile />\r\n </Route>}\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n {permiteMenu(\"suveryNom035\") && <Route path={`${process.env.PUBLIC_URL}/suveryNom035`} exact >\r\n <SuveryNom035 />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\") == '1' && \r\n permiteMenu(\"downloadPersonalDocs\") && <Route path={`${process.env.PUBLIC_URL}/downloadPersonalDocs`} exact >\r\n <DownloadDocument />\r\n </Route>}\r\n \r\n {localStorage.getItem(\"REACT_APP_DESCARGA_REPORTE_INCIDENCIAS\") == '1' && \r\n permiteMenu(\"downloadIncidentsReport\") && <Route path={`${process.env.PUBLIC_URL}/downloadIncidentsReport`} exact >\r\n <IncidentReportDownload />\r\n </Route>}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1') && menu.filter(el => el.NombreMenu == 'incidencias' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization`} exact >\r\n <IncidentsAuthorization />\r\n </Route>}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1') && menu.filter(el => el.NombreMenu == 'incidencias' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidentsauthorization/incidentsrequestdetail`} exact >\r\n <IncidentsRequestDetail />\r\n </Route>}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1') && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar`} exact >\r\n <VacationsAuthorization />\r\n </Route>}\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AutorizaAdministrador\") == '1') && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/vacaciones-autorizar/:id`} exact >\r\n <VacationsAuthorizationDetail />\r\n </Route>}\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '1' && localStorage.getItem(\"REACT_APP_AUTORIZAR_DESDE_ADMINISTRADOR\") == '1' && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones-empleado`} exact >\r\n <EmployeeVacationsControlV2 />\r\n </Route>\r\n }\r\n\r\n {localStorage.getItem(\"REACT_APP_CONTROL_VACACIONES_V2\") == '0' && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar').length > 0 && localStorage.getItem(\"REACT_APP_AUTORIZAR_DESDE_ADMINISTRADOR\") == '1' && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar' && el.Habilitado == 'true').length > 0 &&\r\n <Route path={`${process.env.PUBLIC_URL}/control-vacaciones-empleado`} exact >\r\n <EmployeeVacationsControl />\r\n </Route>\r\n }\r\n\r\n\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_ReporteIncidenciasSol\") == '1') &&\r\n <Route path={`${process.env.PUBLIC_URL}/incidencias-solicitadas`}>\r\n <IncidenciasSolicitadas />\r\n </Route>\r\n }\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_ReporteVacIncidencias\") == '1') &&\r\n <Route path={`${process.env.PUBLIC_URL}/requested-vacations-incidents`}>\r\n <VacacionIncidentRequest />\r\n </Route>\r\n }\r\n\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getAdminMenuAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmployeeRoutes));\r\n","import React, { useState, useEffect } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { getVacationsMassiveAction } from \"../../api/actions/eulen/VacationsMassiveAction\";\nimport { getAuthorizeVacationsMassiveAction } from \"../../api/actions/eulen/AuthorizeVacationsMassiveAction\";\nimport { getRejectVacationsMassiveAction } from \"../../api/actions/eulen/RejectVacationsMassiveAction\";\n\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/RHVacationLeftsidebar\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\n\nimport { getParams } from \"../../utils\";\nimport { alert, confirm } from \"../../utils/common/alert\";\n\nconst VacationRequests = (props) => {\n const [loading, setLoading] = useState(true);\n const [showTable, setShowTable] = useState(\"1\");\n const [tableFilter, setTableFilter] = useState(\"\");\n const [selectedRequests, setSelectedRequests] = useState([]);\n const [resultErrors, setResultErrors] = useState([]);\n\n useEffect(() => {\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": params[\"tem:TrabID\"],\n };\n\n props.getVacationsMassiveAction(params, server);\n };\n\n useEffect(() => {\n if (props.vacationsMassiveData && props.vacationsMassiveData.isOK) {\n setLoading(false);\n } else if (\n props.vacationsMassiveError &&\n props.vacationsMassiveError.isOK === false\n ) {\n props.getVacationsMassiveAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.vacationsMassiveData, props.vacationsMassiveError]);\n\n useEffect(() => {\n if (\n props.rejectVacationsMassiveData &&\n props.rejectVacationsMassiveData.isOK === true\n ) {\n checkResults(props.rejectVacationsMassiveData.RejectVacationsMassive);\n // alert('Las solicitudes fueron rechazadas exitosamente.');\n // setSelectedRequests([]);\n // setLoading(true);\n // props.getVacationsMassiveAction('PURGE', '');\n // props.getRejectVacationsMassiveAction('PURGE', '');\n // loadData();\n } else if (\n props.rejectVacationsMassiveError.RejectVacations &&\n props.rejectVacationsMassiveError.isOK === false\n ) {\n props.getRejectVacationsMassiveAction(\"PURGE\", \"\");\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction(\"PURGE\", \"\");\n loadData();\n }\n }, [props.rejectVacationsMassiveData, props.rejectVacationsMassiveError]);\n\n useEffect(() => {\n if (selectedRequests.length > 0) {\n if (resultErrors.length > 0) {\n let errorsJsx = resultErrors.map((err) => {\n return (\n <tr>\n <td>{err.Trab_id}</td>\n <td>{err.ErrorMsg}</td>\n </tr>\n );\n });\n\n let correct = selectedRequests.length - resultErrors.length;\n\n alert(\n <>\n <h5>\n {\"Se procesaron \" +\n selectedRequests.length +\n \" peticiones de las cuales \" +\n correct +\n \" fueron aceptadas y \" +\n resultErrors.length +\n \" fueron rechazadas\"}\n </h5>\n <table className=\"table\">\n <thead>\n <th>No. Empleado</th>\n <th>Status</th>\n </thead>\n <tbody>{errorsJsx}</tbody>\n </table>\n </>\n );\n } else {\n alert(\"Las solicitudes se procesaron exitosamente.\");\n }\n setSelectedRequests([]);\n setLoading(true);\n props.getVacationsMassiveAction(\"PURGE\", \"\");\n props.getRejectVacationsMassiveAction(\"PURGE\", \"\");\n loadData();\n }\n }, [resultErrors]);\n\n const checkResults = (arr) => {\n let errors = [];\n\n arr.forEach((res) => {\n if (res.Insercion == \"False\") {\n errors.push(res);\n }\n });\n\n setResultErrors(errors);\n };\n\n const pending_vacations_table = () => {\n let table = [];\n let solicitudes = props.vacationsMassiveData?.VacationsMassive;\n\n let type = showTable == \"1\" ? \"Vacación\" : \"Cancelación\";\n if (Array.isArray(solicitudes)) {\n solicitudes = solicitudes.filter(\n (solicitud) => (solicitud.TipoSolicitud || \"Vacación\") == type\n );\n solicitudes = solicitudes.filter(\n (solicitud) =>\n solicitud.Nombre.includes(tableFilter.toUpperCase()) ||\n solicitud.Centro_id.includes(tableFilter) ||\n solicitud.Trab_id.includes(tableFilter) ||\n solicitud.Dia.includes(tableFilter.toUpperCase()) ||\n solicitud.FechaInicio.includes(tableFilter) ||\n solicitud.FechaFin.includes(tableFilter)\n );\n }\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={\"error\"}>\n <td colSpan=\"6\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.Nombre - b.Nombre;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.Centro_id - b.Centro_id;\n });\n\n\n solicitudes.map((item, i) => {\n table.push(\n <tr\n key={type + item.SolicitudID + item.Trab_id}\n style={{\n cursor: \"pointer\",\n }}\n >\n <td>\n <input\n name={type + item.SolicitudID + item.Trab_id}\n type=\"checkbox\"\n onClick={() => handleSelectRequest(item)}\n value={item.id}\n className=\"with-gap\"\n id={type + item.SolicitudID + item.Trab_id}\n />\n <label htmlFor={type + item.SolicitudID + item.Trab_id}></label>\n </td>\n <td>{item.Trab_id}</td>\n <td>{item.Nombre}</td>\n <td>{item.Centro_id}</td>\n <td>{item.Dia}</td>\n <td>\n {item.RangoFechas == \"true\"\n ? \"Del \" +\n formatDate(item.FechaInicio) +\n \" al \" +\n formatDate(item.FechaFin)\n : formatDate(item.FechaInicio)}\n </td>\n <td style={{ color: \"#faa52c\" }}>\n <i className=\"mdi mdi-calendar-clock\"></i> Solicitado\n </td>\n </tr>\n );\n });\n }\n \n return table;\n };\n\n const formatDate = (value) => {\n let date = new Date(value);\n\n return (\n (\"0\" + date.getDate()).slice(-2) +\n \"/\" +\n (\"0\" + (date.getMonth() + 1)).slice(-2) +\n \"/\" +\n date.getFullYear()\n );\n };\n\n const handleSelectRequest = (item) => {\n let exists = selectedRequests.filter(\n (el) => el[\"wcf:ListSolicitudMas\"][\"wcf:SolicitudID\"] == item.SolicitudID\n );\n if (exists.length <= 0) {\n setSelectedRequests([\n ...selectedRequests,\n {\n \"wcf:ListSolicitudMas\": {\n \"wcf:Fecha\": item.FechaVacacion,\n \"wcf:JefeTrab_id\": item.JefeTrab_id,\n \"wcf:NombreCompleto\": item.Nombre,\n \"wcf:SolicitudID\": item.SolicitudID,\n \"wcf:Trab_id\": item.Trab_id,\n },\n },\n ]);\n } else {\n setSelectedRequests(\n selectedRequests.filter(\n (el) =>\n el[\"wcf:ListSolicitudMas\"][\"wcf:SolicitudID\"] != item.SolicitudID\n )\n );\n }\n };\n\n const handleButtons = (e, action) => {\n e.preventDefault();\n\n if (selectedRequests.length <= 0) {\n alert(\"Debes seleccionar por lo menos una solicitud.\");\n return;\n }\n\n let { params, server } = getParams();\n\n let type = showTable === \"1\" ? \"1\" : \"3\";\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:idEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:solicitudes\": {\n \"wcf:Autoriza\": action,\n \"wcf:Solicitudes\": selectedRequests,\n \"wcf:TipoSolicitud\": type,\n \"wcf:UserProceso\": params[\"tem:TrabID\"],\n },\n };\n\n type = showTable === \"1\" ? \"vacaciones\" : \"cancelaciones\";\n\n if (action === 1) {\n confirm(\"¿Deseas autorizar las \" + type + \" seleccionadas?\").then(\n (res) => {\n if (res) {\n setLoading(true);\n props.getRejectVacationsMassiveAction(params, server);\n setTableFilter(\"\");\n }\n }\n );\n } else if (action === 0) {\n confirm(\"¿Deseas rechazar las \" + type + \" seleccionadas?\").then(\n (res) => {\n if (res) {\n setLoading(true);\n props.getRejectVacationsMassiveAction(params, server);\n setTableFilter(\"\");\n }\n }\n );\n }\n };\n\n const handleDropdown = (e) => {\n setSelectedRequests([]);\n setShowTable(e.target.value);\n };\n\n const handleFilter = (event) => {\n setTableFilter(event.target.value);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Autorización Masiva\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">SOLICITUD DE</h4>\n <select\n className=\"form-control p-2 col-3\"\n onChange={handleDropdown}\n defaultValue={showTable === \"1\" ? \"1\" : \"2\"}\n >\n <option value=\"1\">\n VACACIONES\n </option>\n <option value=\"2\">\n CANCELACIONES\n </option>\n </select>\n <div className=\"form-material col-3 ml-auto\">\n <input\n placeholder=\"Buscar...\"\n type=\"text\"\n className=\"form-control\"\n onChange={(e) => handleFilter(e)}\n />\n </div>\n </div>\n </div>\n <div className=\"card-body\">\n {selectedRequests.length > 0 && (\n <div className=\"d-flex justify-content-center\">\n <div className=\"col-md-3\">\n <button\n type=\"button\"\n className=\"btn waves-effect waves-light btn-block btn-danger\"\n onClick={(e) => handleButtons(e, 0)}\n disabled={selectedRequests.length <= 0}\n >\n Rechazar\n </button>\n </div>\n <div className=\"col-md-3\">\n <button\n type=\"button\"\n className=\"btn waves-effect waves-light btn-block btn-success\"\n style={{\n backgroundColor: \"#5cb85c\",\n border: \"none\",\n }}\n onClick={(e) => handleButtons(e, 1)}\n disabled={selectedRequests.length <= 0}\n >\n Autorizar\n </button>\n </div>\n </div>\n )}\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th></th>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>{pending_vacations_table()}</tbody>\n </table>\n {selectedRequests.length > 0 && (\n <div className=\"d-flex justify-content-center\">\n <div className=\"col-md-3\">\n <button\n type=\"button\"\n className=\"btn waves-effect waves-light btn-block btn-danger\"\n onClick={(e) => handleButtons(e, 0)}\n disabled={selectedRequests.length <= 0}\n >\n Rechazar\n </button>\n </div>\n <div className=\"col-md-3\">\n <button\n type=\"button\"\n className=\"btn waves-effect waves-light btn-block btn-success\"\n style={{\n backgroundColor: \"#5cb85c\",\n border: \"none\",\n }}\n onClick={(e) => handleButtons(e, 1)}\n disabled={selectedRequests.length <= 0}\n >\n Autorizar\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n vacationsMassiveData: state.vacationsMassive.vacationsMassiveData,\n vacationsMassiveError: state.vacationsMassive.vacationsMassiveError,\n\n authorizeVacationsMassiveData:\n state.authorizeVacationsMassive.authorizeVacationsMassiveData,\n authorizeVacationsMassiveError:\n state.authorizeVacationsMassive.authorizeVacationsMassiveError,\n\n rejectVacationsMassiveData:\n state.rejectVacationsMassive.rejectVacationsMassiveData,\n rejectVacationsMassiveError:\n state.rejectVacationsMassive.rejectVacationsMassiveError,\n };\n};\n\nconst mapDispatchToProps = {\n getVacationsMassiveAction,\n getAuthorizeVacationsMassiveAction,\n getRejectVacationsMassiveAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(VacationRequests)\n);\n","import React, { useState, useEffect } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { getVacationsRhVacationAction } from \"../../api/actions/eulen/VacationsRhVacationAction\";\n\nimport Topbar from \"../layout/Topbar.js\";\nimport Leftsidebar from \"../layout/RHVacationLeftsidebar\";\nimport Title from \"../layout/Title.js\";\nimport Footer from \"../layout/Footer.js\";\n\nimport { getParams } from \"../../utils\";\nimport { alert, confirm } from \"../../utils/common/alert\";\n\nconst VacationRequests = (props) => {\n const [loading, setLoading] = useState(true);\n const [showTable, setShowTable] = useState(\"1\");\n const [tableFilter, setTableFilter] = useState(\"\");\n\n useEffect(() => {\n loadData();\n }, []);\n\n const loadData = () => {\n let { params, server } = getParams();\n\n params = {\n \"tem:sToken\": params[\"tem:sToken\"],\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\n \"tem:UserID\": params[\"tem:TrabID\"],\n };\n\n props.getVacationsRhVacationAction(params, server);\n };\n\n useEffect(() => {\n if (props.vacationsRhVacationData && props.vacationsRhVacationData.isOK) {\n setLoading(false);\n } else if (\n props.vacationsRhVacationError &&\n props.vacationsRhVacationError.isOK === false\n ) {\n props.getVacationsRhVacationAction(\"PURGE\", \"\");\n setLoading(false);\n }\n }, [props.vacationsRhVacationData, props.vacationsRhVacationError]);\n\n const responded_vacactions_table = () => {\n let table = [];\n let solicitudes = props.vacationsRhVacationData?.VacationsRhVacation;\n\n if (!solicitudes || solicitudes.length <= 0) {\n table.push(\n <tr key={\"error\"}>\n <td colSpan=\"7\">No hay información para mostrar.</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n );\n } else {\n solicitudes = solicitudes.sort((a, b) => {\n return a.Nombre - b.Nombre;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.Periodo - b.Periodo;\n });\n\n solicitudes = solicitudes.sort((a, b) => {\n return a.Centro_id - b.Centro_id;\n });\n\n let type = showTable == \"1\" ? \"Vacación\" : \"Cancelación\";\n\n solicitudes = solicitudes.filter(\n (solicitud) => solicitud.TipoSolicitud == type\n );\n\n solicitudes = solicitudes.filter(\n (solicitud) =>\n solicitud.Nombre.includes(tableFilter.toUpperCase()) ||\n solicitud.Centro_id.includes(tableFilter) ||\n solicitud.Trab_id.includes(tableFilter) ||\n solicitud.Periodo.includes(tableFilter.toUpperCase()) ||\n solicitud.Dia.includes(tableFilter.toUpperCase()) ||\n solicitud.FechaVacacion.includes(tableFilter) ||\n solicitud.Status.toUpperCase().includes(tableFilter.toUpperCase())\n );\n\n solicitudes.map((item, i) => {\n let color;\n\n // console.log(\"solicitudes\", item);\n\n switch (item.Status) {\n case \"Aprobado\":\n color = \"#93c03f\";\n break;\n\n case \"Rechazado\":\n color = \"#be2b71\";\n break;\n\n default:\n color = \"#003b71\";\n }\n\n table.push(\n <tr key={i} style={{ cursor: \"default\" }}>\n <td>{item.Trab_id}</td>\n <td>{item.Nombre}</td>\n <td>{item.Periodo}</td>\n <td>{item.Centro_id}</td>\n <td className=\"tdMax\" style={{ whiteSpace: \"normal\" }}>\n {item.Dia}\n </td>\n <td>\n {item.RangoFechas == \"true\"\n ? \"Del \" +\n formatDate(item.FechaInicio) +\n \" al \" +\n formatDate(item.FechaFin)\n : item.FechaInicio\n ? formatDate(item.FechaInicio)\n : item.FechaVacacion}\n </td>\n <td style={{ color: color }}>\n <i className=\"mdi mdi-calendar-clock\"></i> {item.Status}\n </td>\n </tr>\n );\n });\n }\n\n return table;\n };\n\n const formatDate = (value) => {\n let date = new Date(value);\n\n return (\n (\"0\" + date.getDate()).slice(-2) +\n \"/\" +\n (\"0\" + (date.getMonth() + 1)).slice(-2) +\n \"/\" +\n date.getFullYear()\n );\n };\n\n const handleDropdown = (e) => {\n setShowTable(e.target.value);\n };\n\n const handleFilter = (event) => {\n setTableFilter(event.target.value);\n };\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n className=\"path\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"2\"\n strokeMiterlimit=\"10\"\n />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title\n actual=\"Consulta de Vacaciones\"\n icon=\"mdi mdi-briefcase-check\"\n />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">CONSULTA DE</h4>\n <select\n className=\"form-control p-2 col-3\"\n onChange={handleDropdown}\n >\n <option value=\"1\">VACACIONES</option>\n <option value=\"2\">CANCELACIONES</option>\n </select>\n <div className=\"form-material col-3 ml-auto\">\n <input\n placeholder=\"Buscar...\"\n type=\"text\"\n className=\"form-control\"\n onChange={(e) => handleFilter(e)}\n />\n </div>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"table-responsive m-t-20\">\n <table className=\"table nowrap stylish-table\">\n <thead>\n <tr>\n <th>No. Empleado</th>\n <th>Nombre</th>\n <th>Periodo</th>\n <th>Centro</th>\n <th>Día</th>\n <th>Fecha Vacación</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>{responded_vacactions_table()}</tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div>\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n vacationsRhVacationData: state.vacationsRhVacation.vacationsRhVacationData,\n vacationsRhVacationError:\n state.vacationsRhVacation.vacationsRhVacationError,\n };\n};\n\nconst mapDispatchToProps = {\n getVacationsRhVacationAction,\n};\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(VacationRequests)\n);\n","import { XchangeXml, changeXml, ListCompaniesRpt } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n LIST_COMPANIES_RPT_SUCCESS,\n LIST_COMPANIES_RPT_ERROR,\n LIST_COMPANIES_RPT_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getListCompaniesRptAction = (data, server) => {\n let configJson = {\n 'tem:ListaEmpresasRpt': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n if (process.env.REACT_APP_IS_KRONES) {\n obj = XchangeXml(configJson);\n }\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/ListaEmpresasRpt\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST ListaEmpresasRpt:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: LIST_COMPANIES_RPT_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: LIST_COMPANIES_RPT_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ListCompaniesRpt: ListCompaniesRpt(body)\n }\n\n console.log('RESPONSE LIST_COMPANIES_RPT DATA: ', response);\n dispatch({ type: LIST_COMPANIES_RPT_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET LIST_COMPANIES_RPT DATA: ', response);\n dispatch({ type: LIST_COMPANIES_RPT_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET LIST_COMPANIES_RPT DATA: ', responseError);\n dispatch({ type: LIST_COMPANIES_RPT_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, FilterCenters } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n FILTER_CENTERS_SUCCESS,\n FILTER_CENTERS_ERROR,\n FILTER_CENTERS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getFilterCentersAction = (data, server) => {\n let configJson = {\n 'tem:LstCentros': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/LstCentros\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: FILTER_CENTERS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: FILTER_CENTERS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n FilterCenters: FilterCenters(body)\n }\n\n console.log('RESPONSE FILTER_CENTERS DATA: ', response);\n dispatch({ type: FILTER_CENTERS_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET FILTER_CENTERS DATA: ', response);\n dispatch({ type: FILTER_CENTERS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET FILTER_CENTERS DATA: ', responseError);\n dispatch({ type: FILTER_CENTERS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, FilterBoos } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n FILTER_BOOS_SUCCESS,\n FILTER_BOOS_ERROR,\n FILTER_BOOS_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getFilterBoosAction = (data, server) => {\n let configJson = {\n 'tem:LstJefes': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/LstJefes\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: FILTER_BOOS_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: FILTER_BOOS_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n FilterBoos: FilterBoos(body)\n }\n\n console.log('RESPONSE FILTER_BOOS DATA: ', response);\n dispatch({ type: FILTER_BOOS_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET FILTER_BOOS DATA: ', response);\n dispatch({ type: FILTER_BOOS_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET FILTER_BOOS DATA: ', responseError);\n dispatch({ type: FILTER_BOOS_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import { changeXml, ReportRHVac } from '../../endpoints';\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\nimport xml2js, { parseString } from 'react-native-xml2js'\nimport {\n REPORT_RHVAC_SUCCESS,\n REPORT_RHVAC_ERROR,\n REPORT_RHVAC_PURGE,\n VALIDATE_ERROR\n} from '../../types'\n\n\nexport const getReportRHVacAction = (data, server) => {\n let configJson = {\n 'tem:RptRolRHVac': {\n ...data\n }\n }\n\n let obj = changeXml(configJson);\n\n let config = {\n method: 'POST',\n body: obj,\n headers: {\n // 'Content-Type': 'text/xml',\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/RptRolRHVac\",\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\n },\n };\n\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\n let headers = {\n 'Content-Type': 'text/xml',\n ...config.headers\n }\n config = {\n ...config,\n headers: headers\n }\n }\n\n console.log('REQUEST:', data, config);\n\n return (dispatch) => {\n\n if (data === 'PURGE') {\n dispatch({ type: REPORT_RHVAC_PURGE, payload: 'PURGE' })\n } else {\n fetch(server, config)\n .then(response => response.text())\n .then((xml) => {\n parseString(xml, { trim: true }, (err, resultJson) => {\n if (resultJson) {\n let response = {}\n let body = {}\n if ('s:Envelope' in resultJson) {\n const envelope = resultJson['s:Envelope']\n if ('s:Body' in envelope) {\n body = envelope['s:Body'][0];\n if ('s:Fault' in body) {\n console.log('ERROR DE RESPUESTA')\n }\n\n } else {\n response = {\n isOK: false,\n error: 'No data'\n }\n }\n }\n\n let valid = ValidationNoAuthorization(body)\n if (valid.haveError) {\n const response = {\n isOK: false,\n error: valid.error\n }\n dispatch({ type: VALIDATE_ERROR, payload: valid })\n dispatch({ type: REPORT_RHVAC_ERROR, payload: response })\n } else {\n response = {\n isOK: true,\n ReportRHVac: ReportRHVac(body)\n }\n\n console.log('RESPONSE REPORT_RHVAC DATA: ', response);\n dispatch({ type: REPORT_RHVAC_SUCCESS, payload: response })\n }\n\n\n }\n\n if (err) {\n const response = {\n isOK: false,\n error: err\n }\n console.log('ERROR GET REPORT_RHVAC DATA: ', response);\n dispatch({ type: REPORT_RHVAC_ERROR, payload: response })\n }\n })\n })\n .catch((error) => {\n const responseError = {\n isOK: false,\n error: error\n }\n console.log('ERROR NOT RESPONSE GET REPORT_RHVAC DATA: ', responseError);\n dispatch({ type: REPORT_RHVAC_ERROR, payload: responseError })\n })\n\n }\n }\n\n};","import React, { useState, useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport Select from 'react-select'\n\nimport Topbar from '../layout/Topbar.js';\nimport Leftsidebar from '../layout/RHVacationLeftsidebar';\nimport Title from '../layout/Title.js';\nimport Footer from '../layout/Footer.js';\n\nimport { getListCompaniesRptAction } from '../../api/actions/eulen/ListCompaniesRptAction';\nimport { getFilterCentersAction } from '../../api/actions/eulen/FilterCentersAction';\nimport { getFilterBoosAction } from '../../api/actions/eulen/FilterBoosAction';\nimport { getReportRHVacAction } from '../../api/actions/eulen/ReportRHVacActtion';\n\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { getParams } from '../../utils';\nimport { alert, confirm } from '../../utils/common/alert';\n\nconst Reports = props => {\n\n const [loading, setLoading] = useState(false);\n const [companiesOptions, setCompaniesOptions] = useState([]);\n const [centersOptions, setCentersOptions] = useState([]);\n const [chiefsOptions, setChiefsOptions] = useState([]);\n const [initDate, setInitDate] = useState(null);\n const [finalDate, setFinalDate] = useState(null);\n const [filters, setFilters] = useState({});\n\n useEffect(() => {\n getCompaniesOptions();\n }, []);\n\n const getCompaniesOptions = () => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': params['tem:TrabID'],\n }\n props.getListCompaniesRptAction(params, server);\n };\n\n useEffect(() => {\n if (props.listCompaniesRptData && props.listCompaniesRptData.isOK) {\n let values = props.listCompaniesRptData.ListCompaniesRpt;\n let options = [];\n values.forEach((company) => {\n options.push({\n value: company,\n label: company\n });\n\n });\n setCompaniesOptions([\n ...options\n ]);\n } else if (props.listCompaniesRptError && props.listCompaniesRptError.isOK === false) {\n props.getListCompaniesRptAction('PURGE', '');\n setLoading(false);\n }\n }, [\n props.listCompaniesRptData, props.listCompaniesRptError\n ]);\n\n useEffect(() => {\n if (props.filterCenterData && props.filterCenterData.isOK) {\n let values = props.filterCenterData.FilterCenters;\n let options = [{\n value: 'Todos',\n label: 'Todos'\n }];\n values.forEach(center => {\n options.push({\n value: center.Centro_ID,\n label: center.Centro_ID + ' - ' + center.Descripcion\n });\n });\n setCentersOptions([\n ...options\n ]);\n } else if (props.filterCenterError && props.filterCenterError.isOK === false) {\n props.getFilterCentersAction('PURGE', '');\n setLoading(false);\n }\n }, [\n props.filterCenterData, props.filterCenterError\n ]);\n\n useEffect(() => {\n if (props.filterBoosData && props.filterBoosData.isOK) {\n let values = props.filterBoosData.FilterBoos;\n let options = [];\n values.forEach((chief) => {\n options.push({\n value: chief.Trab_id_Jefe,\n label: chief.Trab_id_Jefe + ' - ' +chief.NombreCompleto\n });\n });\n options = options.sort((a,b) => (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0));\n options.unshift({\n value: 'Todos',\n label: 'Todos'\n });\n console.log(options);\n setChiefsOptions([\n ...options\n ]);\n } else if (props.filterBoosError && props.filterBoosError.isOK === false) {\n props.getFilterBoosAction('PURGE', '');\n setLoading(false);\n }\n }, [\n props.filterBoosData, props.filterBoosError\n ]);\n\n useEffect(() => {\n if (props.reportRHVacData && props.reportRHVacData.isOK) {\n let redirect = props.reportRHVacData.ReportRHVac;\n window.open(redirect, '_blank');\n props.getReportRHVacAction('PURGE', '');\n } else if (props.reportRHVacError && props.reportRHVacError.isOK === false) {\n props.getReportRHVacAction('PURGE', '');\n setLoading(false);\n }\n }, [\n props.reportRHVacData, props.reportRHVacError\n ]);\n\n const changeFilter = (type, v) => {\n if (v) {\n let todos = v.filter(item => item.value == 'Todos');\n if (todos.length > 0)\n v = todos;\n }\n\n if (type == 'companies') {\n setFilters({\n ...filters,\n companies: v\n });\n if (v && v.length > 0) {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:Empresas': v && v[0].value == 'Todos' ? '0' : companiesList(v),\n 'tem:User_id': params['tem:TrabID'],\n }\n props.getFilterCentersAction(params, server);\n }\n\n setFilters({\n ...filters,\n companies: v,\n centers: null,\n chiefs: null,\n });\n\n setCentersOptions([]);\n setChiefsOptions([]);\n } else if (type == 'centers') {\n\n\n if (v && v.length > 0) {\n console.log('Valor', v[0].value);\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:centros': v && v[0].value == 'Todos' ? '0' : centersList(v),\n 'tem:empresas': filters.companies && filters.companies[0].value == 'Todos' ? '0' : companiesList(filters.companies),\n 'tem:user_id': params['tem:TrabID'],\n }\n props.getFilterBoosAction(params, server);\n }\n\n setFilters({\n ...filters,\n centers: v,\n chiefs: null\n });\n\n setChiefsOptions([]);\n\n } else if (type == 'chiefs') {\n setFilters({\n ...filters,\n chiefs: v\n });\n }\n\n\n console.log(filters);\n }\n\n const companiesList = list => {\n if (list) {\n\n let str = '';\n list.forEach(item => {\n str += item.value + ','\n });\n\n return str.slice(0, -1);\n } else {\n return '';\n }\n }\n\n const centersList = list => {\n if (list) {\n\n let str = '';\n list.forEach(item => {\n str += \"'\" + item.value + \"'\" + ','\n });\n\n return str.slice(0, -1);\n } else {\n return '';\n }\n }\n\n const generate = () => {\n let { params, server } = getParams();\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n 'tem:UserID': params['tem:TrabID'],\n 'tem:centros': filters.centers && filters.centers[0].value == 'Todos' ? '0' : centersList(filters.centers),\n 'tem:empresas': filters.companies && filters.companies[0].value == 'Todos' ? '0' : companiesList(filters.companies),\n 'tem:jefes': filters.chiefs && filters.chiefs[0].value == 'Todos' ? '0' : centersList(filters.chiefs),\n 'tem:inicio': initDate.getFullYear() + '-' + (\"0\" + (initDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + initDate.getDate()).slice(-2) + 'T00:00:00.000',\n 'tem:fin': finalDate.getFullYear() + '-' + (\"0\" + (finalDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + finalDate.getDate()).slice(-2) + 'T00:00:00.000',\n }\n\n props.getReportRHVacAction(params, server);\n }\n\n const disabledGenerate = () => {\n if (\n !filters ||\n !filters.companies || filters.companies.length == 0 ||\n !filters.centers || filters.centers.length == 0 ||\n !filters.chiefs || filters.chiefs.length == 0 ||\n !initDate ||\n !finalDate\n )\n return true;\n return false;\n }\n\n if (loading) {\n return (\n <>\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\n </svg>\n <div id=\"main-wrapper\">\n <Topbar init={true} />\n <Leftsidebar />\n </div>\n </>\n );\n } else {\n\n return (\n <div id=\"main-wrapper\">\n <Topbar />\n <Leftsidebar />\n <div className=\"page-wrapper\">\n <Title actual=\"Reporte de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\n\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"d-flex\">\n <h4 className=\"card-title p-2\">REPORTE DE VACACIONES</h4>\n </div>\n </div>\n\n <div className=\"card-body\">\n <div className=\"row\">\n <div className=\"col-12 mt-3\">\n <label>Empresas</label>\n <Select\n styles={{\n menu: provided => ({ ...provided, zIndex: 9999 })\n }}\n placeholder=\"Selecciona los filtros deseados.\"\n options={companiesOptions}\n onChange={(v) => changeFilter('companies', v)}\n isMulti={true}\n value={filters.companies}\n noOptionsMessage={() => 'No se encontraron resultados.'}\n />\n </div>\n <div className=\"col-12 mt-3\">\n <label>Centros de Trabajo</label>\n <Select\n styles={{\n menu: provided => ({ ...provided, zIndex: 9999 })\n }}\n isDisabled={!filters.companies || filters.companies.length == 0}\n isLoading={filters.companies && centersOptions.length == 0}\n placeholder=\"Selecciona los filtros deseados.\"\n options={centersOptions}\n onChange={(v) => changeFilter('centers', v)}\n isMulti={true}\n value={filters.centers}\n noOptionsMessage={() => 'No se encontraron resultados.'}\n />\n </div>\n <div className=\"col-12 mt-3\">\n <label>Jefes</label>\n <Select\n styles={{\n menu: provided => ({ ...provided, zIndex: 9999 })\n }}\n isDisabled={!filters.centers || filters.centers.length == 0}\n placeholder=\"Selecciona los filtros deseados.\"\n options={chiefsOptions}\n onChange={(v) => changeFilter('chiefs', v)}\n isMulti={true}\n value={filters.chiefs}\n noOptionsMessage={() => 'No se encontraron resultados.'}\n />\n </div>\n </div>\n <div className=\"row mt-3\">\n <div className=\"col-6\">\n <label>Fecha de Inicio</label>\n </div>\n <div className=\"col-6\">\n <label>Fecha Final</label>\n </div>\n\n <div className=\"col-6\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n selected={initDate}\n onChange={new_date => {\n setInitDate(new_date);\n }}\n />\n </div>\n <div className=\"col-6\">\n <DatePicker\n className=\"form-control\"\n dateFormat=\"dd/MM/yyyy\"\n placeholderText=\"Seleccionar Fecha\"\n minDate={initDate}\n disabled={!initDate}\n selected={finalDate}\n onChange={new_date => {\n setFinalDate(new_date);\n }}\n />\n </div>\n </div>\n <div className=\"form-group text-center m-t-20\">\n <div className=\"col-xs-12\">\n <button className=\"btn btn-info waves-effect waves-light\" onClick={generate} disabled={disabledGenerate()}>Generar Reporte</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Footer />\n </div>\n </div >\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n listCompaniesRptData: state.listCompaniesRpt.listCompaniesRptData,\n listCompaniesRptError: state.listCompaniesRpt.listCompaniesRptError,\n\n filterCenterData: state.filterCenter.filterCenterData,\n filterCenterError: state.filterCenter.filterCenterError,\n\n filterBoosData: state.filterBoos.filterBoosData,\n filterBoosError: state.filterBoos.filterBoosError,\n\n reportRHVacData: state.reportRHVac.reportRHVacData,\n reportRHVacError: state.reportRHVac.reportRHVacError,\n\n dataUserData: state.dataUser.dataUserData,\n\n };\n};\n\nconst mapDispatchToProps = {\n getListCompaniesRptAction,\n getFilterCentersAction,\n getFilterBoosAction,\n getReportRHVacAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Reports));\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/RHVacationLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { vacationsCalendarAction } from '../../api/actions/common/VacationsCalendarAction';\r\nimport { Calendar, momentLocalizer } from 'react-big-calendar'\r\nimport style from 'react-big-calendar/lib/css/react-big-calendar.css';\r\nimport moment from 'moment'\r\n\r\n\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\nimport { event } from 'jquery';\r\n\r\nconst localizer = momentLocalizer(moment)\r\n\r\nconst CalendarVacations = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [culture, setCulture] = useState('es')\r\n const [events, setEvents] = useState([])\r\n const [selectedDay, setSelectedDay] = useState(new Date())\r\n let year = new Date().getFullYear()\r\n let month = new Date().getMonth()\r\n let days = [\r\n { name: 'Seleccione', date: '' },\r\n { name: 'Enero', date: `01/01/${year}` },\r\n { name: 'Febrero', date: `02/01/${year}` },\r\n { name: 'Marzo', date: `03/01/${year}` },\r\n { name: 'Abril', date: `04/01/${year}` },\r\n { name: 'Mayo', date: `05/01/${year}` },\r\n { name: 'Junio', date: `06/01/${year}` },\r\n { name: 'Julio', date: `07/01/${year}` },\r\n { name: 'Agosto', date: `08/01/${year}` },\r\n { name: 'Septiembre', date: `09/01/${year}` },\r\n { name: 'Octubre', date: `10/01/${year}` },\r\n { name: 'Noviembre', date: `11/01/${year}` },\r\n { name: 'Diciembre', date: `12/01/${year}` },\r\n ]\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n }\r\n props.vacationsCalendarAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.vacationsCalendarData && props.vacationsCalendarData.isOK) {\r\n console.log('EVENTS', props.vacationsCalendarData.VacationsCalendars)\r\n setLoading(false);\r\n setEvents(props.vacationsCalendarData.VacationsCalendars)\r\n } else if (props.vacationsCalendarError && props.vacationsCalendarError.isOK === false) {\r\n props.vacationsCalendarAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsCalendarData, props.vacationsCalendarError]);\r\n\r\n\r\n const renderItem = (event) => {\r\n return (\r\n <div>\r\n {event.title}\r\n </div>\r\n )\r\n }\r\n\r\n\r\n const renderSelector = () => {\r\n let options = days.map((data) => {\r\n return (\r\n <option value={data.date} >{data.name}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n class=\"form-control\"\r\n onChange={(values) => { setSelectedDay(values.target.value != '' ? new Date(values.target.value) : new Date) }}>\r\n <option hidden selected>{days[month].name}</option>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CALENDARIO DE VACACIONES\" icon=\"mdi mdi-briefcase-check\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block justify-content-between\">\r\n <h4 className=\"card-title\">CALENDARIO DE VACACIONES</h4>\r\n </div>\r\n <div className='col-12 col-lg-12 row'>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#A9DAA4', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Vacaciones'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#003B71', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Incidencias'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\" style={{ marginBottom: '20px' }}>\r\n {/*renderSelector()*/}\r\n </div>\r\n </div>\r\n <div className=\"table-responsive \">\r\n <Calendar\r\n style={{ height: '700px' }}\r\n //step={60}\r\n localizer={localizer}\r\n toolbar={true}\r\n //date={selectedDay}\r\n events={events}\r\n defaultView={'month'}\r\n views={['month']}\r\n popup={true}\r\n culture='es'\r\n tooltipAccessor={(e) => e.title}\r\n eventPropGetter={(event) => {\r\n console.log('EVENT_', event)\r\n const backgroundColor = event.type === '1' ? '#A9DAA4' : '#003B71';\r\n return { style: { backgroundColor, fontSize: 13, paddingBottom: 5, paddingTop: 5 } }\r\n }}\r\n components={{\r\n event: renderItem,\r\n }}\r\n messages={{ 'today': \"Hoy\", \"previous\": 'Atrás', \"next\": \"Siguiente\" }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n vacationsCalendarData: state.vacationCalendar.vacationsCalendarData,\r\n vacationsCalendarError: state.vacationCalendar.vacationsCalendarError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n vacationsCalendarAction\r\n};\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CalendarVacations));\r\n\r\n\r\n/*\r\nconst events = [\r\n {\r\n id: 1,\r\n title: 'Long Event',\r\n start: new Date(2015, 3, 7),\r\n end: new Date(2015, 3, 10),\r\n },\r\n\r\n {\r\n id: 2,\r\n title: 'DTS STARTS',\r\n start: new Date(2016, 2, 13, 0, 0, 0),\r\n end: new Date(2016, 2, 20, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 3,\r\n title: 'DTS ENDS',\r\n start: new Date(2016, 10, 6, 0, 0, 0),\r\n end: new Date(2016, 10, 13, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 4,\r\n title: 'Some Event',\r\n start: new Date(2015, 3, 9, 0, 0, 0),\r\n end: new Date(2015, 3, 10, 0, 0, 0),\r\n },\r\n {\r\n id: 5,\r\n title: 'Conference',\r\n start: new Date(2015, 3, 11),\r\n end: new Date(2015, 3, 13),\r\n desc: 'Big conference for important people',\r\n },\r\n {\r\n id: 6,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 10, 30, 0, 0),\r\n end: new Date(2015, 3, 12, 12, 30, 0, 0),\r\n desc: 'Pre-meeting meeting, to prepare for the meeting',\r\n },\r\n {\r\n id: 7,\r\n title: 'Lunch',\r\n start: new Date(2015, 3, 12, 12, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 13, 0, 0, 0),\r\n desc: 'Power lunch',\r\n },\r\n {\r\n id: 8,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 14, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 15, 0, 0, 0),\r\n },\r\n {\r\n id: 9,\r\n title: 'Happy Hour',\r\n start: new Date(2015, 3, 12, 17, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 17, 30, 0, 0),\r\n desc: 'Most important meal of the day',\r\n },\r\n {\r\n id: 10,\r\n title: 'Dinner',\r\n start: new Date(2015, 3, 12, 20, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 21, 0, 0, 0),\r\n },\r\n {\r\n id: 11,\r\n title: 'Planning Meeting with Paige',\r\n start: new Date(2015, 3, 13, 8, 0, 0),\r\n end: new Date(2015, 3, 13, 10, 30, 0),\r\n },\r\n {\r\n id: 11.1,\r\n title: 'Inconvenient Conference Call',\r\n start: new Date(2015, 3, 13, 9, 30, 0),\r\n end: new Date(2015, 3, 13, 12, 0, 0),\r\n },\r\n {\r\n id: 11.2,\r\n title: \"Project Kickoff - Lou's Shoes\",\r\n start: new Date(2015, 3, 13, 11, 30, 0),\r\n end: new Date(2015, 3, 13, 14, 0, 0),\r\n },\r\n {\r\n id: 11.3,\r\n title: 'Quote Follow-up - Tea by Tina',\r\n start: new Date(2015, 3, 13, 15, 30, 0),\r\n end: new Date(2015, 3, 13, 16, 0, 0),\r\n },\r\n {\r\n id: 12,\r\n title: 'Late Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 18, 2, 0, 0),\r\n },\r\n {\r\n id: 12.5,\r\n title: 'Late Same Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 17, 23, 30, 0),\r\n },\r\n {\r\n id: 13,\r\n title: 'Multi-day Event',\r\n start: new Date(2015, 3, 20, 19, 30, 0),\r\n end: new Date(2015, 3, 22, 2, 0, 0),\r\n },\r\n {\r\n id: 14,\r\n title: 'Today',\r\n start: new Date(new Date().setHours(new Date().getHours() - 3)),\r\n end: new Date(new Date().setHours(new Date().getHours() + 3)),\r\n },\r\n {\r\n id: 15,\r\n title: 'Point in Time Event',\r\n start: new Date(),\r\n end: new Date(),\r\n },\r\n {\r\n id: 16,\r\n title: 'Video Record',\r\n start: new Date(2015, 3, 14, 15, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 17,\r\n title: 'Dutch Song Producing',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n {\r\n id: 18,\r\n title: 'Itaewon Halloween Meeting',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 17, 30, 0),\r\n },\r\n {\r\n id: 19,\r\n title: 'Online Coding Test',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 30, 0),\r\n },\r\n {\r\n id: 20,\r\n title: 'An overlapped Event',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 21,\r\n title: 'Phone Interview',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 22,\r\n title: 'Cooking Class',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 23,\r\n title: 'Go to the gym',\r\n start: new Date(2015, 3, 14, 18, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n ]\r\n*/","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport RHVacationLeftsidebar from \"../layout/RHVacationLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction.js\";\r\n\r\nimport { getCenterCatalogAction } from '../../api/actions/systemAdmin/CenterCatalogAction';\r\nimport { getDeptsCatalogAction } from '../../api/actions/systemAdmin/DeptsCatalogAction'\r\nimport { getJobCatalogAction } from '../../api/actions/systemAdmin/JobCatalogAction';\r\nimport { getTypeEmployeeCatalogAction } from '../../api/actions/systemAdmin/TypeEmployeeCatalogAction';\r\nimport { getSearchEmployeeAction } from '../../api/actions/systemAdmin/SearchEmployeeAction';\r\nimport { generaReporteCtrlVac2Action, generaReporteCtrlVac3Action, generaReporteCtrlVac4Action} from '../../api/actions/reportes/GeneraReporteCtrlVacacionesAction';\r\n\r\nimport Card from \"../../components/shared/Card.js\";\r\nimport xlsxImage from \"../../assets/payroll/xlsx.png\";\r\n\r\nimport { getParams, getSesionStorage, openLink } from \"../../utils/index.js\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert.js\";\r\n\r\nconst ReportControlVacation = (props) => {\r\n let defaultOption = [{ label:\"TODOS\", value: \"*\" }];\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [centros, setCentros] = useState([]);\r\n const [centrosSel, setCentrosSel] = useState([]);\r\n \r\n const [deptos, setDeptos] = useState([]);\r\n const [deptosSel, setDeptosSel] = useState([]);\r\n\r\n const [puestos, setPuestos] = useState([]);\r\n const [puestosSel, setPuestosSel] = useState([]);\r\n\r\n const [tiposEmpleado, setTiposEmpleados] = useState([]);\r\n const [tiposEmpleadoSel, setTiposEmpleadosSel] = useState([]);\r\n\r\n const [tipoSolicitud, setTipoSolicitud] = useState([]);\r\n const [tipoSolicitudSel, setTipoSolicitudSel] = useState(null);\r\n\r\n const [tipoReporte, setTipoReporte] = useState([]);\r\n const [tipoReporteSel, setTipoReporteSel] = useState({});\r\n\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n\r\n const [searchParams, setSearchParams] = useState('');\r\n const [search, setSearch] = useState({});\r\n const [selectedUser, setSelectedUser] = useState([]);\r\n const [selectedAllUser, setSelectedAllUser] = useState(false);\r\n const [visibleSearchUser, setVisibleSearchUser] = useState(false);\r\n const [visibleSelectedUser, setVisibleSelectedUser] = useState(false);\r\n\r\n const { params, server } = getParams();\r\n\r\n useEffect(() => {\r\n // props.generaReporteCtrlVac2Action('PURGE', '');\r\n // props.generaReporteCtrlVac3Action('PURGE', '');\r\n props.generaReporteCtrlVac4Action('PURGE', '');\r\n\r\n let d = new Date();\r\n let tipos = [ \r\n {label:\"TODOS\", value: \"3\"}, \r\n {label: 'SOLICITADOS', value: '0'}, \r\n {label: 'AUTORIZADOS', value: '1'}, \r\n {label: 'RECHAZADOS', value: '2'} \r\n ];\r\n let tipos2 = [];\r\n // let tipos2 = [ \r\n // {label: 'POR EMPLEADO', value: '1'}, \r\n // {label: 'POR PERIODO', value: '2'} \r\n // ];\r\n console.log(localStorage);\r\n if (sessionStorage.getItem(\"SICONSULTA_REPORTE_CTRL_VAC_2\") == '1'){\r\n tipos2 = [ \r\n {label: 'Reporte Detalle Solicitud Vacaciones', value: '1'}, \r\n {label: 'Reporte Detalle Vacaciones', value: '2'}, \r\n {label: 'Reporte Detalle de Movimientos', value: '3'}\r\n ];\r\n }else{\r\n tipos2 = [ \r\n {label: 'Reporte Detalle Solicitud Vacaciones', value: '1'}, \r\n {label: 'Reporte Detalle Vacaciones', value: '2'} \r\n ];\r\n }\r\n\r\n tipos2.map(item => item.label = item.label.toUpperCase());\r\n\r\n setInitDate(new Date(d.getFullYear(), d.getMonth(), 1));\r\n setFinalDate(new Date(d.getFullYear(), d.getMonth() + 1, 0));\r\n setTipoSolicitud(tipos);\r\n setTipoSolicitudSel(tipos[0]);\r\n setTipoReporte(tipos2);\r\n setTipoReporteSel(tipos2[0]);\r\n\r\n getCenterCatalog();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((props.centersCatalogData || {isOK:false}).isOK)\r\n {\r\n let arr = props.centersCatalogData.CenterCatalog || [];\r\n if (arr) {\r\n arr = defaultOption.concat(arr.map(m => { return { label: m.descripcion, value: m.id } }));\r\n setCentros(arr);\r\n setCentrosSel([arr[0]]);\r\n }\r\n\r\n //props.getCenterCatalogAction('PURGE', '');\r\n setLoading(false);\r\n getDeptsCatalog();\r\n }\r\n else if (props.centersCatalogError) {\r\n setCentros([]);\r\n props.getCenterCatalogAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.centersCatalogData, props.centersCatalogError]);\r\n\r\n useEffect(() => {\r\n if ((props.deptsCatalogData || {isOK:false}).isOK)\r\n {\r\n let arr = props.deptsCatalogData.DeptsCatalog || [];\r\n if (arr) {\r\n arr = defaultOption.concat(arr.map(m => { return { label: m.descripcion, value: m.id } }));\r\n setDeptos(arr);\r\n setDeptosSel([arr[0]]);\r\n }\r\n\r\n //props.getDeptosCenterAction('PURGE', '');\r\n setLoading(false);\r\n getJobCatalog();\r\n }\r\n else if (props.deptsCatalogError) {\r\n setDeptos([]);\r\n props.getDeptosCenterAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.deptsCatalogData,props.deptsCatalogError]);\r\n\r\n useEffect(() => {\r\n if ((props.jobCatalogData || {isOK:false}).isOK)\r\n {\r\n let arr = props.jobCatalogData.JobCatalog || [];\r\n if (arr) {\r\n arr = defaultOption.concat(arr.map(m => { return { label: m.descripcion, value: m.id } }));\r\n setPuestos(arr);\r\n setPuestosSel([arr[0]]);\r\n }\r\n\r\n //props.getJobCatalogAction('PURGE', '');\r\n setLoading(false);\r\n getTypeEmployeeCatalog();\r\n }\r\n else if (props.jobCatalogError) {\r\n setPuestos([]);\r\n props.getJobCatalogAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.jobCatalogData, props.jobCatalogError]);\r\n\r\n useEffect(() => {\r\n if ((props.typeEmployeeCatalogData || {isOK:false}).isOK)\r\n {\r\n let arr = props.typeEmployeeCatalogData.TypeEmployeeCatalog || [];\r\n if (arr) {\r\n arr = defaultOption.concat(arr.map(m => { return { label: m.descripcion, value: m.id } }));\r\n setTiposEmpleados(arr);\r\n setTiposEmpleadosSel([arr[0]]);\r\n }\r\n\r\n //props.getTypeEmployeeCatalogAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n else if (props.typeEmployeeCatalogError) {\r\n setTiposEmpleados([]);\r\n props.getTypeEmployeeCatalogAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.typeEmployeeCatalogData, props.typeEmployeeCatalogError]);\r\n\r\n useEffect(() => {\r\n if (props.searchEmployeeData && props.searchEmployeeData.isOK === true) {\r\n let _search = {...props.searchEmployeeData.SearchEmployee};\r\n setSearch(_search);\r\n setSelectedAllUser(countSearch(_search) == countSearchSelected(_search));\r\n props.getSearchEmployeeAction('PURGE', '');\r\n setLoading(false);\r\n } \r\n else if (props.searchEmployeeError && props.searchEmployeeError.isOK === false) {\r\n setSearch({});\r\n setSelectedAllUser(false);\r\n props.getSearchEmployeeAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.searchEmployeeData, props.searchEmployeeError]);\r\n\r\n useEffect(() => {\r\n setSearch({});\r\n if (\r\n (searchParams.employee_number || '').length > 0 || \r\n (searchParams.first_name || '').length > 0 || \r\n (searchParams.last_name || '').length > 0 || \r\n (searchParams.last_last_name || '').length > 0 \r\n ) {\r\n let _params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:TrabID': searchParams.employee_number || '',\r\n 'tem:Nombre': searchParams.first_name || '',\r\n 'tem:Paterno': searchParams.last_name || '',\r\n 'tem:Materno': searchParams.last_last_name || '',\r\n 'tem:NSS': '',\r\n 'tem:CURP': '',\r\n 'tem:RFC': '',\r\n 'tem:UserID': 'sa'//params['tem:TrabID']\r\n };\r\n\r\n props.getSearchEmployeeAction(_params, server);\r\n }\r\n }, [searchParams]);\r\n\r\n useEffect(() => {\r\n setSelectedAllUser(countSearch(search) == countSearchSelected(search));\r\n if (selectedUser.length == 0) setVisibleSelectedUser(false);\r\n }, [selectedUser]);\r\n //----------------------------------------------------------------------------------------------------------\r\n const getCenterCatalog = () => {\r\n setLoading(true);\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n \r\n props.getCenterCatalogAction(_params, server);\r\n };\r\n\r\n const getDeptsCatalog = () => {\r\n setLoading(true);\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n \r\n props.getDeptsCatalogAction(_params, server);\r\n };\r\n\r\n const getJobCatalog = () => {\r\n setLoading(true);\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n \r\n props.getJobCatalogAction(_params, server);\r\n };\r\n\r\n const getTypeEmployeeCatalog = () => {\r\n setLoading(true);\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n };\r\n \r\n props.getTypeEmployeeCatalogAction(_params, server);\r\n };\r\n\r\n const getTBodyEmployees = () => {\r\n let table = [];\r\n\r\n if (countSearch(search) == 0) {\r\n table.push(\r\n <tr key={1}>\r\n <td colSpan=\"3\">No se encontro ningun usuario.</td>\r\n </tr>\r\n );\r\n } \r\n else {\r\n for (const person in search) {\r\n if (search.hasOwnProperty(person)) {\r\n const element = search[person];\r\n let selected = selectedUser.some(item => item.trabID == element.trabID);\r\n let exStyle = (selected? { backgroundColor: '#F5FFEE' } : {});\r\n \r\n table.push(\r\n <tr key={person} style={{ cursor: 'pointer', ...exStyle } } onClick={() => onClickEmployee(element)}>\r\n <td>{element.trabID}</td>\r\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\r\n <td>\r\n <input type=\"checkbox\" className=\"with-gap\" id={element.trabID + \"~rp\"} name={element.trabID + \"~rp\"} onChange={() => {}} checked={selected} />\r\n </td>\r\n </tr>\r\n );\r\n }\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const getTBodyEmployeesSelected = () => {\r\n let table = [];\r\n\r\n if ((selectedUser || []).length == 0) {\r\n table.push(\r\n <tr key={1}>\r\n <td colSpan=\"3\">No se encontro ningun usuario.</td>\r\n </tr>\r\n );\r\n } \r\n else {\r\n for (const person in selectedUser) {\r\n if (selectedUser.hasOwnProperty(person)) {\r\n const element = selectedUser[person];\r\n let selected = selectedUser.some(item => item.trabID == element.trabID);\r\n \r\n table.push(\r\n <tr key={person} style={{ cursor: 'pointer' } } onClick={() => {\r\n let idx = selectedUser.findIndex(item => item.trabID == element.trabID);\r\n if (idx >= 0) {\r\n let arr = [...selectedUser];\r\n arr.splice(idx, 1);\r\n setSelectedUser(arr);\r\n }\r\n }}>\r\n <td>{element.trabID}</td>\r\n <td>{element.paterno + ' ' + element.materno + ' ' + element.nombre}</td>\r\n <td>\r\n <input type=\"checkbox\" className=\"with-gap\" id={element.trabID + \"~rp\"} name={element.trabID + \"~rp\"} onChange={() => {}} checked={selected} />\r\n </td>\r\n </tr>\r\n );\r\n }\r\n }\r\n }\r\n\r\n return table;\r\n };\r\n\r\n const onChangeSelection = (v, func) => {\r\n let selected = (v == null ? [] : v);\r\n if (selected.some(s => s.value == \"*\")) {\r\n selected = defaultOption;\r\n }\r\n func(selected);\r\n };\r\n\r\n const onSearchEmployee = event => {\r\n //setSelectedUser([]);\r\n //setSelectedAllUser(false);\r\n\r\n setSearchParams({\r\n ...searchParams,\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n\r\n const onClickEmployee = (element) => {\r\n let arr = [ ...selectedUser ];\r\n let idx = arr.findIndex(item => item.trabID == element.trabID);\r\n if (idx >= 0) {\r\n arr.splice(idx, 1);\r\n }\r\n else {\r\n arr.push(element);\r\n }\r\n setSelectedUser(arr);\r\n };\r\n\r\n const onChangeEmployeeAll = (all) => {\r\n console.log(all, search.SearchEmployee);\r\n let arr = [ ...selectedUser ];\r\n for (const person in search) {\r\n if (search.hasOwnProperty(person)) {\r\n const element = search[person];\r\n //console.log(element);\r\n let selected = selectedUser.some(item => item.trabID == element.trabID);\r\n\r\n if (all && !selected) {\r\n arr.push(element);\r\n }\r\n else if (!all && selected) {\r\n let idx = arr.findIndex(item => item.trabID == element.trabID);\r\n if (idx >= 0) arr.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n setSelectedUser(arr);\r\n //setSelectedAllUser(all);\r\n };\r\n\r\n const countSearch = (_search) => {\r\n let count = 0;\r\n for (const person in _search) {\r\n if (_search.hasOwnProperty(person)) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n };\r\n\r\n const countSearchSelected = (_search) => {\r\n let count = 0;\r\n for (const person in _search) {\r\n if (_search.hasOwnProperty(person)) {\r\n const element = _search[person];\r\n let selected = selectedUser.some(item => item.trabID == element.trabID);\r\n if (selected) count++;\r\n }\r\n }\r\n return count;\r\n };\r\n //----------------------------------------------------------------------------------------------------------\r\n useEffect(() => {\r\n if (props.generaReporteCtrlVac2Data && props.generaReporteCtrlVac2Data.isOK) {\r\n console.log('OIHB Data', props.generaReporteCtrlVac2Data);\r\n downloadUrl(props.generaReporteCtrlVac2Data.UrlReport);\r\n props.generaReporteCtrlVac2Action('PURGE', '');\r\n \r\n } \r\n else if (props.generaReporteCtrlVac2Error && props.generaReporteCtrlVac2Error.isOK === false) {\r\n props.generaReporteCtrlVac2Action('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.generaReporteCtrlVac2Data, props.generaReporteCtrlVac2Error]);\r\n\r\n useEffect(() => {\r\n if (props.generaReporteCtrlVac3Data && props.generaReporteCtrlVac3Data.isOK) {\r\n console.log('OIHB Data', props.generaReporteCtrlVac3Data);\r\n downloadUrl(props.generaReporteCtrlVac3Data.UrlReport);\r\n props.generaReporteCtrlVac3Action('PURGE', '');\r\n } \r\n else if (props.generaReporteCtrlVac3Error && props.generaReporteCtrlVac3Error.isOK === false) {\r\n props.generaReporteCtrlVac3Action('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.generaReporteCtrlVac3Data, props.generaReporteCtrlVac3Error]);\r\n\r\n useEffect(() => {\r\n if (props.generaReporteCtrlVac4Data && props.generaReporteCtrlVac4Data.isOK) {\r\n console.log('OIHB Data', props.generaReporteCtrlVac4Data);\r\n downloadUrl(props.generaReporteCtrlVac4Data.UrlReport);\r\n props.generaReporteCtrlVac4Action('PURGE', '');\r\n } \r\n else if (props.generaReporteCtrlVac4Error && props.generaReporteCtrlVac4Error.isOK === false) {\r\n props.generaReporteCtrlVac4Action('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.generaReporteCtrlVac4Data, props.generaReporteCtrlVac4Error]);\r\n\r\n const downloadReport = () => {\r\n if (centrosSel.length == 0 || \r\n deptosSel.length == 0 || \r\n puestos.length == 0 || \r\n tiposEmpleadoSel.length == 0 ||\r\n tipoSolicitudSel == null || \r\n initDate == null || \r\n finalDate == null\r\n ) {\r\n alert('Debe filtrar por Centro, Departamento, Puesto, Etc...');\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n let _usuarios = (selectedUser.length == 0 ? '*' : selectedUser.map(m => `'${m.trabID}'`).join(','));\r\n let _centros = centrosSel.some(s => s.value == \"*\") ? \"*\" : centrosSel.map(m => `'${m.value}'`).join(',');\r\n let _departamento = deptosSel.some(s => s.value == \"*\") ? \"*\" : deptosSel.map(m => `'${m.value}'`).join(',');\r\n let _tipoEmp = (tiposEmpleadoSel.some(s => s.value == \"*\") ? tiposEmpleado.map(m => m.value) : tiposEmpleadoSel.map(m => m.value)).filter(f => f != \"*\").join(',');\r\n let _puesto = puestosSel.some(s => s.value == \"*\") ? \"*\" : puestosSel.map(m => `'${m.value}'`).join(',');\r\n\r\n var tipoReporte = tipoReporteSel.value;\r\n if (tipoReporte == 1) {\r\n console.log('OIHB Data', 'generaReporteCtrlVac2Action');\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": _usuarios,\r\n \"tem:empresas\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": _centros,\r\n \"tem:departamento\": _departamento,\r\n \"tem:Tipoemp\": _tipoEmp,\r\n \"tem:puesto\": _puesto,\r\n \"tem:inicio\": initDate.toISOString(),\r\n \"tem:fin\": finalDate.toISOString(),\r\n \"tem:TipoSolicitud\": tipoSolicitudSel.value,\r\n };\r\n props.generaReporteCtrlVac2Action(_params, server);\r\n }\r\n else if (tipoReporte == 2) {\r\n console.log('OIHB Data', 'generaReporteCtrlVac3Action');\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": _usuarios,\r\n \"tem:empresas\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": _centros,\r\n \"tem:departamento\": _departamento,\r\n \"tem:Tipoemp\": _tipoEmp,\r\n \"tem:puesto\": _puesto,\r\n //\"tem:inicio\": initDate.toISOString(),\r\n //\"tem:fin\": finalDate.toISOString(),\r\n //\"tem:TipoSolicitud\": tipoSolicitudSel.value,\r\n };\r\n props.generaReporteCtrlVac3Action(_params, server);\r\n }else if (tipoReporte == 3){\r\n console.log('OIHB Data', 'generaReporteCtrlVac4Action');\r\n let _params = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": _usuarios,\r\n \"tem:empresas\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": _centros,\r\n \"tem:departamento\": _departamento,\r\n \"tem:Tipoemp\": _tipoEmp,\r\n \"tem:puesto\": _puesto,\r\n //\"tem:inicio\": initDate.toISOString(),\r\n //\"tem:fin\": finalDate.toISOString(),\r\n //\"tem:TipoSolicitud\": tipoSolicitudSel.value,\r\n };\r\n props.generaReporteCtrlVac4Action(_params, server);\r\n }\r\n };\r\n const downloadUrl = async (url) => {\r\n //url = transformaUrl(url);\r\n console.log('hola', url);\r\n\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } \r\n \r\n else {\r\n console.log('hola 1', url);\r\n // res = await fetch(url);\r\n setLoading(false);\r\n openLink(url);\r\n \r\n return;\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n setLoading(false);\r\n download(blob, name);\r\n };\r\n\r\n /*const downloadUrl = async (url) => {\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"1\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } else {\r\n res = await fetch(url);\r\n }\r\n\r\n console.log(typeof res);\r\n\r\n const blob = await res.blob();\r\n console.log(blob);\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n console.log(res);\r\n\r\n setLoading(false);\r\n download(blob, name);\r\n };\r\n*/\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <RHVacationLeftsidebar />\r\n </div>\r\n </>\r\n );\r\n } \r\n else {\r\n let hideElements1 = (tipoReporteSel.value == \"1\");\r\n return (\r\n <div id=\"main-wrapper\">\r\n <style>\r\n {`\r\n .table-fixed {\r\n width: 100%;\r\n background-color: #f3f3f3;\r\n tbody{\r\n height:200px;\r\n overflow-y:auto;\r\n width: 100%;\r\n }\r\n thead,tbody,tr,td,th{\r\n display:block;\r\n }\r\n tbody{\r\n td{\r\n float:left;\r\n }\r\n }\r\n thead {\r\n tr{\r\n th{\r\n float:left;\r\n background-color: #f39c12;\r\n border-color:#e67e22;\r\n }\r\n }\r\n }\r\n }\r\n `}\r\n </style>\r\n <Topbar />\r\n <RHVacationLeftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"REPORTE CONTROL DE VACACIONES\" icon=\"mdi mdi-chart-line\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Reporte Control de Vacaciones\r\n </h4>\r\n {/* <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte de servicios técnicos autorizados.\r\n </h6> */}\r\n </div>\r\n \r\n <div className=\"card-body\">\r\n {/* <form className=\"m-t-20\"> */}\r\n <div className=\"row p-20\">\r\n\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\">\r\n\r\n <div className=\"card-header\">\r\n <h5 className=\"m-b-0 text-white m-t-10 m-b-10\">Búsqueda por Centro, Departamento, Puesto, Etc...</h5>\r\n </div>\r\n \r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n\r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Tipo Reporte</label>\r\n <Select\r\n disabled={tipoSolicitudSel != null? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={tipoReporteSel}\r\n options={tipoReporte}\r\n onChange={(v) => setTipoReporteSel(v)}\r\n isMulti={false}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Centros</label>\r\n <Select\r\n disabled={centrosSel.length > 0 ? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={centrosSel}\r\n options={centros}\r\n onChange={(v) => onChangeSelection(v, setCentrosSel)}\r\n isMulti={true}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Departamentos</label>\r\n <Select\r\n disabled={deptosSel.length > 0 ? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={deptosSel}\r\n options={deptos}\r\n onChange={(v) => onChangeSelection(v, setDeptosSel)}\r\n isMulti={true}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Puestos</label>\r\n <Select\r\n disabled={puestosSel.length > 0 ? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={puestosSel}\r\n options={puestos}\r\n onChange={(v) => onChangeSelection(v, setPuestosSel)}\r\n isMulti={true}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Tipos Empleado</label>\r\n <Select\r\n disabled={tiposEmpleadoSel.length > 0 ? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={tiposEmpleadoSel}\r\n options={tiposEmpleado}\r\n onChange={(v) => onChangeSelection(v, setTiposEmpleadosSel)}\r\n isMulti={true}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n \r\n {hideElements1 && \r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Tipo Solicitud</label>\r\n <Select\r\n disabled={tipoSolicitudSel != null? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={tipoSolicitudSel}\r\n options={tipoSolicitud}\r\n onChange={(v) => setTipoSolicitudSel(v)}\r\n isMulti={false}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div>\r\n }\r\n \r\n {/* <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Tipo Reporte</label>\r\n <Select\r\n disabled={tipoSolicitudSel != null? false : true}\r\n styles={{ menu: (provided) => ({ ...provided, zIndex: 9999 }) }}\r\n placeholder=\"Selecciona...\"\r\n value={tipoReporteSel}\r\n options={tipoReporte}\r\n onChange={(v) => setTipoReporteSel(v)}\r\n isMulti={false}\r\n noOptionsMessage={() => \"No se encontraron resultados.\"}\r\n />\r\n </div>\r\n </div> */}\r\n\r\n {hideElements1 && \r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Fecha Inicio</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n }\r\n\r\n {hideElements1 && \r\n <div className=\"col-md-4\">\r\n <div className=\"form-group\">\r\n <label>Fecha Final</label><br/>\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha.\"\r\n minDate={new Date(2020, 0, 1)}\r\n \r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n \r\n {/* </div>\r\n </div>\r\n\r\n <div className=\"col-md-12\">\r\n <div className=\"card card-outline-info\"> */}\r\n <div className=\"card-header\">\r\n <h6 className=\"m-b-0 text-white m-t-10 m-b-10\"><button type=\"button\" className=\"btn btn-info\" onClick={() => { setVisibleSearchUser(visibleSearchUser ? false : true) }}>Búsqueda por Empleado.</button></h6>\r\n </div>\r\n\r\n {visibleSearchUser ? <div>\r\n <div className=\"card-body\">\r\n <div className=\"form-row\">\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">No. Empleado</label>\r\n <input type=\"text\" name=\"employee_number\" onChange={onSearchEmployee} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">Nombre</label>\r\n <input type=\"text\" name=\"first_name\" onChange={onSearchEmployee} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Paterno</label>\r\n <input type=\"text\" name=\"last_name\" onChange={onSearchEmployee} className=\"form-control\" />\r\n </div>\r\n <div className=\"form-group col-md-3\">\r\n <label htmlFor=\"name\">A. Materno</label>\r\n <input type=\"text\" name=\"last_last_name\" onChange={onSearchEmployee} className=\"form-control\" />\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\" style={ {maxHeight: '250px'} }>\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th>\r\n {countSearch(search) > 0 && \r\n <input type=\"checkbox\" className=\"with-gap\" id={ \"~rp\"} name={\"~rp\"}\r\n onChange={() => { onChangeEmployeeAll(selectedAllUser ? false : true) }} \r\n checked={selectedAllUser} />\r\n }\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {getTBodyEmployees()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>: null }\r\n \r\n <br/>\r\n\r\n {selectedUser.length > 0 ? \r\n <div>\r\n <div className=\"card-header\">\r\n <h6 className=\"m-b-0 text-white m-t-10 m-b-10\"><button type=\"button\" className=\"btn btn-info\" onClick={() => { setVisibleSelectedUser(visibleSelectedUser ? false : true) }}>Empleados seleccionados.</button></h6>\r\n </div>\r\n {visibleSelectedUser && \r\n <div className=\"card-body\">\r\n <div className=\"table-responsive m-t-20\" style={ {maxHeight: '250px'} }>\r\n <table className=\"table table-hover no-wrap\">\r\n <thead>\r\n <tr>\r\n <th>No. Empleado</th>\r\n <th>Nombre</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {getTBodyEmployeesSelected()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n }\r\n <br/>\r\n </div> : null}\r\n\r\n <div className=\"card-footer\">\r\n <button\r\n type=\"button\"\r\n style={ { float: 'right'} }\r\n className=\"btn btn-info m-l-5\"\r\n onClick={() => downloadReport()}>\r\n Descargar Reporte\r\n <i className=\"mdi mdi-download\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n {/* </form> */}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n centersCatalogData: state.centersCatalog.centersCatalogData,\r\n centersCatalogError: state.centersCatalog.centersCatalogError,\r\n\r\n deptsCatalogData: state.deptsCatalog.deptsCatalogData,\r\n deptsCatalogError: state.deptsCatalog.deptsCatalogError,\r\n\r\n jobCatalogData: state.jobCatalog.jobCatalogData,\r\n jobCatalogError: state.jobCatalog.jobCatalogError,\r\n\r\n typeEmployeeCatalogData: state.typeEmployeeCatalog.typeEmployeeCatalogData,\r\n typeEmployeeCatalogError: state.typeEmployeeCatalog.typeEmployeeCatalogError,\r\n\r\n searchEmployeeData: state.searchEmployee.searchEmployeeData,\r\n searchEmployeeError: state.searchEmployee.searchEmployeeError,\r\n\r\n generaReporteCtrlVac2Data: state.generaReporteCtrlVac2.generaReporteCtrlVac2Data,\r\n generaReporteCtrlVac2Error: state.generaReporteCtrlVac2.generaReporteCtrlVac2Error,\r\n\r\n generaReporteCtrlVac3Data: state.generaReporteCtrlVac3.generaReporteCtrlVac3Data,\r\n generaReporteCtrlVac3Error: state.generaReporteCtrlVac3.generaReporteCtrlVac3Error,\r\n\r\n //generaReporteCtrlVac4Data: state.generaReporteCtrlVac4.generaReporteCtrlVac4Data,\r\n //generaReporteCtrlVac4Error: state.generaReporteCtrlVac4.generaReporteCtrlVac4Error,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction, \r\n\r\n getCenterCatalogAction,\r\n getDeptsCatalogAction,\r\n getJobCatalogAction,\r\n getTypeEmployeeCatalogAction,\r\n\r\n getSearchEmployeeAction,\r\n\r\n generaReporteCtrlVac2Action,\r\n generaReporteCtrlVac3Action,\r\n generaReporteCtrlVac4Action,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(ReportControlVacation)\r\n);\r\n","import { changeXml, TypeEmployeeCatalogResponse } from '../../endpoints';\r\nimport { ValidationNoAuthorization } from '../../endpoints/ValidateError';\r\nimport xml2js, { parseString } from 'react-native-xml2js'\r\nimport {\r\n TYPE_EMPLOYEE_CATALOG_SUCCESS,\r\n TYPE_EMPLOYEE_CATALOG_ERROR,\r\n TYPE_EMPLOYEE_CATALOG_PURGE,\r\n VALIDATE_ERROR,\r\n} from '../../types'\r\n\r\n\r\nexport const getTypeEmployeeCatalogAction = (data, server) => {\r\n //let directServer = localStorage.getItem(\"REACT_APP_CLIENT_SERVER\");\r\n\r\n let configJson = {\r\n 'tem:CatalogoTipoEmpleado': {\r\n ...data\r\n }\r\n }\r\n\r\n let obj = changeXml(configJson);\r\n\r\n let config = {\r\n method: 'POST',\r\n body: obj,\r\n headers: {\r\n // 'Content-Type': 'text/xml',\r\n 'SOAPAction': \"http://tempuri.org/IwcfKioscoSicoss/CatalogoTipoEmpleado\",\r\n 'Server': localStorage.getItem(\"REACT_APP_CLIENT_SERVER\")\r\n },\r\n };\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === '1') {\r\n let headers = {\r\n 'Content-Type': 'text/xml',\r\n ...config.headers\r\n }\r\n config = {\r\n ...config,\r\n headers: headers\r\n }\r\n }\r\n console.log('REQUEST:', data, config);\r\n\r\n return (dispatch) => {\r\n\r\n if (data === 'PURGE') {\r\n dispatch({ type: TYPE_EMPLOYEE_CATALOG_PURGE, payload: 'PURGE' })\r\n } else {\r\n //fetch((localStorage.getItem(\"REACT_APP_IS_PRIVATE\") == \"1\" ? directServer : server), config)\r\n fetch(server,config)\r\n .then(response => response.text())\r\n .then((xml) => {\r\n parseString(xml, { trim: true }, (err, resultJson) => {\r\n if (resultJson) {\r\n let response = {}\r\n let body = {}\r\n if ('s:Envelope' in resultJson) {\r\n const envelope = resultJson['s:Envelope']\r\n if ('s:Body' in envelope) {\r\n body = envelope['s:Body'][0];\r\n if ('s:Fault' in body) {\r\n console.log('ERROR DE RESPUESTA')\r\n }\r\n\r\n } else {\r\n response = {\r\n isOK: false,\r\n error: 'No data'\r\n }\r\n }\r\n }\r\n let valid = ValidationNoAuthorization(body)\r\n if (valid.haveError) {\r\n const response = {\r\n isOK: false,\r\n error: valid.error\r\n }\r\n console.log('ERROR GET TYPE_EMPLOYEE_CATALOG_ERROR DATA: ', response);\r\n dispatch({ type: VALIDATE_ERROR, payload: valid })\r\n dispatch({ type: TYPE_EMPLOYEE_CATALOG_ERROR, payload: response })\r\n } else {\r\n response = {\r\n isOK: true,\r\n TypeEmployeeCatalog: TypeEmployeeCatalogResponse(body)\r\n }\r\n\r\n console.log('RESPONSE TYPE_EMPLOYEE_CATALOG DATA: ', response);\r\n dispatch({ type: TYPE_EMPLOYEE_CATALOG_SUCCESS, payload: response })\r\n }\r\n\r\n }\r\n\r\n if (err) {\r\n const response = {\r\n isOK: false,\r\n error: err\r\n }\r\n console.log('ERROR GET TYPE_EMPLOYEE_CATALOG DATA: ', response);\r\n dispatch({ type: TYPE_EMPLOYEE_CATALOG_ERROR, payload: response })\r\n }\r\n })\r\n })\r\n .catch((error) => {\r\n const responseError = {\r\n isOK: false,\r\n error: error\r\n }\r\n console.log('ERROR NOT RESPONSE GET TYPE_EMPLOYEE_CATALOG DATA: ', responseError);\r\n dispatch({ type: TYPE_EMPLOYEE_CATALOG_ERROR, payload: responseError })\r\n })\r\n\r\n }\r\n }\r\n\r\n};","import React, { useEffect, useState } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { getParams } from '../utils';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\n\nimport VacationRequests from '../pages/RHVacation/VacationRequests';\nimport Vacations from '../pages/RHVacation/Vacations';\nimport Reports from '../pages/RHVacation/Reports';\nimport VacationsCalendar from '../pages/RHVacation/CalendarVacations';\nimport ReportVacationsIncidents from '../pages/systemAdmin/ReportVacationsIncidents';\nimport ReportControlVacation from '../pages/RHVacation/ReportControlVacation';\n\nimport IncidenciasSolicitadas from '../pages/systemAdmin/RequestedIncidents';\n\nimport Login from '../pages/login/Login.js';\nimport RecoverPassword from '../pages/login/RecoverPassword';\nimport Error404 from '../pages/errors/Error404.js';\n\nconst RHVacation = props => {\n\n const [menu, setMenu] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n let { params, server } = getParams();\n\n params = {\n 'tem:sToken': params['tem:sToken'],\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\n }\n\n props.getAdminMenuAction(params, server);\n }, []);\n\n\n useEffect(() => {\n if (props.adminMenuData && props.adminMenuData.isOK) {\n setMenu([\n ...props.adminMenuData.AdminMenu\n ]);\n setLoading(false);\n } else if (props.adminMenuError && props.adminMenuError.isOK === false) {\n props.getAdminMenuAction('PURGE', '');\n setLoading(false);\n }\n }, [props.adminMenuData, props.adminMenuError]);\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/${(localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' ? '' : 'mass-authorization')}`} exact >\n <VacationRequests />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/${(localStorage.getItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\") != '1' ? 'report-control-vacations' : '')}`} exact >\n <ReportControlVacation />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/vacations`} exact >\n <Vacations />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/vacations-reports`} exact >\n <Reports />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/vacation-calendar`} exact >\n <VacationsCalendar />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/report-vacations-incidents`} exact>\n <ReportVacationsIncidents />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`} exact>\n <RecoverPassword />\n </Route>\n\n {(sessionStorage.getItem(\"SICONSULTA_ReporteIncidenciasSol\") == '1' ) && menu.filter(el => el.NombreMenu == 'vacaciones-autorizar' && el.Habilitado == 'true').length > 0 && \n <Route path={`${process.env.PUBLIC_URL}/incidencias-solicitadas`} exact >\n <IncidenciasSolicitadas />\n </Route>}\n\n <Route>\n <Error404 />\n </Route>\n </Switch>\n );\n};\n\nconst mapStateToProps = state => {\n return {\n adminMenuData: state.adminMenu.adminMenuData,\n adminMenuError: state.adminMenu.adminMenuError,\n }\n};\n\nconst mapDispatchToProps = {\n getAdminMenuAction,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(RHVacation));\n\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport Select from 'react-select'\r\n\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/DirectorGralLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport { getListCompaniesRptAction } from '../../api/actions/eulen/ListCompaniesRptAction';\r\nimport { getFilterCentersAction } from '../../api/actions/eulen/FilterCentersAction';\r\nimport { getFilterBoosAction } from '../../api/actions/eulen/FilterBoosAction';\r\nimport { getReportRHVacAction } from '../../api/actions/eulen/ReportRHVacActtion';\r\n\r\nimport DatePicker from 'react-datepicker';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert, confirm } from '../../utils/common/alert';\r\n\r\nconst Reports = props => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [companiesOptions, setCompaniesOptions] = useState([]);\r\n const [centersOptions, setCentersOptions] = useState([]);\r\n const [chiefsOptions, setChiefsOptions] = useState([]);\r\n const [initDate, setInitDate] = useState(null);\r\n const [finalDate, setFinalDate] = useState(null);\r\n const [filters, setFilters] = useState({});\r\n\r\n useEffect(() => {\r\n getCompaniesOptions();\r\n }, []);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:UserID': params['tem:TrabID'],\r\n }\r\n props.getListCompaniesRptAction(params, server);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.listCompaniesRptData && props.listCompaniesRptData.isOK) {\r\n let values = props.listCompaniesRptData.ListCompaniesRpt;\r\n let options = [];\r\n values.forEach((company) => {\r\n options.push({\r\n value: company,\r\n label: company\r\n });\r\n\r\n });\r\n setCompaniesOptions([\r\n ...options\r\n ]);\r\n } else if (props.listCompaniesRptError && props.listCompaniesRptError.isOK === false) {\r\n props.getListCompaniesRptAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [\r\n props.listCompaniesRptData, props.listCompaniesRptError\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.filterCenterData && props.filterCenterData.isOK) {\r\n let values = props.filterCenterData.FilterCenters;\r\n let options = [{\r\n value: 'Todos',\r\n label: 'Todos'\r\n }];\r\n values.forEach(center => {\r\n options.push({\r\n value: center.Centro_ID,\r\n label: center.Centro_ID + ' - ' + center.Descripcion\r\n });\r\n });\r\n setCentersOptions([\r\n ...options\r\n ]);\r\n } else if (props.filterCenterError && props.filterCenterError.isOK === false) {\r\n props.getFilterCentersAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [\r\n props.filterCenterData, props.filterCenterError\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.filterBoosData && props.filterBoosData.isOK) {\r\n let values = props.filterBoosData.FilterBoos;\r\n let options = [];\r\n values.forEach((chief) => {\r\n options.push({\r\n value: chief.Trab_id_Jefe,\r\n label: chief.Trab_id_Jefe + ' - ' +chief.NombreCompleto\r\n });\r\n });\r\n options = options.sort((a,b) => (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0));\r\n options.unshift({\r\n value: 'Todos',\r\n label: 'Todos'\r\n });\r\n console.log(options);\r\n setChiefsOptions([\r\n ...options\r\n ]);\r\n } else if (props.filterBoosError && props.filterBoosError.isOK === false) {\r\n props.getFilterBoosAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [\r\n props.filterBoosData, props.filterBoosError\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.reportRHVacData && props.reportRHVacData.isOK) {\r\n let redirect = props.reportRHVacData.ReportRHVac;\r\n window.open(redirect, '_blank');\r\n props.getReportRHVacAction('PURGE', '');\r\n } else if (props.reportRHVacError && props.reportRHVacError.isOK === false) {\r\n props.getReportRHVacAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [\r\n props.reportRHVacData, props.reportRHVacError\r\n ]);\r\n\r\n const changeFilter = (type, v) => {\r\n if (v) {\r\n let todos = v.filter(item => item.value == 'Todos');\r\n if (todos.length > 0)\r\n v = todos;\r\n }\r\n\r\n if (type == 'companies') {\r\n setFilters({\r\n ...filters,\r\n companies: v\r\n });\r\n if (v && v.length > 0) {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:Empresas': v && v[0].value == 'Todos' ? '0' : companiesList(v),\r\n 'tem:User_id': params['tem:TrabID'],\r\n }\r\n props.getFilterCentersAction(params, server);\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n companies: v,\r\n centers: null,\r\n chiefs: null,\r\n });\r\n\r\n setCentersOptions([]);\r\n setChiefsOptions([]);\r\n } else if (type == 'centers') {\r\n\r\n\r\n if (v && v.length > 0) {\r\n console.log('Valor', v[0].value);\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:centros': v && v[0].value == 'Todos' ? '0' : centersList(v),\r\n 'tem:empresas': filters.companies && filters.companies[0].value == 'Todos' ? '0' : companiesList(filters.companies),\r\n 'tem:user_id': params['tem:TrabID'],\r\n }\r\n props.getFilterBoosAction(params, server);\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n centers: v,\r\n chiefs: null\r\n });\r\n\r\n setChiefsOptions([]);\r\n\r\n } else if (type == 'chiefs') {\r\n setFilters({\r\n ...filters,\r\n chiefs: v\r\n });\r\n }\r\n\r\n\r\n console.log(filters);\r\n }\r\n\r\n const companiesList = list => {\r\n if (list) {\r\n\r\n let str = '';\r\n list.forEach(item => {\r\n str += item.value + ','\r\n });\r\n\r\n return str.slice(0, -1);\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n const centersList = list => {\r\n if (list) {\r\n\r\n let str = '';\r\n list.forEach(item => {\r\n str += \"'\" + item.value + \"'\" + ','\r\n });\r\n\r\n return str.slice(0, -1);\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n const generate = () => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:UserID': params['tem:TrabID'],\r\n 'tem:centros': filters.centers && filters.centers[0].value == 'Todos' ? '0' : centersList(filters.centers),\r\n 'tem:empresas': filters.companies && filters.companies[0].value == 'Todos' ? '0' : companiesList(filters.companies),\r\n 'tem:jefes': filters.chiefs && filters.chiefs[0].value == 'Todos' ? '0' : centersList(filters.chiefs),\r\n 'tem:inicio': initDate.getFullYear() + '-' + (\"0\" + (initDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + initDate.getDate()).slice(-2) + 'T00:00:00.000',\r\n 'tem:fin': finalDate.getFullYear() + '-' + (\"0\" + (finalDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + finalDate.getDate()).slice(-2) + 'T00:00:00.000',\r\n }\r\n\r\n props.getReportRHVacAction(params, server);\r\n }\r\n\r\n const disabledGenerate = () => {\r\n if (\r\n !filters ||\r\n !filters.companies || filters.companies.length == 0 ||\r\n !filters.centers || filters.centers.length == 0 ||\r\n !filters.chiefs || filters.chiefs.length == 0 ||\r\n !initDate ||\r\n !finalDate\r\n )\r\n return true;\r\n return false;\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Reporte de Vacaciones\" icon=\"mdi mdi-briefcase-check\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-header\">\r\n <div className=\"d-flex\">\r\n <h4 className=\"card-title p-2\">REPORTE DE VACACIONES</h4>\r\n </div>\r\n </div>\r\n\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-12 mt-3\">\r\n <label>Empresas</label>\r\n \r\n <Select\r\n styles={{\r\n menu: provided => ({ ...provided, zIndex: 9999 })\r\n }}\r\n placeholder=\"Selecciona los filtros deseados.\"\r\n options={companiesOptions}\r\n onChange={(v) => changeFilter('companies', v)}\r\n isMulti={true}\r\n value={filters.companies}\r\n noOptionsMessage={() => 'No se encontraron resultados.'}\r\n />\r\n\r\n </div>\r\n <div className=\"col-12 mt-3\">\r\n <label>Centros de Trabajo</label>\r\n <Select\r\n styles={{\r\n menu: provided => ({ ...provided, zIndex: 9999 })\r\n }}\r\n isDisabled={!filters.companies || filters.companies.length == 0}\r\n isLoading={filters.companies && centersOptions.length == 0}\r\n placeholder=\"Selecciona los filtros deseados.\"\r\n options={centersOptions}\r\n onChange={(v) => changeFilter('centers', v)}\r\n isMulti={true}\r\n value={filters.centers}\r\n noOptionsMessage={() => 'No se encontraron resultados.'}\r\n />\r\n </div>\r\n <div className=\"col-12 mt-3\">\r\n <label>Jefes</label>\r\n <Select\r\n styles={{\r\n menu: provided => ({ ...provided, zIndex: 9999 })\r\n }}\r\n isDisabled={!filters.centers || filters.centers.length == 0}\r\n placeholder=\"Selecciona los filtros deseados.\"\r\n options={chiefsOptions}\r\n onChange={(v) => changeFilter('chiefs', v)}\r\n isMulti={true}\r\n value={filters.chiefs}\r\n noOptionsMessage={() => 'No se encontraron resultados.'}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row mt-3\">\r\n <div className=\"col-6\">\r\n <label>Fecha de Inicio</label>\r\n </div>\r\n <div className=\"col-6\">\r\n <label>Fecha Final</label>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n selected={initDate}\r\n onChange={new_date => {\r\n setInitDate(new_date);\r\n }}\r\n />\r\n </div>\r\n <div className=\"col-6\">\r\n <DatePicker\r\n className=\"form-control\"\r\n dateFormat=\"dd/MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n minDate={initDate}\r\n disabled={!initDate}\r\n selected={finalDate}\r\n onChange={new_date => {\r\n setFinalDate(new_date);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"form-group text-center m-t-20\">\r\n <div className=\"col-xs-12\">\r\n <button className=\"btn btn-info waves-effect waves-light\" onClick={generate} disabled={disabledGenerate()}>Generar Reporte</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div >\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n listCompaniesRptData: state.listCompaniesRpt.listCompaniesRptData,\r\n listCompaniesRptError: state.listCompaniesRpt.listCompaniesRptError,\r\n\r\n filterCenterData: state.filterCenter.filterCenterData,\r\n filterCenterError: state.filterCenter.filterCenterError,\r\n\r\n filterBoosData: state.filterBoos.filterBoosData,\r\n filterBoosError: state.filterBoos.filterBoosError,\r\n\r\n reportRHVacData: state.reportRHVac.reportRHVacData,\r\n reportRHVacError: state.reportRHVac.reportRHVacError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getListCompaniesRptAction,\r\n getFilterCentersAction,\r\n getFilterBoosAction,\r\n getReportRHVacAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Reports));\r\n","import React, { useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/DirectorGralLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { vacationsCalendarAction } from '../../api/actions/common/VacationsCalendarAction';\r\nimport { Calendar, momentLocalizer } from 'react-big-calendar'\r\nimport style from 'react-big-calendar/lib/css/react-big-calendar.css';\r\nimport moment from 'moment'\r\n\r\n\r\n\r\nimport { getParams } from '../../utils';\r\nimport { alert } from '../../utils/common/alert';\r\nimport { event } from 'jquery';\r\n\r\nconst localizer = momentLocalizer(moment)\r\n\r\nconst CalendarVacations = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [culture, setCulture] = useState('es')\r\n const [events, setEvents] = useState([])\r\n const [selectedDay, setSelectedDay] = useState(new Date())\r\n let year = new Date().getFullYear()\r\n let month = new Date().getMonth()\r\n let days = [\r\n { name: 'Seleccione', date: '' },\r\n { name: 'Enero', date: `01/01/${year}` },\r\n { name: 'Febrero', date: `02/01/${year}` },\r\n { name: 'Marzo', date: `03/01/${year}` },\r\n { name: 'Abril', date: `04/01/${year}` },\r\n { name: 'Mayo', date: `05/01/${year}` },\r\n { name: 'Junio', date: `06/01/${year}` },\r\n { name: 'Julio', date: `07/01/${year}` },\r\n { name: 'Agosto', date: `08/01/${year}` },\r\n { name: 'Septiembre', date: `09/01/${year}` },\r\n { name: 'Octubre', date: `10/01/${year}` },\r\n { name: 'Noviembre', date: `11/01/${year}` },\r\n { name: 'Diciembre', date: `12/01/${year}` },\r\n ]\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n let { params, server } = getParams();\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa']\r\n }\r\n props.vacationsCalendarAction(params, server);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.vacationsCalendarData && props.vacationsCalendarData.isOK) {\r\n console.log('EVENTS', props.vacationsCalendarData.VacationsCalendars)\r\n setLoading(false);\r\n setEvents(props.vacationsCalendarData.VacationsCalendars)\r\n } else if (props.vacationsCalendarError && props.vacationsCalendarError.isOK === false) {\r\n props.vacationsCalendarAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.vacationsCalendarData, props.vacationsCalendarError]);\r\n\r\n\r\n const renderItem = (event) => {\r\n return (\r\n <div>\r\n {event.title}\r\n </div>\r\n )\r\n }\r\n\r\n\r\n const renderSelector = () => {\r\n let options = days.map((data) => {\r\n return (\r\n <option value={data.date} >{data.name}</option>\r\n )\r\n })\r\n return (\r\n <select\r\n class=\"form-control\"\r\n onChange={(values) => { setSelectedDay(values.target.value != '' ? new Date(values.target.value) : new Date) }}>\r\n <option hidden selected>{days[month].name}</option>\r\n {options}\r\n </select>\r\n )\r\n }\r\n\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CALENDARIO DE VACACIONES\" icon=\"mdi mdi-briefcase-check\" />\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"d-flex no-block justify-content-between\">\r\n <h4 className=\"card-title\">CALENDARIO DE VACACIONES</h4>\r\n </div>\r\n <div className='col-12 col-lg-12 row'>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#A9DAA4', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Vacaciones'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\">\r\n <div style={{ backgroundColor: '#003B71', width: '20px', height: '20px', marginRight: 10 }} />\r\n <h4>{'Incidencias'}</h4>\r\n </div>\r\n <div className=\"col-lg-4 row\" style={{ marginBottom: '20px' }}>\r\n {/*renderSelector()*/}\r\n </div>\r\n </div>\r\n <div className=\"table-responsive \">\r\n <Calendar\r\n style={{ height: '700px' }}\r\n //step={60}\r\n localizer={localizer}\r\n toolbar={true}\r\n //date={selectedDay}\r\n events={events}\r\n defaultView={'month'}\r\n views={['month']}\r\n popup={true}\r\n culture='es'\r\n tooltipAccessor={(e) => e.title}\r\n eventPropGetter={(event) => {\r\n console.log('EVENT_', event)\r\n const backgroundColor = event.type === '1' ? '#A9DAA4' : '#003B71';\r\n return { style: { backgroundColor, fontSize: 13, paddingBottom: 5, paddingTop: 5 } }\r\n }}\r\n components={{\r\n event: renderItem,\r\n }}\r\n messages={{ 'today': \"Hoy\", \"previous\": 'Atrás', \"next\": \"Siguiente\" }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n\r\n};\r\n\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n vacationsCalendarData: state.vacationCalendar.vacationsCalendarData,\r\n vacationsCalendarError: state.vacationCalendar.vacationsCalendarError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n vacationsCalendarAction\r\n};\r\n\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CalendarVacations));\r\n\r\n\r\n/*\r\nconst events = [\r\n {\r\n id: 1,\r\n title: 'Long Event',\r\n start: new Date(2015, 3, 7),\r\n end: new Date(2015, 3, 10),\r\n },\r\n\r\n {\r\n id: 2,\r\n title: 'DTS STARTS',\r\n start: new Date(2016, 2, 13, 0, 0, 0),\r\n end: new Date(2016, 2, 20, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 3,\r\n title: 'DTS ENDS',\r\n start: new Date(2016, 10, 6, 0, 0, 0),\r\n end: new Date(2016, 10, 13, 0, 0, 0),\r\n },\r\n\r\n {\r\n id: 4,\r\n title: 'Some Event',\r\n start: new Date(2015, 3, 9, 0, 0, 0),\r\n end: new Date(2015, 3, 10, 0, 0, 0),\r\n },\r\n {\r\n id: 5,\r\n title: 'Conference',\r\n start: new Date(2015, 3, 11),\r\n end: new Date(2015, 3, 13),\r\n desc: 'Big conference for important people',\r\n },\r\n {\r\n id: 6,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 10, 30, 0, 0),\r\n end: new Date(2015, 3, 12, 12, 30, 0, 0),\r\n desc: 'Pre-meeting meeting, to prepare for the meeting',\r\n },\r\n {\r\n id: 7,\r\n title: 'Lunch',\r\n start: new Date(2015, 3, 12, 12, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 13, 0, 0, 0),\r\n desc: 'Power lunch',\r\n },\r\n {\r\n id: 8,\r\n title: 'Meeting',\r\n start: new Date(2015, 3, 12, 14, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 15, 0, 0, 0),\r\n },\r\n {\r\n id: 9,\r\n title: 'Happy Hour',\r\n start: new Date(2015, 3, 12, 17, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 17, 30, 0, 0),\r\n desc: 'Most important meal of the day',\r\n },\r\n {\r\n id: 10,\r\n title: 'Dinner',\r\n start: new Date(2015, 3, 12, 20, 0, 0, 0),\r\n end: new Date(2015, 3, 12, 21, 0, 0, 0),\r\n },\r\n {\r\n id: 11,\r\n title: 'Planning Meeting with Paige',\r\n start: new Date(2015, 3, 13, 8, 0, 0),\r\n end: new Date(2015, 3, 13, 10, 30, 0),\r\n },\r\n {\r\n id: 11.1,\r\n title: 'Inconvenient Conference Call',\r\n start: new Date(2015, 3, 13, 9, 30, 0),\r\n end: new Date(2015, 3, 13, 12, 0, 0),\r\n },\r\n {\r\n id: 11.2,\r\n title: \"Project Kickoff - Lou's Shoes\",\r\n start: new Date(2015, 3, 13, 11, 30, 0),\r\n end: new Date(2015, 3, 13, 14, 0, 0),\r\n },\r\n {\r\n id: 11.3,\r\n title: 'Quote Follow-up - Tea by Tina',\r\n start: new Date(2015, 3, 13, 15, 30, 0),\r\n end: new Date(2015, 3, 13, 16, 0, 0),\r\n },\r\n {\r\n id: 12,\r\n title: 'Late Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 18, 2, 0, 0),\r\n },\r\n {\r\n id: 12.5,\r\n title: 'Late Same Night Event',\r\n start: new Date(2015, 3, 17, 19, 30, 0),\r\n end: new Date(2015, 3, 17, 23, 30, 0),\r\n },\r\n {\r\n id: 13,\r\n title: 'Multi-day Event',\r\n start: new Date(2015, 3, 20, 19, 30, 0),\r\n end: new Date(2015, 3, 22, 2, 0, 0),\r\n },\r\n {\r\n id: 14,\r\n title: 'Today',\r\n start: new Date(new Date().setHours(new Date().getHours() - 3)),\r\n end: new Date(new Date().setHours(new Date().getHours() + 3)),\r\n },\r\n {\r\n id: 15,\r\n title: 'Point in Time Event',\r\n start: new Date(),\r\n end: new Date(),\r\n },\r\n {\r\n id: 16,\r\n title: 'Video Record',\r\n start: new Date(2015, 3, 14, 15, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 17,\r\n title: 'Dutch Song Producing',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n {\r\n id: 18,\r\n title: 'Itaewon Halloween Meeting',\r\n start: new Date(2015, 3, 14, 16, 30, 0),\r\n end: new Date(2015, 3, 14, 17, 30, 0),\r\n },\r\n {\r\n id: 19,\r\n title: 'Online Coding Test',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 30, 0),\r\n },\r\n {\r\n id: 20,\r\n title: 'An overlapped Event',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 21,\r\n title: 'Phone Interview',\r\n start: new Date(2015, 3, 14, 17, 0, 0),\r\n end: new Date(2015, 3, 14, 18, 30, 0),\r\n },\r\n {\r\n id: 22,\r\n title: 'Cooking Class',\r\n start: new Date(2015, 3, 14, 17, 30, 0),\r\n end: new Date(2015, 3, 14, 19, 0, 0),\r\n },\r\n {\r\n id: 23,\r\n title: 'Go to the gym',\r\n start: new Date(2015, 3, 14, 18, 30, 0),\r\n end: new Date(2015, 3, 14, 20, 0, 0),\r\n },\r\n ]\r\n*/","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\n\r\nimport Topbar from \"../layout/Topbar.js\";\r\nimport Leftsidebar from \"../layout/DirectorGralLeftsidebar\";\r\nimport Title from \"../layout/Title.js\";\r\nimport Footer from \"../layout/Footer.js\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getDeptosCenterAction } from \"../../api/actions/perdiem/DeptosCenterAction\";\r\nimport { getJefesPerdiemAction } from \"../../api/actions/perdiem/JefesPerdiemAction\";\r\nimport { getEmpleadosAllAction } from \"../../api/actions/perdiem/EmpleadosAllAction\";\r\nimport { getEmpRepoAction } from \"../../api/actions/perdiem/EmpRepoAction\";\r\nimport { ReportConvertAction } from \"../../api/actions/perdiem/ReportConvertAction\";\r\nimport { getXlsPerdiemAction } from \"../../api/actions/perdiem/GetXlsPerdiemAction\";\r\nimport { ConceptsAction } from \"../../api/actions/perdiem/ConceptsActions\";\r\n\r\nimport { getParams } from \"../../utils\";\r\nimport download from \"downloadjs\";\r\nimport { alert } from \"../../utils/common/alert\";\r\n\r\nconst AccountingReport = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [deptos, setDeptos] = useState([]);\r\n const [centros, setCentros] = useState([]);\r\n const [centroSel, setCentroSel] = useState([]);\r\n const [deptoSel, setDeptoSel] = useState(\"\");\r\n const [jefes, setJefes] = useState([]);\r\n const [jefe, setJefe] = useState(\"\");\r\n const [empleados, setEmpleados] = useState([]);\r\n const [empeladosSelect, setEmpleadosSelect] = useState([]);\r\n const [aditional, setAditional] = useState(\"TODOS\");\r\n const [concepts, setConcepts] = useState([]);\r\n const [initialDate, setInitialDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(\"\");\r\n const [filtersOptions, setFiltersOptions] = useState({});\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n\r\n const [filters, setFilters] = useState({});\r\n\r\n let year = new Date().getFullYear();\r\n let month = new Date().getMonth();\r\n let days = [\r\n { name: `Enero - ${year}`, date: `${year}/01/01` },\r\n { name: `Febrero - ${year}`, date: `${year}/02/01` },\r\n { name: `Marzo - ${year}`, date: `${year}/03/01` },\r\n { name: `Abril - ${year}`, date: `${year}/04/01` },\r\n { name: `Mayo - ${year}`, date: `${year}/05/01` },\r\n { name: `Junio - ${year}`, date: `${year}/06/01` },\r\n { name: `Julio - ${year}`, date: `${year}/07/01` },\r\n { name: `Agosto - ${year}`, date: `${year}/08/01` },\r\n { name: `Septiembre - ${year}`, date: `${year}/09/01` },\r\n { name: `Octubre - ${year}`, date: `${year}/10/01` },\r\n { name: `Noviembre - ${year}`, date: `${year}/11/01` },\r\n { name: `Diciembre - ${year}`, date: `${year}/12/01` },\r\n ];\r\n\r\n console.log(\"DATES=>\", initialDate, endDate);\r\n\r\n useEffect(() => {\r\n props.ConceptsAction(\"\");\r\n getCompaniesOptions();\r\n\r\n let filters = [\r\n \"client\",\r\n \"projectCoordinator\",\r\n \"technicalName\",\r\n \"cityClient\",\r\n \"noMachine\",\r\n \"contactClient\",\r\n \"clientName\",\r\n \"typeWork\",\r\n \"REK\",\r\n ];\r\n\r\n let tmpObject = {};\r\n filters.forEach(async (filter) => {\r\n let { results } = await getFilterOptions(filter);\r\n tmpObject = {\r\n ...tmpObject,\r\n [filter]: results,\r\n };\r\n setFiltersOptions(tmpObject);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let newConcept = [];\r\n if (props.conceptsData && props.conceptsData.isOK) {\r\n console.log(\"CONCEPTS\", props.conceptsData.Concepts);\r\n let concepts = props.conceptsData.Concepts.results;\r\n\r\n if (concepts && concepts.length > 0) {\r\n concepts.map((concept) => {\r\n newConcept.push(concept);\r\n });\r\n }\r\n setConcepts(newConcept);\r\n props.ConceptsAction(\"PURGE\");\r\n } else if (props.conceptsError && props.conceptsError.isOK === false) {\r\n props.ConceptsAction(\"PURGE\");\r\n setLoading(false);\r\n }\r\n }, [props.conceptsData, props.conceptsError]);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n };\r\n props.getDeptosCenterAction(newParams, server);\r\n };\r\n\r\n useEffect(() => {\r\n if (centroSel.length > 0 && deptoSel.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n let { params, server } = getParams();\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:User_id\": params[\"tem:TrabID\"],\r\n \"tem:Centros\": centrosS.join(\",\"),\r\n \"tem:Departamentos\": deptosS.join(\",\"),\r\n };\r\n console.log(newParams);\r\n props.getJefesPerdiemAction(newParams, server);\r\n }\r\n }, [deptoSel]);\r\n\r\n const getEmpleados = () => {\r\n let { params, server } = getParams();\r\n if (centroSel.length > 0 && deptoSel.length > 0 && jefe.length > 0) {\r\n let centrosS = [];\r\n centroSel.map((sel) => {\r\n centrosS.push(sel.value);\r\n });\r\n let deptosS = [];\r\n deptoSel.map((sel) => {\r\n deptosS.push(sel.value);\r\n });\r\n\r\n let jefeS = [];\r\n jefe.map((sel) => {\r\n jefeS.push(sel.value);\r\n });\r\n\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:centros\": centrosS.join(),\r\n \"tem:deptos\": deptosS.join(),\r\n \"tem:Jefe\": jefeS.join(\",\"),\r\n \"tem:user_id\": params[\"tem:TrabID\"],\r\n };\r\n console.log(\"EMPLEADOS\", newParams);\r\n props.getEmpleadosAllAction(newParams, server);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.deptosCenterData && props.deptosCenterData.isOK) {\r\n setDeptos(props.deptosCenterData.DeptosCenter.depto);\r\n setCentros(props.deptosCenterData.DeptosCenter.cento);\r\n } else if (\r\n props.deptosCenterError &&\r\n props.deptosCenterError.isOK === false\r\n ) {\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n }\r\n }, [props.deptosCenterData, props.deptosCenterError]);\r\n\r\n useEffect(() => {\r\n if (props.jefesPerdiemData && props.jefesPerdiemData.isOK) {\r\n console.log(\"JEFES\", props.jefesPerdiemData.JefesPerdiem);\r\n setJefes(props.jefesPerdiemData.JefesPerdiem);\r\n } else if (\r\n props.jefesPerdiemError &&\r\n props.jefesPerdiemError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.jefesPerdiemData, props.jefesPerdiemError]);\r\n\r\n useEffect(() => {\r\n if (props.empleadosAllData && props.empleadosAllData.isOK) {\r\n console.log(\"EMPLEADOS\", props.empleadosAllData.EmpleadosAll);\r\n setEmpleados(props.empleadosAllData.EmpleadosAll);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empleadosAllData, props.empleadosAllError]);\r\n\r\n useEffect(() => {\r\n if (props.empRepoData && props.empRepoData.isOK) {\r\n console.log(\"EMP_REPO\", props.empRepoData.EmpRepo);\r\n ProcessData(props.empRepoData.EmpRepo);\r\n } else if (\r\n props.empleadosAllError &&\r\n props.empleadosAllError.isOK === false\r\n ) {\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n }\r\n }, [props.empRepoData, props.empRepoError]);\r\n\r\n useEffect(() => {\r\n if (props.reportConvertData && props.reportConvertData.isOK) {\r\n console.log(\"REPORT_CONVERT\", props.reportConvertData.ReportConvert);\r\n sendDataToGetUrl(props.reportConvertData.ReportConvert);\r\n } else if (\r\n props.reportConvertError &&\r\n props.reportConvertError.isOK === false\r\n ) {\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.reportConvertData, props.reportConvertError]);\r\n\r\n useEffect(() => {\r\n if (props.getXlsPerdiemData && props.getXlsPerdiemData.isOK) {\r\n console.log(\"DOWNLOAD_XLS\", props.getXlsPerdiemData.GetXlsPerdiem);\r\n downloadXLS(props.getXlsPerdiemData.GetXlsPerdiem);\r\n } else if (\r\n props.getXlsPerdiemError &&\r\n props.getXlsPerdiemError.isOK === false\r\n ) {\r\n alert(\"No se pudo descargar el reporte\");\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n }\r\n }, [props.getXlsPerdiemData, props.getXlsPerdiemError]);\r\n\r\n const ProcessData = (data) => {\r\n if (data && data.length > 0) {\r\n let { params } = getParams();\r\n let arrData = [];\r\n data.map((emp) => {\r\n let dat = {\r\n employee: emp.Nombre,\r\n center: emp.Centro_Costo,\r\n description: emp.Tecnologia,\r\n id: emp.Trab_ID,\r\n company: params[\"tem:IdEmpresa\"] || \"kimo\",\r\n };\r\n arrData.push(dat);\r\n });\r\n\r\n let dataS = {\r\n data: arrData,\r\n date:\r\n initialDate.getFullYear() +\r\n \"/\" +\r\n (initialDate.getMonth() + 1) +\r\n \"/\" +\r\n initialDate.getDate(),\r\n //\"dateEnd\": endDate,\r\n filters,\r\n };\r\n console.log(\"ReportConvert DATA=>\", dataS);\r\n\r\n props.ReportConvertAction(dataS);\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const sendDataToGetUrl = (dataEmp) => {\r\n console.log(\"getXlsPerdiem DATA=>\", dataEmp);\r\n if (dataEmp.results && dataEmp.results.length > 0) {\r\n let { params, server } = getParams();\r\n let emple = [];\r\n dataEmp.results.map((info, i) => {\r\n let da = {\r\n \"wcf:ReporteContaDetalle\": {\r\n \"wcf:Centro_Costo\": info.center,\r\n \"wcf:Ciudad\": info.cityClient,\r\n \"wcf:ContactoCliente\": info.contactClient,\r\n \"wcf:CoordinadorProy\": info.projectCoordinator,\r\n \"wcf:Importe\": info.total,\r\n \"wcf:NoMaquina\": info.noMachine,\r\n \"wcf:Nombre\": info.name,\r\n \"wcf:NombreCliente\": info.clientName,\r\n \"wcf:Numero\": info.number,\r\n \"wcf:RazonSocial\": info.client,\r\n \"wcf:Rek\": info.rek,\r\n \"wcf:Servicio\": info.typeWork,\r\n \"wcf:Tecnologia\": info.description,\r\n },\r\n };\r\n emple.push(da);\r\n });\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:UserID\": params[\"tem:TrabID\"],\r\n \"tem:Empleados\": {\r\n \"wcf:Empleados\": emple,\r\n \"wcf:Mes\": dataEmp.month,\r\n \"wcf:anio\": dataEmp.year,\r\n \"wcf:total\": dataEmp.total,\r\n },\r\n };\r\n console.log(\"getXlsPerdiem DATA=>\", newParams);\r\n\r\n props.getXlsPerdiemAction(newParams, server);\r\n props.ReportConvertAction(\"PURGE\", \"\");\r\n } else {\r\n alert(\"No se encuentran datos\");\r\n }\r\n };\r\n\r\n const downloadXLS = async (url) => {\r\n let res = null;\r\n if (localStorage.getItem(\"REACT_APP_IS_PRIVATE\") === \"0\") {\r\n const server = localStorage.getItem(\"REACT_APP_SERVER_DOWNLOAD\");\r\n\r\n const config = {\r\n method: \"POST\",\r\n body: JSON.stringify({ url: url }),\r\n };\r\n res = await fetch(server, config);\r\n } else {\r\n res = await fetch(url);\r\n }\r\n\r\n const blob = await res.blob();\r\n let arr = url.split(\"/\");\r\n let name = arr[arr.length - 1];\r\n\r\n download(blob, name);\r\n props.getXlsPerdiemAction(\"PURGE\", \"\");\r\n props.getDeptosCenterAction(\"PURGE\", \"\");\r\n props.getJefesPerdiemAction(\"PURGE\", \"\");\r\n };\r\n\r\n const dataOptions = () => {\r\n let options = concepts;\r\n // return options.map((option) => (\r\n // <option key={option.concept} value={option.concept}>\r\n // {option.concept}\r\n // </option>\r\n // ));\r\n return options.map((option) => ({\r\n value: option.concept,\r\n label: option.concept,\r\n }));\r\n };\r\n\r\n const getFilterOptionsFromState = (filter) => {\r\n if (filtersOptions[filter]) {\r\n return filtersOptions[filter].map((option) => ({\r\n value: option,\r\n label: option,\r\n }));\r\n // <option key={option + i} value={option}>\r\n // {option}\r\n // </option>\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const getFilterOptions = async (filter) => {\r\n const url =\r\n localStorage.getItem(\"REACT_APP_PERDIEM\") +\r\n `perdiems/reports/filters-options?filter=${filter}`;\r\n const config = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n let res = await fetch(url, config);\r\n return res.json();\r\n };\r\n\r\n const dataDates = () => {\r\n return days.map((option, i) => (\r\n <option key={i} value={option.date}>\r\n {option.name}\r\n </option>\r\n ));\r\n };\r\n\r\n const selecEmpleados = (option) => {\r\n let empSel = empeladosSelect;\r\n if (empSel.indexOf(option.id) !== -1) {\r\n empSel = empSel.filter((item) => item !== option.id);\r\n } else {\r\n empSel.push(option.id);\r\n }\r\n setEmpleadosSelect(empSel);\r\n console.log(\"EMP\", empSel);\r\n };\r\n\r\n const employeesTable = () => {\r\n return empleados.map((option) => (\r\n <tr>\r\n <td style={{ width: \"10%\" }}>\r\n <input\r\n name=\"employee\"\r\n type=\"checkbox\"\r\n value={option.id}\r\n className=\"with-gap\"\r\n id={option.id}\r\n onChange={() => {\r\n selecEmpleados(option);\r\n }}\r\n />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: \"45%\" }}>{option.id}</td>\r\n <td style={{ width: \"45%\" }}>{option.name}</td>\r\n </tr>\r\n ));\r\n };\r\n\r\n const selectOption = (type, v) => {\r\n if (v) {\r\n let todos = v.filter((item) => item.value === \"TODOS\");\r\n if (todos.length > 0) v = todos;\r\n }\r\n\r\n setFilters({\r\n ...filters,\r\n [type]: v.map((val) => val.value),\r\n });\r\n };\r\n\r\n const downloadReport = async () => {\r\n let { params, server } = getParams();\r\n if (empeladosSelect && empeladosSelect.length > 0) {\r\n let newParams = {\r\n \"tem:sToken\": params[\"tem:sToken\"],\r\n \"tem:IdEmpresa\": params[\"tem:IdEmpresa\"],\r\n \"tem:Empleados\": empeladosSelect.join(),\r\n };\r\n console.log(newParams);\r\n props.getEmpRepoAction(newParams, server);\r\n } else {\r\n alert(\"Selecciona por lo menos 1 empleado\");\r\n }\r\n };\r\n\r\n const selectCenters = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setCentroSel(selected);\r\n };\r\n\r\n const selectDeptos = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setDeptoSel(selected);\r\n };\r\n\r\n const selectBoss = (v) => {\r\n // console.log('SI EXISTE', v)\r\n let selected = v;\r\n if (selected == null) {\r\n selected = [];\r\n }\r\n // console.log('selected', selected);\r\n setJefe(selected);\r\n };\r\n\r\n const getCenters = () => {\r\n let center = centros;\r\n let newCenters = [];\r\n if (center && center.length > 0) {\r\n center.map((center) => {\r\n newCenters.push({\r\n value: center.Centro_ID,\r\n label: center.Descripcion,\r\n });\r\n });\r\n return newCenters;\r\n }\r\n };\r\n\r\n const getDeptos = () => {\r\n let departamento = deptos;\r\n let newdepartamento = [];\r\n if (departamento && departamento.length > 0) {\r\n departamento.map((dep) => {\r\n newdepartamento.push({\r\n value: dep.Depto_ID,\r\n label: dep.Descripcion,\r\n });\r\n });\r\n return newdepartamento;\r\n }\r\n };\r\n\r\n const getBoss = () => {\r\n let boss = jefes;\r\n let newdboss = [];\r\n if (boss && boss.length > 0) {\r\n boss.map((dep) => {\r\n newdboss.push({\r\n value: dep.Trab_id_Jefe,\r\n label: dep.NombreCompleto,\r\n });\r\n });\r\n return newdboss;\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle\r\n className=\"path\"\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n strokeWidth=\"2\"\r\n strokeMiterlimit=\"10\"\r\n />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO CONTABILIDAD\" icon=\"mdi mdi-calculator\" />\r\n\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">\r\n Concentrado de reporte de Contabilidad\r\n </h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">\r\n Por favor, selecciona los datos para la generación del\r\n reporte. En esta sección podrás descargar un reporte con\r\n todos los servicios de uno o varios empleados en un rango\r\n de fechas.\r\n </h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los centros.\"\r\n options={getCenters()}\r\n onChange={(v) => selectCenters(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getDeptos()}\r\n onChange={(v) => selectDeptos(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <Select\r\n disabled={centroSel.length > 0 ? false : true}\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Selecciona los departamentos\"\r\n options={getBoss()}\r\n onChange={(v) => selectBoss(v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n {aditional.length > 0 &&\r\n centroSel.length > 0 &&\r\n deptoSel.length > 0 &&\r\n jefe.length > 0 ? (\r\n <p>\r\n <a\r\n disabled={jefe.length > 0 ? false : true}\r\n className=\"btn btn-info\"\r\n href=\"#collapseExample\"\r\n data-toggle=\"collapse\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n onClick={() => {\r\n getEmpleados();\r\n }}\r\n >\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n ) : null}\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">\r\n Listado de Empleados\r\n </h4>\r\n <div>\r\n <table\r\n id=\"example23\"\r\n className=\"display nowrap table table-hover table-striped table-bordered\"\r\n cellSpacing=\"0\"\r\n width=\"100%\"\r\n >\r\n <thead>\r\n <tr>\r\n <th style={{ width: \"10%\" }}>\r\n Selección\r\n </th>\r\n <th style={{ width: \"45%\" }}>ID</th>\r\n <th style={{ width: \"45%\" }}>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>{employeesTable()}</tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Filtros</h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6 col-sm-12\">\r\n <label>Selecciona un Mes</label>\r\n <br />\r\n <DatePicker\r\n selected={initialDate}\r\n onChange={(date) => setInitialDate(date)}\r\n dateFormat=\"MM/yyyy\"\r\n placeholderText=\"Seleccionar Fecha\"\r\n showMonthYearPicker\r\n className=\"form-control\"\r\n locale=\"es-ES\"\r\n />\r\n {/* <select\r\n className=\"form-control custom-select\"\r\n data-placeholder=\"Selecciona un mes\"\r\n tabIndex=\"1\"\r\n onChange={(val) => {\r\n setInitialDate(val.target.value);\r\n }}\r\n >\r\n <option value=\"0\">Selecciona un mes</option>\r\n {dataDates()}\r\n </select> */}\r\n </div>\r\n {/* <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setInitialDate(val.target.value) }} />\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"date\" className=\"form-control\" onChange={(val) => { setEndDate(val.target.value) }} />\r\n\r\n </div>\r\n </div>*/}\r\n\r\n <div className=\"col-md-6 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={dataOptions()}\r\n onChange={(v) => selectOption(\"concept\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Razón Social Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"client\")}\r\n onChange={(v) => selectOption(\"client\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Coordinador de Proyecto</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"projectCoordinator\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"projectCoordinator\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Técnico de KRONES</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"technicalName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"technicalName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Ciudad</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"cityClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"cityClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>No. Máq</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"noMachine\"\r\n )}\r\n onChange={(v) => selectOption(\"noMachine\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Contacto Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"contactClient\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"contactClient\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>Nombre del Cliente</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"clientName\"\r\n )}\r\n onChange={(v) =>\r\n selectOption(\"clientName\", v)\r\n }\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>\r\n Servicio, reporte o respaldo de datos\r\n </label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\r\n \"typeWork\"\r\n )}\r\n onChange={(v) => selectOption(\"typeWork\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-12\">\r\n <div className=\"form-group\">\r\n <label>REK</label>\r\n <Select\r\n styles={{\r\n menu: (provided) => ({\r\n ...provided,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n placeholder=\"Seleciona\"\r\n options={getFilterOptionsFromState(\"REK\")}\r\n onChange={(v) => selectOption(\"REK\", v)}\r\n isMulti={true}\r\n noOptionsMessage={() =>\r\n \"No se encontraron resultados.\"\r\n }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-info m-l-5\"\r\n onClick={() => downloadReport()}\r\n >\r\n Descargar Reporte\r\n <i className=\"mdi mdi-download\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n }\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n deptosCenterData: state.deptosCenter.deptosCenterData,\r\n deptosCenterError: state.deptosCenter.deptosCenterError,\r\n\r\n jefesPerdiemData: state.jefesPerdiem.jefesPerdiemData,\r\n jefesPerdiemError: state.jefesPerdiem.jefesPerdiemError,\r\n\r\n empleadosAllData: state.empleadosAll.empleadosAllData,\r\n empleadosAllError: state.empleadosAll.empleadosAllError,\r\n\r\n empRepoData: state.empRepo.empRepoData,\r\n empRepoError: state.empRepo.empRepoError,\r\n\r\n reportConvertData: state.reportConvert.reportConvertData,\r\n reportConvertError: state.reportConvert.reportConvertError,\r\n\r\n getXlsPerdiemData: state.getXlsPerdiem.getXlsPerdiemData,\r\n getXlsPerdiemError: state.getXlsPerdiem.getXlsPerdiemError,\r\n\r\n dataUserData: state.dataUser.dataUserData,\r\n dataUserError: state.dataUser.dataUserError,\r\n\r\n conceptsData: state.concepts.conceptsData,\r\n conceptsError: state.concepts.conceptsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDeptosCenterAction,\r\n getJefesPerdiemAction,\r\n getEmpleadosAllAction,\r\n getEmpRepoAction,\r\n ReportConvertAction,\r\n getXlsPerdiemAction,\r\n ConceptsAction,\r\n};\r\n\r\nexport default withRouter(\r\n connect(mapStateToProps, mapDispatchToProps)(AccountingReport)\r\n);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { getDeptosCenterAction } from '../../api/actions/perdiem/DeptosCenterAction';\r\n\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/DirectorGralLeftsidebar';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport { getParams } from '../../utils';\r\nimport download from 'downloadjs';\r\n\r\nconst ServiceReportsReport = props => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n getCompaniesOptions();\r\n }, []);\r\n\r\n const getCompaniesOptions = () => {\r\n let { params, server } = getParams();\r\n let newParams = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n 'tem:User_id': params['tem:TrabID'],\r\n }\r\n props.getDeptosCenterAction(newParams, server)\r\n // props.getListCompaniesRptAction(params, server);\r\n };\r\n\r\n const centersOptions = () => {\r\n let options = ['100-Loeffler Max', '101-Russek Max', '102-Corporativo Max', '103-IASA Max', '200-Loeffler Leh', '201-Russek Leh', '202-Corporativo Leh', '203-IASA Leh', '300-Loeffler Coreh', '301-Russek Coreh', '302-Iasa Coreh', '303-Corporativo Coreh', '304-Corporativo Russek Coreh', '305-Corporativo Loeffler Coreh', '306-Corporativo Iasa Coreh', '400-Loeffler PFM', '401-Russek PFM', '402-Iasa PFM', '403-Corporativo PFM', '404-Corporativo Russek PFM', '405-Corporativo Loeffler PFM', '406-Corporativo Iasa PFM', '500-Loeffler Acierto', '501-Russek Acierto', '502-IASA Acierto', '504-Corporativo Russek', '505-Corporativo Loeffler', '600-Loeffler Russek', '601-Russek Russek', '602-Iasa Russek', '604-Corporativo Russek', '605-Corporativo Loeffler', '700-Loeffler IASA', '701-Russek IASA', '702-IASA IASA', '704-Corporativo IASA', '705-Corporativo Loeffler'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const deptosOptions = () => {\r\n\r\n let options = ['0-GENERAL', '1-Liquidos', '2-Ovulos y supositorios', '3-Cremas', '4-Solidos', '5-Inyectables', '6-Acondicionamiento', '7-Polvos gran volumen', '8-Impresion', '9-Mantenimiento', '10-Almacen', '11-Limpieza y jardineria', '12-Comedor', '13-Roperia', '14-Vigilancia', '15-Administracion Produccion', '16-Fisico quimico', '17-Microbiologia', '18-Documentacion', '19-Validacion', '20-Desarrollo', '21-Contabilidad', '22-Tesoreria', '23-Recursos Humanos', '24-Compras', '25-Sistemas', '26-Ventas privada', '27-Ventas gobierno', '28-Maquilas', '29-Credito y cobranza', '30-Mercadotecnia', '31-Embarques', '32-Planeacion', '33-Inspeccion', '34-Autoservicios', '35-Diseno', '36-Asuntos Regulatorios', '37-Aseguramiento de Calidad', '38-Sistemas de Calidad', '39-Direccion General', '40-Administracion y Finanzas', '41-Operaciones', '42-Control de Calidad', '43-Marcas propias', '44-Contraloría', '45-Farmacenter', '46-Manufactura', '47-Ingeniería', '48-Cadena de Suministro', '100-Fabricacion llenado', '101-Líquidos 1', '102-Liquidos 2', '103-Óvulos y supositorios', '104-Cremas', '105-Sólidos', '106-Inyectables', '111-Polvos gran volumen', '112-Acondicionamiento', '115-Ropería', '116-Mantenimiento', '117-Intendencia', '118-Proyectos', '119-Seguridad e Higiene', '120-Sistemas Criticos', '200-Laboratorio FQ y MB', '221-Microbiología', '222-Inspección de Calidad', '223-Sistemas de Calidad', '224-Validación', '225-Asuntos Regulatorios', '226-Desarrollo', '300-Planeación', '331-Almacén IASA', '332-Centro de Distribución', '333-Almacén 110', '334-Almacén 114', '400-Rep. Sureste', '441-Rep. Especiales', '442-Rep. Norte DF', '443-Rep. Sur DF', '444-Rep. Occidente Centro', '445-Rep. Norte', '446-Rep. Farma', '447-Sup DF', '448-Rep. Similares', '449-Sup Occidente', '450-Jefe Demos', '451-Gerencia Genéricos', '452-Marcas Propias', '500-Demovendedor', '551-Gerente de distrito', '552-Gerente de Monterrey', '553-Gerente de Guadalajara', '554-Delegado Médico DF 1', '555-Delegado Médico DF 2', '556-Delegado Médico DF 3', '557-Delegado Médico DF 4', '558-Delegado Médico DF 5', '559-Delegado Médico DF 6', '560-Delegado Médico DF 7', '561-Delegado Médico DF 8', '562-Delegado Médico DF 9', '563-Delegado Médico DF 10', '564-Delegado Médico GDL 1', '565-Delegado Médico GDL 2', '566-Delegado Médico GDL 3', '567-Delegado Médico MTY 1', '568-Delegado Médico MTY 2', '569-Gte. de Exportaciones', '600-Gerencia de Ventas Veterinaria', '661-Rep. C55-C60', '662-Rep. N15', '663-Rep. S90', '664-Rep. S30', '665-Rep. S20', '666-Rep. S11', '667-Rep. S10', '668-Rep C40-C-50-C75', '670-Mercadotecnia', '671-Sup Sureste', '672-Sup. DF y Bajío', '673-Promos de Autoservicio', '700-Rep', '701-Distribuidora', '702-Promos de Veterinaria', '703-Promos de Humana', '704-Innopharma', '705-Relaciones Industriales ', '706-Selección e Integración P', '707-Desarrollo Organizacional', '708-Administración y Finanzas', '709-Impuestos', '710-Planeación Financiera', '711-Inteligencia de Negocios', '712-Acondicionamiento Sólidos', '713-Acondicionamiento Líquidos 1', '714-Acondicionamiento Ovu y Sup', '715-Promoffler', '716-Coordinación Represent. Veter.', '717-Representantes Veterinaria', '718-Desarrollo Veterinario', '719-Codificado', '720-Dirección General'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const chiefsOptions = () => {\r\n let options = ['9-FERNANDO', '13-LUIS', '17-GONZALO', '19-SILVIA ROSANA', '20-RICARDO', '23-DIEGO', '24-ELIZABETH', '27-ARTURO', '108-ASTRID', '193-ALBERTO DANIEL', '209-PATRICIA', '237-CARLOS ALBERTO', '416-ENRIQUE', '556-ADELAIDA', '754-ALEJANDRO CESAR', '829-IVETTE', '948-CLAUDIA', '1023-ELIZABETH', '1042-NOEMI', '1083-JUAN CARLOS', '1095-BERENICE', '1267-JOAQUIN', '1275-MIGUEL ANGEL', '1285-GENARO', '1412-ARACELI ELIGIA', '1527-JOSE ARTURO', '1528-JAIME', '1546-MARIA TERESA', '1547-RAUL', '1548-JORGE ARIEL', '1549-GERMAN', '1550-JESUS FERNANDO', '1554-JOSE ANGEL', '1555-ANEL', '1556-IRMA', '1557-ALEJANDRO', '1559-JULIO CESAR', '1701-JUAN PABLO', '1761-JORGE GABRIEL', '1791-ALFONSO', '1832-JOSE DE JESUS', '1871-YESSICA LILIA', '1882-LUIS ANTONIO', '1883-JOSE LUIS', '2081-LUIS ANGEL', '2121-OSCAR JORGE', '2217-JUAN MANUEL', '2304-RICARDO', '2309-JOSE MARTIN', '2313-ANTONIO', '2315-LORENA', '2335-JOSE ANTONIO', '2336-HUMBERTO', '2376-APOLO LEONARDO', '2378-CARLOS ROBERTO', '2380-MAGALY', '2388-JOSE ANTONIO GUADALUPE', '2440-OSCAR CUAUHTEMOC', '2442-OTILIO', '2486-CECILIA', '2490-JORGE', '2522-OSCAR', '2537-MIGUEL', '2549-TERESA', '2555-ARTURO', '2570-LUIS FERNANDO', '2600-ALEJANDRO RAFAEL', '2631-JUAN CARLOS', '2647-OSCAR', '2654-JAIME DAVID', '2684-MARIA DEL ROSARIO', '2699-JOSE EVARISTO', '2717-LUIS STEEB', '2718-GUILLERMO', '2740-JOSE ALBERTO', '2744-MARIO CESAR', '2758-FRANCISCO', '2763-JACOBO', '2786-LEOPOLDO', '2803-FERNANDO', '2844-LUIS JAVIER', '2845-ZAYURI ARSIL', '2865-ANTONIO FRANCISCO', '2869-LUIS ALFONSO', '2877-JOSE ANTONIO', '2939-RUBEN', '2940-SERGIO', '2963-JOSE CARLOS', '2964-JUAN MELCHOR', '2981-IVAN EDUARDO', '2982-JESUS EMANUEL', '2994-MAURICIO', '3030-MARIA ISABEL', '3036-JORGE LUIS', '3038-MARISOL', '3056-ENRIQUE', '3071-PATRICIA', '3089-ROOSIVELT', '3127-VANESA', '3142-FRANCISCO JAVIER', '3228-OSCAR LEOPOLDO', '3229-CLAUDIA DEL CARMEN', '3307-JOSE ANTONIO', '3319-EFRAIN', '3327-JAIME ALEJANDRO', '3335-ARTURO', '3343-MARTHA LETICIA', '3373-RODRIGO', '3396-EDUARDO', '3429-BOGAR', '3455-SANDRA', '3506-ANA LETICIA', '3602-SERGIO', '3650-JORGE IGNACIO', '3703-JESSICA IVONNE', '3717-SAUL', '3728-VICTOR', '3729-JULIO CESAR', '3736-MARCO ANTONIO', '3808-JOSE LUIS', '3824-EMMA GABRIELA', '3842-GABRIEL', '3898-MARIA DEL REFUGIO', '3921-LIZ JANET', '3926-MIRIAM GUADALUPE', '3945-GUADALUPE JANNET', '3946-JOSE JUAN', '3982-FRANCISCO JAVIER', '3997-ARIKSANDY', '4050-MARIA DEL CARMEN', '4051-HECTOR', '4055-ISMAEL', '4190-EDGAR GUSTAVO', '4231-ESMERALDA BELINDA', '4310-EDGAR FRANCISCO', '4322-LUIS ANTONIO', '4332-ERNESTO', '4350-JULIETA', '4395-CLAUDIO ANWAR', '4401-NORMA ANGELICA', '4434-JUAN CARLOS', '4436-ALEJANDRO', '4520-FELIPE', '4528-ABEL', '4531-SILVIA ALICIA', '4533-CARLOS', '4564-GUILLERMO', '4694-NATALIA', '4700-ALBERTO EMILIO', '4754-JUAN', '4769-IVON', '4776-LUIS RAFAEL', '4784-VICTOR MANUEL', '4823-SARA ANGELICA', '4831-CLAUDIA MARISOL', '4851-CLAUDIA ALEJANDRA', '4858-JORGE', '4919-SANDRA', '4933-GABRIELA', '4950-ISMAEL ADRIAN', '4983-SAMUEL GERMANY', '4989-KENIA', '5020-MIGUEL ANGEL', '5040-DANIEL', '5043-JOSE LUIS', '5049-NANCY YARETH', '5124-OSWALDO', '5143-VICTOR', '5162-EDUARDO', '5164-KARLA XOCHITL', '5181-LUIS IVAN', '5207-ELEONORA ALEJANDRA', '5211-NOE MARTIN', '5216-ANDONI', '5224-MARIA LUISA', '5225-SUSANA FERNANDA', '5235-EDGAR', '5256-HAZIEL ABDEL', '5262-EVARISTO', '5267-MARIA FERNANDA', '5352-RAUL', '5542-JOEL', '5621-MARTIN RAUL', '5658-JOSE DAVID', '5660-MARIA JUDITH', '5687-BETHEL'];\r\n\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const dataOptions = () => {\r\n let options = ['Trabajo con cliente (servicio nacional)', 'Trabajo con cliente (servicio nacional-contingencia)', 'Trabajo con cliente (servicio extranjero)', 'Horas en garantía (sin cobro al cliente)', 'Día de descanso en sitio (sábado)', 'Día de descanso en sitio (domingo)', 'Visita oficina', 'Mantenimiento de auto', 'Capacitación-elearnings (nacional)', 'Capacitación-elearnings (extranjero)', 'Vacaciones', 'Incapacidad', 'Días stand by', 'Reunión anual de servicio técnico', 'Días festivos']\r\n return options.map(option => <option>{option}</option>)\r\n }\r\n\r\n const employeesTable = () => {\r\n let options = [\r\n { id: '3365', name: 'IVETTE' },\r\n { id: '3366', name: 'DIANA' },\r\n { id: '3361', name: 'VIRGINIA' },\r\n { id: '3362', name: 'JUAN ALBERTO' },\r\n { id: '3358', name: 'LUIS ENRIQUE' },\r\n { id: '3350', name: 'NAARA SARAHI' },\r\n { id: '3351', name: 'JUANA VIRGINIA' },\r\n { id: '3352', name: 'ELSA' },\r\n { id: '3353', name: 'J LUZ' },\r\n { id: '3354', name: 'MARTHA ANGELICA' },\r\n { id: '3224', name: 'MARIA DEL PILAR' },\r\n { id: '3069', name: 'LAURA' },\r\n { id: '3070', name: 'MARIA AZUCENA' },\r\n { id: '3066', name: 'MANUELA' },\r\n { id: '3067', name: 'ANTHONY' },\r\n { id: '3055', name: 'ALICIA' },\r\n { id: '3046', name: 'JULIO CESAR' },\r\n { id: '2970', name: 'ESAHU' },\r\n { id: '2965', name: 'GABRIELA NATHALY' },\r\n { id: '2966', name: 'HUGO URIEL' },\r\n { id: '2930', name: 'VIRIDIANA' },\r\n { id: '2937', name: 'ALMA PATRICIA' },\r\n { id: '2619', name: 'ROBERTO' },\r\n { id: '2598', name: 'TERESA' },\r\n { id: '2469', name: 'MARIA MERCEDES' },\r\n { id: '2126', name: 'PATRICIA' },\r\n { id: '1820', name: 'JOSE ANTONIO' },\r\n { id: '1534', name: 'SEBASTIANA' },\r\n { id: '1489', name: 'MARTHA ARACELI' },\r\n { id: '1316', name: 'PETRONILA' },\r\n { id: '1366', name: 'ISMAEL' },\r\n { id: '986', name: 'JAVIER' },\r\n { id: '782', name: 'OMAR' },\r\n { id: '6', name: 'EMILIO' }\r\n ]\r\n\r\n return options.map(option => <tr>\r\n <td style={{ width: '10%' }}>\r\n <input name=\"employee\" type=\"radio\" value={option.id} className=\"with-gap\" id={option.id} />\r\n <label htmlFor={option.id}></label>\r\n </td>\r\n <td style={{ width: '45%' }}>{option.id}</td>\r\n <td style={{ width: '45%' }}>{option.name}</td>\r\n </tr>)\r\n }\r\n\r\n const downloadReport = async () => {\r\n let res = await fetch('https://siconsultaservicios.softwaresicoss.com.mx/api/perdiems/reports/services-reports', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n const blob = await res.blob();\r\n\r\n download(blob, 'Concentrado de reportes de servicios.xlsx');\r\n }\r\n\r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n <Leftsidebar />\r\n </div>\r\n </>\r\n );\r\n } else {\r\n\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"CONCENTRADO REPORTES\" icon=\"mdi mdi-chart-line\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"card card-outline-info\">\r\n <div className=\"card-header\">\r\n <h4 className=\"m-b-0 text-white m-t-10 m-b-10\">Concentrado de reporte de Servicio</h4>\r\n <h6 className=\"card-subtitle text-white m-t-10\">Por favor, selecciona los datos del empleado a seleccionar. En esta sección podrás descargar un reporte con todos los servicios de un empleado.</h6>\r\n </div>\r\n <div className=\"card-body\">\r\n <form className=\"m-t-20\">\r\n <h3 className=\"box-title\">Datos Generales </h3>\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Centro</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option>Selecciona un Centro ...</option>\r\n {centersOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Departamento</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option>Selecciona un Departamento ...</option>\r\n {deptosOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Jefe Inmediato</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option value=\"0\">Selecciona un Jefe ...</option>\r\n {chiefsOptions()}\r\n </select>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <div className=\"form-group\">\r\n <label>Datos Adicionales</label>\r\n <select className=\"form-control custom-select\" data-placeholder=\"Choose a Category\" tabindex=\"1\">\r\n <option value=\"0\">Selecciona una Opción ...</option>\r\n {dataOptions}\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-2 mb-5\">\r\n <p>\r\n <a className=\"btn btn-info\" data-toggle=\"collapse\" href=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">\r\n Consultar Empleados\r\n </a>\r\n </p>\r\n <div className=\"collapse\" id=\"collapseExample\">\r\n <div className=\" mt-5\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h4 className=\"card-title\">Listado de Empleados</h4>\r\n <div>\r\n <table id=\"example23\" className=\"display nowrap table table-hover table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n <thead>\r\n <tr>\r\n <th>Selección</th>\r\n <th>ID</th>\r\n <th>Nombre</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {employeesTable()}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h3 className=\"box-title mt-5\">Selección de Fechas </h3>\r\n <hr className=\"m-t-0\" />\r\n <div className=\"row p-20\">\r\n <div className=\"col-md-6\">\r\n <label>Fecha de Inicio</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"01/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <label>Fecha Final</label>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control\" id=\"datepicker-autoclose\" value=\"31/08/2021\" />\r\n <div className=\"input-group-append\">\r\n <span className=\"input-group-text\"><i className=\"icon-calender\"></i></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-12 mt-5 mb-5\">\r\n <button type=\"button\" className=\"btn btn-info m-l-5\" onClick={() => downloadReport()}>Descargar Reporte <i className=\"mdi mdi-download\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <Footer />\r\n </div>\r\n </div >\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dataUserData: state.dataUser.dataUserData,\r\n\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n\r\n getDeptosCenterAction\r\n\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ServiceReportsReport));\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport Reports from '../pages/DirectorGral/Reports';\r\nimport VacationsCalendar from '../pages/DirectorGral/CalendarVacations'\r\nimport Home from '../pages/RhDirector/Home.js';\r\nimport Login from '../pages/login/Login.js';\r\nimport RecoverPassword from '../pages/login/RecoverPassword';\r\nimport Error404 from '../pages/errors/Error404.js';\r\nimport AccountingReport from '../pages/DirectorGral/AccountingReport';\r\nimport ServiceReportsReport from '../pages/DirectorGral/ServiceReportsReport';\r\nimport ReportVacationsIncidents from '../pages/systemAdmin/ReportVacationsIncidents';\r\nimport TechnicalServicesConcentrate from '../pages/systemAdmin/TechnicalServicesConcentrate';\r\n\r\nconst DirectorGral = () => {\r\n return (\r\n <Switch>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <Reports />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/vacation-calendar`} exact >\r\n <VacationsCalendar />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/general-report-accounting`} exact >\r\n <AccountingReport />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/general-report-services`} exact >\r\n <ServiceReportsReport />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/technical-services-concentrate`}>\r\n <TechnicalServicesConcentrate />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/report-vacations-incidents`}>\r\n <ReportVacationsIncidents />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n};\r\n\r\nexport default DirectorGral;\r\n","import React from 'react';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport useScript from '../../hooks/useScript';\r\nimport Footer from '../layout/Footer';\r\nimport { connect } from \"react-redux\";\r\nimport { getLoginAction } from \"../../api/actions/common/LoginAction.js\";\r\nimport { resetStore } from \"../../api/actions/common/ResetAllStoreAction\";\r\n\r\nconst ErrorLogInExpired = props => {\r\n const logo = process.env.PUBLIC_URL + '/assets/images/Logo.png';\r\n\r\n props.getLoginAction(\"PURGE\", \"\");\r\n sessionStorage.clear();\r\n props.resetStore();\r\n\r\n useScript('/assets/js/custom.js');\r\n\r\n return (\r\n <section id=\"wrapper\" className=\"error-page\">\r\n <div className=\"error-box\">\r\n <div className=\"error-body text-center\">\r\n <img src={logo} style={ { width: '500px' } } />\r\n <h3 className=\"text-uppercase\">Sesión Finalizada por Inactividad</h3>\r\n <p className=\"text-muted m-t-30 m-b-30\">Por seguridad su sesión ha finalizado</p>\r\n Para ingresar nuevamente, por favor haga click <br/>\r\n <p>\r\n <Link to={`${process.env.PUBLIC_URL}/login`} className=\"btn btn-info btn-rounded waves-effect waves-light m-b-40\">aquí</Link>\r\n </p>\r\n </div>\r\n <div className=\"text-center\">\r\n <Footer />\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getLoginAction,\r\n resetStore,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ErrorLogInExpired));","import React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport Login from '../pages/login/Login.js';\nimport RecoverPassword from '../pages/login/RecoverPassword';\nimport ErrorLogInExpired from '../pages/errors/ErrorLogInExpired.js';\n\nconst CommonRoutes = () => {\n return (\n <Switch>\n <Route path={`${process.env.PUBLIC_URL}/expired`}>\n <ErrorLogInExpired />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/login`}>\n <Login />\n </Route>\n\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\n <RecoverPassword />\n </Route>\n\n <Route>\n <Login />\n </Route>\n <Route>\n <ErrorLogInExpired />\n </Route>\n </Switch>\n );\n};\n\nexport default CommonRoutes;\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/ReceiptOperatorLeftsidebar.js';\r\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\r\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\r\nimport { getEmployeeVacationsAction } from '../../api/actions/jefe/EmployeeVactionsAction';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { getParams } from '../../utils';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\n\r\nconst Home = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [msgData, setMsgData] = useState({});\r\n const [modalVacations, setModalVacations] = useState({});\r\n const [showModalVacations, setShowModalVacations] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n props.getWelcomeMessageAction(params, server);\r\n \r\n validateSurveys();\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\r\n setMsgData({\r\n titulo: props.welcomeMessageData.WelcomeMessage.titulo,\r\n msg: props.welcomeMessageData.WelcomeMessage.mensaje\r\n });\r\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\r\n setMsgData({\r\n titulo: '',\r\n msg: ''\r\n });\r\n props.getWelcomeMessageAction('PURGE', '');\r\n }\r\n\r\n setLoading(false);\r\n\r\n }, [props.welcomeMessageData, props.welcomeMessageError]);\r\n\r\n const validateSurveys = () => {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n props.getSiBalanceAction(params, server);\r\n if (sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1') {\r\n const dataSend = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:TrabID\": params['tem:TrabID']\r\n }\r\n props.getEmployeeVacationsAction(dataSend, server)\r\n console.log('USER_DATA', params)\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.employeeVacationsData && props.employeeVacationsData.isOK) {\r\n if (props.employeeVacationsData?.EmployeeVacations.length > 0) {\r\n let data = {\r\n title: 'AVISO IMPORTANTE',\r\n message: 'Las siguientes incidencias y/o vacaciones est�n pendientes por autorizar o rechazar, por lo que recomendamos se realice la autorizaci�n o rechazo lo antes posible:',\r\n employees: props.employeeVacationsData.EmployeeVacations\r\n };\r\n setShowModalVacations(true);\r\n setModalVacations(data);\r\n }\r\n }\r\n if (props.dataUserError && props.dataUserError.isOK === false) {\r\n props.getEmployeeVacationsAction('PURGE', {});\r\n }\r\n console.log('EMPLOYEE_VACATIONS', props.employeeVacationsData);\r\n }, [props.employeeVacationsData, props.incidentAlertError]);\r\n \r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n </div>\r\n </>\r\n );\r\n} else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Inicio\" icon=\"mdi mdi-home\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card \">\r\n <div className=\"card-header\">\r\n <div className=\"col-md-12\">\r\n <Link to={`${process.env.PUBLIC_URL}/welcomeMsg/edit`}>\r\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\"><i className=\"mdi mdi-pencil\"></i> Editar Mensaje</button>\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"text-center\">\r\n <h3 className=\"mb-3\">{msgData.titulo}</h3>\r\n </div>\r\n <div>\r\n <ReactQuill\r\n theme=\"bubble\"\r\n readOnly={true}\r\n value={msgData.msg}\r\n modules={{ toolbar: false }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1' ) && (\r\n <Modal\r\n show={showModalVacations}\r\n onHide={() => setShowModalVacations(false)}\r\n size=\"lg\"\r\n aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{modalVacations.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\r\n <p>{modalVacations.message}</p>\r\n {modalVacations.employees && modalVacations.employees.length > 0 && (\r\n <table className='table-container'>\r\n <thead>\r\n <tr>\r\n <th style={{ textAlign: 'center' }}>No.Trabajdor</th>\r\n <th style={{ textAlign: 'center' }}>Nombre Completo</th>\r\n <th style={{ textAlign: 'center' }}>Tipo de solicitud</th>\r\n <th style={{ textAlign: 'center' }}>ReportaID</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {modalVacations.employees.map((item, index) => (\r\n <tr key={index}>\r\n <td style={{ textAlign: 'center' }}>{item.TrabID}</td>\r\n <td style={{ textAlign: 'center' }}>{item.NombreCompleto}</td>\r\n <td style={{ textAlign: 'center' }}>{item.TipoSolString}</td>\r\n <td style={{ textAlign: 'center' }}>{item.ReportaID}</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n )}\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={() => setShowModalVacations(false)}>\r\n Cerrar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n )}\r\n \r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\r\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\r\n employeeVacationsData: state.employeeVacations.employeeVacationsData,\r\n employeeVacationsError: state.employeeVacations.employeeVacationsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getWelcomeMessageAction,\r\n getEmployeeVacationsAction,\r\n getSiBalanceAction,\r\n\r\n\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));","import React, { useEffect, useState } from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport Home from '../pages/ReceiptOperator/Home.js';\r\n\r\nimport Login from '../pages/login/Login.js';\r\nimport RecoverPassword from '../pages/login/RecoverPassword';\r\nimport Error404 from '../pages/errors/Error404.js';\r\nimport PayrollReceipts from '../pages/systemAdmin/PayrollReceipts';\r\n\r\n\r\n\r\nconst ReceiptOperatorRoutes = (props) => {\r\n \r\n return (\r\n <Switch>\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact>\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n {<Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <PayrollReceipts />\r\n </Route>}\r\n\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n};\r\n\r\nexport default ReceiptOperatorRoutes;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport Topbar from '../layout/Topbar.js';\r\nimport Leftsidebar from '../layout/RHSpecialLeftsidebar.js';\r\nimport { getSiBalanceAction } from '../../api/actions/empleado/SiBalanceAction';\r\nimport { getWelcomeMessageAction } from '../../api/actions/systemAdmin/WelcomeMessageAction';\r\nimport { getEmployeeVacationsAction } from '../../api/actions/jefe/EmployeeVactionsAction';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport Title from '../layout/Title.js';\r\nimport Footer from '../layout/Footer.js';\r\nimport { getParams } from '../../utils';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\n\r\nconst Home = props => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [msgData, setMsgData] = useState({});\r\n const [modalVacations, setModalVacations] = useState({});\r\n const [showModalVacations, setShowModalVacations] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n let data = getParams();\r\n let { params, server } = data;\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n props.getWelcomeMessageAction(params, server);\r\n \r\n validateSurveys();\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (props.welcomeMessageData && props.welcomeMessageData.isOK) {\r\n setMsgData({\r\n titulo: props.welcomeMessageData.WelcomeMessage.titulo,\r\n msg: props.welcomeMessageData.WelcomeMessage.mensaje\r\n });\r\n } else if (props.welcomeMessageError && props.welcomeMessageError.isOK === false) {\r\n setMsgData({\r\n titulo: '',\r\n msg: ''\r\n });\r\n props.getWelcomeMessageAction('PURGE', '');\r\n }\r\n\r\n setLoading(false);\r\n\r\n }, [props.welcomeMessageData, props.welcomeMessageError]);\r\n\r\n const validateSurveys = () => {\r\n setLoading(true);\r\n let { params, server } = getParams();\r\n props.getSiBalanceAction(params, server);\r\n if (sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1') {\r\n const dataSend = {\r\n \"tem:sToken\": params['tem:sToken'],\r\n \"tem:IdEmpresa\": params['tem:IdEmpresa'],\r\n \"tem:TrabID\": params['tem:TrabID']\r\n }\r\n props.getEmployeeVacationsAction(dataSend, server)\r\n console.log('USER_DATA', params)\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.employeeVacationsData && props.employeeVacationsData.isOK) {\r\n if (props.employeeVacationsData?.EmployeeVacations.length > 0) {\r\n let data = {\r\n title: 'AVISO IMPORTANTE',\r\n message: 'Las siguientes incidencias y/o vacaciones est�n pendientes por autorizar o rechazar, por lo que recomendamos se realice la autorizaci�n o rechazo lo antes posible:',\r\n employees: props.employeeVacationsData.EmployeeVacations\r\n };\r\n setShowModalVacations(true);\r\n setModalVacations(data);\r\n }\r\n }\r\n if (props.dataUserError && props.dataUserError.isOK === false) {\r\n props.getEmployeeVacationsAction('PURGE', {});\r\n }\r\n console.log('EMPLOYEE_VACATIONS', props.employeeVacationsData);\r\n }, [props.employeeVacationsData, props.incidentAlertError]);\r\n \r\n\r\n if (loading) {\r\n return (\r\n <>\r\n <svg className=\"circular\" viewBox=\"25 25 50 50\">\r\n <circle className=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"2\" strokeMiterlimit=\"10\" />\r\n </svg>\r\n <div id=\"main-wrapper\">\r\n <Topbar init={true} />\r\n </div>\r\n </>\r\n );\r\n} else {\r\n return (\r\n <div id=\"main-wrapper\">\r\n <Topbar />\r\n <Leftsidebar />\r\n <div className=\"page-wrapper\">\r\n <Title actual=\"Inicio\" icon=\"mdi mdi-home\" />\r\n <div className=\"container-fluid\">\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card \">\r\n <div className=\"card-header\">\r\n <div className=\"col-md-12\">\r\n <Link to={`${process.env.PUBLIC_URL}/welcomeMsg/edit`}>\r\n <button type=\"button\" className=\"btn btn-success waves-effect waves-light pull-right\"><i className=\"mdi mdi-pencil\"></i> Editar Mensaje</button>\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"text-center\">\r\n <h3 className=\"mb-3\">{msgData.titulo}</h3>\r\n </div>\r\n <div>\r\n <ReactQuill\r\n theme=\"bubble\"\r\n readOnly={true}\r\n value={msgData.msg}\r\n modules={{ toolbar: false }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n {(sessionStorage.getItem(\"SICONSULTA_AlertaVacIncidencias\") == '1' ) && (\r\n <Modal\r\n show={showModalVacations}\r\n onHide={() => setShowModalVacations(false)}\r\n size=\"lg\"\r\n aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>{modalVacations.title}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\r\n <p>{modalVacations.message}</p>\r\n {modalVacations.employees && modalVacations.employees.length > 0 && (\r\n <table className='table-container'>\r\n <thead>\r\n <tr>\r\n <th style={{ textAlign: 'center' }}>No.Trabajdor</th>\r\n <th style={{ textAlign: 'center' }}>Nombre Completo</th>\r\n <th style={{ textAlign: 'center' }}>Tipo de solicitud</th>\r\n <th style={{ textAlign: 'center' }}>ReportaID</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {modalVacations.employees.map((item, index) => (\r\n <tr key={index}>\r\n <td style={{ textAlign: 'center' }}>{item.TrabID}</td>\r\n <td style={{ textAlign: 'center' }}>{item.NombreCompleto}</td>\r\n <td style={{ textAlign: 'center' }}>{item.TipoSolString}</td>\r\n <td style={{ textAlign: 'center' }}>{item.ReportaID}</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n )}\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={() => setShowModalVacations(false)}>\r\n Cerrar\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n )}\r\n \r\n </div>\r\n <Footer />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n welcomeMessageData: state.welcomeMessage.welcomeMessageData,\r\n welcomeMessageError: state.welcomeMessage.welcomeMessageError,\r\n employeeVacationsData: state.employeeVacations.employeeVacationsData,\r\n employeeVacationsError: state.employeeVacations.employeeVacationsError,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getWelcomeMessageAction,\r\n getEmployeeVacationsAction,\r\n getSiBalanceAction,\r\n\r\n\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Home));","import React, { useEffect, useState } from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getParams, getUserType, getEmployeeType, getAuthorizerType, getInfoUserLogin } from '../utils';\r\n\r\nimport { getAdminMenuAction } from '../api/actions/eulen/AdminMenuAction';\r\n\r\nimport Home from '../pages/RHSpecial/Home';\r\nimport EditWelcomeMessage from '../pages/systemAdmin/EditWelcomeMessage';\r\nimport Messages from '../pages/systemAdmin/Messages';\r\nimport NewMessage from '../pages/systemAdmin/NewMessage';\r\nimport MessagesDetail from '../pages/systemAdmin/MessagesDetail';\r\nimport EditMessage from '../pages/systemAdmin/EditMessage';\r\nimport Requests from '../pages/systemAdmin/Requests';\r\nimport RequestDetail from '../pages/systemAdmin/RequestDetail';\r\nimport AdditionalFields from '../pages/systemAdmin/AdditionalFields';\r\nimport Complaints from '../pages/systemAdmin/Complaints';\r\nimport ComplaintDetail from '../pages/systemAdmin/ComplaintDetail';\r\nimport DownloadReports from \"../pages/systemAdmin/DownloadReports\";\r\nimport UploadFiles from \"../pages/systemAdmin/UploadFiles\";\r\nimport Menu from '../pages/systemAdmin/Menu';\r\nimport PayrollReceipts from '../pages/systemAdmin/PayrollReceipts';\r\nimport SuveryNom035 from '../pages/systemAdmin/SuveryNom035';\r\n\r\n\r\nimport Login from '../pages/login/Login.js';\r\nimport RecoverPassword from '../pages/login/RecoverPassword';\r\nimport Error404 from '../pages/errors/Error404.js';\r\n\r\nconst EmployeeRoutes = (props) => {\r\n const [loading, setLoading] = useState(true);\r\n const [menu, setMenu] = useState([]);\r\n const [employeeType, setEmployeeType] = useState(null);\r\n const [infoLogin, setInfoLogin] = useState(null);\r\n\r\n useEffect(() => {\r\n setEmployeeType(getEmployeeType());\r\n setInfoLogin(getInfoUserLogin());\r\n\r\n let { params, server } = getParams();\r\n\r\n params = {\r\n 'tem:sToken': params['tem:sToken'],\r\n 'tem:IdEmpresa': params['tem:IdEmpresa'],\r\n }\r\n \r\n //props.getAdminMenuAction(params, server);\r\n }, []);\r\n\r\n /*useEffect(() => {\r\n if (props.adminMenuData && props.adminMenuData.isOK) {\r\n setMenu([...props.adminMenuData.AdminMenu].filter(fl => fl.IdRol == 5));\r\n setLoading(false);\r\n } \r\n else if (props.adminMenuError && props.adminMenuError.isOK === false) {\r\n setMenu([]);\r\n props.getAdminMenuAction('PURGE', '');\r\n setLoading(false);\r\n }\r\n }, [props.adminMenuData, props.adminMenuError]);*/\r\n\r\n const permiteMenu = (nombreMenu) => {\r\n if (localStorage.getItem(\"REACT_APP_MENU_CONF_ADMIN\") != \"1\") return true;\r\n \r\n if ((nombreMenu || \"\").trim().length == 0) return true;\r\n\r\n let MenuID = '0';\r\n let permite = false;\r\n if (menu.length > 0) {\r\n let find = menu.find(fn => fn.NombreMenu.toLowerCase().trim() == nombreMenu.toLowerCase().trim() && fn.Habilitado == \"true\");\r\n if (find) {\r\n permite = true;\r\n MenuID = find.MenuID;\r\n }\r\n }\r\n\r\n return permite;\r\n };\r\n\r\n return (\r\n <Switch>\r\n \r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/`} exact >\r\n <Home />\r\n </Route>}\r\n\r\n {<Route path={`${process.env.PUBLIC_URL}/messages`} exact >\r\n <Messages />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/messages/new`} exact >\r\n <NewMessage />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/messages/:id`} >\r\n <MessagesDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/edit/messages/:id`} >\r\n <EditMessage />\r\n </Route>}\r\n\r\n {permiteMenu(\"requests\") && <Route path={`${process.env.PUBLIC_URL}/requests`} exact >\r\n <Requests />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/requests/:id`} >\r\n <RequestDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"fields\") && <Route path={`${process.env.PUBLIC_URL}/fields`} exact >\r\n <AdditionalFields />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/menu`} exact >\r\n <Menu />\r\n </Route>}\r\n\r\n {permiteMenu(\"payroll\") && <Route path={`${process.env.PUBLIC_URL}/payroll`} exact >\r\n <PayrollReceipts />\r\n </Route>}\r\n\r\n {permiteMenu(\"complaints\") && <Route path={`${process.env.PUBLIC_URL}/complaints`} exact >\r\n <Complaints />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/complaints/:id`} exact >\r\n <ComplaintDetail />\r\n </Route>}\r\n\r\n {permiteMenu(\"reports\") && <Route path={`${process.env.PUBLIC_URL}/reports`} exact >\r\n <DownloadReports />\r\n </Route>}\r\n\r\n {permiteMenu(\"upload\") && <Route path={`${process.env.PUBLIC_URL}/upload`} exact >\r\n <UploadFiles />\r\n </Route>}\r\n\r\n {permiteMenu(\"\") && <Route path={`${process.env.PUBLIC_URL}/welcomeMsg/edit`} exact >\r\n <EditWelcomeMessage />\r\n </Route>}\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/login`} exact >\r\n <Login />\r\n </Route>\r\n\r\n <Route path={`${process.env.PUBLIC_URL}/recover`}>\r\n <RecoverPassword />\r\n </Route>\r\n\r\n {permiteMenu(\"suveryNom035\") && <Route path={`${process.env.PUBLIC_URL}/suveryNom035`} exact >\r\n <SuveryNom035 />\r\n </Route>}\r\n\r\n <Route>\r\n <Error404 />\r\n </Route>\r\n </Switch>\r\n );\r\n }\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n adminMenuData: state.adminMenu.adminMenuData,\r\n adminMenuError: state.adminMenu.adminMenuError,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getAdminMenuAction,\r\n};\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmployeeRoutes));\r\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport Loading from '../components/shared/loading.js';\nimport EmployeeRoutes from './Employee.js';\nimport ChiefRoutes from './Chief.js';\nimport FirstAccess from './FirstAccess.js';\nimport OperatorRoutes from './Operator.js';\nimport DirectorRoutes from './RHDirector.js';\nimport SystemAdminRoutes from './SystemAdmin';\nimport RHVacationRoutes from './RHVacation';\nimport DirectorGral from './DirectorGral';\nimport CommonRoutes from './Common.js';\nimport ReceiptOperatorRoutes from './ReceiptOperator.js';\nimport RHSpecialRoutes from './RHSpecial.js';\n\nconst Router = props => {\n let arrTypes = [\n \"CommonRoutes\", \"EmployeeRoutes\", \"ChiefRoutes\", \"OperatorRoutes\", \"DirectorRoutes\", \"SystemAdminRoutes\",\n \"RHVacationRoutes\", \"DirectorGral\", \"ChiefRoutes\", \"FirstAccess\", \"ReceiptOperatorRoutes\",\"RHSpecialRoutes\", \"\"\n ];\n console.log('OIHB Type', props.userType + \" - \" + arrTypes[props.userType])\n switch (props.userType) {\n case 0:\n console.log('CASE 0');\n return <CommonRoutes />;\n break;\n\n case 1:\n console.log('CASE 1');\n return <EmployeeRoutes />\n break\n\n case 2:\n console.log('CASE 2');\n return <ChiefRoutes />\n break\n\n case 3:\n console.log('CASE 3');\n return <OperatorRoutes />\n break\n\n case 4:\n console.log('CASE 4');\n return <DirectorRoutes />\n break\n\n case 5:\n console.log('CASE 5');\n return <SystemAdminRoutes />\n break\n\n case 6:\n console.log('CASE 6');\n return <RHVacationRoutes />\n break\n case 7:\n console.log('CASE 7');\n return <DirectorGral />\n break\n case 8:\n console.log('CASE 8');\n return <ChiefRoutes />\n break\n case 9:\n return <ReceiptOperatorRoutes />\n break\n case 10:\n console.log('CASE 10');\n return <RHSpecialRoutes />\n break\n case 'firstAccess':\n console.log('CASE First Access');\n return <FirstAccess />\n break\n\n default:\n console.log('DEFAULT CASE');\n return <CommonRoutes />;\n }\n};\n\nexport default withRouter(Router);\n","import React, { useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nimport Router from './routes/Router.js';\nimport Loading from './components/shared/loading.js';\nimport CryptoJS from 'crypto-js';\n\nimport { changeUserType } from './api/actions/common/ChangeUserTypeAction.js';\n\nimport { getItemExp, setItemExp, clearItemsExp, isExpiredDates, AutoLogin, setLogInDateAndExpiration } from \"./utils/common/expiredSession\";\nimport { confirm } from \"./utils/common/alert\";\n\nconst App = props => {\n\n const [userType, setUserType] = useState(null)\n const [fetchedConfig, setFechedConfig] = useState(false);\n\n useEffect(() => {\n //localStorage.clear();\n initVariables();\n }, []);\n\n useEffect(() => {\n\n if (props.typeUserSelected == 0) {\n let type = sessionStorage.getItem('userType');\n\n if (type != null) {\n type = CryptoJS.AES.decrypt(type, process.env.REACT_APP_HASH_SECRET);\n type = JSON.parse(type.toString(CryptoJS.enc.Utf8));\n props.changeUserType(type['typeUser']);\n\n } else {\n setUserType(0);\n }\n } else {\n setUserType(props.typeUserSelected);\n }\n\n\n }, [props.typeUserSelected]);\n\n useEffect(() => {\n if (fetchedConfig) {\n initCheckExpiration();\n }\n }, [fetchedConfig]);\n\n const initVariables = () => {\n let config = {\n headers : { \n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }\n };\n fetch(process.env.PUBLIC_URL + '/config.json', config).then(function(response) {\n if (!response.ok) {\n setFechedConfig(true);\n throw new Error('Network response was not OK');\n }\n return response.text(); \n })\n .then((json) => {\n let obj = JSON.parse(json);\n let IsPrivate = obj[\"IS_PRIVATE\"] == \"1\";\n let AppServer = (obj[\"APP_SERVER\"] + \"\").trim().replace(\"?wsdl\", \"\").replace(\"?WSDL\", \"\").replace(\"?Wsdl\", \"\");\n let mainService = (\"wcfKioscoSicoss.svc\").toLowerCase();\n \n if (IsPrivate) {\n localStorage.setItem(\"REACT_APP_IS_PRIVATE\", \"1\");\n localStorage.setItem(\"REACT_APP_SERVER\", AppServer);\n localStorage.setItem(\"REACT_APP_SERVER_DOWNLOAD\", AppServer);\n localStorage.setItem(\"REACT_APP_CLIENT_SERVER\", \"\");\n localStorage.setItem(\"REACT_APP_VACATIONS\", AppServer.toLowerCase().replace(mainService, \"\"));\n }\n else {\n localStorage.setItem(\"REACT_APP_IS_PRIVATE\", \"0\");\n localStorage.setItem(\"REACT_APP_SERVER\", process.env.REACT_APP_SERVER);\n localStorage.setItem(\"REACT_APP_SERVER_DOWNLOAD\", process.env.REACT_APP_SERVER_DOWNLOAD);\n localStorage.setItem(\"REACT_APP_CLIENT_SERVER\", AppServer);\n localStorage.setItem(\"REACT_APP_VACATIONS\", AppServer.toLowerCase().replace(mainService, \"\"));\n }\n\n localStorage.setItem(\"REACT_APP_PERDIEM\", obj[\"APP_PERDIEM\"] || \"\");\n localStorage.setItem(\"REACT_APP_UNICO_LOGO\", obj[\"UNICO_LOGO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_PANTALLAS_BLAZOR\", obj[\"PANTALLAS_BLAZOR\"] || \"0\");\n localStorage.setItem(\"REACT_APP_TEMA_COLOR_FIJO\", obj[\"TEMA_COLOR_FIJO\"] || \"\");\n\n //ORIGEN: VUBA\n localStorage.setItem(\"REACT_APP_SECURITY_POLICY\", obj[\"SECURITY_POLICY\"] || \"0\");\n localStorage.setItem(\"REACT_APP_URL_IDENTITY\", obj[\"URL_API_IDENTITY\"] || \"0\");\n localStorage.setItem(\"REACT_APP_URL_PERMISOS\", obj[\"URL_API_PERMISOS\"] || \"0\");\n\n localStorage.setItem(\"REACT_APP_MUESTRA_QR\", obj[\"MUESTRA_QR\"] || \"0\");\n localStorage.setItem(\"REACT_APP_MUESTRA_CONF_NOM035\", obj[\"MUESTRA_CONF_NOM035\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INFO_FECHA_ANIVERSARIO\", obj[\"INFO_FECHA_ANIVERSARIO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INFO_DIAS_DISFRUTADOS\", obj[\"INFO_DIAS_DISFRUTADOS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INFO_DIAS_PERDIDOS\", obj[\"INFO_DIAS_PERDIDOS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INHABILITA_IMG_PERFIL\", obj[\"INHABILITA_IMG_PERFIL\"] || \"0\");\n \n //ORIGEN: PEÑAFIEL\n localStorage.setItem(\"REACT_APP_IS_LOGIN_EXPIRATION\", obj[\"IS_LOGIN_EXPIRATION\"] || \"0\");\n localStorage.setItem(\"REACT_APP_LOGIN_WAIT_SECONDS\", obj[\"LOGIN_WAIT_SECONDS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_LOGIN_SECONDS_EXPIRATION\", obj[\"LOGIN_SECONDS_EXPIRATION\"] || \"0\");\n\n localStorage.setItem(\"REACT_APP_CONTROL_VACACIONES_V2\", obj[\"CONTROL_VACACIONES_V2\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CONTROL_INCIDENCIAS_V2\", obj[\"CONTROL_INCIDENCIAS_V2\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CALENDARIO_SEMAFORO\", obj[\"CALENDARIO_SEMAFORO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CONFIRMA_SOLICITUDES\", obj[\"CONFIRMA_SOLICITUDES\"] || \"0\");\n localStorage.setItem(\"REACT_APP_RECUPERA_CONTRA_EMAIL\", obj[\"RECUPERA_CONTRA_EMAIL\"] || \"0\");\n localStorage.setItem(\"REACT_APP_LIMITAR_INCIDENCIAS\", obj[\"LIMITAR_INCIDENCIAS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CONF_TIPOEMPLEADO\", obj[\"CONF_TIPOEMPLEADO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CONF_TABULADOR_AF\", obj[\"CONF_TABULADOR_AF\"] || \"0\");\n\n //ORIGEN: MARSH\n localStorage.setItem(\"REACT_APP_REPORTE_HIST_VAC\", obj[\"REPORTE_HIST_VAC\"] || \"0\");\n localStorage.setItem(\"REACT_APP_ENLACES_RH_ESCUCHA\", obj[\"ENLACES_RH_ESCUCHA\"] || \"0\");\n localStorage.setItem(\"REACT_APP_ALERTA_MSJ_PERSONAL\", obj[\"ALERTA_MSJ_PERSONAL\"] || \"0\");\n localStorage.setItem(\"REACT_APP_CONF_INCIDENCIAS\", obj[\"CONF_INCIDENCIAS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_MUESTRA_MOTIVO\", obj[\"MUESTRA_MOTIVO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_IGNORA_FECHAS_INVALIDAS\", obj[\"IGNORA_FECHAS_INVALIDAS\"] || \"0\");\n\n //ORIGEN: KRONES\n localStorage.setItem(\"REACT_APP_ALERTA_MSJ_EXPIRA_VAC\", obj[\"ALERTA_MSJ_EXPIRA_VAC\"] || \"0\");\n localStorage.setItem(\"REACT_APP_ESCRIBE_MOTIVO\", obj[\"ESCRIBE_MOTIVO\"] || \"0\");\n\n //ORGIEN: FARMACEUTICA\n localStorage.setItem(\"REACT_APP_REPORTE_INCIDENCIAS\", obj[\"REPORTE_INCIDENCIAS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_REPORTE_ARCHADJINCI\", obj[\"REPORTE_ARCHADJINCI\"] || \"0\");\n\n //ORIGEN: LENOVO\n localStorage.setItem(\"REACT_APP_FILTROS_NOMINA\", obj[\"FILTROS_NOMINA\"] || \"0\");\n localStorage.setItem(\"REACT_APP_NOMINAS_CERO\", obj[\"NOMINAS_CERO\"] || \"0\");\n localStorage.setItem(\"REACT_APP_OCULTAR_TODOS_PASSRESET\", obj[\"OCULTAR_TODOS_PASSRESET\"] || \"0\");\n\n //ORIGEN: ASPEN/CONSOLIDE\n localStorage.setItem(\"REACT_APP_SOLO_CTRL_VAC_RHVAC\", obj[\"SOLO_CTRL_VAC_RHVAC\"] || \"0\");\n localStorage.setItem(\"REACT_APP_REPORTE_CTRL_VAC\", obj[\"REPORTE_CTRL_VAC\"] || \"0\");\n localStorage.setItem(\"REACT_APP_DIAS_LIMITE_BLOQ\", obj[\"DIAS_LIMITE_BLOQ\"] || \"0\");\n localStorage.setItem(\"REACT_APP_BLOQ_SOLVAC_PENDIENTES\", obj[\"BLOQ_SOLVAC_PENDIENTES\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INFO_DEVENGADAS\", obj[\"INFO_DEVENGADAS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_AUT_VAC_MASIVAS\", obj[\"AUT_VAC_MASIVAS\"] || \"0\");\n \n //ORIGEN: EULEN\n //localStorage.setItem(\"REACT_APP_INHABILITA_SDI\", obj[\"INHABILITA_SDI\"] || \"0\");\n localStorage.setItem(\"REACT_APP_INHABILITA_DETALLE_NOM\", obj[\"INHABILITA_DETALLE_NOM\"] || \"0\");\n\n //ORIGEN: IKE\n localStorage.setItem(\"REACT_APP_CONF_TABULADOR_FALTA\", obj[\"CONF_TABULADOR_FALTA\"] || \"0\");\n\n //ORIGEN: CASTILLO MIRANDA\n localStorage.setItem(\"REACT_APP_IGNORA_DIASLEY_SOLVAC\", obj[\"IGNORA_DIASLEY_SOLVAC\"] || \"0\");\n localStorage.setItem(\"REACT_APP_MENU_POR_NOMINAS\", obj[\"MENU_POR_NOMINAS\"] || \"0\");\n\n // ORIGEN: HOVOMEX\n localStorage.setItem(\"REACT_APP_CARGA_ARCHIVOS_PERSONALES\", obj[\"CARGA_ARCHIVOS_PERSONALES\"] || \"0\");\n localStorage.setItem(\"REACT_APP_DESCARGA_ARCHIVOS_PERSONALES\", obj[\"DESCARGA_ARCHIVOS_PERSONALES\"] || \"0\");\n localStorage.setItem(\"REACT_APP_DESCARGA_REPORTE_INCIDENCIAS\", obj[\"DESCARGA_REPORTE_INCIDENCIAS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_TITULOS_HOVOMEX\", obj[\"TITULOS_HOVOMEX\"] || \"0\");\n localStorage.setItem(\"REACT_APP_OTRAS_VACACIONES\", obj[\"OTRAS_VACACIONES\"] || \"0\");\n\n // ORIGEN: APELSA\n localStorage.setItem(\"REACT_APP_HISTORIAL_QUEJA_USER\", obj[\"HISTORIAL_QUEJA_USER\"] || \"0\");\n\n //ORIGEN: ABASTECEDORES PECUARIOS\n localStorage.setItem(\"REACT_APP_EDITAR_USUARIOS\", obj[\"EDITAR_USUARIOS\"] || \"0\");\n localStorage.setItem(\"REACT_APP_MENU_CONF_ADMIN\", obj[\"MENU_CONF_ADMIN\"] || \"0\");\n \n setFechedConfig(true);\n\n var temaColorFijo = (localStorage.getItem(\"REACT_APP_TEMA_COLOR_FIJO\") || \"\").toString().trim();\n if (temaColorFijo.length > 0) {\n localStorage.setItem(\"theme\", temaColorFijo)\n }\n })\n .catch((error) => {\n console.error('OIHB Error', error);\n setFechedConfig(true);\n });\n };\n\n const initCheckExpiration = () => {\n var secondsExpiration = parseInt(localStorage.getItem(\"REACT_APP_LOGIN_SECONDS_EXPIRATION\"));\n if (localStorage.getItem(\"REACT_APP_IS_LOGIN_EXPIRATION\") == '1' && secondsExpiration > 0) {\n if (!(localStorage.getItem('logInDate') && localStorage.getItem('logInExpiration'))) {\n let info = setLogInDateAndExpiration(secondsExpiration);\n }\n\n let count = 1;\n let logInExpiredModal = false;\n let logInWaitSeconds = 0;\n \n setInterval(async () => { \n if (getItemExp('logInExpired')) {\n //console.log('OIHB Exp', count + ' - La sesión está expirada');\n if (!getItemExp('logInExpiredModal')) {\n //console.log('OIHB Exp', count + ' - Se abrirá un modal');\n setItemExp('logInExpiredModal', true);\n setItemExp('logInWaitSeconds', parseInt( localStorage.getItem(\"REACT_APP_LOGIN_WAIT_SECONDS\")));\n logInWaitSeconds = parseInt( localStorage.getItem(\"REACT_APP_LOGIN_WAIT_SECONDS\"));\n }\n else {\n logInWaitSeconds = parseInt(getItemExp('logInWaitSeconds'));\n logInWaitSeconds--;\n setItemExp('logInWaitSeconds', logInWaitSeconds);\n if (logInWaitSeconds <= 0) {\n clearItemsExp();\n sessionStorage.clear();\n document.location.href = `${process.env.PUBLIC_URL}/expired`;\n return;\n }\n }\n }\n else {\n let isTrue = isExpiredDates();\n if (isTrue) {\n logInExpiredModal = false;\n console.log('OIHB Exp', count + ' - La sesión ha expirado');\n }\n }\n \n if (!logInExpiredModal) {\n //console.log('OIHB Exp', 'Modal no se encuentra abierto');\n if (getItemExp('logInExpiredModal')) {\n //console.log('OIHB Exp', 'Se abrirá un modal');\n logInExpiredModal = true;\n //let conf = await confirm('La sesión ha expirado ¿Desea renovar?, tienes ' + logInWaitSeconds + ' segundos');\n let conf = await confirm('Su sesión expirará en ' + logInWaitSeconds + ' segundos ¿Desea continuar en Si-Consulta?', ['Si', 'No']);\n if (!conf) {\n clearItemsExp();\n let isLogged = await AutoLogin();\n if (isLogged) {\n document.location.reload();\n }\n }\n else {\n clearItemsExp();\n sessionStorage.clear();\n document.location.href = `${process.env.PUBLIC_URL}/expired`;\n return;\n }\n }\n }\n \n count++;\n }, 1000);\n }\n };\n\n if (userType === null || fetchedConfig == false) {\n return <Loading />;\n } \n else {\n return (\n <div id=\"main-wrapper\">\n <Loading />\n <Router userType={userType} />\n </div>\n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n typeUserSelected: state.changeUserType.typeUserSelected,\n };\n};\n\nconst mapDispatchToProps = {\n changeUserType,\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(App));\n","import {\n VALIDATE_ERROR\n} from '../../types';\n\nconst stateValidateError = {\n validateErrorData: {},\n}\n\nconst validateError = (state = stateValidateError, action) => {\n switch (action.type) {\n case VALIDATE_ERROR:\n return { ...state, validateErrorData: action.payload };\n default:\n return { ...state }\n\n }\n return state;\n}\n\nexport default validateError;","import {\n LOGIN_SUCCESS,\n LOGIN_ERROR,\n LOGIN_PURGE,\n} from '../../types';\n\nconst stateLogin = {\n loginData: {},\n loginError: {},\n};\n\nconst getLogin = (state = stateLogin, action) => {\n switch (action.type) {\n case LOGIN_SUCCESS:\n return {...state, loginData: action.payload};\n case LOGIN_ERROR:\n return {...state, loginError: action.payload};\n case LOGIN_PURGE:\n return {...stateLogin, purgeLogin: action.payload};\n }\n return state;\n}\n\nexport default getLogin;\n","import {\n SECURITY_QUESTION_SUCCESS,\n SECURITY_QUESTION_ERROR,\n SECURITY_QUESTION_PURGE,\n} from '../../types';\n\nconst stateSecurityQuestion = {\n securityQuestionData: {},\n securityQuestionError: {},\n};\n\nconst getSecurityQuestion = (state = stateSecurityQuestion, action) => {\n switch (action.type) {\n case SECURITY_QUESTION_SUCCESS:\n return {...state, securityQuestionData: action.payload};\n case SECURITY_QUESTION_ERROR:\n return {...state, securityQuestionError: action.payload};\n case SECURITY_QUESTION_PURGE:\n return {...stateSecurityQuestion, purgeSecurityQuestion: action.payload};\n }\n return state;\n}\n\nexport default getSecurityQuestion;\n","import {\n CHANGE_PASSWORD_SUCCESS,\n CHANGE_PASSWORD_ERROR,\n CHANGE_PASSWORD_PURGE,\n} from '../../types';\n\nconst stateChangePassword = {\n changePasswordData: {},\n changePasswordError: {},\n};\n\nconst getChangePassword = (state = stateChangePassword, action) => {\n switch (action.type) {\n case CHANGE_PASSWORD_SUCCESS:\n return {...state, changePasswordData: action.payload};\n case CHANGE_PASSWORD_ERROR:\n return {...state, changePasswordError: action.payload};\n case CHANGE_PASSWORD_PURGE:\n return {...stateChangePassword, purgeChangePassword: action.payload};\n }\n return state;\n}\n\nexport default getChangePassword;\n","import {\n IMAGE_USER_SUCCESS,\n IMAGE_USER_ERROR,\n IMAGE_USER_PURGE,\n} from '../../types';\n\nconst stateImageUser = {\n imageUserData: {},\n imageUserError: {},\n};\n\nconst getImageUser = (state = stateImageUser, action) => {\n switch (action.type) {\n case IMAGE_USER_SUCCESS:\n return {...state, imageUserData: action.payload};\n case IMAGE_USER_ERROR:\n return {...state, imageUserError: action.payload};\n case IMAGE_USER_PURGE:\n return {...stateImageUser, purgeImageUser: action.payload};\n }\n return state;\n}\n\nexport default getImageUser;\n","import {\n DATA_USER_SUCCESS,\n DATA_USER_ERROR,\n DATA_USER_PURGE,\n} from '../../types';\n\nconst stateDataUser = {\n dataUserData: {},\n dataUserError: {},\n};\n\nconst getDataUser = (state = stateDataUser, action) => {\n switch (action.type) {\n case DATA_USER_SUCCESS:\n return {...state, dataUserData: action.payload};\n case DATA_USER_ERROR:\n return {...state, dataUserError: action.payload};\n case DATA_USER_PURGE:\n return {...stateDataUser, purgeDataUser: action.payload};\n }\n return state;\n}\n\nexport default getDataUser;\n","import {\n COLOR\n} from '../../types';\n\nconst stateColor = {\n color: 0,\n}\n\nconst changeColor = (state = stateColor, action) => {\n switch (action.type) {\n case COLOR:\n return {...state, color: action.payload};\n default:\n return {...state}\n\n }\n return state;\n}\n\nexport default changeColor;\n","import {\n SHOW_WELCOME\n} from '../../types';\n\nconst stateShow = {\n show: true,\n}\n\nconst changeShow = (state = stateShow, action) => {\n switch (action.type) {\n case SHOW_WELCOME:\n return {...state, show: action.payload};\n default:\n return {...state}\n \n }\n return state;\n}\n\nexport default changeShow;","import {\n MENU\n} from '../../types';\n\nconst stateMenu = {\n menuSelected: 0,\n}\n\nconst changeMenu = (state = stateMenu, action) => {\n switch (action.type) {\n case MENU:\n return {...state, menuSelected: action.payload};\n default:\n return {...state}\n\n }\n return state;\n}\n\nexport default changeMenu;\n","import {\n TYPE_USER\n} from '../../types';\n\nconst stateTypeUser = {\n typeUserSelected: 0,\n}\n\nconst changeTypeUser = (state = stateTypeUser, action) => {\n switch (action.type) {\n case TYPE_USER:\n return {...state, typeUserSelected: action.payload};\n default:\n return {...state}\n\n }\n return state;\n}\n\nexport default changeTypeUser;\n","import {\n AVISO_SUCCESS,\n AVISO_ERROR,\n AVISO_PURGE,\n} from '../../types';\n\nconst stateAviso = {\n avisoData: {},\n avisoError: {},\n};\n\nconst getAviso = (state = stateAviso, action) => {\n switch (action.type) {\n case AVISO_SUCCESS:\n return {...state, avisoData: action.payload};\n case AVISO_ERROR:\n return {...state, avisoError: action.payload};\n case AVISO_PURGE:\n return {...stateAviso, purgeAviso: action.payload};\n }\n return state;\n}\n\nexport default getAviso;\n","import {\n TERM_SUCCESS,\n TERM_ERROR,\n TERM_PURGE,\n} from '../../types';\n\nconst stateTerm = {\n termData: {},\n termError: {},\n};\n\nconst getTerm = (state = stateTerm, action) => {\n switch (action.type) {\n case TERM_SUCCESS:\n return {...state, termData: action.payload};\n case TERM_ERROR:\n return {...state, termError: action.payload};\n case TERM_PURGE:\n return {...stateTerm, purgeTerm: action.payload};\n }\n return state;\n}\n\nexport default getTerm;\n","import {\n UPLOAD_IMAGE_SUCCESS,\n UPLOAD_IMAGE_ERROR,\n UPLOAD_IMAGE_PURGE,\n} from '../../types';\n\nconst stateUploadImage= {\n uploadImageData: {},\n uploadImageError: {},\n};\n\nconst getUploadImage= (state = stateUploadImage, action) => {\n switch (action.type) {\n case UPLOAD_IMAGE_SUCCESS:\n return {...state, uploadImageData: action.payload};\n case UPLOAD_IMAGE_ERROR:\n return {...state, uploadImageError: action.payload};\n case UPLOAD_IMAGE_PURGE:\n return {...stateUploadImage, purgeUploadImage: action.payload};\n }\n return state;\n}\n\nexport default getUploadImage;\n","import {\n URL_ENCUESTA_SUCCESS,\n URL_ENCUESTA_ERROR,\n URL_ENCUESTA_PURGE,\n} from '../../types';\n\nconst stateUrlEncuesta = {\n urlEncuestaData: {},\n urlEncuestaError: {},\n};\n\nconst getUrlEncuesta = (state = stateUrlEncuesta, action) => {\n switch (action.type) {\n case URL_ENCUESTA_SUCCESS:\n return {...state, urlEncuestaData: action.payload};\n case URL_ENCUESTA_ERROR:\n return {...state, urlEncuestaError: action.payload};\n case URL_ENCUESTA_PURGE:\n return {...stateUrlEncuesta, purgeUrlEncuesta: action.payload};\n }\n return state;\n}\n\nexport default getUrlEncuesta;\n","import {\n VALIDATE_ENCUESTA_SUCCESS,\n VALIDATE_ENCUESTA_ERROR,\n VALIDATE_ENCUESTA_PURGE,\n} from '../../types';\n\nconst stateValidateEncuesta = {\n validateEncuestaData: {},\n validateEncuestaError: {},\n};\n\nconst getValidateEncuesta = (state = stateValidateEncuesta, action) => {\n switch (action.type) {\n case VALIDATE_ENCUESTA_SUCCESS:\n return {...state, validateEncuestaData: action.payload};\n case VALIDATE_ENCUESTA_ERROR:\n return {...state, validateEncuestaError: action.payload};\n case VALIDATE_ENCUESTA_PURGE:\n return {...stateValidateEncuesta, purgeValidateEncuesta: action.payload};\n }\n return state;\n}\n\nexport default getValidateEncuesta;\n","import {\n FCM_TOKEN\n} from '../../types';\n\nconst stateFcmToken = {\n fcmTokenData: '',\n}\n\nconst changefcmToken = (state = stateFcmToken, action) => {\n switch (action.type) {\n case FCM_TOKEN:\n return {...state, fcmTokenData: action.payload};\n default:\n return {...state}\n \n }\n return state;\n}\n\nexport default changefcmToken;","import {\n REGISTER_FCM_SUCCESS,\n REGISTER_FCM_ERROR,\n REGISTER_FCM_PURGE,\n} from '../../types';\n\nconst stateRegisterFcm= {\n registerFcmData: {},\n registerFcmError: {},\n};\n\nconst getRegisterFcm= (state = stateRegisterFcm, action) => {\n switch (action.type) {\n case REGISTER_FCM_SUCCESS:\n return {...state, registerFcmData: action.payload};\n case REGISTER_FCM_ERROR:\n return {...state, registerFcmError: action.payload};\n case REGISTER_FCM_PURGE:\n return {...stateRegisterFcm, purgeRegisterFcm: action.payload};\n }\n return state;\n}\n\nexport default getRegisterFcm;","import {\n RECOVERY_PASSWORD_SUCCESS,\n RECOVERY_PASSWORD_ERROR,\n RECOVERY_PASSWORD_PURGE,\n} from '../../types';\n\nconst stateRecoveryPassword = {\n recoveryPasswordData: {},\n recoveryPasswordError: {},\n};\n\nconst getRecoveryPassword = (state = stateRecoveryPassword, action) => {\n switch (action.type) {\n case RECOVERY_PASSWORD_SUCCESS:\n return {...state, recoveryPasswordData: action.payload};\n case RECOVERY_PASSWORD_ERROR:\n return {...state, recoveryPasswordError: action.payload};\n case RECOVERY_PASSWORD_PURGE:\n return {...stateRecoveryPassword, purgeRecoveryPassword: action.payload};\n }\n return state;\n}\n\nexport default getRecoveryPassword;","import {\n UPDATE_PASSWORD_SUCCESS,\n UPDATE_PASSWORD_ERROR,\n UPDATE_PASSWORD_PURGE\n} from '../../types';\n\nconst stateUploadPassword= {\n uploadPasswordData: {},\n uploadPasswordError: {},\n};\n\nconst getUploadPassword= (state = stateUploadPassword, action) => {\n switch (action.type) {\n case UPDATE_PASSWORD_SUCCESS:\n return {...state, uploadPasswordData: action.payload};\n case UPDATE_PASSWORD_ERROR:\n return {...state, uploadPasswordError: action.payload};\n case UPDATE_PASSWORD_PURGE:\n return {...stateUploadPassword, purgeUploadPassword: action.payload};\n }\n return state;\n}\n\nexport default getUploadPassword;","import {\n NOMINA_SUCCESS,\n NOMINA_ERROR,\n NOMINA_PURGE,\n} from '../../types';\n\nconst stateNomina = {\n nominaData: {},\n nominaError: {},\n};\n\nconst getNomina = (state = stateNomina, action) => {\n switch (action.type) {\n case NOMINA_SUCCESS:\n return {...state, nominaData: action.payload};\n case NOMINA_ERROR:\n return {...state, nominaError: action.payload};\n case NOMINA_PURGE:\n return {...stateNomina, purgeNomina: action.payload};\n }\n return state;\n}\n\nexport default getNomina;\n","import {\n DETALLE_NOMINA_SUCCESS,\n DETALLE_NOMINA_ERROR,\n DETALLE_NOMINA_PURGE,\n} from '../../types';\n\nconst stateDetalleNomina = {\n detalleNominaData: {},\n detalleNominaError: {},\n};\n\nconst getDetalleNomina = (state = stateDetalleNomina, action) => {\n switch (action.type) {\n case DETALLE_NOMINA_SUCCESS:\n return {...state, detalleNominaData: action.payload};\n case DETALLE_NOMINA_ERROR:\n return {...state, detalleNominaError: action.payload};\n case DETALLE_NOMINA_PURGE:\n return {...stateDetalleNomina, purgeDetalleNomina: action.payload};\n }\n return state;\n}\n\nexport default getDetalleNomina\n","import {\n URL_PDF_SUCCESS,\n URL_PDF_ERROR,\n URL_PDF_PURGE,\n} from '../../types';\n\nconst stateUrlPdf = {\n urlPdfData: {},\n urlPdfError: {},\n};\n\nconst getUrlPdf = (state = stateUrlPdf, action) => {\n switch (action.type) {\n case URL_PDF_SUCCESS:\n return {...state, urlPdfData: action.payload};\n case URL_PDF_ERROR:\n return {...state, urlPdfError: action.payload};\n case URL_PDF_PURGE:\n return {...stateUrlPdf, purgeUrlPdf: action.payload};\n }\n return state;\n}\n\nexport default getUrlPdf;\n","import {\n URL_XML_SUCCESS,\n URL_XML_ERROR,\n URL_XML_PURGE,\n} from '../../types';\n\nconst stateUrlXml = {\n urlXmlData: {},\n urlXmlError: {},\n};\n\nconst getUrlXml = (state = stateUrlXml, action) => {\n switch (action.type) {\n case URL_XML_SUCCESS:\n return {...state, urlXmlData: action.payload};\n case URL_XML_ERROR:\n return {...state, urlXmlError: action.payload};\n case URL_XML_PURGE:\n return {...stateUrlXml, purgeUrlXml: action.payload};\n }\n return state;\n}\n\nexport default getUrlXml;\n","import {\n MOVIMIENTOS_IMSS_SUCCESS,\n MOVIMIENTOS_IMSS_ERROR,\n MOVIMIENTOS_IMSS_PURGE,\n} from '../../types';\n\nconst stateMovimientosImss = {\n movimientosImssData: {},\n movimientosImssError: {},\n};\n\nconst getMovimientosImss = (state = stateMovimientosImss, action) => {\n switch (action.type) {\n case MOVIMIENTOS_IMSS_SUCCESS:\n return {...state, movimientosImssData: action.payload};\n case MOVIMIENTOS_IMSS_ERROR:\n return {...state, movimientosImssError: action.payload};\n case MOVIMIENTOS_IMSS_PURGE:\n return {...stateMovimientosImss, purgeMovimientosImss: action.payload};\n }\n return state;\n}\n\nexport default getMovimientosImss;\n","import {\n DETALLE_IMSS_SUCCESS,\n DETALLE_IMSS_ERROR,\n DETALLE_IMSS_PURGE,\n} from '../../types';\n\nconst stateDetalleImss = {\n detalleImssData: {},\n detalleImssError: {},\n};\n\nconst getDetalleImss = (state = stateDetalleImss, action) => {\n switch (action.type) {\n case DETALLE_IMSS_SUCCESS:\n return {...state, detalleImssData: action.payload};\n case DETALLE_IMSS_ERROR:\n return {...state, detalleImssError: action.payload};\n case DETALLE_IMSS_PURGE:\n return {...stateDetalleImss, purgeDetalleImss: action.payload};\n }\n return state;\n}\n\nexport default getDetalleImss;\n","import {\n VACATIONS_SUCCESS,\n VACATIONS_ERROR,\n VACATIONS_PURGE,\n} from '../../types';\n\nconst stateVacations = {\n vacationsData: {},\n vacationsError: {},\n};\n\nconst getVacations = (state = stateVacations, action) => {\n switch (action.type) {\n case VACATIONS_SUCCESS:\n return {...state, vacationsData: action.payload};\n case VACATIONS_ERROR:\n return {...state, vacationsError: action.payload};\n case VACATIONS_PURGE:\n return {...stateVacations, purgeVacations: action.payload};\n }\n return state;\n}\n\nexport default getVacations;\n","import {\n INSERT_VACATIONS_SUCCESS,\n INSERT_VACATIONS_ERROR,\n INSERT_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateInsertVacations = {\n insertInsertVacationsData: {},\n insertInsertVacationsError: {},\n};\n\nconst getInsertVacations = (state = stateInsertVacations, action) => {\n switch (action.type) {\n case INSERT_VACATIONS_SUCCESS:\n return {...state, insertInsertVacationsData: action.payload};\n case INSERT_VACATIONS_ERROR:\n return {...state, insertInsertVacationsError: action.payload};\n case INSERT_VACATIONS_PURGE:\n return {...stateInsertVacations, purgeInsertVacations: action.payload};\n }\n return state;\n}\n\nexport default getInsertVacations;\n","import {\n INFONAVIT_SUCCESS,\n INFONAVIT_ERROR,\n INFONAVIT_PURGE,\n} from '../../types';\n\nconst stateInfonavit = {\n infonavitData: {},\n infonavitError: {},\n};\n\nconst getInfonavit = (state = stateInfonavit, action) => {\n switch (action.type) {\n case INFONAVIT_SUCCESS:\n return {...state, infonavitData: action.payload};\n case INFONAVIT_ERROR:\n return {...state, infonavitError: action.payload};\n case INFONAVIT_PURGE:\n return {...stateInfonavit, purgeInfonavit: action.payload};\n }\n return state;\n}\n\nexport default getInfonavit;\n","import {\n DETALLE_INFONAVIT_SUCCESS,\n DETALLE_INFONAVIT_ERROR,\n DETALLE_INFONAVIT_PURGE,\n} from '../../types';\n\nconst stateDetalleInfonavit = {\n detalleInfonavitData: {},\n detalleInfonavitError: {},\n};\n\nconst getDetalleInfonavit = (state = stateDetalleInfonavit, action) => {\n switch (action.type) {\n case DETALLE_INFONAVIT_SUCCESS:\n return {...state, detalleInfonavitData: action.payload};\n case DETALLE_INFONAVIT_ERROR:\n return {...state, detalleInfonavitError: action.payload};\n case DETALLE_INFONAVIT_PURGE:\n return {...stateDetalleInfonavit, purgeDetalleInfonavit: action.payload};\n }\n return state;\n}\n\nexport default getDetalleInfonavit;\n","import {\n MESSAGES_SUCCESS,\n MESSAGES_ERROR,\n MESSAGES_PURGE,\n} from '../../types';\n\nconst stateMessages = {\n messagesData: {},\n messagesError: {},\n};\n\nconst getMessages = (state = stateMessages, action) => {\n switch (action.type) {\n case MESSAGES_SUCCESS:\n return {...state, messagesData: action.payload};\n case MESSAGES_ERROR:\n return {...state, messagesError: action.payload};\n case MESSAGES_PURGE:\n return {...stateMessages, purgeMessages: action.payload};\n }\n return state;\n}\n\nexport default getMessages\n","import {\n MESSAGES_DETAIL_SUCCESS,\n MESSAGES_DETAIL_ERROR,\n MESSAGES_DETAIL_PURGE,\n} from '../../types';\n\nconst stateMessagesDetail = {\n messagesDetailData: {},\n messagesDetailError: {},\n};\n\nconst getMessagesDetail = (state = stateMessagesDetail, action) => {\n switch (action.type) {\n case MESSAGES_DETAIL_SUCCESS:\n return { ...state, messagesDetailData: action.payload };\n case MESSAGES_DETAIL_ERROR:\n return { ...state, messagesDetailError: action.payload };\n case MESSAGES_DETAIL_PURGE:\n return { ...stateMessagesDetail, purgeMessagesDetail: action.payload };\n }\n return state;\n}\n\nexport default getMessagesDetail;","import {\n MENSAJEA_RH_SUCCESS,\n MENSAJEA_RH_ERROR,\n MENSAJEA_RH_PURGE,\n} from '../../types';\n\nconst stateMesageaRh = {\n mesageaRhData: {},\n mesageaRhError: {},\n};\n\nconst getMesageaRh = (state = stateMesageaRh, action) => {\n switch (action.type) {\n case MENSAJEA_RH_SUCCESS:\n return {...state, mesageaRhData: action.payload};\n case MENSAJEA_RH_ERROR:\n return {...state, mesageaRhError: action.payload};\n case MENSAJEA_RH_PURGE:\n return {...stateMesageaRh, purgeMesageaRh: action.payload};\n }\n return state;\n}\n\nexport default getMesageaRh;\n","import {\n MY_MESSAGES_RH_SUCCESS,\n MY_MESSAGES_RH_ERROR,\n MY_MESSAGES_RH_PURGE,\n} from '../../types';\n\nconst stateMyMessagesRh = {\n myMessagesRhData: {},\n myMessagesRhError: {},\n};\n\nconst getMyMessagesRh = (state = stateMyMessagesRh, action) => {\n switch (action.type) {\n case MY_MESSAGES_RH_SUCCESS:\n return {...state, myMessagesRhData: action.payload};\n case MY_MESSAGES_RH_ERROR:\n return {...state, myMessagesRhError: action.payload};\n case MY_MESSAGES_RH_PURGE:\n return {...stateMyMessagesRh, purgeMyMessagesRh: action.payload};\n }\n return state;\n}\n\nexport default getMyMessagesRh;\n","import {\n QUEJA_SUCCESS,\n QUEJA_ERROR,\n QUEJA_PURGE,\n} from '../../types';\n\nconst stateQueja = {\n quejaData: {},\n quejaError: {},\n};\n\nconst getQueja = (state = stateQueja, action) => {\n switch (action.type) {\n case QUEJA_SUCCESS:\n return {...state, quejaData: action.payload};\n case QUEJA_ERROR:\n return {...state, quejaError: action.payload};\n case QUEJA_PURGE:\n return {...stateQueja, purgeQueja: action.payload};\n }\n return state;\n}\n\nexport default getQueja;\n","import {\n SI_BALANCE_SUCCESS,\n SI_BALANCE_ERROR,\n SI_BALANCE_PURGE,\n} from '../../types';\n\nconst stateSiBalance = {\n siBalanceData: {},\n siBalanceError: {},\n};\n\nconst getSiBalance = (state = stateSiBalance, action) => {\n switch (action.type) {\n case SI_BALANCE_SUCCESS:\n return {...state, siBalanceData: action.payload};\n case SI_BALANCE_ERROR:\n return {...state, siBalanceError: action.payload};\n case SI_BALANCE_PURGE:\n return {...stateSiBalance, purgeSiBalance: action.payload};\n }\n return state;\n}\n\nexport default getSiBalance;\n","import {\n REQUEST_VACATIONS_ALL_SUCCESS,\n REQUEST_VACATIONS_ALL_ERROR,\n REQUEST_VACATIONS_ALL_PURGE,\n} from '../../types';\n\nconst stateRequestVacationsAll = {\n requestVacationsAllData: {},\n requestVacationsAllError: {},\n};\n\nconst getRequestVacationsAll = (state = stateRequestVacationsAll, action) => {\n switch (action.type) {\n case REQUEST_VACATIONS_ALL_SUCCESS:\n return {...state, requestVacationsAllData: action.payload};\n case REQUEST_VACATIONS_ALL_ERROR:\n return {...state, requestVacationsAllError: action.payload};\n case REQUEST_VACATIONS_ALL_PURGE:\n return {...stateRequestVacationsAll, purgeRequestVacationsAll: action.payload};\n }\n return state;\n}\n\nexport default getRequestVacationsAll;\n","import {\n AUTHORIZE_VACATIONS_SUCCESS,\n AUTHORIZE_VACATIONS_ERROR,\n AUTHORIZE_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateAuthorizeVacations = {\n authorizeVacationsData: {},\n authorizeVacationsError: {},\n};\n\nconst getAuthorizeVacations = (state = stateAuthorizeVacations, action) => {\n switch (action.type) {\n case AUTHORIZE_VACATIONS_SUCCESS:\n return {...state, authorizeVacationsData: action.payload};\n case AUTHORIZE_VACATIONS_ERROR:\n return {...state, authorizeVacationsError: action.payload};\n case AUTHORIZE_VACATIONS_PURGE:\n return {...stateAuthorizeVacations, purgeAuthorizeVacations: action.payload};\n }\n return state;\n}\n\nexport default getAuthorizeVacations;\n","import {\n REJECT_VACATIONS_SUCCESS,\n REJECT_VACATIONS_ERROR,\n REJECT_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateRejectVacations = {\n rejectVacationsData: {},\n rejectVacationsError: {},\n};\n\nconst RejectVacations= (state = stateRejectVacations, action) => {\n switch (action.type) {\n case REJECT_VACATIONS_SUCCESS:\n return {...state, rejectVacationsData: action.payload};\n case REJECT_VACATIONS_ERROR:\n return {...state, rejectVacationsError: action.payload};\n case REJECT_VACATIONS_PURGE:\n return {...stateRejectVacations, purgeRejectVacations: action.payload};\n }\n return state;\n}\n\nexport default RejectVacations;\n","import {\n SEE_VACATIONS_SUCCESS,\n SEE_VACATIONS_ERROR,\n SEE_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateSeeVacations = {\n seeVacationsData: {},\n seeVacationsError: {},\n};\n\nconst SeeVacations = (state = stateSeeVacations, action) => {\n switch (action.type) {\n case SEE_VACATIONS_SUCCESS:\n return { ...state, seeVacationsData: action.payload };\n case SEE_VACATIONS_ERROR:\n return { ...state, seeVacationsError: action.payload };\n case SEE_VACATIONS_PURGE:\n return { ...stateSeeVacations, purgeSeeVacations: action.payload };\n }\n return state;\n}\n\nexport default SeeVacations;","import {\n QR_SUCCESS,\n QR_ERROR,\n QR_PURGE,\n} from '../types';\n\nconst stateQr = {\n qrData: {},\n qrError: {},\n};\n\nconst getQr = (state = stateQr, action) => {\n switch (action.type) {\n case QR_SUCCESS:\n return {...state, qrData: action.payload};\n case QR_ERROR:\n return {...state, qrError: action.payload};\n case QR_PURGE:\n return {...stateQr, purgeQr: action.payload};\n }\n return state;\n};\n\nexport default getQr;\n","import {\n ALL_MESSAGES_TO_RH_SUCCESS,\n ALL_MESSAGES_TO_RH_ERROR,\n ALL_MESSAGES_TO_RH_PURGE,\n} from '../../types';\n\nconst stateAllMessagesToRh = {\n allMessagesToRhData: {},\n allMessagesToRhError: {},\n};\n\nconst getAllMessagesToRh = (state = stateAllMessagesToRh, action) => {\n switch (action.type) {\n case ALL_MESSAGES_TO_RH_SUCCESS:\n return {...state, allMessagesToRhData: action.payload};\n case ALL_MESSAGES_TO_RH_ERROR:\n return {...state, allMessagesToRhError: action.payload};\n case ALL_MESSAGES_TO_RH_PURGE:\n return {...stateAllMessagesToRh, purgeAllMessagesToRh: action.payload};\n }\n return state;\n}\n\nexport default getAllMessagesToRh;\n","import {\n READ_MESSAGE_SUCCESS,\n READ_MESSAGE_ERROR,\n READ_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateReadMessage = {\n readMessageData: {},\n readMessageError: {},\n};\n\nconst getReadMessage = (state = stateReadMessage, action) => {\n switch (action.type) {\n case READ_MESSAGE_SUCCESS:\n return {...state, readMessageData: action.payload};\n case READ_MESSAGE_ERROR:\n return {...state, readMessageError: action.payload};\n case READ_MESSAGE_PURGE:\n return {...stateReadMessage, purgeReadMessage: action.payload};\n }\n return state;\n}\n\nexport default getReadMessage;\n","import {\n DELETE_MESSAGE_SUCCESS,\n DELETE_MESSAGE_ERROR,\n DELETE_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateDeleteMessage = {\n deleteMessageData: {},\n deleteMessageError: {},\n};\n\nconst getDeleteMessage = (state = stateDeleteMessage, action) => {\n switch (action.type) {\n case DELETE_MESSAGE_SUCCESS:\n return {...state, deleteMessageData: action.payload};\n case DELETE_MESSAGE_ERROR:\n return {...state, deleteMessageError: action.payload};\n case DELETE_MESSAGE_PURGE:\n return {...stateDeleteMessage, purgeDeleteMessage: action.payload};\n }\n return state;\n}\n\nexport default getDeleteMessage;\n","import {\n TYPES_NOMINA_SUCCESS,\n TYPES_NOMINA_ERROR,\n TYPES_NOMINA_PURGE,\n} from '../../types';\n\nconst stateTypesNomina = {\n typesNominaData: {},\n typesNominaError: {},\n};\n\nconst getTypesNomina = (state = stateTypesNomina, action) => {\n switch (action.type) {\n case TYPES_NOMINA_SUCCESS:\n return {...state, typesNominaData: action.payload};\n case TYPES_NOMINA_ERROR:\n return {...state, typesNominaError: action.payload};\n case TYPES_NOMINA_PURGE:\n return {...stateTypesNomina, purgeTypesNomina: action.payload};\n }\n return state;\n}\n\nexport default getTypesNomina;\n","import {\n NOMINA_PERIODS_SUCCESS,\n NOMINA_PERIODS_ERROR,\n NOMINA_PERIODS_PURGE,\n} from '../../types';\n\nconst stateNominaPeriods = {\n nominaPeriodsData: {},\n nominaPeriodsError: {},\n};\n\nconst getNominaPeriods = (state = stateNominaPeriods, action) => {\n switch (action.type) {\n case NOMINA_PERIODS_SUCCESS:\n return {...state, nominaPeriodsData: action.payload};\n case NOMINA_PERIODS_ERROR:\n return {...state, nominaPeriodsError: action.payload};\n case NOMINA_PERIODS_PURGE:\n return {...stateNominaPeriods, purgeNominaPeriods: action.payload};\n }\n return state;\n}\n\nexport default getNominaPeriods;\n","import {\n CALENDAR_NOMINA_SUCCESS,\n CALENDAR_NOMINA_ERROR,\n CALENDAR_NOMINA_PURGE,\n} from '../../types';\n\nconst stateCalendarNomina = {\n calendarNominaData: {},\n calendarNominaError: {},\n};\n\nconst getCalendarNomina = (state = stateCalendarNomina, action) => {\n switch (action.type) {\n case CALENDAR_NOMINA_SUCCESS:\n return {...state, calendarNominaData: action.payload};\n case CALENDAR_NOMINA_ERROR:\n return {...state, calendarNominaError: action.payload};\n case CALENDAR_NOMINA_PURGE:\n return {...stateCalendarNomina, purgeCalendarNomina: action.payload};\n }\n return state;\n}\n\nexport default getCalendarNomina;\n","import {\n CENTERS_NOMINA_SUCCESS,\n CENTERS_NOMINA_ERROR,\n CENTERS_NOMINA_PURGE,\n} from '../../types';\n\nconst stateCentersNomina = {\n centersNominaData: {},\n centersNominaError: {},\n};\n\nconst getCentersNomina = (state = stateCentersNomina, action) => {\n switch (action.type) {\n case CENTERS_NOMINA_SUCCESS:\n return {...state, centersNominaData: action.payload};\n case CENTERS_NOMINA_ERROR:\n return {...state, centersNominaError: action.payload};\n case CENTERS_NOMINA_PURGE:\n return {...stateCentersNomina, purgeCentersNomina: action.payload};\n }\n return state;\n}\n\nexport default getCentersNomina;\n","import {\n PROCESS_NOMINA_SUCCESS,\n PROCESS_NOMINA_ERROR,\n PROCESS_NOMINA_PURGE,\n} from '../../types';\n\nconst stateProcessNomina = {\n processNominaData: {},\n processNominaError: {},\n};\n\nconst getProcessNomina = (state = stateProcessNomina, action) => {\n switch (action.type) {\n case PROCESS_NOMINA_SUCCESS:\n return {...state, processNominaData: action.payload};\n case PROCESS_NOMINA_ERROR:\n return {...state, processNominaError: action.payload};\n case PROCESS_NOMINA_PURGE:\n return {...stateProcessNomina, purgeProcessNomina: action.payload};\n }\n return state;\n}\n\nexport default getProcessNomina;\n","import {\n NOMINA_RH_SUCCESS,\n NOMINA_RH_ERROR,\n NOMINA_RH_PURGE,\n} from '../../types';\n\nconst stateNominaRh = {\n nominaRhData: {},\n nominaRhError: {},\n};\n\nconst getNominaRh = (state = stateNominaRh, action) => {\n switch (action.type) {\n case NOMINA_RH_SUCCESS:\n return {...state, nominaRhData: action.payload};\n case NOMINA_RH_ERROR:\n return {...state, nominaRhError: action.payload};\n case NOMINA_RH_PURGE:\n return {...stateNominaRh, purgeNominaRh: action.payload};\n }\n return state;\n}\n\nexport default getNominaRh;\n","import {\n DETALLE_NOMINA_RH_SUCCESS,\n DETALLE_NOMINA_RH_ERROR,\n DETALLE_NOMINA_RH_PURGE,\n} from '../../types';\n\nconst stateDetalleNominaRh = {\n detalleNominaRhData: {},\n detalleNominaRhError: {},\n};\n\nconst getDetalleNominaRh = (state = stateDetalleNominaRh, action) => {\n switch (action.type) {\n case DETALLE_NOMINA_RH_SUCCESS:\n return {...state, detalleNominaRhData: action.payload};\n case DETALLE_NOMINA_RH_ERROR:\n return {...state, detalleNominaRhError: action.payload};\n case DETALLE_NOMINA_RH_PURGE:\n return {...stateDetalleNominaRh, purgeDetalleNominaRh: action.payload};\n }\n return state;\n}\n\nexport default getDetalleNominaRh;\n","import {\n COMPANIES_SUCCESS,\n COMPANIES_ERROR,\n COMPANIES_PURGE,\n} from '../../types';\n\nconst stateCompanies = {\n companiesData: {},\n companiesError: {},\n};\n\nconst getCompanies = (state = stateCompanies, action) => {\n switch (action.type) {\n case COMPANIES_SUCCESS:\n return {...state, companiesData: action.payload};\n case COMPANIES_ERROR:\n return {...state, companiesError: action.payload};\n case COMPANIES_PURGE:\n return {...stateCompanies, purgeCompanies: action.payload};\n }\n return state;\n}\n\nexport default getCompanies;\n","import {\n LICENSE_DATA_SUCCESS,\n LICENSE_DATA_ERROR,\n LICENSE_DATA_PURGE,\n} from '../../types';\n\nconst stateLicenseData = {\n licenseData: {},\n licenseDataError: {},\n};\n\nconst getLicenseData = (state = stateLicenseData, action) => {\n switch (action.type) {\n case LICENSE_DATA_SUCCESS:\n return {...state, licenseData: action.payload};\n case LICENSE_DATA_ERROR:\n return {...state, licenseDataError: action.payload};\n case LICENSE_DATA_PURGE:\n return {...stateLicenseData, purgeLicenseData: action.payload};\n }\n return state;\n}\n\nexport default getLicenseData;\n","import {\n PROMOTIONS_SUCCESS,\n PROMOTIONS_ERROR,\n PROMOTIONS_PURGE,\n} from '../../types';\n\nconst statePromotions = {\n promotionsData: {},\n promotionsError: {},\n};\n\nconst getPromotions = (state = statePromotions, action) => {\n switch (action.type) {\n case PROMOTIONS_SUCCESS:\n return { ...state, promotionsData: action.payload };\n case PROMOTIONS_ERROR:\n return { ...state, promotionsError: action.payload };\n case PROMOTIONS_PURGE:\n return { ...statePromotions, purgePromotions: action.payload };\n }\n return state;\n}\n\nexport default getPromotions;","import {\n BUZON_QUEJAS_SUCCESS,\n BUZON_QUEJAS_ERROR,\n BUZON_QUEJAS_PURGE,\n} from '../../types';\n\nconst stateBuzonQuejas = {\n buzonQuejasData: {},\n buzonQuejasError: {},\n};\n\nconst getBuzonQuejas = (state = stateBuzonQuejas, action) => {\n switch (action.type) {\n case BUZON_QUEJAS_SUCCESS:\n return { ...state, buzonQuejasData: action.payload };\n case BUZON_QUEJAS_ERROR:\n return { ...state, buzonQuejasError: action.payload };\n case BUZON_QUEJAS_PURGE:\n return { ...stateBuzonQuejas, purgeBuzonQuejas: action.payload };\n }\n return state;\n}\n\nexport default getBuzonQuejas;","import {\n BUZON_QUEJAS_DETAIL_SUCCESS,\n BUZON_QUEJAS_DETAIL_ERROR,\n BUZON_QUEJAS_DETAIL_PURGE,\n} from '../../types';\n\nconst stateBuzonQuejasDetail = {\n buzonQuejasDetailData: {},\n buzonQuejasDetailError: {},\n};\n\nconst getBuzonQuejasDetail = (state = stateBuzonQuejasDetail, action) => {\n switch (action.type) {\n case BUZON_QUEJAS_DETAIL_SUCCESS:\n return { ...state, buzonQuejasDetailData: action.payload };\n case BUZON_QUEJAS_DETAIL_ERROR:\n return { ...state, buzonQuejasDetailError: action.payload };\n case BUZON_QUEJAS_DETAIL_PURGE:\n return { ...stateBuzonQuejasDetail, purgeBuzonQuejasDetail: action.payload };\n }\n return state;\n}\n\nexport default getBuzonQuejasDetail;","import {\n DELETE_COMPLAINT_SUCCESS,\n DELETE_COMPLAINT_ERROR,\n DELETE_COMPLAINT_PURGE,\n} from '../../types';\n\nconst stateDeleteComplaint = {\n deleteComplaintData: {},\n deleteComplaintError: {},\n};\n\nconst getDeleteComplaint = (state = stateDeleteComplaint, action) => {\n switch (action.type) {\n case DELETE_COMPLAINT_SUCCESS:\n return { ...state, deleteComplaintData: action.payload };\n case DELETE_COMPLAINT_ERROR:\n return { ...state, deleteComplaintError: action.payload };\n case DELETE_COMPLAINT_PURGE:\n return { ...stateDeleteComplaint, purgeDeleteComplaint: action.payload };\n }\n return state;\n}\n\nexport default getDeleteComplaint;","import {\n CALENDAR_SUCCESS,\n CALENDAR_ERROR,\n CALENDAR_PURGE,\n} from '../../types';\n\nconst stateCalendar = {\n calendarData: {},\n calendarError: {},\n};\n\nconst getCalendar = (state = stateCalendar, action) => {\n switch (action.type) {\n case CALENDAR_SUCCESS:\n return { ...state, calendarData: action.payload };\n case CALENDAR_ERROR:\n return { ...state, calendarError: action.payload };\n case CALENDAR_PURGE:\n return { ...stateCalendar, purgeCalendar: action.payload };\n }\n return state;\n}\n\nexport default getCalendar;","import {\n CENTERS_CATALOG_SUCCESS,\n CENTERS_CATALOG_ERROR,\n CENTERS_CATALOG_PURGE,\n} from '../../types';\n\nconst stateCentersCatalog = {\n centersCatalogData: {},\n centersCatalogError: {},\n};\n\nconst getCentersCatalog = (state = stateCentersCatalog, action) => {\n switch (action.type) {\n case CENTERS_CATALOG_SUCCESS:\n return {...state, centersCatalogData: action.payload};\n case CENTERS_CATALOG_ERROR:\n return {...state, centersCatalogError: action.payload};\n case CENTERS_CATALOG_PURGE:\n return {...stateCentersCatalog, purgeCentersCatalog: action.payload};\n }\n return state;\n}\n\nexport default getCentersCatalog;","import {\n DEPTS_CATALOG_SUCCESS,\n DEPTS_CATALOG_ERROR,\n DEPTS_CATALOG_PURGE,\n} from '../../types';\n\nconst stateDeptsCatalog = {\n deptsCatalogData: {},\n deptsCatalogError: {},\n};\n\nconst getDeptsCatalog = (state = stateDeptsCatalog, action) => {\n switch (action.type) {\n case DEPTS_CATALOG_SUCCESS:\n return {...state, deptsCatalogData: action.payload};\n case DEPTS_CATALOG_ERROR:\n return {...state, deptsCatalogError: action.payload};\n case DEPTS_CATALOG_PURGE:\n return {...stateDeptsCatalog, purgeDeptsCatalog: action.payload};\n }\n return state;\n}\n\nexport default getDeptsCatalog;","import {\n EMPLOYER_RECORDS_SUCCESS,\n EMPLOYER_RECORDS_ERROR,\n EMPLOYER_RECORDS_PURGE,\n} from '../../types';\n\nconst stateEmployerRecords = {\n employerRecordsData: {},\n employerRecordsError: {},\n};\n\nconst getEmployerRecords = (state = stateEmployerRecords, action) => {\n switch (action.type) {\n case EMPLOYER_RECORDS_SUCCESS:\n return {...state, employerRecordsData: action.payload};\n case EMPLOYER_RECORDS_ERROR:\n return {...state, employerRecordsError: action.payload};\n case EMPLOYER_RECORDS_PURGE:\n return {...stateEmployerRecords, purgeEmployerRecords: action.payload};\n }\n return state;\n}\n\nexport default getEmployerRecords;","import {\n EMPLOYER_RECORDS_PERMITS_SUCCESS,\n EMPLOYER_RECORDS_PERMITS_ERROR,\n EMPLOYER_RECORDS_PERMITS_PURGE,\n} from '../../types';\n\nconst stateEmployerRecordsPermits = {\n employerRecordsPermitsData: {},\n employerRecordsPermitsError: {},\n};\n\nconst getEmployerRecordsPermits = (state = stateEmployerRecordsPermits, action) => {\n switch (action.type) {\n case EMPLOYER_RECORDS_PERMITS_SUCCESS:\n return {...state, employerRecordsPermitsData: action.payload};\n case EMPLOYER_RECORDS_PERMITS_ERROR:\n return {...state, employerRecordsPermitsError: action.payload};\n case EMPLOYER_RECORDS_PERMITS_PURGE:\n return {...stateEmployerRecordsPermits, purgeEmployerRecordsPermits: action.payload};\n }\n return state;\n}\n\nexport default getEmployerRecordsPermits;","import {\n DEPARTMENT_PERMITS_SUCCESS,\n DEPARTMENT_PERMITS_ERROR,\n DEPARTMENT_PERMITS_PURGE,\n} from '../../types';\n\nconst stateDepartmentPermits = {\n departmentPermitsData: {},\n departmentPermitsError: {},\n};\n\nconst getDepartmentPermits = (state = stateDepartmentPermits, action) => {\n switch (action.type) {\n case DEPARTMENT_PERMITS_SUCCESS:\n return {...state, departmentPermitsData: action.payload};\n case DEPARTMENT_PERMITS_ERROR:\n return {...state, departmentPermitsError: action.payload};\n case DEPARTMENT_PERMITS_PURGE:\n return {...stateDepartmentPermits, purgeDepartmentPermits: action.payload};\n }\n return state;\n}\n\nexport default getDepartmentPermits;","import {\n CENTERS_PERMITS_SUCCESS,\n CENTERS_PERMITS_ERROR,\n CENTERS_PERMITS_PURGE,\n} from '../../types';\n\nconst stateCentersPermits = {\n centersPermitsData: {},\n centersPermitsError: {},\n};\n\nconst getCentersPermits = (state = stateCentersPermits, action) => {\n switch (action.type) {\n case CENTERS_PERMITS_SUCCESS:\n return {...state, centersPermitsData: action.payload};\n case CENTERS_PERMITS_ERROR:\n return {...state, centersPermitsError: action.payload};\n case CENTERS_PERMITS_PURGE:\n return {...stateCentersPermits, purgeCentersPermits: action.payload};\n }\n return state;\n}\n\nexport default getCentersPermits;","import {\n INSERT_DELETE_PERMIT_RP_SUCCESS,\n INSERT_DELETE_PERMIT_RP_ERROR,\n INSERT_DELETE_PERMIT_RP_PURGE,\n} from '../../types';\n\nconst stateInsertDeletePermitRP = {\n insertDeletePermitRPData: {},\n insertDeletePermitRPError: {},\n};\n\nconst getInsertDeletePermitRP = (state = stateInsertDeletePermitRP, action) => {\n switch (action.type) {\n case INSERT_DELETE_PERMIT_RP_SUCCESS:\n return {...state, insertDeletePermitRPData: action.payload};\n case INSERT_DELETE_PERMIT_RP_ERROR:\n return {...state, insertDeletePermitRPError: action.payload};\n case INSERT_DELETE_PERMIT_RP_PURGE:\n return {...stateInsertDeletePermitRP, purgeInsertDeletePermitRP: action.payload};\n }\n return state;\n}\n\nexport default getInsertDeletePermitRP;","import {\n INSERT_DELETE_PERMIT_CENTER_SUCCESS,\n INSERT_DELETE_PERMIT_CENTER_ERROR,\n INSERT_DELETE_PERMIT_CENTER_PURGE,\n} from '../../types';\n\nconst stateInsertDeletePermitCenter = {\n insertDeletePermitCenterData: {},\n insertDeletePermitCenterError: {},\n};\n\nconst getInsertDeletePermitCenter = (state = stateInsertDeletePermitCenter, action) => {\n switch (action.type) {\n case INSERT_DELETE_PERMIT_CENTER_SUCCESS:\n return {...state, insertDeletePermitCenterData: action.payload};\n case INSERT_DELETE_PERMIT_CENTER_ERROR:\n return {...state, insertDeletePermitCenterError: action.payload};\n case INSERT_DELETE_PERMIT_CENTER_PURGE:\n return {...stateInsertDeletePermitCenter, purgeInsertDeletePermitCenter: action.payload};\n }\n return state;\n}\n\nexport default getInsertDeletePermitCenter;","import {\n INSERT_DELETE_PERMIT_DEPTO_SUCCESS,\n INSERT_DELETE_PERMIT_DEPTO_ERROR,\n INSERT_DELETE_PERMIT_DEPTO_PURGE,\n} from '../../types';\n\nconst stateInsertDeletePermitDepto = {\n insertDeletePermitDeptoData: {},\n insertDeletePermitDeptoError: {},\n};\n\nconst getInsertDeletePermitDepto = (state = stateInsertDeletePermitDepto, action) => {\n switch (action.type) {\n case INSERT_DELETE_PERMIT_DEPTO_SUCCESS:\n return {...state, insertDeletePermitDeptoData: action.payload};\n case INSERT_DELETE_PERMIT_DEPTO_ERROR:\n return {...state, insertDeletePermitDeptoError: action.payload};\n case INSERT_DELETE_PERMIT_DEPTO_PURGE:\n return {...stateInsertDeletePermitDepto, purgeInsertDeletePermitDepto: action.payload};\n }\n return state;\n}\n\nexport default getInsertDeletePermitDepto;","import {\n CHANGE_PASSWORD_ADMIN_SUCCESS,\n CHANGE_PASSWORD_ADMIN_ERROR,\n CHANGE_PASSWORD_ADMIN_PURGE,\n} from '../../types';\n\nconst stateChangePasswordAdmin = {\n changePasswordAdminData: {},\n changePasswordAdminError: {},\n};\n\nconst getChangePasswordAdmin = (state = stateChangePasswordAdmin, action) => {\n switch (action.type) {\n case CHANGE_PASSWORD_ADMIN_SUCCESS:\n return { ...state, changePasswordAdminData: action.payload };\n case CHANGE_PASSWORD_ADMIN_ERROR:\n return { ...state, changePasswordAdminError: action.payload };\n case CHANGE_PASSWORD_ADMIN_PURGE:\n return { ...stateChangePasswordAdmin, purgeChangePasswordAdmin: action.payload };\n }\n return state;\n}\n\nexport default getChangePasswordAdmin;","import {\n NEW_USER_SUCCESS,\n NEW_USER_ERROR,\n NEW_USER_PURGE,\n\n ACTUALIZAUSUARIO_SUCCESS, \n ACTUALIZAUSUARIO_ERROR, \n ACTUALIZAUSUARIO_PURGE, \n\n ELIMINAUSUARIO_SUCCESS, \n ELIMINAUSUARIO_ERROR, \n ELIMINAUSUARIO_PURGE, \n \n} from '../../types';\n\nconst stateNewUser = {\n newUserData: {},\n newUserError: {},\n};\n\nconst stateActualizaUsuario = {\n actualizaUsuarioData: {},\n actualizaUsuarioError: {},\n};\n\nconst stateEliminaUsuario = {\n eliminaUsuarioData: {},\n eliminaUsuarioError: {},\n};\n\nexport const getNewUser = (state = stateNewUser, action) => {\n switch (action.type) {\n case NEW_USER_SUCCESS:\n return { ...state, newUserData: action.payload };\n case NEW_USER_ERROR:\n return { ...state, newUserError: action.payload };\n case NEW_USER_PURGE:\n return { ...stateNewUser, purgeNewUser: action.payload };\n }\n return state;\n}\n\nexport const ActualizaUsuarioReducer = (state = stateActualizaUsuario, action) => {\n switch (action.type) {\n case ACTUALIZAUSUARIO_SUCCESS:\n return {...state, actualizaUsuarioData: action.payload};\n case ACTUALIZAUSUARIO_ERROR:\n return {...state, actualizaUsuarioError: action.payload};\n case ACTUALIZAUSUARIO_PURGE:\n return {...stateActualizaUsuario, purgeActualizaUsuario: action.payload};\n }\n return state;\n}\n\nexport const EliminaUsuarioReducer = (state = stateEliminaUsuario, action) => {\n switch (action.type) {\n case ELIMINAUSUARIO_SUCCESS:\n return {...state, eliminaUsuarioData: action.payload};\n case ELIMINAUSUARIO_ERROR:\n return {...state, eliminaUsuarioError: action.payload};\n case ELIMINAUSUARIO_PURGE:\n return {...stateEliminaUsuario, purgeEliminaUsuario: action.payload};\n }\n return state;\n}\n","import {\n RESTART_PASSWORD_SUCCESS,\n RESTART_PASSWORD_ERROR,\n RESTART_PASSWORD_PURGE,\n} from '../../types';\n\nconst stateRestartPassword = {\n restartPasswordData: {},\n restartPasswordError: {},\n};\n\nconst getRestartPassword = (state = stateRestartPassword, action) => {\n switch (action.type) {\n case RESTART_PASSWORD_SUCCESS:\n return { ...state, restartPasswordData: action.payload };\n case RESTART_PASSWORD_ERROR:\n return { ...state, restartPasswordError: action.payload };\n case RESTART_PASSWORD_PURGE:\n return { ...stateRestartPassword, purgeRestartPassword: action.payload };\n }\n return state;\n}\n\nexport default getRestartPassword;","import {\n SEARCH_EMPLOYEE_SUCCESS,\n SEARCH_EMPLOYEE_ERROR,\n SEARCH_EMPLOYEE_PURGE,\n} from '../../types';\n\nconst stateSearchEmployee = {\n searchEmployeeData: {},\n searchEmployeeError: {},\n};\n\nconst getSearchEmployee = (state = stateSearchEmployee, action) => {\n switch (action.type) {\n case SEARCH_EMPLOYEE_SUCCESS:\n return { ...state, searchEmployeeData: action.payload };\n case SEARCH_EMPLOYEE_ERROR:\n return { ...state, searchEmployeeError: action.payload };\n case SEARCH_EMPLOYEE_PURGE:\n return { ...stateSearchEmployee, purgeSearchEmployee: action.payload };\n }\n return state;\n}\n\nexport default getSearchEmployee;","import {\n COMPANIES_LIST_SUCCESS,\n COMPANIES_LIST_ERROR,\n COMPANIES_LIST_PURGE,\n} from '../../types';\n\nconst stateCompaniesList = {\n companiesListData: {},\n companiesListError: {},\n};\n\nconst getCompaniesList = (state = stateCompaniesList, action) => {\n switch (action.type) {\n case COMPANIES_LIST_SUCCESS:\n return { ...state, companiesListData: action.payload };\n case COMPANIES_LIST_ERROR:\n return { ...state, companiesListError: action.payload };\n case COMPANIES_LIST_PURGE:\n return { ...stateCompaniesList, purgeCompaniesList: action.payload };\n }\n return state;\n}\n\nexport default getCompaniesList;","import {\n CHANGE_PASSWORD_EMPLOYEE_SUCCESS,\n CHANGE_PASSWORD_EMPLOYEE_ERROR,\n CHANGE_PASSWORD_EMPLOYEE_PURGE,\n} from '../../types';\n\nconst stateChangePasswordEmployee = {\n changePasswordEmployeeData: {},\n changePasswordEmployeeError: {},\n};\n\nconst getChangePasswordEmployee = (state = stateChangePasswordEmployee, action) => {\n switch (action.type) {\n case CHANGE_PASSWORD_EMPLOYEE_SUCCESS:\n return { ...state, changePasswordEmployeeData: action.payload };\n case CHANGE_PASSWORD_EMPLOYEE_ERROR:\n return { ...state, changePasswordEmployeeError: action.payload };\n case CHANGE_PASSWORD_EMPLOYEE_PURGE:\n return { ...stateChangePasswordEmployee, purgeChangePasswordEmployee: action.payload };\n }\n return state;\n}\n\nexport default getChangePasswordEmployee;","import {\n UNLOCK_EMPLOYEES_SUCCESS,\n UNLOCK_EMPLOYEES_ERROR,\n UNLOCK_EMPLOYEES_PURGE,\n} from '../../types';\n\nconst stateUnlockEmployee = {\n unlockEmployeeData: {},\n unlockEmployeeError: {},\n};\n\nconst getUnlockEmployee = (state = stateUnlockEmployee, action) => {\n switch (action.type) {\n case UNLOCK_EMPLOYEES_SUCCESS:\n return { ...state, unlockEmployeeData: action.payload };\n case UNLOCK_EMPLOYEES_ERROR:\n return { ...state, unlockEmployeeError: action.payload };\n case UNLOCK_EMPLOYEES_PURGE:\n return { ...stateUnlockEmployee, purgeUnlockEmployee: action.payload };\n }\n return state;\n}\n\nexport default getUnlockEmployee;","import {\n ACCESS_METHOD_SUCCESS,\n ACCESS_METHOD_ERROR,\n ACCESS_METHOD_PURGE,\n} from '../../types';\n\nconst stateAccessMethod = {\n accessMethodData: {},\n accessMethodError: {},\n};\n\nconst getAccessMethod = (state = stateAccessMethod, action) => {\n switch (action.type) {\n case ACCESS_METHOD_SUCCESS:\n return { ...state, accessMethodData: action.payload };\n case ACCESS_METHOD_ERROR:\n return { ...state, accessMethodError: action.payload };\n case ACCESS_METHOD_PURGE:\n return { ...stateAccessMethod, purgeAccessMethod: action.payload };\n }\n return state;\n}\n\nexport default getAccessMethod;","import {\n JOB_CATALOG_SUCCESS,\n JOB_CATALOG_ERROR,\n JOB_CATALOG_PURGE,\n} from '../../types';\n\nconst stateJobCatalog = {\n jobCatalogData: {},\n jobCatalogError: {},\n};\n\nconst getJobCatalog = (state = stateJobCatalog, action) => {\n switch (action.type) {\n case JOB_CATALOG_SUCCESS:\n return { ...state, jobCatalogData: action.payload };\n case JOB_CATALOG_ERROR:\n return { ...state, jobCatalogError: action.payload };\n case JOB_CATALOG_PURGE:\n return { ...stateJobCatalog, purgeJobCatalog: action.payload };\n }\n return state;\n}\n\nexport default getJobCatalog;","import {\n PERMIT_POSITION_USER_SUCCESS,\n PERMIT_POSITION_USER_ERROR,\n PERMIT_POSITION_USER_PURGE,\n} from '../../types';\n\nconst statePermitPositionUser = {\n permitPositionUserData: {},\n permitPositionUserError: {},\n};\n\nconst getPermitPositionUser = (state = statePermitPositionUser, action) => {\n switch (action.type) {\n case PERMIT_POSITION_USER_SUCCESS:\n return { ...state, permitPositionUserData: action.payload };\n case PERMIT_POSITION_USER_ERROR:\n return { ...state, permitPositionUserError: action.payload };\n case PERMIT_POSITION_USER_PURGE:\n return { ...statePermitPositionUser, purgePermitPositionUser: action.payload };\n }\n return state;\n}\n\nexport default getPermitPositionUser;","import {\n INSERT_DELETE_POS_SUCCESS,\n INSERT_DELETE_POS_ERROR,\n INSERT_DELETE_POS_PURGE,\n} from '../../types';\n\nconst stateInsertDeletePos = {\n insertDeletePosData: {},\n insertDeletePosError: {},\n};\n\nconst getInsertDeletePos = (state = stateInsertDeletePos, action) => {\n switch (action.type) {\n case INSERT_DELETE_POS_SUCCESS:\n return { ...state, insertDeletePosData: action.payload };\n case INSERT_DELETE_POS_ERROR:\n return { ...state, insertDeletePosError: action.payload };\n case INSERT_DELETE_POS_PURGE:\n return { ...stateInsertDeletePos, purgeInsertDeletePos: action.payload };\n }\n return state;\n}\n\nexport default getInsertDeletePos;","import {\n ADDITIONAL_FIELDS_SUCCESS,\n ADDITIONAL_FIELDS_ERROR,\n ADDITIONAL_FIELDS_PURGE,\n} from '../../types';\n\nconst stateAdditionalFields = {\n additionalFieldsData: {},\n additionalFieldsError: {},\n};\n\nconst getAdditionalFields = (state = stateAdditionalFields, action) => {\n switch (action.type) {\n case ADDITIONAL_FIELDS_SUCCESS:\n return { ...state, additionalFieldsData: action.payload };\n case ADDITIONAL_FIELDS_ERROR:\n return { ...state, additionalFieldsError: action.payload };\n case ADDITIONAL_FIELDS_PURGE:\n return { ...stateAdditionalFields, purgeAdditionalFields: action.payload };\n }\n return state;\n}\n\nexport default getAdditionalFields;","import {\n DELETE_ADD_FIELDS_SUCCESS,\n DELETE_ADD_FIELDS_ERROR,\n DELETE_ADD_FIELDS_PURGE,\n} from '../../types';\n\nconst stateDeleteAddFields = {\n deleteAddFieldsData: {},\n deleteAddFieldsError: {},\n};\n\nconst getDeleteAddFields = (state = stateDeleteAddFields, action) => {\n switch (action.type) {\n case DELETE_ADD_FIELDS_SUCCESS:\n return { ...state, deleteAddFieldsData: action.payload };\n case DELETE_ADD_FIELDS_ERROR:\n return { ...state, deleteAddFieldsError: action.payload };\n case DELETE_ADD_FIELDS_PURGE:\n return { ...stateDeleteAddFields, purgeDeleteAddFields: action.payload };\n }\n return state;\n}\n\nexport default getDeleteAddFields;","import {\n NEXT_INFO_USER_SUCCESS,\n NEXT_INFO_USER_ERROR,\n NEXT_INFO_USER_PURGE,\n} from '../../types';\n\nconst stateNextInfoUser = {\n nextInfoUserData: {},\n nextInfoUserError: {},\n};\n\nconst getNextInfoUser = (state = stateNextInfoUser, action) => {\n switch (action.type) {\n case NEXT_INFO_USER_SUCCESS:\n return { ...state, nextInfoUserData: action.payload };\n case NEXT_INFO_USER_ERROR:\n return { ...state, nextInfoUserError: action.payload };\n case NEXT_INFO_USER_PURGE:\n return { ...stateNextInfoUser, purgeNextInfoUser: action.payload };\n }\n return state;\n}\n\nexport default getNextInfoUser;","import {\n SAVE_INFO_EXTRA_SUCCESS,\n SAVE_INFO_EXTRA_ERROR,\n SAVE_INFO_EXTRA_PURGE,\n} from '../../types';\n\nconst stateSaveInfoExtra = {\n saveInfoExtraData: {},\n saveInfoExtraError: {},\n};\n\nconst getSaveInfoExtra = (state = stateSaveInfoExtra, action) => {\n switch (action.type) {\n case SAVE_INFO_EXTRA_SUCCESS:\n return { ...state, saveInfoExtraData: action.payload };\n case SAVE_INFO_EXTRA_ERROR:\n return { ...state, saveInfoExtraError: action.payload };\n case SAVE_INFO_EXTRA_PURGE:\n return { ...stateSaveInfoExtra, purgeSaveInfoExtra: action.payload };\n }\n return state;\n}\n\nexport default getSaveInfoExtra;","\nimport {\n RECEIPT_GENERATION_EMPLOYEE_SUCCESS,\n RECEIPT_GENERATION_EMPLOYEE_ERROR,\n RECEIPT_GENERATION_EMPLOYEE_PURGE,\n} from '../../types';\n\nconst stateReceiptGenerationEmployee = {\n receiptGenerationEmployeeData: {},\n receiptGenerationEmployeeError: {},\n};\n\nconst getReceiptGenerationEmployee = (state = stateReceiptGenerationEmployee, action) => {\n switch (action.type) {\n case RECEIPT_GENERATION_EMPLOYEE_SUCCESS:\n return { ...state, receiptGenerationEmployeeData: action.payload };\n case RECEIPT_GENERATION_EMPLOYEE_ERROR:\n return { ...state, receiptGenerationEmployeeError: action.payload };\n case RECEIPT_GENERATION_EMPLOYEE_PURGE:\n return { ...stateReceiptGenerationEmployee, purgeReceiptGenerationEmployee: action.payload };\n }\n return state;\n}\n\nexport default getReceiptGenerationEmployee;","import {\n BLOCK_USER_SUCCESS,\n BLOCK_USER_ERROR,\n BLOCK_USER_PURGE,\n} from '../../types';\n\nconst stateBlockUser = {\n blockUserData: {},\n blockUserError: {},\n};\n\nconst getBlockUser = (state = stateBlockUser, action) => {\n switch (action.type) {\n case BLOCK_USER_SUCCESS:\n return { ...state, blockUserData: action.payload };\n case BLOCK_USER_ERROR:\n return { ...state, blockUserError: action.payload };\n case BLOCK_USER_PURGE:\n return { ...stateBlockUser, purgeBlockUser: action.payload };\n }\n return state;\n}\n\nexport default getBlockUser;","import {\n ALL_USERS_SUCCESS,\n ALL_USERS_ERROR,\n ALL_USERS_PURGE,\n} from '../../types';\n\nconst stateAllUsers = {\n allUsersData: {},\n allUsersError: {},\n};\n\nconst getAllUsers = (state = stateAllUsers, action) => {\n switch (action.type) {\n case ALL_USERS_SUCCESS:\n return { ...state, allUsersData: action.payload };\n case ALL_USERS_ERROR:\n return { ...state, allUsersError: action.payload };\n case ALL_USERS_PURGE:\n return { ...stateAllUsers, purgeAllUsers: action.payload };\n }\n return state;\n}\n\nexport default getAllUsers;","import {\n WELCOME_MESSAGE_SUCCESS,\n WELCOME_MESSAGE_ERROR,\n WELCOME_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateWelcomeMessage = {\n welcomeMessageData: {},\n welcomeMessageError: {},\n};\n\nconst getWelcomeMessage = (state = stateWelcomeMessage, action) => {\n switch (action.type) {\n case WELCOME_MESSAGE_SUCCESS:\n return { ...state, welcomeMessageData: action.payload };\n case WELCOME_MESSAGE_ERROR:\n return { ...state, welcomeMessageError: action.payload };\n case WELCOME_MESSAGE_PURGE:\n return { ...stateWelcomeMessage, purgeWelcomeMessage: action.payload };\n }\n return state;\n}\n\nexport default getWelcomeMessage;","import {\n EDIT_WELCOME_MESSAGE_SUCCESS,\n EDIT_WELCOME_MESSAGE_ERROR,\n EDIT_WELCOME_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateEditWelcomeMessage = {\n editWelcomeMessageData: {},\n editWelcomeMessageError: {},\n};\n\nconst getWelcomeMessage = (state = stateEditWelcomeMessage, action) => {\n switch (action.type) {\n case EDIT_WELCOME_MESSAGE_SUCCESS:\n return { ...state, editWelcomeMessageData: action.payload };\n case EDIT_WELCOME_MESSAGE_ERROR:\n return { ...state, editWelcomeMessageError: action.payload };\n case EDIT_WELCOME_MESSAGE_PURGE:\n return { ...stateEditWelcomeMessage, purgeEditWelcomeMessage: action.payload };\n }\n return state;\n}\n\nexport default getWelcomeMessage;","import {\n SELECTED_ADDITIONAL_FIELDS_SUCCESS,\n SELECTED_ADDITIONAL_FIELDS_ERROR,\n SELECTED_ADDITIONAL_FIELDS_PURGE,\n} from '../../types';\n\nconst stateSelectedAdditionalFields = {\n selectedAdditionalFieldsData: {},\n selectedAdditionalFieldsError: {},\n};\n\nconst getSelectedAdditionalFields = (state = stateSelectedAdditionalFields, action) => {\n switch (action.type) {\n case SELECTED_ADDITIONAL_FIELDS_SUCCESS:\n return { ...state, selectedAdditionalFieldsData: action.payload };\n case SELECTED_ADDITIONAL_FIELDS_ERROR:\n return { ...state, selectedAdditionalFieldsError: action.payload };\n case SELECTED_ADDITIONAL_FIELDS_PURGE:\n return { ...stateSelectedAdditionalFields, purgeSelectedAdditionalFields: action.payload };\n }\n return state;\n}\n\nexport default getSelectedAdditionalFields;","import {\n NEW_CORPORATIVE_MESSAGE_SUCCESS,\n NEW_CORPORATIVE_MESSAGE_ERROR,\n NEW_CORPORATIVE_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateNewCorporativeMessage = {\n newCorporativeMessageData: {},\n newCorporativeMessageError: {},\n};\n\nconst getNewCorporativeMessage = (state = stateNewCorporativeMessage, action) => {\n switch (action.type) {\n case NEW_CORPORATIVE_MESSAGE_SUCCESS:\n return { ...state, newCorporativeMessageData: action.payload };\n case NEW_CORPORATIVE_MESSAGE_ERROR:\n return { ...state, newCorporativeMessageError: action.payload };\n case NEW_CORPORATIVE_MESSAGE_PURGE:\n return { ...stateNewCorporativeMessage, purgeNewCorporativeMessage: action.payload };\n }\n return state;\n}\n\nexport default getNewCorporativeMessage;","import {\n EDIT_CORPORATIVE_MESSAGE_SUCCESS,\n EDIT_CORPORATIVE_MESSAGE_ERROR,\n EDIT_CORPORATIVE_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateEditCorporativeMessage = {\n editCorporativeMessageData: {},\n editCorporativeMessageError: {},\n};\n\nconst getEditCorporativeMessage = (state = stateEditCorporativeMessage, action) => {\n switch (action.type) {\n case EDIT_CORPORATIVE_MESSAGE_SUCCESS:\n return { ...state, editCorporativeMessageData: action.payload };\n case EDIT_CORPORATIVE_MESSAGE_ERROR:\n return { ...state, editCorporativeMessageError: action.payload };\n case EDIT_CORPORATIVE_MESSAGE_PURGE:\n return { ...stateEditCorporativeMessage, purgeEditCorporativeMessage: action.payload };\n }\n return state;\n}\n\nexport default getEditCorporativeMessage;","import {\n LIST_CORPORATIVE_MESSAGE_SUCCESS,\n LIST_CORPORATIVE_MESSAGE_ERROR,\n LIST_CORPORATIVE_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateListCorporativeMessage = {\n listCorporativeMessageData: {},\n listCorporativeMessageError: {},\n};\n\nconst getListCorporativeMessage = (state = stateListCorporativeMessage, action) => {\n switch (action.type) {\n case LIST_CORPORATIVE_MESSAGE_SUCCESS:\n return { ...state, listCorporativeMessageData: action.payload };\n case LIST_CORPORATIVE_MESSAGE_ERROR:\n return { ...state, listCorporativeMessageError: action.payload };\n case LIST_CORPORATIVE_MESSAGE_PURGE:\n return { ...stateListCorporativeMessage, purgeListCorporativeMessage: action.payload };\n }\n return state;\n}\n\nexport default getListCorporativeMessage;","import {\n DETAIL_CORPORATIVE_MESSAGE_SUCCESS,\n DETAIL_CORPORATIVE_MESSAGE_ERROR,\n DETAIL_CORPORATIVE_MESSAGE_PURGE,\n} from '../../types';\n\nconst stateDetailCorporativeMessage = {\n detailCorporativeMessageData: {},\n detailCorporativeMessageError: {},\n};\n\nconst getDetailCorporativeMessage = (state = stateDetailCorporativeMessage, action) => {\n switch (action.type) {\n case DETAIL_CORPORATIVE_MESSAGE_SUCCESS:\n return { ...state, detailCorporativeMessageData: action.payload };\n case DETAIL_CORPORATIVE_MESSAGE_ERROR:\n return { ...state, detailCorporativeMessageError: action.payload };\n case DETAIL_CORPORATIVE_MESSAGE_PURGE:\n return { ...stateDetailCorporativeMessage, purgeDetailCorporativeMessage: action.payload };\n }\n return state;\n}\n\nexport default getDetailCorporativeMessage;","import {\n CONTROL_VACATIONS_SUCCESS,\n CONTROL_VACATIONS_ERROR,\n CONTROL_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateControlVacations = {\n controlVacationsData: {},\n controlVacationsError: {},\n};\n\nconst getControlVacations = (state = stateControlVacations, action) => {\n switch (action.type) {\n case CONTROL_VACATIONS_SUCCESS:\n return { ...state, controlVacationsData: action.payload };\n case CONTROL_VACATIONS_ERROR:\n return { ...state, controlVacationsError: action.payload };\n case CONTROL_VACATIONS_PURGE:\n return { ...stateControlVacations, purgeControlVacations: action.payload };\n }\n return state;\n}\n\nexport default getControlVacations;","import {\n CONSULTA_ROLES_SUCCESS,\n CONSULTA_ROLES_ERROR,\n CONSULTA_ROLES_PURGE,\n} from \"../../types\";\n\nconst stateConsultaRoles = {\n consultaRolesData: {},\n consultaRolesError: {},\n};\n\nconst getConsultaRoles = (state = stateConsultaRoles, action) => {\n switch (action.type) {\n case CONSULTA_ROLES_SUCCESS:\n return { ...state, consultaRolesData: action.payload };\n case CONSULTA_ROLES_ERROR:\n return { ...state, consultaRolesError: action.payload };\n case CONSULTA_ROLES_PURGE:\n return { ...stateConsultaRoles, purgeConsultaRoles: action.payload };\n }\n return state;\n};\n\nexport default getConsultaRoles;\n","\r\nimport {\r\n EMPLOYEE_CATALOG_SUCCESS,\r\n EMPLOYEE_CATALOG_ERROR,\r\n EMPLOYEE_CATALOG_PURGE,\r\n } from '../../types';\r\n \r\n const stateEmployeeCatalog = {\r\n employeeCatalogData: {},\r\n employeeCatalogError: {},\r\n };\r\n \r\n const getEmployeeCatalog = (state = stateEmployeeCatalog, action) => {\r\n switch (action.type) {\r\n case EMPLOYEE_CATALOG_SUCCESS:\r\n return { ...state, employeeCatalogData: action.payload };\r\n case EMPLOYEE_CATALOG_ERROR:\r\n return { ...state, employeeCatalogError: action.payload };\r\n case EMPLOYEE_CATALOG_PURGE:\r\n return { ...stateEmployeeCatalog, purgeEmployeeCatalog: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default getEmployeeCatalog;","import {\n CANCEL_VACATIONS_EULEN_SUCCESS,\n CANCEL_VACATIONS_EULEN_ERROR,\n CANCEL_VACATIONS_EULEN_PURGE,\n} from '../../types';\n\nconst stateCancelVacationsEulen = {\n cancelVacationsEulenData: {},\n cancelVacationsEulenError: {},\n};\n\nconst getCancelVacationsEulen = (state = stateCancelVacationsEulen, action) => {\n switch (action.type) {\n case CANCEL_VACATIONS_EULEN_SUCCESS:\n return { ...state, cancelVacationsEulenData: action.payload };\n case CANCEL_VACATIONS_EULEN_ERROR:\n return { ...state, cancelVacationsEulenError: action.payload };\n case CANCEL_VACATIONS_EULEN_PURGE:\n return { ...stateCancelVacationsEulen, purgeCancelVacationsEulen: action.payload };\n }\n return state;\n}\n\nexport default getCancelVacationsEulen;","import {\n AUTHORIZE_CANCEL_VACATIONS_SUCCESS,\n AUTHORIZE_CANCEL_VACATIONS_ERROR,\n AUTHORIZE_CANCEL_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateAuthorizeCancelVacations = {\n authorizeCancelVacationsData: {},\n authorizeCancelVacationsError: {},\n};\n\nconst AuthorizeCancelVacations = (state = stateAuthorizeCancelVacations, action) => {\n switch (action.type) {\n case AUTHORIZE_CANCEL_VACATIONS_SUCCESS:\n return { ...state, authorizeCancelVacationsData: action.payload };\n case AUTHORIZE_CANCEL_VACATIONS_ERROR:\n return { ...state, authorizeCancelVacationsError: action.payload };\n case AUTHORIZE_CANCEL_VACATIONS_PURGE:\n return { ...stateAuthorizeCancelVacations, purgeAuthorizeCancelVacations: action.payload };\n }\n return state;\n}\n\nexport default AuthorizeCancelVacations;","import {\n REJECT_CANCEL_VACATIONS_SUCCESS,\n REJECT_CANCEL_VACATIONS_ERROR,\n REJECT_CANCEL_VACATIONS_PURGE,\n} from '../../types';\n\nconst stateRejectCancelVacations = {\n rejectCancelVacationsData: {},\n rejectCancelVacationsError: {},\n};\n\nconst RejectCancelVacations = (state = stateRejectCancelVacations, action) => {\n switch (action.type) {\n case REJECT_CANCEL_VACATIONS_SUCCESS:\n return { ...state, rejectCancelVacationsData: action.payload };\n case REJECT_CANCEL_VACATIONS_ERROR:\n return { ...state, rejectCancelVacationsError: action.payload };\n case REJECT_CANCEL_VACATIONS_PURGE:\n return { ...stateRejectCancelVacations, purgeRejectCancelVacations: action.payload };\n }\n return state;\n}\n\nexport default RejectCancelVacations;","import {\n VACATIONS_MASSIVE_SUCCESS,\n VACATIONS_MASSIVE_ERROR,\n VACATIONS_MASSIVE_PURGE,\n} from '../../types';\n\nconst stateVacationsMassive = {\n vacationsMassiveData: {},\n vacationsMassiveError: {},\n};\n\nconst getVacationsMassive = (state = stateVacationsMassive, action) => {\n switch (action.type) {\n case VACATIONS_MASSIVE_SUCCESS:\n return { ...state, vacationsMassiveData: action.payload };\n case VACATIONS_MASSIVE_ERROR:\n return { ...state, vacationsMassiveError: action.payload };\n case VACATIONS_MASSIVE_PURGE:\n return { ...stateVacationsMassive, purgeVacationsMassive: action.payload };\n }\n return state;\n}\n\nexport default getVacationsMassive;","import {\n AUTHORIZE_VACATIONS_MASSIVE_SUCCESS,\n AUTHORIZE_VACATIONS_MASSIVE_ERROR,\n AUTHORIZE_VACATIONS_MASSIVE_PURGE,\n} from '../../types';\n\nconst stateAuthorizeVacationsMassive = {\n authorizeVacationsMassiveData: {},\n authorizeVacationsMassiveError: {},\n};\n\nconst getAuthorizeVacationsMassive = (state = stateAuthorizeVacationsMassive, action) => {\n switch (action.type) {\n case AUTHORIZE_VACATIONS_MASSIVE_SUCCESS:\n return { ...state, authorizeVacationsMassiveData: action.payload };\n case AUTHORIZE_VACATIONS_MASSIVE_ERROR:\n return { ...state, authorizeVacationsMassiveError: action.payload };\n case AUTHORIZE_VACATIONS_MASSIVE_PURGE:\n return { ...stateAuthorizeVacationsMassive, purgeAuthorizeVacationsMassive: action.payload };\n }\n return state;\n}\n\nexport default getAuthorizeVacationsMassive;","import {\n REJECT_VACATIONS_MASSIVE_SUCCESS,\n REJECT_VACATIONS_MASSIVE_ERROR,\n REJECT_VACATIONS_MASSIVE_PURGE,\n} from '../../types';\n\nconst stateRejectVacationsMassive = {\n rejectVacationsMassiveData: {},\n rejectVacationsMassiveError: {},\n};\n\nconst getRejectVacationsMassive = (state = stateRejectVacationsMassive, action) => {\n switch (action.type) {\n case REJECT_VACATIONS_MASSIVE_SUCCESS:\n return { ...state, rejectVacationsMassiveData: action.payload };\n case REJECT_VACATIONS_MASSIVE_ERROR:\n return { ...state, rejectVacationsMassiveError: action.payload };\n case REJECT_VACATIONS_MASSIVE_PURGE:\n return { ...stateRejectVacationsMassive, purgeRejectVacationsMassive: action.payload };\n }\n return state;\n}\n\nexport default getRejectVacationsMassive;","import {\n VACATIONS_RHVACATION_SUCCESS,\n VACATIONS_RHVACATION_ERROR,\n VACATIONS_RHVACATION_PURGE,\n} from '../../types';\n\nconst stateVacationsRhVacation = {\n vacationsRhVacationData: {},\n vacationsRhVacationError: {},\n};\n\nconst getVacationsRhVacation = (state = stateVacationsRhVacation, action) => {\n switch (action.type) {\n case VACATIONS_RHVACATION_SUCCESS:\n return { ...state, vacationsRhVacationData: action.payload };\n case VACATIONS_RHVACATION_ERROR:\n return { ...state, vacationsRhVacationError: action.payload };\n case VACATIONS_RHVACATION_PURGE:\n return { ...stateVacationsRhVacation, purgeVacationsRhVacation: action.payload };\n }\n return state;\n}\n\nexport default getVacationsRhVacation;","import {\n LIST_COMPANIES_RPT_SUCCESS,\n LIST_COMPANIES_RPT_ERROR,\n LIST_COMPANIES_RPT_PURGE,\n} from '../../types';\n\nconst stateListCompaniesRpt = {\n listCompaniesRptData: {},\n listCompaniesRptError: {},\n};\n\nconst getListCompaniesRpt = (state = stateListCompaniesRpt, action) => {\n switch (action.type) {\n case LIST_COMPANIES_RPT_SUCCESS:\n return { ...state, listCompaniesRptData: action.payload };\n case LIST_COMPANIES_RPT_ERROR:\n return { ...state, listCompaniesRptError: action.payload };\n case LIST_COMPANIES_RPT_PURGE:\n return { ...stateListCompaniesRpt, purgeListCompaniesRpt: action.payload };\n }\n return state;\n}\n\nexport default getListCompaniesRpt;","import {\n FILTER_CENTERS_SUCCESS,\n FILTER_CENTERS_ERROR,\n FILTER_CENTERS_PURGE,\n} from '../../types';\n\nconst stateFilterCenter = {\n filterCenterData: {},\n filterCenterError: {},\n};\n\nconst getFilterCenter = (state = stateFilterCenter, action) => {\n switch (action.type) {\n case FILTER_CENTERS_SUCCESS:\n return { ...state, filterCenterData: action.payload };\n case FILTER_CENTERS_ERROR:\n return { ...state, filterCenterError: action.payload };\n case FILTER_CENTERS_PURGE:\n return { ...stateFilterCenter, purgeFilterCenter: action.payload };\n }\n return state;\n}\n\nexport default getFilterCenter;","import {\n FILTER_BOOS_SUCCESS,\n FILTER_BOOS_ERROR,\n FILTER_BOOS_PURGE,\n} from '../../types';\n\nconst stateFilterBoos = {\n filterBoosData: {},\n filterBoosError: {},\n};\n\nconst getFilterBoos = (state = stateFilterBoos, action) => {\n switch (action.type) {\n case FILTER_BOOS_SUCCESS:\n return { ...state, filterBoosData: action.payload };\n case FILTER_BOOS_ERROR:\n return { ...state, filterBoosError: action.payload };\n case FILTER_BOOS_PURGE:\n return { ...stateFilterBoos, purgeFilterBoos: action.payload };\n }\n return state;\n}\n\nexport default getFilterBoos;","import {\n REPORT_RHVAC_SUCCESS,\n REPORT_RHVAC_ERROR,\n REPORT_RHVAC_PURGE,\n} from '../../types';\n\nconst stateReportRHVac = {\n reportRHVacData: {},\n reportRHVacError: {},\n};\n\nconst getReportRHVac = (state = stateReportRHVac, action) => {\n switch (action.type) {\n case REPORT_RHVAC_SUCCESS:\n return { ...state, reportRHVacData: action.payload };\n case REPORT_RHVAC_ERROR:\n return { ...state, reportRHVacError: action.payload };\n case REPORT_RHVAC_PURGE:\n return { ...stateReportRHVac, purgeReportRHVac: action.payload };\n }\n return state;\n}\n\nexport default getReportRHVac;","import {\n ADMIN_MENU_SUCCESS,\n ADMIN_MENU_ERROR,\n ADMIN_MENU_PURGE,\n} from '../../types';\n\nconst stateAdminMenu = {\n adminMenuData: {},\n adminMenuError: {},\n};\n\nconst getAdminMenu = (state = stateAdminMenu, action) => {\n switch (action.type) {\n case ADMIN_MENU_SUCCESS:\n return { ...state, adminMenuData: action.payload };\n case ADMIN_MENU_ERROR:\n return { ...state, adminMenuError: action.payload };\n case ADMIN_MENU_PURGE:\n return { ...stateAdminMenu, purgeAdminMenu: action.payload };\n }\n return state;\n}\n\nexport default getAdminMenu;","import {\n ADMIN_MENU_ACTIVATE_SUCCESS,\n ADMIN_MENU_ACTIVATE_ERROR,\n ADMIN_MENU_ACTIVATE_PURGE,\n} from '../../types';\n\nconst stateAdminMenuActivate = {\n adminMenuActivateData: {},\n adminMenuActivateError: {},\n};\n\nconst getAdminMenuActivate = (state = stateAdminMenuActivate, action) => {\n switch (action.type) {\n case ADMIN_MENU_ACTIVATE_SUCCESS:\n return { ...state, adminMenuActivateData: action.payload };\n case ADMIN_MENU_ACTIVATE_ERROR:\n return { ...state, adminMenuActivateError: action.payload };\n case ADMIN_MENU_ACTIVATE_PURGE:\n return { ...stateAdminMenuActivate, purgeAdminMenuActivate: action.payload };\n }\n return state;\n}\n\nexport default getAdminMenuActivate;","import {\n VACATIONS_MASSIVE_DIRECT_SUCCESS,\n VACATIONS_MASSIVE_DIRECT_ERROR,\n VACATIONS_MASSIVE_DIRECT_PURGE,\n} from '../../types';\n\nconst stateVacationsMassiveDirect = {\n vacationsMassiveDirectData: {},\n vacationsMassiveDirectError: {},\n};\n\nconst getVacationsMassiveDirect = (state = stateVacationsMassiveDirect, action) => {\n switch (action.type) {\n case VACATIONS_MASSIVE_DIRECT_SUCCESS:\n return { ...state, vacationsMassiveDirectData: action.payload };\n case VACATIONS_MASSIVE_DIRECT_ERROR:\n return { ...state, vacationsMassiveDirectError: action.payload };\n case VACATIONS_MASSIVE_DIRECT_PURGE:\n return { ...stateVacationsMassiveDirect, purgeVacationsMassiveDirect: action.payload };\n }\n return state;\n}\n\nexport default getVacationsMassiveDirect;","import {\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS,\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR,\n AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE,\n} from '../../types';\n\nconst stateAuthorizeVacationsMassiveDirect = {\n authorizeVacationsMassiveDirectData: {},\n authorizeVacationsMassiveDirectError: {},\n};\n\nconst getAuthorizeVacationsMassiveDirect = (state = stateAuthorizeVacationsMassiveDirect, action) => {\n switch (action.type) {\n case AUTHORIZE_VACATIONS_MASSIVE_DIRECT_SUCCESS:\n return { ...state, authorizeVacationsMassiveDirectData: action.payload };\n case AUTHORIZE_VACATIONS_MASSIVE_DIRECT_ERROR:\n return { ...state, authorizeVacationsMassiveDirectError: action.payload };\n case AUTHORIZE_VACATIONS_MASSIVE_DIRECT_PURGE:\n return { ...stateAuthorizeVacationsMassiveDirect, purgeAuthorizeVacationsMassiveDirect: action.payload };\n }\n return state;\n}\n\nexport default getAuthorizeVacationsMassiveDirect;","import {\n REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS,\n REJECT_VACATIONS_MASSIVE_DIRECT_ERROR,\n REJECT_VACATIONS_MASSIVE_DIRECT_PURGE,\n} from '../../types';\n\nconst stateRejectVacationsMassiveDirect = {\n rejectVacationsMassiveDirectData: {},\n rejectVacationsMassiveDirectError: {},\n};\n\nconst getRejectVacationsMassiveDirect = (state = stateRejectVacationsMassiveDirect, action) => {\n switch (action.type) {\n case REJECT_VACATIONS_MASSIVE_DIRECT_SUCCESS:\n return { ...state, rejectVacationsMassiveDirectData: action.payload };\n case REJECT_VACATIONS_MASSIVE_DIRECT_ERROR:\n return { ...state, rejectVacationsMassiveDirectError: action.payload };\n case REJECT_VACATIONS_MASSIVE_DIRECT_PURGE:\n return { ...stateRejectVacationsMassiveDirect, purgeRejectVacationsMassiveDirect: action.payload };\n }\n return state;\n}\n\nexport default getRejectVacationsMassiveDirect;","import {\n VACATIONS_DIRECT_SUCCESS,\n VACATIONS_DIRECT_ERROR,\n VACATIONS_DIRECT_PURGE,\n} from '../../types';\n\nconst stateVacationsDirect = {\n vacationsDirectData: {},\n vacationsDirectError: {},\n};\n\nconst getVacationsDirect = (state = stateVacationsDirect, action) => {\n switch (action.type) {\n case VACATIONS_DIRECT_SUCCESS:\n return { ...state, vacationsDirectData: action.payload };\n case VACATIONS_DIRECT_ERROR:\n return { ...state, vacationsDirectError: action.payload };\n case VACATIONS_DIRECT_PURGE:\n return { ...stateVacationsDirect, purgeVacationsDirect: action.payload };\n }\n return state;\n}\n\nexport default getVacationsDirect;","import {\n REPORT_RHVAC_DIRECT_SUCCESS,\n REPORT_RHVAC_DIRECT_ERROR,\n REPORT_RHVAC_DIRECT_PURGE,\n} from '../../types';\n\nconst stateReportRHVacDirect = {\n reportRHVacDirectData: {},\n reportRHVacDirectError: {},\n};\n\nconst getReportRHVacDirect = (state = stateReportRHVacDirect, action) => {\n switch (action.type) {\n case REPORT_RHVAC_DIRECT_SUCCESS:\n return { ...state, reportRHVacDirectData: action.payload };\n case REPORT_RHVAC_DIRECT_ERROR:\n return { ...state, reportRHVacDirectError: action.payload };\n case REPORT_RHVAC_DIRECT_PURGE:\n return { ...stateReportRHVacDirect, purgeReportRHVacDirect: action.payload };\n }\n return state;\n}\n\nexport default getReportRHVacDirect;","import {\r\n CREATE_PERDIEM_SUCCESS,\r\n CREATE_PERDIEM_ERROR,\r\n CREATE_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateCreatePerdiem = {\r\n createPerdiemData: {},\r\n createPerdiemError: {},\r\n};\r\n\r\nconst getCreatePerdiem = (state = stateCreatePerdiem, action) => {\r\n switch (action.type) {\r\n case CREATE_PERDIEM_SUCCESS:\r\n return {...state, createPerdiemData: action.payload};\r\n case CREATE_PERDIEM_ERROR:\r\n return {...state, createPerdiemError: action.payload};\r\n case CREATE_PERDIEM_PURGE:\r\n return {...stateCreatePerdiem, purgeCreatePerdiem: action.payload};\r\n }\r\n return state;\r\n}\r\n\r\nexport default getCreatePerdiem\r\n","import {\r\n GET_PERDIEM_SUCCESS,\r\n GET_PERDIEM_ERROR,\r\n GET_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGetPerdiem = {\r\n getPerdiemData: {},\r\n getPerdiemError: {},\r\n};\r\n\r\nconst GetPerdiem = (state = stateGetPerdiem, action) => {\r\n switch (action.type) {\r\n case GET_PERDIEM_SUCCESS:\r\n return { ...state, getPerdiemData: action.payload };\r\n case GET_PERDIEM_ERROR:\r\n return { ...state, getPerdiemError: action.payload };\r\n case GET_PERDIEM_PURGE:\r\n return { ...stateGetPerdiem, purgeGetPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GetPerdiem\r\n","import {\r\n DELETE_PERDIEM_SUCCESS,\r\n DELETE_PERDIEM_ERROR,\r\n DELETE_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateDeletePerdiem = {\r\n deletePerdiemData: {},\r\n deletePerdiemError: {},\r\n};\r\n\r\nconst DeletePerdiem = (state = stateDeletePerdiem, action) => {\r\n switch (action.type) {\r\n case DELETE_PERDIEM_SUCCESS:\r\n return { ...state, deletePerdiemData: action.payload };\r\n case DELETE_PERDIEM_ERROR:\r\n return { ...state, deletePerdiemError: action.payload };\r\n case DELETE_PERDIEM_PURGE:\r\n return { ...stateDeletePerdiem, purgeDeletePerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default DeletePerdiem\r\n","import {\r\n EDIT_PERDIEM_SUCCESS,\r\n EDIT_PERDIEM_ERROR,\r\n EDIT_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEditPerdiem = {\r\n editPerdiemData: {},\r\n editPerdiemError: {},\r\n};\r\n\r\nconst EditPerdiem = (state = stateEditPerdiem, action) => {\r\n switch (action.type) {\r\n case EDIT_PERDIEM_SUCCESS:\r\n return { ...state, editPerdiemData: action.payload };\r\n case EDIT_PERDIEM_ERROR:\r\n return { ...state, editPerdiemError: action.payload };\r\n case EDIT_PERDIEM_PURGE:\r\n return { ...stateEditPerdiem, purgeEditPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EditPerdiem\r\n","import {\r\n GENERATE_PERDIEM_SUCCESS,\r\n GENERATE_PERDIEM_ERROR,\r\n GENERATE_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGeneratePerdiem = {\r\n generatePerdiemData: {},\r\n generatePerdiemError: {},\r\n};\r\n\r\nconst GeneratePerdiem = (state = stateGeneratePerdiem, action) => {\r\n switch (action.type) {\r\n case GENERATE_PERDIEM_SUCCESS:\r\n return { ...state, generatePerdiemData: action.payload };\r\n case GENERATE_PERDIEM_ERROR:\r\n return { ...state, generatePerdiemError: action.payload };\r\n case GENERATE_PERDIEM_PURGE:\r\n return { ...stateGeneratePerdiem, purgeGeneratePerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GeneratePerdiem\r\n","import {\r\n SIGN_PERDIEM_SUCCESS,\r\n SIGN_PERDIEM_ERROR,\r\n SIGN_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateSignPerdiem = {\r\n signPerdiemData: {},\r\n signPerdiemError: {},\r\n};\r\n\r\nconst SignPerdiem = (state = stateSignPerdiem, action) => {\r\n switch (action.type) {\r\n case SIGN_PERDIEM_SUCCESS:\r\n return { ...state, signPerdiemData: action.payload };\r\n case SIGN_PERDIEM_ERROR:\r\n return { ...state, signPerdiemError: action.payload };\r\n case SIGN_PERDIEM_PURGE:\r\n return { ...stateSignPerdiem, purgeSignPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default SignPerdiem\r\n","import {\r\n DOWNLOAD_PERDIEM_SUCCESS,\r\n DOWNLOAD_PERDIEM_ERROR,\r\n DOWNLOAD_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateDownloadPerdiem = {\r\n downloadPerdiemData: {},\r\n downloadPerdiemError: {},\r\n};\r\n\r\nconst DownloadPerdiem = (state = stateDownloadPerdiem, action) => {\r\n switch (action.type) {\r\n case DOWNLOAD_PERDIEM_SUCCESS:\r\n return { ...state, downloadPerdiemData: action.payload };\r\n case DOWNLOAD_PERDIEM_ERROR:\r\n return { ...state, downloadPerdiemError: action.payload };\r\n case DOWNLOAD_PERDIEM_PURGE:\r\n return { ...stateDownloadPerdiem, purgeDownloadPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default DownloadPerdiem\r\n","import {\r\n ID_PERDIEM_SUCCESS,\r\n ID_PERDIEM_ERROR,\r\n ID_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateIdPerdiem = {\r\n idPerdiemData: {},\r\n idPerdiemError: {},\r\n};\r\n\r\nconst IdPerdiem = (state = stateIdPerdiem, action) => {\r\n switch (action.type) {\r\n case ID_PERDIEM_SUCCESS:\r\n return { ...state, idPerdiemData: action.payload };\r\n case ID_PERDIEM_ERROR:\r\n return { ...state, idPerdiemError: action.payload };\r\n case ID_PERDIEM_PURGE:\r\n return { ...stateIdPerdiem, purgeIdPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default IdPerdiem\r\n","import {\r\n AUTHORIZERS_SUCCESS,\r\n AUTHORIZERS_ERROR,\r\n AUTHORIZERS_PURGE,\r\n} from '../../types';\r\n\r\nconst stateAuthorizers = {\r\n authorizersData: {},\r\n authorizersError: {},\r\n};\r\n\r\nconst Authorizers = (state = stateAuthorizers, action) => {\r\n switch (action.type) {\r\n case AUTHORIZERS_SUCCESS:\r\n return { ...state, authorizersData: action.payload };\r\n case AUTHORIZERS_ERROR:\r\n return { ...state, authorizersError: action.payload };\r\n case AUTHORIZERS_PURGE:\r\n return { ...stateAuthorizers, purgeAuthorizers: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default Authorizers\r\n","import {\r\n SEND_EMAILS_SUCCESS,\r\n SEND_EMAILS_ERROR,\r\n SEND_EMAILS_PURGE,\r\n} from '../../types';\r\n\r\nconst stateSendEmails = {\r\n sendEmailsData: {},\r\n sendEmailsError: {},\r\n};\r\n\r\nconst SendEmails = (state = stateSendEmails, action) => {\r\n switch (action.type) {\r\n case SEND_EMAILS_SUCCESS:\r\n return { ...state, sendEmailsData: action.payload };\r\n case SEND_EMAILS_ERROR:\r\n return { ...state, sendEmailsError: action.payload };\r\n case SEND_EMAILS_PURGE:\r\n return { ...stateSendEmails, purgeSendEmails: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default SendEmails\r\n","import {\r\n CONCEPTS_SUCCESS,\r\n CONCEPTS_ERROR,\r\n CONCEPTS_PURGE,\r\n} from '../../types';\r\n\r\nconst stateConcepts = {\r\n conceptsData: {},\r\n conceptsError: {},\r\n};\r\n\r\nconst Concepts = (state = stateConcepts, action) => {\r\n switch (action.type) {\r\n case CONCEPTS_SUCCESS:\r\n return { ...state, conceptsData: action.payload };\r\n case CONCEPTS_ERROR:\r\n return { ...state, conceptsError: action.payload };\r\n case CONCEPTS_PURGE:\r\n return { ...stateConcepts, purgeConcepts: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default Concepts\r\n","import {\r\n SERVCODE_PERDIEM_SUCCESS,\r\n SERVCODE_PERDIEM_ERROR,\r\n SERVCODE_PERDIEM_PURGE,\r\n } from '../../types';\r\n \r\n const stateServCodePerdiem = {\r\n servCodePerdiemData: {},\r\n servCodePerdiemError: {},\r\n };\r\n \r\n const getServCodePerdiem = (state = stateServCodePerdiem, action) => {\r\n switch (action.type) {\r\n case SERVCODE_PERDIEM_SUCCESS:\r\n return {...state, servCodePerdiemData: action.payload};\r\n case SERVCODE_PERDIEM_ERROR:\r\n return {...state, servCodePerdiemError: action.payload};\r\n case SERVCODE_PERDIEM_PURGE:\r\n return {...stateServCodePerdiem, purgeServCodePerdiem: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export default getServCodePerdiem\r\n ","import {\r\n EMPLOYEE_VACATIONS_SUCCESS,\r\n EMPLOYEE_VACATIONS_ERROR,\r\n EMPLOYEE_VACATIONS_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmployeeVacations = {\r\n employeeVacationsData: {},\r\n employeeVacationsError: {},\r\n};\r\n\r\nconst getEmployeeVacations = (state = stateEmployeeVacations, action) => {\r\n switch (action.type) {\r\n case EMPLOYEE_VACATIONS_SUCCESS:\r\n return { ...state, employeeVacationsData: action.payload };\r\n case EMPLOYEE_VACATIONS_ERROR:\r\n return { ...state, employeeVacationsError: action.payload };\r\n case EMPLOYEE_VACATIONS_PURGE:\r\n return { ...stateEmployeeVacations, purgeEmployeeVacations: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getEmployeeVacations;\r\n","import {\r\n VACATIONS_EXPIRATION_SUCCESS,\r\n VACATIONS_EXPIRATION_ERROR,\r\n VACATIONS_EXPIRATION_PURGE,\r\n} from '../../types';\r\n\r\nconst stateVacationsExpiration = {\r\n vacationsExpirationData: {},\r\n vacationsExpirationError: {},\r\n};\r\n\r\nconst getVacationsExpiration = (state = stateVacationsExpiration, action) => {\r\n switch (action.type) {\r\n case VACATIONS_EXPIRATION_SUCCESS:\r\n return { ...state, vacationsExpirationData: action.payload };\r\n case VACATIONS_EXPIRATION_ERROR:\r\n return { ...state, vacationsExpirationError: action.payload };\r\n case VACATIONS_EXPIRATION_PURGE:\r\n return { ...stateVacationsExpiration, purgeVacationsExpiration: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getVacationsExpiration\r\n","import {\r\n DEPTOS_CENTER_SUCCESS,\r\n DEPTOS_CENTER_ERROR,\r\n DEPTOS_CENTER_PURGE,\r\n} from '../../types';\r\n\r\nconst stateDeptosCenter = {\r\n deptosCenterData: {},\r\n deptosCenterError: {},\r\n};\r\n\r\nconst DeptosCenter = (state = stateDeptosCenter, action) => {\r\n switch (action.type) {\r\n case DEPTOS_CENTER_SUCCESS:\r\n return { ...state, deptosCenterData: action.payload };\r\n case DEPTOS_CENTER_ERROR:\r\n return { ...state, deptosCenterError: action.payload };\r\n case DEPTOS_CENTER_PURGE:\r\n return { ...stateDeptosCenter, purgeDeptosCenter: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default DeptosCenter\r\n","import {\r\n JEFES_PERDIEM_SUCCESS,\r\n JEFES_PERDIEM_ERROR,\r\n JEFES_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateJefesPerdiem = {\r\n jefesPerdiemData: {},\r\n jefesPerdiemError: {},\r\n};\r\n\r\nconst JefesPerdiem = (state = stateJefesPerdiem, action) => {\r\n switch (action.type) {\r\n case JEFES_PERDIEM_SUCCESS:\r\n return { ...state, jefesPerdiemData: action.payload };\r\n case JEFES_PERDIEM_ERROR:\r\n return { ...state, jefesPerdiemError: action.payload };\r\n case JEFES_PERDIEM_PURGE:\r\n return { ...stateJefesPerdiem, purgeJefesPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default JefesPerdiem\r\n","import {\r\n EMPLEADOS_ALL_SUCCESS,\r\n EMPLEADOS_ALL_ERROR,\r\n EMPLEADOS_ALL_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmpleadosAll = {\r\n empleadosAllData: {},\r\n empleadosAllError: {},\r\n};\r\n\r\nconst EmpleadosAll = (state = stateEmpleadosAll, action) => {\r\n switch (action.type) {\r\n case EMPLEADOS_ALL_SUCCESS:\r\n return { ...state, empleadosAllData: action.payload };\r\n case EMPLEADOS_ALL_ERROR:\r\n return { ...state, empleadosAllError: action.payload };\r\n case EMPLEADOS_ALL_PURGE:\r\n return { ...stateEmpleadosAll, purgeEmpleadosAll: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EmpleadosAll\r\n","import {\r\n EMP_REPO_SUCCESS,\r\n EMP_REPO_ERROR,\r\n EMP_REPO_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmpRepo = {\r\n empRepoData: {},\r\n empRepoError: {},\r\n};\r\n\r\nconst EmpRepo = (state = stateEmpRepo, action) => {\r\n switch (action.type) {\r\n case EMP_REPO_SUCCESS:\r\n return { ...state, empRepoData: action.payload };\r\n case EMP_REPO_ERROR:\r\n return { ...state, empRepoError: action.payload };\r\n case EMP_REPO_PURGE:\r\n return { ...stateEmpRepo, purgeEmpRepo: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EmpRepo\r\n","import {\r\n EMPLEADOS_AL_MANDO_SUCCESS,\r\n EMPLEADOS_AL_MANDO_ERROR,\r\n EMPLEADOS_AL_MANDO_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmpleadosAlMando = {\r\n empleadosAlMandoData: {},\r\n empleadosAlMandoError: {},\r\n};\r\n\r\nconst EmpleadosAlMando = (state = stateEmpleadosAlMando, action) => {\r\n switch (action.type) {\r\n case EMPLEADOS_AL_MANDO_SUCCESS:\r\n return { ...state, empleadosAlMandoData: action.payload };\r\n case EMPLEADOS_AL_MANDO_ERROR:\r\n return { ...state, empleadosAlMandoError: action.payload };\r\n case EMPLEADOS_AL_MANDO_PURGE:\r\n return { ...stateEmpleadosAlMando, purgeEmpleadosAlMando: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EmpleadosAlMando\r\n","import {\r\n REJECT_CHIEF_SUCCESS,\r\n REJECT_CHIEF_ERROR,\r\n REJECT_CHIEF_PURGE,\r\n} from '../../types';\r\n\r\nconst stateRejectChief = {\r\n rejectChiefData: {},\r\n rejectChiefError: {},\r\n};\r\n\r\nconst RejectChief = (state = stateRejectChief, action) => {\r\n switch (action.type) {\r\n case REJECT_CHIEF_SUCCESS:\r\n return { ...state, rejectChiefData: action.payload };\r\n case REJECT_CHIEF_ERROR:\r\n return { ...state, rejectChiefError: action.payload };\r\n case REJECT_CHIEF_PURGE:\r\n return { ...stateRejectChief, purgeRejectChief: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default RejectChief\r\n","import {\r\n AUTHORIZE_CHIEF_SUCCESS,\r\n AUTHORIZE_CHIEF_ERROR,\r\n AUTHORIZE_CHIEF_PURGE,\r\n} from '../../types';\r\n\r\nconst stateAuthorizeChief = {\r\n authorizeChiefData: {},\r\n authorizeChiefError: {},\r\n};\r\n\r\nconst AuthorizeChief = (state = stateAuthorizeChief, action) => {\r\n switch (action.type) {\r\n case AUTHORIZE_CHIEF_SUCCESS:\r\n return { ...state, authorizeChiefData: action.payload };\r\n case AUTHORIZE_CHIEF_ERROR:\r\n return { ...state, authorizeChiefError: action.payload };\r\n case AUTHORIZE_CHIEF_PURGE:\r\n return { ...stateAuthorizeChief, purgeAuthorizeChief: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default AuthorizeChief\r\n","import {\r\n GET_PREVIEW_SUCCESS,\r\n GET_PREVIEW_ERROR,\r\n GET_PREVIEW_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGetPreview = {\r\n getPreviewData: {},\r\n getPreviewError: {},\r\n};\r\n\r\nconst GetPreview = (state = stateGetPreview, action) => {\r\n switch (action.type) {\r\n case GET_PREVIEW_SUCCESS:\r\n return { ...state, getPreviewData: action.payload };\r\n case GET_PREVIEW_ERROR:\r\n return { ...state, getPreviewError: action.payload };\r\n case GET_PREVIEW_PURGE:\r\n return { ...stateGetPreview, purgeGetPreview: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GetPreview\r\n","import {\r\n AUTHORIZE_REJECT_SUCCESS,\r\n AUTHORIZE_REJECT_ERROR,\r\n AUTHORIZE_REJECT_PURGE,\r\n} from '../../types';\r\n\r\nconst stateAuthorizeReject = {\r\n authorizeRejectData: {},\r\n authorizeRejectError: {},\r\n};\r\n\r\nconst AuthorizeReject = (state = stateAuthorizeReject, action) => {\r\n switch (action.type) {\r\n case AUTHORIZE_REJECT_SUCCESS:\r\n return { ...state, authorizeRejectData: action.payload };\r\n case AUTHORIZE_REJECT_ERROR:\r\n return { ...state, authorizeRejectError: action.payload };\r\n case AUTHORIZE_REJECT_PURGE:\r\n return { ...stateAuthorizeReject, purgeAuthorizeReject: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default AuthorizeReject\r\n","import {\r\n EMPLEADOS_PERDIEM_SUCCESS,\r\n EMPLEADOS_PERDIEM_ERROR,\r\n EMPLEADOS_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmpleadosPerdiem = {\r\n empleadosPerdiemData: {},\r\n empleadosPerdiemError: {},\r\n};\r\n\r\nconst EmpleadosPerdiem = (state = stateEmpleadosPerdiem, action) => {\r\n switch (action.type) {\r\n case EMPLEADOS_PERDIEM_SUCCESS:\r\n return { ...state, empleadosPerdiemData: action.payload };\r\n case EMPLEADOS_PERDIEM_ERROR:\r\n return { ...state, empleadosPerdiemError: action.payload };\r\n case EMPLEADOS_PERDIEM_PURGE:\r\n return { ...stateEmpleadosPerdiem, purgeEmpleadosPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EmpleadosPerdiem\r\n","import {\r\n GET_PREVIEW_CANCELED_SUCCESS,\r\n GET_PREVIEW_CANCELED_ERROR,\r\n GET_PREVIEW_CANCELED_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGetPreviewCanceled = {\r\n getPreviewCanceledData: {},\r\n getPreviewCanceledError: {},\r\n};\r\n\r\nconst GetPreviewCanceled = (state = stateGetPreviewCanceled, action) => {\r\n switch (action.type) {\r\n case GET_PREVIEW_CANCELED_SUCCESS:\r\n return { ...state, getPreviewCanceledData: action.payload };\r\n case GET_PREVIEW_CANCELED_ERROR:\r\n return { ...state, getPreviewCanceledError: action.payload };\r\n case GET_PREVIEW_CANCELED_PURGE:\r\n return { ...stateGetPreviewCanceled, purgeGetPreviewCanceled: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GetPreviewCanceled\r\n","import {\r\n GET_PREVIEW_AUTHORIZED_SUCCESS,\r\n GET_PREVIEW_AUTHORIZED_ERROR,\r\n GET_PREVIEW_AUTHORIZED_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGetPreviewAuthorized = {\r\n getPreviewAuthorizedData: {},\r\n getPreviewAuthorizedError: {},\r\n};\r\n\r\nconst GetPreviewAuthorized = (state = stateGetPreviewAuthorized, action) => {\r\n switch (action.type) {\r\n case GET_PREVIEW_AUTHORIZED_SUCCESS:\r\n return { ...state, getPreviewAuthorizedData: action.payload };\r\n case GET_PREVIEW_AUTHORIZED_ERROR:\r\n return { ...state, getPreviewAuthorizedError: action.payload };\r\n case GET_PREVIEW_AUTHORIZED_PURGE:\r\n return { ...stateGetPreviewAuthorized, purgeGetPreviewAuthorized: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GetPreviewAuthorized\r\n","import {\r\n REPORT_CONVERT_SUCCESS,\r\n REPORT_CONVERT_ERROR,\r\n REPORT_CONVERT_PURGE,\r\n} from '../../types';\r\n\r\nconst stateReportConvert = {\r\n reportConvertData: {},\r\n reportConvertError: {},\r\n};\r\n\r\nconst ReportConvert = (state = stateReportConvert, action) => {\r\n switch (action.type) {\r\n case REPORT_CONVERT_SUCCESS:\r\n return { ...state, reportConvertData: action.payload };\r\n case REPORT_CONVERT_ERROR:\r\n return { ...state, reportConvertError: action.payload };\r\n case REPORT_CONVERT_PURGE:\r\n return { ...stateReportConvert, purgeReportConvert: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default ReportConvert\r\n","import {\r\n GET_XLS_PERDIEM_SUCCESS,\r\n GET_XLS_PERDIEM_ERROR,\r\n GET_XLS_PERDIEM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateGetXlsPerdiem = {\r\n getXlsPerdiemData: {},\r\n getXlsPerdiemError: {},\r\n};\r\n\r\nconst GetXlsPerdiem = (state = stateGetXlsPerdiem, action) => {\r\n switch (action.type) {\r\n case GET_XLS_PERDIEM_SUCCESS:\r\n return { ...state, getXlsPerdiemData: action.payload };\r\n case GET_XLS_PERDIEM_ERROR:\r\n return { ...state, getXlsPerdiemError: action.payload };\r\n case GET_XLS_PERDIEM_PURGE:\r\n return { ...stateGetXlsPerdiem, purgeGetXlsPerdiem: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default GetXlsPerdiem\r\n","import {\r\n SEND_DATA_CHIEF_SUCCESS,\r\n SEND_DATA_CHIEF_ERROR,\r\n SEND_DATA_CHIEF_PURGE,\r\n} from '../../types';\r\n\r\nconst stateSendDataChief = {\r\n sendDataChiefData: {},\r\n sendDataChiefError: {},\r\n};\r\n\r\nconst SendDataChief = (state = stateSendDataChief, action) => {\r\n switch (action.type) {\r\n case SEND_DATA_CHIEF_SUCCESS:\r\n return { ...state, sendDataChiefData: action.payload };\r\n case SEND_DATA_CHIEF_ERROR:\r\n return { ...state, sendDataChiefError: action.payload };\r\n case SEND_DATA_CHIEF_PURGE:\r\n return { ...stateSendDataChief, purgeSendDataChief: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default SendDataChief\r\n","import {\r\n EMPLOYEE_MOV_NOM_SUCCESS,\r\n EMPLOYEE_MOV_NOM_ERROR,\r\n EMPLOYEE_MOV_NOM_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmployeeMovNom = {\r\n employeeMovNomData: {},\r\n employeeMovNomError: {},\r\n};\r\n\r\nconst EmployeeMovNom = (state = stateEmployeeMovNom, action) => {\r\n switch (action.type) {\r\n case EMPLOYEE_MOV_NOM_SUCCESS:\r\n return { ...state, employeeMovNomData: action.payload };\r\n case EMPLOYEE_MOV_NOM_ERROR:\r\n return { ...state, employeeMovNomError: action.payload };\r\n case EMPLOYEE_MOV_NOM_PURGE:\r\n return { ...stateEmployeeMovNom, purgeEmployeeMovNom: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default EmployeeMovNom\r\n","import {\n CAT_INCIDENTS_SUCCESS,\n CAT_INCIDENTS_ERROR,\n CAT_INCIDENTS_PURGE,\n} from '../../types';\n\nconst stateCatIncidents = {\n catIncidentsData: {},\n catIncidentsError: {},\n};\n\nconst getCatIncidents = (state = stateCatIncidents, action) => {\n switch (action.type) {\n case CAT_INCIDENTS_SUCCESS:\n return { ...state, catIncidentsData: action.payload };\n case CAT_INCIDENTS_ERROR:\n return { ...state, catIncidentsError: action.payload };\n case CAT_INCIDENTS_PURGE:\n return { ...stateCatIncidents, purgeCatIncidents: action.payload };\n }\n return state;\n}\n\nexport default getCatIncidents;\n","import {\n INSERT_INCIDENTS_SUCCESS,\n INSERT_INCIDENTS_ERROR,\n INSERT_INCIDENTS_PURGE,\n} from '../../types';\n\nconst stateInsertIncidents = {\n insertIncidentsData: {},\n insertIncidentsError: {},\n};\n\nconst getInsertIncidents = (state = stateInsertIncidents, action) => {\n switch (action.type) {\n case INSERT_INCIDENTS_SUCCESS:\n return { ...state, insertIncidentsData: action.payload };\n case INSERT_INCIDENTS_ERROR:\n return { ...state, insertIncidentsError: action.payload };\n case INSERT_INCIDENTS_PURGE:\n return { ...stateInsertIncidents, purgeInsertIncidents: action.payload };\n }\n return state;\n}\n\nexport default getInsertIncidents;\n","import {\n SKIP_WEEKEND_SUCCESS,\n SKIP_WEEKEND_ERROR,\n SKIP_WEEKEND_PURGE,\n} from '../../types';\n\nconst stateSkipWeekend = {\n skipWeekendData: {},\n skipWeekendError: {},\n};\n\nconst getSkipWeekend = (state = stateSkipWeekend, action) => {\n switch (action.type) {\n case SKIP_WEEKEND_SUCCESS:\n return { ...state, skipWeekendData: action.payload };\n case SKIP_WEEKEND_ERROR:\n return { ...state, skipWeekendError: action.payload };\n case SKIP_WEEKEND_PURGE:\n return { ...stateSkipWeekend, purgeSkipWeekend: action.payload };\n }\n return state;\n}\n\nexport default getSkipWeekend;\n","import {\n AUTHORIZE_INCIDENT_SUCCESS,\n AUTHORIZE_INCIDENT_ERROR,\n AUTHORIZE_INCIDENT_PURGE,\n} from '../../types';\n\nconst stateAuthorizeIncident = {\n authorizeIncidentData: {},\n authorizeIncidentError: {},\n};\n\nconst getAuthorizeIncident = (state = stateAuthorizeIncident, action) => {\n switch (action.type) {\n case AUTHORIZE_INCIDENT_SUCCESS:\n return { ...state, authorizeIncidentData: action.payload };\n case AUTHORIZE_INCIDENT_ERROR:\n return { ...state, authorizeIncidentError: action.payload };\n case AUTHORIZE_INCIDENT_PURGE:\n return { ...stateAuthorizeIncident, purgeAuthorizeIncident: action.payload };\n }\n return state;\n}\n\nexport default getAuthorizeIncident;\n","import {\n REJECT_INCIDENT_SUCCESS,\n REJECT_INCIDENT_ERROR,\n REJECT_INCIDENT_PURGE,\n} from '../../types';\n\nconst stateRejectIncident = {\n rejectIncidentData: {},\n rejectIncidentError: {},\n};\n\nconst getRejectIncident = (state = stateRejectIncident, action) => {\n switch (action.type) {\n case REJECT_INCIDENT_SUCCESS:\n return { ...state, rejectIncidentData: action.payload };\n case REJECT_INCIDENT_ERROR:\n return { ...state, rejectIncidentError: action.payload };\n case REJECT_INCIDENT_PURGE:\n return { ...stateRejectIncident, purgeRejectIncident: action.payload };\n }\n return state;\n}\n\nexport default getRejectIncident;\n","import {\r\n VACATIONS_CALENDAR_SUCCESS,\r\n VACATIONS_CALENDAR_ERROR,\r\n VACATIONS_CALENDAR_PURGE,\r\n} from '../../types';\r\n\r\nconst stateVacationsCalendar = {\r\n vacationsCalendarData: {},\r\n vacationsCalendarError: {},\r\n};\r\n\r\nconst getVacationsCalendar = (state = stateVacationsCalendar, action) => {\r\n switch (action.type) {\r\n case VACATIONS_CALENDAR_SUCCESS:\r\n return { ...state, vacationsCalendarData: action.payload };\r\n case VACATIONS_CALENDAR_ERROR:\r\n return { ...state, vacationsCalendarError: action.payload };\r\n case VACATIONS_CALENDAR_PURGE:\r\n return { ...stateVacationsCalendar, purgeVacationsCalendar: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getVacationsCalendar;\r\n","import {\r\n INCIDENCIAS_KRONES_SUCCESS,\r\n INCIDENCIAS_KRONES_ERROR,\r\n INCIDENCIAS_KRONES_PURGE,\r\n} from '../../types';\r\n\r\nconst stateIncidenciasKrones = {\r\n incidenciasKronesData: {},\r\n incidenciasKronesError: {},\r\n};\r\n\r\nconst getIncidenciasKrones = (state = stateIncidenciasKrones, action) => {\r\n switch (action.type) {\r\n case INCIDENCIAS_KRONES_SUCCESS:\r\n return { ...state, incidenciasKronesData: action.payload };\r\n case INCIDENCIAS_KRONES_ERROR:\r\n return { ...state, incidenciasKronesError: action.payload };\r\n case INCIDENCIAS_KRONES_PURGE:\r\n return { ...stateIncidenciasKrones, purgeIncidenciasKrones: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getIncidenciasKrones;\r\n","import {\r\n EMPLEADO_JORNADA_SUCCESS,\r\n EMPLEADO_JORNADA_ERROR,\r\n EMPLEADO_JORNADA_PURGE,\r\n} from '../../types';\r\n\r\nconst stateEmpleadoJornada = {\r\n empleadoJornadaData: {},\r\n empleadoJornadaError: {},\r\n};\r\n\r\nconst getEmpleadoJornada = (state = stateEmpleadoJornada, action) => {\r\n switch (action.type) {\r\n case EMPLEADO_JORNADA_SUCCESS:\r\n return { ...state, empleadoJornadaData: action.payload };\r\n case EMPLEADO_JORNADA_ERROR:\r\n return { ...state, empleadoJornadaError: action.payload };\r\n case EMPLEADO_JORNADA_PURGE:\r\n return { ...stateEmpleadoJornada, purgeEmpleadoJornada: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getEmpleadoJornada;\r\n","import {\r\n GET_FECHAS_VALIDAS_SUCESS,\r\n GET_FECHAS_VALIDAS_ERROR,\r\n GET_FECHAS_VALIDAS_PURGE,\r\n } from '../../types';\r\n \r\n const stateValidaFechas = {\r\n validaFechasData: {},\r\n validaFechasError: {},\r\n };\r\n \r\n const getValidaFechas = (state = stateValidaFechas, action) => {\r\n switch (action.type) {\r\n case GET_FECHAS_VALIDAS_SUCESS:\r\n return { ...state, validaFechasData: action.payload };\r\n case GET_FECHAS_VALIDAS_ERROR:\r\n return { ...state, validaFechasError: action.payload };\r\n case GET_FECHAS_VALIDAS_PURGE:\r\n return { ...stateValidaFechas, purgevalidaFechas: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default getValidaFechas;\r\n ","import {\n\tURL_REPORTE_DOC_DEACARGADOS_EMP_ERROR,\n\tURL_REPORTE_DOC_DEACARGADOS_EMP_PURGE,\n\tURL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS,\n} from '../../types';\n\nconst stateURLReporteDocDeacargadosEmp = {\n urlReporteDocDeacargadosEmpData: {},\n urlReporteDocDeacargadosEmpError: {},\n};\n\nconst getURLReporteDocDeacargadosEmp = (state = stateURLReporteDocDeacargadosEmp, action) => {\n switch (action.type) {\n case URL_REPORTE_DOC_DEACARGADOS_EMP_SUCCESS:\n return { ...state, urlReporteDocDeacargadosEmpData: action.payload };\n case URL_REPORTE_DOC_DEACARGADOS_EMP_ERROR:\n return { ...state, urlReporteDocDeacargadosEmpError: action.payload };\n case URL_REPORTE_DOC_DEACARGADOS_EMP_PURGE:\n return { ...stateURLReporteDocDeacargadosEmp, purgeURLReporteDocDeacargadosEmp: action.payload };\n }\n return state;\n}\n\nexport default getURLReporteDocDeacargadosEmp;\n","import {\n ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS,\n ACTUALIZA_DOWNLOAD_REPORTS_ERROR,\n ACTUALIZA_DOWNLOAD_REPORTS_PURGE,\n} from \"../../types\";\n\nconst stateLog_RegistraDescargaArchivo = {\n log_RegistraDescargaArchivoData: {},\n log_RegistraDescargaArchivoError: {},\n};\n\nconst getLog_RegistraDescargaArchivo = (state = stateLog_RegistraDescargaArchivo, action) => {\n switch (action.type) {\n case ACTUALIZA_DOWNLOAD_REPORTS_SUCCESS:\n return { ...state, log_RegistraDescargaArchivoData: action.payload };\n case ACTUALIZA_DOWNLOAD_REPORTS_ERROR:\n return { ...state, log_RegistraDescargaArchivoError: action.payload };\n case ACTUALIZA_DOWNLOAD_REPORTS_PURGE:\n return { ...stateLog_RegistraDescargaArchivo, purgeLog_RegistraDescargaArchivo: action.payload };\n }\n return state;\n};\n\nexport default getLog_RegistraDescargaArchivo;","import {\n CONSULTA_EXT_SUCCESS,\n CONSULTA_EXT_ERROR,\n CONSULTA_EXT_PURGE,\n} from \"../../types\";\n\nconst stateConsultaVarExt = {\n consultaVarExtData: {},\n consultaVarExtError: {},\n};\n\nconst getConsultaVarExt = (state = stateConsultaVarExt, action) => {\n switch (action.type) {\n case CONSULTA_EXT_SUCCESS:\n return { ...state, consultaVarExtData: action.payload };\n case CONSULTA_EXT_ERROR:\n return { ...state, consultaVarExtError: action.payload };\n case CONSULTA_EXT_PURGE:\n return { ...stateConsultaVarExt, purgeConsultaVarExt: action.payload };\n }\n return state;\n};\n\nexport default getConsultaVarExt;","import {\n CONSULTA_ARCHIVO_SUCCESS,\n CONSULTA_ARCHIVO_ERROR,\n CONSULTA_ARCHIVO_PURGE,\n} from \"../../types\";\n\nconst stateConsultaArchivos = {\n consultaArchivosData: {},\n consultaArchivosError: {},\n};\n\nconst getConsultaArchivos = (state = stateConsultaArchivos, action) => {\n switch (action.type) {\n case CONSULTA_ARCHIVO_SUCCESS:\n return { ...state, consultaArchivosData: action.payload };\n case CONSULTA_ARCHIVO_ERROR:\n return { ...state, consultaArchivosError: action.payload };\n case CONSULTA_ARCHIVO_PURGE:\n return { ...stateConsultaArchivos, purgeConsultaArchivos: action.payload };\n }\n return state;\n};\n\nexport default getConsultaArchivos;","import {\n SAVE_ARCHIVO_SUCCESS,\n SAVE_ARCHIVO_ERROR,\n SAVE_ARCHIVO_PURGE,\n} from \"../../types\";\n\nconst stateGuardaArchivos = {\n guardaArchivosData: {},\n guardaArchivosError: {},\n};\n\nconst getGuardaArchivos = (state = stateGuardaArchivos, action) => {\n switch (action.type) {\n case SAVE_ARCHIVO_SUCCESS:\n return { ...state, guardaArchivosData: action.payload };\n case SAVE_ARCHIVO_ERROR:\n return { ...state, guardaArchivosError: action.payload };\n case SAVE_ARCHIVO_PURGE:\n return { ...stateGuardaArchivos, purgeConsultaArchivos: action.payload };\n }\n return state;\n};\n\nexport default getGuardaArchivos;","import {\n DELETE_FILES_SUCCESS,\n DELETE_FILES_ERROR,\n DELETE_FILES_PURGE,\n} from \"../../types\";\n\nconst stateDeleteFiles = {\n deleteFilesData: {},\n deleteFilesError: {},\n};\n\nconst getDeleteFiles = (state = stateDeleteFiles, action) => {\n switch (action.type) {\n case DELETE_FILES_SUCCESS:\n return { ...state, deleteFilesData: action.payload };\n case DELETE_FILES_ERROR:\n return { ...state, deleteFilesError: action.payload };\n case DELETE_FILES_PURGE:\n return { ...stateDeleteFiles, purgeConsultaArchivos: action.payload };\n }\n return state;\n};\n\nexport default getDeleteFiles;","import {\n CONSULTA_VAR_FIR_SUCCESS,\n CONSULTA_VAR_FIR_ERROR,\n CONSULTA_VAR_FIR_PURGE,\n} from \"../../types\";\n\nconst stateConsultaVarFirma = {\n consultaVarFirmaData: {},\n consultaVarFirmaError: {},\n};\n\nconst getConsultaVarFirma = (state = stateConsultaVarFirma, action) => {\n switch (action.type) {\n case CONSULTA_VAR_FIR_SUCCESS:\n return { ...state, consultaVarFirmaData: action.payload };\n case CONSULTA_VAR_FIR_ERROR:\n return { ...state, consultaVarFirmaError: action.payload };\n case CONSULTA_VAR_FIR_PURGE:\n return { ...stateConsultaVarFirma, purgeConsultaVarFirma: action.payload };\n }\n return state;\n};\n\nexport default getConsultaVarFirma;","import {\n CONSULTA_FIRMA_SUCCESS,\n CONSULTA_FIRMA_ERROR,\n CONSULTA_FIRMA_PURGE,\n} from \"../../types\";\n\nconst stateConsultaFirma = {\n consultaFirmaData: {},\n consultaFirmaError: {},\n};\n\nconst getConsultaFirma = (state = stateConsultaFirma, action) => {\n switch (action.type) {\n case CONSULTA_FIRMA_SUCCESS:\n return { ...state, consultaFirmaData: action.payload };\n case CONSULTA_FIRMA_ERROR:\n return { ...state, consultaFirmaError: action.payload };\n case CONSULTA_FIRMA_PURGE:\n return { ...stateConsultaFirma, purgeConsultaFirma: action.payload };\n }\n return state;\n};\n\nexport default getConsultaFirma;","import {\n ACTUALIZA_FIRMA_SUCCESS,\n ACTUALIZA_FIRMA_ERROR,\n ACTUALIZA_FIRMA_PURGE,\n} from \"../../types\";\n\nconst stateActualizaFirma = {\n actualizaFirmaData: {},\n actualizaFirmaError: {},\n};\n\nconst getActualizaFirma = (state = stateActualizaFirma, action) => {\n switch (action.type) {\n case ACTUALIZA_FIRMA_SUCCESS:\n return { ...state, actualizaFirmaData: action.payload };\n case ACTUALIZA_FIRMA_ERROR:\n return { ...state, actualizaFirmaError: action.payload };\n case ACTUALIZA_FIRMA_PURGE:\n return { ...stateActualizaFirma, purgeActualizaFirma: action.payload };\n }\n return state;\n};\n\nexport default getActualizaFirma;","import {\n INCIDENT_ALERT_SUCCESS,\n INCIDENT_ALERT_ERROR,\n INCIDENT_ALERT_PURGE,\n} from '../../types'\n\nconst stateInicidentAlert = {\n incidentAlertData: {},\n incidentAlertError: {},\n};\n\nconst getLogin = (state = stateInicidentAlert, action) => {\n switch (action.type) {\n case INCIDENT_ALERT_SUCCESS:\n return {...state, incidentAlertData: action.payload};\n case INCIDENT_ALERT_ERROR:\n return {...state, incidentAlertError: action.payload};\n case INCIDENT_ALERT_PURGE:\n return {...stateInicidentAlert, purgeIncidentAlert: action.payload};\n }\n return state;\n}\n\nexport default getLogin;\n","import {\r\n VAR_SHOW_OPTIONS_SUCCESS,\r\n VAR_SHOW_OPTIONS_ERROR,\r\n VAR_SHOW_OPTIONS_PURGE,\r\n } from '../../types';\r\n \r\n const stateVarShowOptions = {\r\n varShowOptionsData: {},\r\n varShowOptionsError: {},\r\n };\r\n \r\n const getVarShowOptions = (state = stateVarShowOptions, action) => {\r\n switch (action.type) {\r\n case VAR_SHOW_OPTIONS_SUCCESS:\r\n return { ...state, varShowOptionsData: action.payload };\r\n case VAR_SHOW_OPTIONS_ERROR:\r\n return { ...state, varShowOptionsError: action.payload };\r\n case VAR_SHOW_OPTIONS_PURGE:\r\n return { ...stateVarShowOptions, purgeWelcomeMessage: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default getVarShowOptions;","import {\r\n GET_TIPO_ENCUESTAS_SUCCESS,\r\n GET_TIPO_ENCUESTAS_ERROR,\r\n GET_TIPO_ENCUESTAS_PURGE,\r\n\r\n GET_EMPLEADOS_GUIA1_SUCCESS,\r\n GET_EMPLEADOS_GUIA1_ERROR,\r\n GET_EMPLEADOS_GUIA1_PURGE,\r\n\r\n GET_UBICACIONES_CONTEO_SUCCESS,\r\n GET_UBICACIONES_CONTEO_ERROR,\r\n GET_UBICACIONES_CONTEO_PURGE,\r\n\r\n GET_SELECCION_EMP_UBI_SUCCESS,\r\n GET_SELECCION_EMP_UBI_ERROR,\r\n GET_SELECCION_EMP_UBI_PURGE,\r\n\r\n ENVIAR_ENCUESTA_GUIA1_SUCCESS,\r\n ENVIAR_ENCUESTA_GUIA1_ERROR,\r\n ENVIAR_ENCUESTA_GUIA1_PURGE,\r\n\r\n ENVIAR_ENCUESTA_GUIA23_SUCCESS,\r\n ENVIAR_ENCUESTA_GUIA23_ERROR,\r\n ENVIAR_ENCUESTA_GUIA23_PURGE,\r\n} from \"../../types\";\r\n \r\nconst stateGetTipoEncuestas = {\r\n getTipoEncuestasData: {},\r\n getTipoEncuestasError: {},\r\n};\r\n\r\nconst stateGetEmpleadosGUIA1 = {\r\n getEmpleadosGUIA1Data: {},\r\n getEmpleadosGUIA1Error: {},\r\n};\r\n\r\nconst stateGetUbicacionesConteo = {\r\n getUbicacionesConteoData: {},\r\n getUbicacionesConteoError: {},\r\n};\r\n\r\nconst stateGetSeleccionEmpUbi = {\r\n getSeleccionEmpUbiData: {},\r\n getSeleccionEmpUbiError: {},\r\n};\r\n\r\nconst stateEnviarEncuestasGUIA1 = {\r\n setEnviarEncuestasGUIA1Data: {},\r\n setEnviarEncuestasGUIA1Error: {},\r\n};\r\n\r\nconst stateEnviarEncuestasGUIA2_3 = {\r\n setEnviarEncuestasGUIA2_3Data: {},\r\n setEnviarEncuestasGUIA2_3Error: {},\r\n};\r\n\r\nexport const getTipoEncuestasReducer = (state = stateGetTipoEncuestas, action) => {\r\n switch (action.type) {\r\n case GET_TIPO_ENCUESTAS_SUCCESS:\r\n return { ...state, getTipoEncuestasData: action.payload };\r\n case GET_TIPO_ENCUESTAS_ERROR:\r\n return { ...state, getTipoEncuestasError: action.payload };\r\n case GET_TIPO_ENCUESTAS_PURGE:\r\n return { ...stateGetTipoEncuestas, purgeGetTipoEncuestas: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const getEmpleadosGUIA1Reducer = (state = stateGetEmpleadosGUIA1, action) => {\r\n switch (action.type) {\r\n case GET_EMPLEADOS_GUIA1_SUCCESS:\r\n return { ...state, getEmpleadosGUIA1Data: action.payload };\r\n case GET_EMPLEADOS_GUIA1_ERROR:\r\n return { ...state, getEmpleadosGUIA1Error: action.payload };\r\n case GET_EMPLEADOS_GUIA1_PURGE:\r\n return { ...stateGetEmpleadosGUIA1, purgeGetEmpleadosGUIA1: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const getUbicacionesConteoReducer = (state = stateGetUbicacionesConteo, action) => {\r\n switch (action.type) {\r\n case GET_UBICACIONES_CONTEO_SUCCESS:\r\n return { ...state, getUbicacionesConteoData: action.payload };\r\n case GET_UBICACIONES_CONTEO_ERROR:\r\n return { ...state, getUbicacionesConteoError: action.payload };\r\n case GET_UBICACIONES_CONTEO_PURGE:\r\n return { ...stateGetUbicacionesConteo, purgeGetUbicacionesConteo: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const getSeleccionEmpUbiReducer = (state = stateGetSeleccionEmpUbi, action) => {\r\n switch (action.type) {\r\n case GET_SELECCION_EMP_UBI_SUCCESS:\r\n return { ...state, getSeleccionEmpUbiData: action.payload };\r\n case GET_SELECCION_EMP_UBI_ERROR:\r\n return { ...state, getSeleccionEmpUbiError: action.payload };\r\n case GET_SELECCION_EMP_UBI_PURGE:\r\n return { ...stateGetSeleccionEmpUbi, purgeGetSeleccionEmpUbi: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const setEnviarEncuestasGUIA1Reducer = (state = stateEnviarEncuestasGUIA1, action) => {\r\n switch (action.type) {\r\n case ENVIAR_ENCUESTA_GUIA1_SUCCESS:\r\n return { ...state, setEnviarEncuestasGUIA1Data: action.payload };\r\n case ENVIAR_ENCUESTA_GUIA1_ERROR:\r\n return { ...state, setEnviarEncuestasGUIA1Error: action.payload };\r\n case ENVIAR_ENCUESTA_GUIA1_PURGE:\r\n return { ...stateEnviarEncuestasGUIA1, purgeSetEnviarEncuestasGUIA1: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const setEnviarEncuestasGUIA2_3Reducer = (state = stateEnviarEncuestasGUIA2_3, action) => {\r\n switch (action.type) {\r\n case ENVIAR_ENCUESTA_GUIA23_SUCCESS:\r\n return { ...state, setEnviarEncuestasGUIA2_3Data: action.payload };\r\n case ENVIAR_ENCUESTA_GUIA23_ERROR:\r\n return { ...state, setEnviarEncuestasGUIA2_3Error: action.payload };\r\n case ENVIAR_ENCUESTA_GUIA23_PURGE:\r\n return { ...stateEnviarEncuestasGUIA2_3, purgeSetEnviarEncuestasGUIA2_3: action.payload };\r\n }\r\n return state;\r\n};\r\n//export default getTipoEncuestas;","import {\r\n VACION_EMPLEADO_DATOS_SUCCESS,\r\n VACION_EMPLEADO_DATOS_ERROR,\r\n VACION_EMPLEADO_DATOS_PURGE,\r\n \r\n CTRL_VACION_EMPLEADO_SUCCESS,\r\n CTRL_VACION_EMPLEADO_ERROR,\r\n CTRL_VACION_EMPLEADO_PURGE,\r\n} from \"../../types\";\r\n\r\nconst stateCtrlVacionEmpleadoDatos = {\r\n ctrlVacionEmpleadoDatosData: {},\r\n ctrlVacionEmpleadoDatosError: {},\r\n};\r\n\r\nconst stateCtrlVacacionesEmpleadoV4 = {\r\n ctrlVacacionesEmpleadoV4Data: {},\r\n ctrlVacacionesEmpleadoV4Error: {},\r\n};\r\n\r\nexport const CtrlVacionEmpleadoDatosReducer = (state = stateCtrlVacionEmpleadoDatos, action) => {\r\n switch (action.type) {\r\n case VACION_EMPLEADO_DATOS_SUCCESS:\r\n return { ...state, ctrlVacionEmpleadoDatosData: action.payload };\r\n case VACION_EMPLEADO_DATOS_ERROR:\r\n return { ...state, ctrlVacionEmpleadoDatosError: action.payload };\r\n case VACION_EMPLEADO_DATOS_PURGE:\r\n return { ...stateCtrlVacionEmpleadoDatos, purgeCtrlVacionEmpleadoDatos: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport const CtrlVacacionesEmpleadoV4Reducer = (state = stateCtrlVacacionesEmpleadoV4, action) => {\r\n switch (action.type) {\r\n case CTRL_VACION_EMPLEADO_SUCCESS:\r\n return { ...state, ctrlVacacionesEmpleadoV4Data: action.payload };\r\n case CTRL_VACION_EMPLEADO_ERROR:\r\n return { ...state, ctrlVacacionesEmpleadoV4Error: action.payload };\r\n case CTRL_VACION_EMPLEADO_PURGE:\r\n return { ...stateCtrlVacacionesEmpleadoV4, purgeCtrlVacacionesEmpleadoV4: action.payload };\r\n }\r\n return state;\r\n};\r\n","import {\r\n GET_DIAS_BLOQUEADOS_SUCCESS,\r\n GET_DIAS_BLOQUEADOS_ERROR,\r\n GET_DIAS_BLOQUEADOS_PURGE,\r\n } from '../../types';\r\n \r\n const stateGetDiasBloqueados = {\r\n getDiasBloqueadosData: {},\r\n getDiasBloqueadosError: {},\r\n };\r\n \r\n const getDiasBloqueadosReducer = (state = stateGetDiasBloqueados, action) => {\r\n switch (action.type) {\r\n case GET_DIAS_BLOQUEADOS_SUCCESS:\r\n return { ...state, getDiasBloqueadosData: action.payload };\r\n case GET_DIAS_BLOQUEADOS_ERROR:\r\n return { ...state, getDiasBloqueadosError: action.payload };\r\n case GET_DIAS_BLOQUEADOS_PURGE:\r\n return { ...stateGetDiasBloqueados, purgeGetDiasBloqueados: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default getDiasBloqueadosReducer;","import {\r\n RECOVER_PWD_EMAIL_SUCCESS,\r\n RECOVER_PWD_EMAIL_ERROR,\r\n RECOVER_PWD_EMAIL_PURGE,\r\n } from '../../types';\r\n \r\n const stateRecoverPwdByEmail = {\r\n recoverPwdByEmailData: {},\r\n recoverPwdByEmailError: {},\r\n };\r\n \r\n const recoverPwdByEmailReducer = (state = stateRecoverPwdByEmail, action) => {\r\n switch (action.type) {\r\n case RECOVER_PWD_EMAIL_SUCCESS:\r\n return { ...state, recoverPwdByEmailData: action.payload };\r\n case RECOVER_PWD_EMAIL_ERROR:\r\n return { ...state, recoverPwdByEmailError: action.payload };\r\n case RECOVER_PWD_EMAIL_PURGE:\r\n return { ...stateRecoverPwdByEmail, purgeRecoverPwdByEmail: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default recoverPwdByEmailReducer;","import {\r\n REPORT_VACATIONS_INCIDENTS_SUCCESS,\r\n REPORT_VACATIONS_INCIDENTS_ERROR,\r\n REPORT_VACATIONS_INCIDENTS_PURGE,\r\n } from '../../types';\r\n \r\n const stateGeneraRptVacacionIncidencia = {\r\n generaRptVacacionIncidenciaData: {},\r\n generaRptVacacionIncidenciaError: {},\r\n };\r\n \r\n const getGeneraRptVacacionIncidencia = (state = stateGeneraRptVacacionIncidencia, action) => {\r\n switch (action.type) {\r\n case REPORT_VACATIONS_INCIDENTS_SUCCESS:\r\n return {...state, generaRptVacacionIncidenciaData: action.payload};\r\n case REPORT_VACATIONS_INCIDENTS_ERROR:\r\n return {...state, generaRptVacacionIncidenciaError: action.payload};\r\n case REPORT_VACATIONS_INCIDENTS_PURGE:\r\n return {...stateGeneraRptVacacionIncidencia, purgeGeneraRptVacacionIncidencia: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export default getGeneraRptVacacionIncidencia;","import {\r\n //GeneraReporte1detalladousuario\r\n REPORTE_CTRLVAC_EMPLEADO_SUCCESS,\r\n REPORTE_CTRLVAC_EMPLEADO_ERROR,\r\n REPORTE_CTRLVAC_EMPLEADO_PURGE,\r\n\r\n //GeneraReporte2detalladousuarios\r\n REPORTE_VACACIONES_SUCCESS,\r\n REPORTE_VACACIONES_ERROR,\r\n REPORTE_VACACIONES_PURGE,\r\n\r\n REPORTE_VACACIONES2_SUCCESS,\r\n REPORTE_VACACIONES2_ERROR,\r\n REPORTE_VACACIONES2_PURGE,\r\n} from \"../../types\";\r\n\r\n\r\nconst stateGeneraReporteCtrlVac1 = { \r\n generaReporteCtrlVac1Data: {}, \r\n generaReporteCtrlVac1Error: {}, \r\n};\r\n\r\nconst stateGeneraReporteCtrlVac2 = { \r\n generaReporteCtrlVac2Data: {}, \r\n generaReporteCtrlVac2Error: {},\r\n};\r\n\r\nconst stateGeneraReporteCtrlVac3 = { \r\n generaReporteCtrlVac3Data: {}, \r\n generaReporteCtrlVac3Error: {},\r\n};\r\n\r\nexport const generaReporteCtrlVac1Reducer = (state = stateGeneraReporteCtrlVac1, action) => {\r\n switch (action.type) {\r\n case REPORTE_CTRLVAC_EMPLEADO_SUCCESS:\r\n return { ...state, generaReporteCtrlVac1Data: action.payload };\r\n case REPORTE_CTRLVAC_EMPLEADO_ERROR:\r\n return { ...state, generaReporteCtrlVac1Error: action.payload };\r\n case REPORTE_CTRLVAC_EMPLEADO_PURGE:\r\n return { ...stateGeneraReporteCtrlVac1, purgeGeneraReporteCtrlVac1: action.payload };\r\n }\r\n return state;\r\n};\r\n \r\nexport const generaReporteCtrlVac2Reducer = (state = stateGeneraReporteCtrlVac2, action) => {\r\n switch (action.type) {\r\n case REPORTE_VACACIONES_SUCCESS:\r\n return { ...state, generaReporteCtrlVac2Data: action.payload };\r\n case REPORTE_VACACIONES_ERROR:\r\n return { ...state, generaReporteCtrlVac2Error: action.payload };\r\n case REPORTE_VACACIONES_PURGE:\r\n return { ...stateGeneraReporteCtrlVac2, purgeGeneraReporteCtrlVac2: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport const generaReporteCtrlVac3Reducer = (state = stateGeneraReporteCtrlVac3, action) => {\r\n switch (action.type) {\r\n case REPORTE_VACACIONES2_SUCCESS:\r\n return { ...state, generaReporteCtrlVac3Data: action.payload };\r\n case REPORTE_VACACIONES2_ERROR:\r\n return { ...state, generaReporteCtrlVac3Error: action.payload };\r\n case REPORTE_VACACIONES2_PURGE:\r\n return { ...stateGeneraReporteCtrlVac3, purgeGeneraReporteCtrlVac3: action.payload };\r\n }\r\n return state;\r\n};\r\n \r\n// export default getTipoEncuestas;","import {\r\n TYPE_EMPLOYEE_CATALOG_SUCCESS, \r\n TYPE_EMPLOYEE_CATALOG_ERROR, \r\n TYPE_EMPLOYEE_CATALOG_PURGE,\r\n } from '../../types';\r\n \r\n const stateTypeEmployeeCatalog = {\r\n typeEmployeeCatalogData: {},\r\n typeEmployeeCatalogError: {},\r\n };\r\n \r\n const typeEmployeeCatalogReducer = (state = stateTypeEmployeeCatalog, action) => {\r\n switch (action.type) {\r\n case TYPE_EMPLOYEE_CATALOG_SUCCESS:\r\n return { ...state, typeEmployeeCatalogData: action.payload };\r\n case TYPE_EMPLOYEE_CATALOG_ERROR:\r\n return { ...state, typeEmployeeCatalogError: action.payload };\r\n case TYPE_EMPLOYEE_CATALOG_PURGE:\r\n return { ...stateTypeEmployeeCatalog, purgeTypeEmployeeCatalog: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default typeEmployeeCatalogReducer;","import {\r\n GET_INCIDENCIAS_ASPEN_SUCCESS,\r\n GET_INCIDENCIAS_ASPEN_ERROR,\r\n GET_INCIDENCIAS_ASPEN_PURGE,\r\n } from '../../types';\r\n \r\n const stateGetincidenciasAspen = {\r\n getincidenciasAspenData: {},\r\n getincidenciasAspenError: {},\r\n };\r\n \r\n const GetincidenciasAspenReducer = (state = stateGetincidenciasAspen, action) => {\r\n switch (action.type) {\r\n case GET_INCIDENCIAS_ASPEN_SUCCESS:\r\n return { ...state, getincidenciasAspenData: action.payload };\r\n case GET_INCIDENCIAS_ASPEN_ERROR:\r\n return { ...state, getincidenciasAspenError: action.payload };\r\n case GET_INCIDENCIAS_ASPEN_PURGE:\r\n return { ...stateGetincidenciasAspen, purgeGetincidenciasAspen: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default GetincidenciasAspenReducer;","import {\r\n RPTPDF_CTRLVAC_SUCCESS,\r\n RPTPDF_CTRLVAC_ERROR,\r\n RPTPDF_CTRLVAC_PURGE,\r\n} from \"../../types\";\r\n\r\n\r\nconst stateGeneraRptPDFCtrlVacaciones = { \r\n generaRptPDFCtrlVacacionesData: {}, \r\n generaRptPDFCtrlVacacionesError: {}, \r\n};\r\n\r\nexport const generaRptPDFCtrlVacacionesReducer = (state = stateGeneraRptPDFCtrlVacaciones, action) => {\r\n switch (action.type) {\r\n case RPTPDF_CTRLVAC_SUCCESS:\r\n return { ...state, generaRptPDFCtrlVacacionesData: action.payload };\r\n case RPTPDF_CTRLVAC_ERROR:\r\n return { ...state, generaRptPDFCtrlVacacionesError: action.payload };\r\n case RPTPDF_CTRLVAC_PURGE:\r\n return { ...stateGeneraRptPDFCtrlVacaciones, purgeGeneraRptPDFCtrlVacaciones: action.payload };\r\n }\r\n return state;\r\n};","import {\r\n GET_VALORESCONFIG_SUCCESS,\r\n GET_VALORESCONFIG_ERROR,\r\n GET_VALORESCONFIG_PURGE,\r\n} from '../../types';\r\n \r\nconst stateGetValoresConfig = {\r\n getValoresConfigData: {},\r\n getValoresConfigError: {},\r\n};\r\n \r\nexport const GetValoresConfigReducer = (state = stateGetValoresConfig, action) => {\r\n switch (action.type) {\r\n case GET_VALORESCONFIG_SUCCESS:\r\n return {...state, getValoresConfigData: action.payload};\r\n case GET_VALORESCONFIG_ERROR:\r\n return {...state, getValoresConfigError: action.payload};\r\n case GET_VALORESCONFIG_PURGE:\r\n return {...stateGetValoresConfig, purgeGetValoresConfig: action.payload};\r\n }\r\n return state;\r\n}","import {\r\n UPDATEVALORCONFIG_SUCCESS, \r\n UPDATEVALORCONFIG_ERROR, \r\n UPDATEVALORCONFIG_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateUpdateValorConfig = {\r\n updateValorConfigData: {},\r\n updateValorConfigError: {},\r\n };\r\n \r\n export const UpdateValorConfigReducer = (state = stateUpdateValorConfig, action) => {\r\n switch (action.type) {\r\n case UPDATEVALORCONFIG_SUCCESS:\r\n return {...state, updateValorConfigData: action.payload};\r\n case UPDATEVALORCONFIG_ERROR:\r\n return {...state, updateValorConfigError: action.payload};\r\n case UPDATEVALORCONFIG_PURGE:\r\n return {...stateUpdateValorConfig, purgeUpdateValorConfig: action.payload};\r\n }\r\n return state;\r\n }\r\n ","import {\r\n GET_REPORTAEXTRANJEROS_SUCCESS,\r\n GET_REPORTAEXTRANJEROS_ERROR,\r\n GET_REPORTAEXTRANJEROS_PURGE,\r\n} from \"../../types\";\r\n\r\n\r\nconst stateGetReportaExtranjeros = { \r\n getReportaExtranjerosData: {}, \r\n getReportaExtranjerosError: {}, \r\n};\r\n\r\nexport const GetReportaExtranjerosReducer = (state = stateGetReportaExtranjeros, action) => {\r\n switch (action.type) {\r\n case GET_REPORTAEXTRANJEROS_SUCCESS:\r\n return { ...state, getReportaExtranjerosData: action.payload };\r\n case GET_REPORTAEXTRANJEROS_ERROR:\r\n return { ...state, getReportaExtranjerosError: action.payload };\r\n case GET_REPORTAEXTRANJEROS_PURGE:\r\n return { ...stateGetReportaExtranjeros, purgeGetReportaExtranjeros: action.payload };\r\n }\r\n return state;\r\n};","\r\nimport {\r\n\r\n GETTBTIPOEMPLEADO_SUCCESS, \r\n GETTBTIPOEMPLEADO_ERROR, \r\n GETTBTIPOEMPLEADO_PURGE, \r\n\r\n UPDATETBTIPOEMPLEADO_SUCCESS, \r\n UPDATETBTIPOEMPLEADO_ERROR, \r\n UPDATETBTIPOEMPLEADO_PURGE, \r\n \r\n GETFALTATIPOEMPLEADO_SUCCESS, \r\n GETFALTATIPOEMPLEADO_ERROR, \r\n GETFALTATIPOEMPLEADO_PURGE, \r\n \r\n INSERTFALTATIPOEMPLEADO_SUCCESS, \r\n INSERTFALTATIPOEMPLEADO_ERROR, \r\n INSERTFALTATIPOEMPLEADO_PURGE, \r\n \r\n DELETEFALTATIPOEMPLEADO_SUCCESS, \r\n DELETEFALTATIPOEMPLEADO_ERROR, \r\n DELETEFALTATIPOEMPLEADO_PURGE, \r\n \r\n UPDATEFALTATIPOEMPLEADO_SUCCESS, \r\n UPDATEFALTATIPOEMPLEADO_ERROR, \r\n UPDATEFALTATIPOEMPLEADO_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateGetTBTipoEmpleado = {\r\n getTBTipoEmpleadoData: {},\r\n getTBTipoEmpleadoError: {},\r\n };\r\n\r\n const stateUpdateTBTipoEmpleado = {\r\n updateTBTipoEmpleadoData: {},\r\n updateTBTipoEmpleadoError: {},\r\n };\r\n \r\n const stateGetFaltaTipoEmpleado = {\r\n getFaltaTipoEmpleadoData: {},\r\n getFaltaTipoEmpleadoError: {},\r\n };\r\n \r\n const stateInsertFaltaTipoEmpleado = {\r\n insertFaltaTipoEmpleadoData: {},\r\n insertFaltaTipoEmpleadoError: {},\r\n };\r\n \r\n const stateDeleteFaltaTipoEmpleado = {\r\n deleteFaltaTipoEmpleadoData: {},\r\n deleteFaltaTipoEmpleadoError: {},\r\n };\r\n \r\n const stateUpdateFaltaTipoEmpleado = {\r\n updateFaltaTipoEmpleadoData: {},\r\n updateFaltaTipoEmpleadoError: {},\r\n };\r\n \r\n export const GetTBTipoEmpleadoReducer = (state = stateGetTBTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case GETTBTIPOEMPLEADO_SUCCESS:\r\n return {...state, getTBTipoEmpleadoData: action.payload};\r\n case GETTBTIPOEMPLEADO_ERROR:\r\n return {...state, getTBTipoEmpleadoError: action.payload};\r\n case GETTBTIPOEMPLEADO_PURGE:\r\n return {...stateGetTBTipoEmpleado, purgeGetTBTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n }\r\n\r\n export const UpdateTBTipoEmpleadoReducer = (state = stateUpdateTBTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case UPDATETBTIPOEMPLEADO_SUCCESS:\r\n return {...state, updateTBTipoEmpleadoData: action.payload};\r\n case UPDATETBTIPOEMPLEADO_ERROR:\r\n return {...state, updateTBTipoEmpleadoError: action.payload};\r\n case UPDATETBTIPOEMPLEADO_PURGE:\r\n return {...stateUpdateTBTipoEmpleado, purgeUpdateTBTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n } \r\n \r\n export const GetFaltaTipoEmpleadoReducer = (state = stateGetFaltaTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case GETFALTATIPOEMPLEADO_SUCCESS:\r\n return {...state, getFaltaTipoEmpleadoData: action.payload};\r\n case GETFALTATIPOEMPLEADO_ERROR:\r\n return {...state, getFaltaTipoEmpleadoError: action.payload};\r\n case GETFALTATIPOEMPLEADO_PURGE:\r\n return {...stateGetFaltaTipoEmpleado, purgeGetFaltaTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const InsertFaltaTipoEmpleadoReducer = (state = stateInsertFaltaTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case INSERTFALTATIPOEMPLEADO_SUCCESS:\r\n return {...state, insertFaltaTipoEmpleadoData: action.payload};\r\n case INSERTFALTATIPOEMPLEADO_ERROR:\r\n return {...state, insertFaltaTipoEmpleadoError: action.payload};\r\n case INSERTFALTATIPOEMPLEADO_PURGE:\r\n return {...stateInsertFaltaTipoEmpleado, purgeInsertFaltaTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const DeleteFaltaTipoEmpleadoReducer = (state = stateDeleteFaltaTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case DELETEFALTATIPOEMPLEADO_SUCCESS:\r\n return {...state, deleteFaltaTipoEmpleadoData: action.payload};\r\n case DELETEFALTATIPOEMPLEADO_ERROR:\r\n return {...state, deleteFaltaTipoEmpleadoError: action.payload};\r\n case DELETEFALTATIPOEMPLEADO_PURGE:\r\n return {...stateDeleteFaltaTipoEmpleado, purgeDeleteFaltaTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const UpdateFaltaTipoEmpleadoReducer = (state = stateUpdateFaltaTipoEmpleado, action) => {\r\n switch (action.type) {\r\n case UPDATEFALTATIPOEMPLEADO_SUCCESS:\r\n return {...state, updateFaltaTipoEmpleadoData: action.payload};\r\n case UPDATEFALTATIPOEMPLEADO_ERROR:\r\n return {...state, updateFaltaTipoEmpleadoError: action.payload};\r\n case UPDATEFALTATIPOEMPLEADO_PURGE:\r\n return {...stateUpdateFaltaTipoEmpleado, purgeUpdateFaltaTipoEmpleado: action.payload};\r\n }\r\n return state;\r\n }\r\n ","\r\nimport {\r\n GETINCIDENCIASCONFIG_SUCCESS, \r\n GETINCIDENCIASCONFIG_ERROR, \r\n GETINCIDENCIASCONFIG_PURGE, \r\n \r\n INICIAINCIDENCIACONFIGEVENTO_SUCCESS, \r\n INICIAINCIDENCIACONFIGEVENTO_ERROR, \r\n INICIAINCIDENCIACONFIGEVENTO_PURGE, \r\n \r\n CANCELAINCIDENCIACONFIGEVENTO_SUCCESS, \r\n CANCELAINCIDENCIACONFIGEVENTO_ERROR, \r\n CANCELAINCIDENCIACONFIGEVENTO_PURGE, \r\n\r\n UPDATEINCIDENCIASCONFIG_SUCCESS, \r\n UPDATEINCIDENCIASCONFIG_ERROR, \r\n UPDATEINCIDENCIASCONFIG_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateGetIncidenciasConfig = {\r\n getIncidenciasConfigData: {},\r\n getIncidenciasConfigError: {},\r\n };\r\n \r\n const stateIniciaIncidenciaConfigEvento = {\r\n iniciaIncidenciaConfigEventoData: {},\r\n iniciaIncidenciaConfigEventoError: {},\r\n };\r\n \r\n const stateCancelaIncidenciaConfigEvento = {\r\n cancelaIncidenciaConfigEventoData: {},\r\n cancelaIncidenciaConfigEventoError: {},\r\n };\r\n \r\n const stateUpdateIncidenciasConfig = {\r\n updateIncidenciasConfigData: {},\r\n updateIncidenciasConfigError: {},\r\n };\r\n \r\n export const GetIncidenciasConfigReducer = (state = stateGetIncidenciasConfig, action) => {\r\n switch (action.type) {\r\n case GETINCIDENCIASCONFIG_SUCCESS:\r\n return {...state, getIncidenciasConfigData: action.payload};\r\n case GETINCIDENCIASCONFIG_ERROR:\r\n return {...state, getIncidenciasConfigError: action.payload};\r\n case GETINCIDENCIASCONFIG_PURGE:\r\n return {...stateGetIncidenciasConfig, purgeGetIncidenciasConfig: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const IniciaIncidenciaConfigEventoReducer = (state = stateIniciaIncidenciaConfigEvento, action) => {\r\n switch (action.type) {\r\n case INICIAINCIDENCIACONFIGEVENTO_SUCCESS:\r\n return {...state, iniciaIncidenciaConfigEventoData: action.payload};\r\n case INICIAINCIDENCIACONFIGEVENTO_ERROR:\r\n return {...state, iniciaIncidenciaConfigEventoError: action.payload};\r\n case INICIAINCIDENCIACONFIGEVENTO_PURGE:\r\n return {...stateIniciaIncidenciaConfigEvento, purgeIniciaIncidenciaConfigEvento: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const CancelaIncidenciaConfigEventoReducer = (state = stateCancelaIncidenciaConfigEvento, action) => {\r\n switch (action.type) {\r\n case CANCELAINCIDENCIACONFIGEVENTO_SUCCESS:\r\n return {...state, cancelaIncidenciaConfigEventoData: action.payload};\r\n case CANCELAINCIDENCIACONFIGEVENTO_ERROR:\r\n return {...state, cancelaIncidenciaConfigEventoError: action.payload};\r\n case CANCELAINCIDENCIACONFIGEVENTO_PURGE:\r\n return {...stateCancelaIncidenciaConfigEvento, purgeCancelaIncidenciaConfigEvento: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const UpdateIncidenciasConfigReducer = (state = stateUpdateIncidenciasConfig, action) => {\r\n switch (action.type) {\r\n case UPDATEINCIDENCIASCONFIG_SUCCESS:\r\n return {...state, updateIncidenciasConfigData: action.payload};\r\n case UPDATEINCIDENCIASCONFIG_ERROR:\r\n return {...state, updateIncidenciasConfigError: action.payload};\r\n case UPDATEINCIDENCIASCONFIG_PURGE:\r\n return {...stateUpdateIncidenciasConfig, purgeUpdateIncidenciasConfig: action.payload};\r\n }\r\n return state;\r\n }","\r\nimport {\r\n GETINCIDENCIASRAZONES_SUCCESS, \r\n GETINCIDENCIASRAZONES_ERROR, \r\n GETINCIDENCIASRAZONES_PURGE, \r\n \r\n \r\n } from '../../types';\r\n \r\n const stateGetIncidenciasRazones = {\r\n getIncidenciasRazonesData: {},\r\n getIncidenciasRazonesError: {},\r\n };\r\n \r\n export const GetIncidenciasRazonesReducer = (state = stateGetIncidenciasRazones, action) => {\r\n switch (action.type) {\r\n case GETINCIDENCIASRAZONES_SUCCESS:\r\n return {...state, getIncidenciasRazonesData: action.payload};\r\n case GETINCIDENCIASRAZONES_ERROR:\r\n return {...state, getIncidenciasRazonesError: action.payload};\r\n case GETINCIDENCIASRAZONES_PURGE:\r\n return {...stateGetIncidenciasRazones, purgeGetIncidenciasRazones: action.payload};\r\n }\r\n return state;\r\n }\r\n ","import {\r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS, \r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR, \r\n GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateGetReporte1SolicitudVacacioneCamposIncidencias = {\r\n getReporte1SolicitudVacacioneCamposIncidenciasData: {},\r\n getReporte1SolicitudVacacioneCamposIncidenciasError: {},\r\n };\r\n \r\n export const GetReporte1SolicitudVacacioneCamposIncidenciasReducer = (state = stateGetReporte1SolicitudVacacioneCamposIncidencias, action) => {\r\n switch (action.type) {\r\n case GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_SUCCESS:\r\n return {...state, getReporte1SolicitudVacacioneCamposIncidenciasData: action.payload};\r\n case GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_ERROR:\r\n return {...state, getReporte1SolicitudVacacioneCamposIncidenciasError: action.payload};\r\n case GETREPORTE1SOLICITUDVACACIONECAMPOSINCIDENCIAS_PURGE:\r\n return {...stateGetReporte1SolicitudVacacioneCamposIncidencias, purgeGetReporte1SolicitudVacacioneCamposIncidencias: action.payload};\r\n }\r\n return state;\r\n }","\r\nimport {\r\n GETTBFALTA_SUCCESS, \r\n GETTBFALTA_ERROR, \r\n GETTBFALTA_PURGE, \r\n \r\n INSERTTBFALTA_SUCCESS, \r\n INSERTTBFALTA_ERROR, \r\n INSERTTBFALTA_PURGE, \r\n \r\n DELETETBFALTA_SUCCESS, \r\n DELETETBFALTA_ERROR, \r\n DELETETBFALTA_PURGE, \r\n \r\n UPDATETBFALTA_SUCCESS, \r\n UPDATETBFALTA_ERROR, \r\n UPDATETBFALTA_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateGetTBFalta = {\r\n getTBFaltaData: {},\r\n getTBFaltaError: {},\r\n };\r\n \r\n const stateInsertTBFalta = {\r\n insertTBFaltaData: {},\r\n insertTBFaltaError: {},\r\n };\r\n \r\n const stateDeleteTBFalta = {\r\n deleteTBFaltaData: {},\r\n deleteTBFaltaError: {},\r\n };\r\n \r\n const stateUpdateTBFalta = {\r\n updateTBFaltaData: {},\r\n updateTBFaltaError: {},\r\n };\r\n \r\n export const GetTBFaltaReducer = (state = stateGetTBFalta, action) => {\r\n switch (action.type) {\r\n case GETTBFALTA_SUCCESS:\r\n return {...state, getTBFaltaData: action.payload};\r\n case GETTBFALTA_ERROR:\r\n return {...state, getTBFaltaError: action.payload};\r\n case GETTBFALTA_PURGE:\r\n return {...stateGetTBFalta, purgeGetTBFalta: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const InsertTBFaltaReducer = (state = stateInsertTBFalta, action) => {\r\n switch (action.type) {\r\n case INSERTTBFALTA_SUCCESS:\r\n return {...state, insertTBFaltaData: action.payload};\r\n case INSERTTBFALTA_ERROR:\r\n return {...state, insertTBFaltaError: action.payload};\r\n case INSERTTBFALTA_PURGE:\r\n return {...stateInsertTBFalta, purgeInsertTBFalta: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const DeleteTBFaltaReducer = (state = stateDeleteTBFalta, action) => {\r\n switch (action.type) {\r\n case DELETETBFALTA_SUCCESS:\r\n return {...state, deleteTBFaltaData: action.payload};\r\n case DELETETBFALTA_ERROR:\r\n return {...state, deleteTBFaltaError: action.payload};\r\n case DELETETBFALTA_PURGE:\r\n return {...stateDeleteTBFalta, purgeDeleteTBFalta: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const UpdateTBFaltaReducer = (state = stateUpdateTBFalta, action) => {\r\n switch (action.type) {\r\n case UPDATETBFALTA_SUCCESS:\r\n return {...state, updateTBFaltaData: action.payload};\r\n case UPDATETBFALTA_ERROR:\r\n return {...state, updateTBFaltaError: action.payload};\r\n case UPDATETBFALTA_PURGE:\r\n return {...stateUpdateTBFalta, purgeUpdateTBFalta: action.payload};\r\n }\r\n return state;\r\n }\r\n ","\r\nimport {\r\n AFILINDIVIDUALIZADO_SUCCESS, \r\n AFILINDIVIDUALIZADO_ERROR, \r\n AFILINDIVIDUALIZADO_PURGE, \r\n\r\n VALIDATE_ERROR\r\n} from '../../types';\r\n\r\nconst stateAfilIndividualizado = {\r\n afilIndividualizadoData: {},\r\n afilIndividualizadoError: {},\r\n};\r\n\r\nexport const AfilIndividualizadoReducer = (state = stateAfilIndividualizado, action) => {\r\n switch (action.type) {\r\n case AFILINDIVIDUALIZADO_SUCCESS:\r\n return {...state, afilIndividualizadoData: action.payload};\r\n case AFILINDIVIDUALIZADO_ERROR:\r\n return {...state, afilIndividualizadoError: action.payload};\r\n case AFILINDIVIDUALIZADO_PURGE:\r\n return {...stateAfilIndividualizado, purgeAfilIndividualizado: action.payload};\r\n }\r\n return state;\r\n}","\r\nimport {\r\n GETTBAUTORIZADORFIJO_SUCCESS, \r\n GETTBAUTORIZADORFIJO_ERROR, \r\n GETTBAUTORIZADORFIJO_PURGE, \r\n \r\n INSERTTBAUTORIZADORFIJO_SUCCESS, \r\n INSERTTBAUTORIZADORFIJO_ERROR, \r\n INSERTTBAUTORIZADORFIJO_PURGE, \r\n \r\n DELETETBAUTORIZADORFIJO_SUCCESS, \r\n DELETETBAUTORIZADORFIJO_ERROR, \r\n DELETETBAUTORIZADORFIJO_PURGE, \r\n \r\n UPDATETBAUTORIZADORFIJO_SUCCESS, \r\n UPDATETBAUTORIZADORFIJO_ERROR, \r\n UPDATETBAUTORIZADORFIJO_PURGE, \r\n \r\n VALIDATE_ERROR\r\n } from '../../types';\r\n \r\n const stateGetTBAutorizadorFijo = {\r\n getTBAutorizadorFijoData: {},\r\n getTBAutorizadorFijoError: {},\r\n };\r\n \r\n const stateInsertTBAutorizadorFijo = {\r\n insertTBAutorizadorFijoData: {},\r\n insertTBAutorizadorFijoError: {},\r\n };\r\n \r\n const stateDeleteTBAutorizadorFijo = {\r\n deleteTBAutorizadorFijoData: {},\r\n deleteTBAutorizadorFijoError: {},\r\n };\r\n \r\n const stateUpdateTBAutorizadorFijo = {\r\n updateTBAutorizadorFijoData: {},\r\n updateTBAutorizadorFijoError: {},\r\n };\r\n \r\n export const GetTBAutorizadorFijoReducer = (state = stateGetTBAutorizadorFijo, action) => {\r\n switch (action.type) {\r\n case GETTBAUTORIZADORFIJO_SUCCESS:\r\n return {...state, getTBAutorizadorFijoData: action.payload};\r\n case GETTBAUTORIZADORFIJO_ERROR:\r\n return {...state, getTBAutorizadorFijoError: action.payload};\r\n case GETTBAUTORIZADORFIJO_PURGE:\r\n return {...stateGetTBAutorizadorFijo, purgeGetTBAutorizadorFijo: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const InsertTBAutorizadorFijoReducer = (state = stateInsertTBAutorizadorFijo, action) => {\r\n switch (action.type) {\r\n case INSERTTBAUTORIZADORFIJO_SUCCESS:\r\n return {...state, insertTBAutorizadorFijoData: action.payload};\r\n case INSERTTBAUTORIZADORFIJO_ERROR:\r\n return {...state, insertTBAutorizadorFijoError: action.payload};\r\n case INSERTTBAUTORIZADORFIJO_PURGE:\r\n return {...stateInsertTBAutorizadorFijo, purgeInsertTBAutorizadorFijo: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const DeleteTBAutorizadorFijoReducer = (state = stateDeleteTBAutorizadorFijo, action) => {\r\n switch (action.type) {\r\n case DELETETBAUTORIZADORFIJO_SUCCESS:\r\n return {...state, deleteTBAutorizadorFijoData: action.payload};\r\n case DELETETBAUTORIZADORFIJO_ERROR:\r\n return {...state, deleteTBAutorizadorFijoError: action.payload};\r\n case DELETETBAUTORIZADORFIJO_PURGE:\r\n return {...stateDeleteTBAutorizadorFijo, purgeDeleteTBAutorizadorFijo: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export const UpdateTBAutorizadorFijoReducer = (state = stateUpdateTBAutorizadorFijo, action) => {\r\n switch (action.type) {\r\n case UPDATETBAUTORIZADORFIJO_SUCCESS:\r\n return {...state, updateTBAutorizadorFijoData: action.payload};\r\n case UPDATETBAUTORIZADORFIJO_ERROR:\r\n return {...state, updateTBAutorizadorFijoError: action.payload};\r\n case UPDATETBAUTORIZADORFIJO_PURGE:\r\n return {...stateUpdateTBAutorizadorFijo, purgeUpdateTBAutorizadorFijo: action.payload};\r\n }\r\n return state;\r\n }\r\n ","import {\r\n DOCUMENT_TYPE_SUCCESS,\r\n DOCUMENT_TYPE_ERROR,\r\n DOCUMENT_TYPE_PURGE,\r\n\r\n} from \"../../types\";\r\n\r\nconst stateDocumentType = {\r\n documentTypeData: {},\r\n documentTypeError: {},\r\n};\r\n\r\nconst getDocumentType = (state = stateDocumentType, action) => {\r\n switch (action.type) {\r\n case DOCUMENT_TYPE_SUCCESS:\r\n return { ...state, documentTypeData: action.payload };\r\n case DOCUMENT_TYPE_ERROR:\r\n return { ...state, documentTypeError: action.payload };\r\n case DOCUMENT_TYPE_PURGE:\r\n return { ...stateDocumentType, purgeDocumentType: action.payload };\r\n }\r\n return state;\r\n}\r\n\r\nexport default getDocumentType;","import {\r\n CONSULTA_ARCHIVOPERSO_SUCCESS,\r\n CONSULTA_ARCHIVOPERSO_ERROR,\r\n CONSULTA_ARCHIVOPERSO_PURGE,\r\n} from \"../../types\";\r\n\r\nconst stateConsultaArchivosPersonales = {\r\n consultaArchivosPersonalesData: {},\r\n consultaArchivosPersonalesError: {},\r\n};\r\n\r\nconst getConsultaArchivosPersonales = (state = stateConsultaArchivosPersonales, action) => {\r\n switch (action.type) {\r\n case CONSULTA_ARCHIVOPERSO_SUCCESS:\r\n return { ...state, consultaArchivosPersonalesData: action.payload };\r\n case CONSULTA_ARCHIVOPERSO_ERROR:\r\n return { ...state, consultaArchivosPersonalesError: action.payload };\r\n case CONSULTA_ARCHIVOPERSO_PURGE:\r\n return { ...stateConsultaArchivosPersonales, purgeConsultaArchivosPersonales: action.payload };\r\n }\r\n return state;\r\n};\r\n\r\nexport default getConsultaArchivosPersonales;","import {\r\n SAVE_ARCHIVOPERSO_SUCCESS,\r\n SAVE_ARCHIVOPERSO_ERROR,\r\n SAVE_ARCHIVOPERSO_PURGE,\r\n} from \"../../types\";\r\n \r\n const stateGuardaArchivosPersonales = {\r\n guardaArchivosPersonalesData: {},\r\n guardaArchivosPersonalesError: {},\r\n trabID: ''\r\n };\r\n \r\n const getGuardaArchivosPersonales = (state = stateGuardaArchivosPersonales, action) => {\r\n switch (action.type) {\r\n case SAVE_ARCHIVOPERSO_SUCCESS:\r\n return { ...state, guardaArchivosPersonalesData: action.payload };\r\n case SAVE_ARCHIVOPERSO_ERROR:\r\n return { ...state, guardaArchivosPersonalesError: action.payload };\r\n case SAVE_ARCHIVOPERSO_PURGE:\r\n return { ...stateGuardaArchivosPersonales, purgeConsultaArchivosPersonales: action.payload };\r\n }\r\n return state;\r\n };\r\n \r\n export default getGuardaArchivosPersonales;","import {\r\n DELETE_PERSOFILES_SUCCESS,\r\n DELETE_PERSOFILES_ERROR ,\r\n DELETE_PERSOFILES_PURGE,\r\n } from \"../../types\";\r\n \r\n const stateDeletePersonalFiles = {\r\n deletePersonalFilesData: {},\r\n deletePersonalFilesError: {},\r\n };\r\n \r\n const getDeletePersonalFiles = (state = stateDeletePersonalFiles, action) => {\r\n switch (action.type) {\r\n case DELETE_PERSOFILES_SUCCESS:\r\n return { ...state, deletePersonalFilesData: action.payload };\r\n case DELETE_PERSOFILES_ERROR:\r\n return { ...state, deletePersonalFilesError: action.payload };\r\n case DELETE_PERSOFILES_PURGE:\r\n return { ...stateDeletePersonalFiles, purgeConsultaArchivosPersonales: action.payload };\r\n }\r\n return state;\r\n };\r\n \r\n export default getDeletePersonalFiles;","import {\r\n CONSULTA_ARCHIVOPERSO_SUCCESS,\r\n CONSULTA_ARCHIVOPERSO_ERROR,\r\n CONSULTA_ARCHIVOPERSO_PURGE,\r\n } from \"../../types\";\r\n \r\n const stateConsultaArchivosPersonalesPorTrabajador = {\r\n consultaArchivosPersonalesPorTrabajadorData: {},\r\n consultaArchivosPersonalesPorTrabajadorError: {},\r\n };\r\n \r\n const getConsultaArchivosPersonalesPorTrabajador = (state = stateConsultaArchivosPersonalesPorTrabajador, action) => {\r\n switch (action.type) {\r\n case CONSULTA_ARCHIVOPERSO_SUCCESS:\r\n return { ...state, consultaArchivosPersonalesPorTrabajadorData: action.payload };\r\n case CONSULTA_ARCHIVOPERSO_ERROR:\r\n return { ...state, consultaArchivosPersonalesPorTrabajadorError: action.payload };\r\n case CONSULTA_ARCHIVOPERSO_PURGE:\r\n return { ...stateConsultaArchivosPersonalesPorTrabajador, purgeConsultaArchivosPersonalesPorTrabajador: action.payload };\r\n }\r\n return state;\r\n };\r\n \r\n export default getConsultaArchivosPersonalesPorTrabajador;","import {\r\n INCIDENTS_REPORT_SUCCESS,\r\n INCIDENTS_REPORT_ERROR,\r\n INCIDENTS_REPORT_PURGE,\r\n } from '../../types';\r\n \r\n const stateReportIncidents = {\r\n incidentsReportData: {},\r\n incidentsReportError: {},\r\n };\r\n \r\n const getReportIncidents = (state = stateReportIncidents, action) => {\r\n switch (action.type) {\r\n case INCIDENTS_REPORT_SUCCESS:\r\n return {...state, incidentsReportData: action.payload};\r\n case INCIDENTS_REPORT_ERROR:\r\n return {...state, incidentsReportError: action.payload};\r\n case INCIDENTS_REPORT_PURGE:\r\n return {...stateReportIncidents, purgeReportIncidents: action.payload};\r\n }\r\n return state;\r\n }\r\n \r\n export default getReportIncidents;","import {\r\n QUEJA_RESPUESTA_SUCCESS,\r\n QUEJA_RESPUESTA_ERROR,\r\n QUEJA_RESPUESTA_PURGE,\r\n } from '../../types';\r\n \r\n const stateRespuestaQuejas = {\r\n respuestaQuejasData: {},\r\n respuestaQuejasError: {},\r\n };\r\n \r\n const getRespuestaQuejas = (state = stateRespuestaQuejas, action) => {\r\n switch (action.type) {\r\n case QUEJA_RESPUESTA_SUCCESS:\r\n return { ...state, respuestaQuejasData: action.payload };\r\n case QUEJA_RESPUESTA_ERROR:\r\n return { ...state, respuestaQuejasError: action.payload };\r\n case QUEJA_RESPUESTA_PURGE:\r\n return { ...stateRespuestaQuejas, purgeRespuestaQuejas: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default getRespuestaQuejas;","import {\r\n AUTHORIZE_CANCEL_INCIDENTS_SUCCESS,\r\n AUTHORIZE_CANCEL_INCIDENTS_ERROR,\r\n AUTHORIZE_CANCEL_INCIDENTS_PURGE,\r\n } from '../../types';\r\n \r\n const stateAuthorizeCancelIncidents = {\r\n authorizeCancelIncidentsData: {},\r\n authorizeCancelIncidentsError: {},\r\n };\r\n \r\n const AuthorizeCancelIncidents = (state = stateAuthorizeCancelIncidents, action) => {\r\n switch (action.type) {\r\n case AUTHORIZE_CANCEL_INCIDENTS_SUCCESS:\r\n return { ...state, authorizeCancelIncidentsData: action.payload };\r\n case AUTHORIZE_CANCEL_INCIDENTS_ERROR:\r\n return { ...state, authorizeCancelIncidentsError: action.payload };\r\n case AUTHORIZE_CANCEL_INCIDENTS_PURGE:\r\n return { ...stateAuthorizeCancelIncidents, purgeAuthorizeCancelIncidents: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default AuthorizeCancelIncidents;","import {\r\n REJECT_CANCEL_INCIDENTS_SUCCESS,\r\n REJECT_CANCEL_INCIDENTS_ERROR,\r\n REJECT_CANCEL_INCIDENTS_PURGE,\r\n } from '../../types';\r\n \r\n const stateRejectCancelIncidents = {\r\n rejectCancelIncidentsData: {},\r\n rejectCancelIncidentsError: {},\r\n };\r\n \r\n const RejectCancelIncidents = (state = stateRejectCancelIncidents, action) => {\r\n switch (action.type) {\r\n case REJECT_CANCEL_INCIDENTS_SUCCESS:\r\n return { ...state, rejectCancelIncidentsData: action.payload };\r\n case REJECT_CANCEL_INCIDENTS_ERROR:\r\n return { ...state, rejectCancelIncidentsError: action.payload };\r\n case REJECT_CANCEL_INCIDENTS_PURGE:\r\n return { ...stateRejectCancelIncidents, purgeRejectCancelIncidents: action.payload };\r\n }\r\n return state;\r\n }\r\n \r\n export default RejectCancelIncidents;","import { combineReducers } from 'redux';\nimport { RESET_STORE } from '../types';\n//COMMON\nimport ValidateErrorReducer from './common/ValidateErrorReducer';\nimport LoginReducer from './common/LoginReducer';\nimport SecurityQuestionReducer from './common/SecurityQuestionReducer';\nimport ChangePasswordReducer from './common/ChangePasswordReducer';\nimport ImageUserReducer from './common/ImageUserReducer';\nimport DataUserReducer from './common/DataUserReducer';\nimport ChangeColorReducer from './common/CangeColorReducer';\nimport ShowWelcomeReducer from './common/ShowWelcomeReducer';\nimport ChangeMenuReducer from './common/ChangeMenuReducer';\nimport ChangeUserTypeReducer from './common/ChangeUserTypeReducer';\nimport PrivacyNoticeReducer from './common/PrivacyNoticeReducer';\nimport TermCondReducer from './common/TermCondReducer';\nimport UploadImageReducer from './common/UploadImageReducer';\nimport UrlEncuestaReducer from './common/UrlEncuestaReducer';\nimport ValidateEncuestaReducer from './common/ValidateEncuestaReducer';\nimport FcmTokenReducer from './common/FcmTokenReducer';\nimport RegisterFcmReducer from './common/RegisterFcmReducer';\nimport UploadFcmReducer from './common/UploadImageReducer';\nimport RecoveryPasswordReducer from './common/RecoveryPasswordReducer';\nimport UpdatePasswordReducer from './common/UpdatePasswordReducer';\n\n//EMPLEADO\nimport NominaReducer from './empleado/NominaReducer';\nimport DetalleNominaReducer from './empleado/DetalleNominaReducer';\nimport UrlPdfReducer from './empleado/UrlPdfReducer';\nimport UrlXmlReducer from './empleado/UrlXmlReducer';\nimport MovimientosImssReducer from './empleado/MovimientosImssReducer';\nimport DetalleImssReducer from './empleado/DetalleImssReducer';\nimport VacationsReducer from './empleado/VacationsReducer';\nimport InsertVacationsReducer from './empleado/InsertVacationsReducer';\nimport MovimientosInfonavitReducer from './empleado/MovimientosInfonavitReducer';\nimport DetalleInfonavitReducer from './empleado/DetalleInfonavitReducer';\nimport MessagesReducer from './empleado/MessagesReducer';\nimport MessagesDetailReducer from './empleado/MessagesDetailReducer';\nimport MessageaRHReducer from './empleado/MessageaRHReducer';\nimport MyMessagesRhReducer from './empleado/MyMessagesRhReducer';\nimport QuejaMessageReducer from './empleado/QuejaMessageReducer';\nimport SiBalanceReducer from './empleado/SiBalanceReducer';\n\n//JEFE\nimport RequestedVacationsReducer from './jefe/RequestedVacationsReducer';\nimport AuthorizeVacationsReducer from './jefe/AuthorizeVacationsReducer';\nimport RejectVacationsReducer from './jefe/RejectVacationsReducer';\nimport SeeVacationsReducer from './jefe/SeeVacationsReducer';\n\n//import NominaInfoReducer from './NominaInfoReducer';\nimport QrReducer from './QrReducer';\n//USER RH\nimport AllMessagesRhReducer from './RhUser/AllMessagesRhReducer';\nimport ReadMessageReducer from './RhUser/ReadMessageReducer';\nimport DeleteMessageReducer from './RhUser/DeleteMessageReducer';\nimport GetTypesNominaReducer from './RhUser/GetTypesNominaReducer';\nimport GetNominaPeriodsReducer from './RhUser/GetNominaPeriodsReducer';\nimport GetCalendarNominaReducer from './RhUser/GetCalendarNominaReducer';\nimport GetCenterNominaReducer from './RhUser/GetCenterNominaReducer';\nimport ProcessNominaReducer from './RhUser/ProcessNominaReducer';\nimport PeriodosNominaRhReducer from './RhUser/PeriodosNominaRhReducer';\nimport DetalleNominaRhReducer from './RhUser/DetalleNominaRhReducer';\nimport CompaniesReducer from './RhUser/CompaniesReducer';\nimport LicenseDataReducer from './RhUser/LicenseDataReducer';\nimport PromotionsReducer from './RhUser/PromotionsReducer';\nimport BuzonQuejasReducer from './RhUser/BuzonQuejasReducer';\nimport BuzonQuejasDetalleReducer from './RhUser/BuzonQuejasDetalleReducer';\nimport DeleteComplaintReducer from './RhUser/DeleteComplaintReducer';\nimport CalendarReducer from './RhUser/CalendarReducer';\n\n\n//ADMIN\nimport CentersCatalogReducer from './systemAdmin/CentersCatalogReducer';\nimport DeptsCatalogReducer from './systemAdmin/DeptsCatalogReducer';\nimport EmployerRecordsReducer from './systemAdmin/EmployerRecordsReducer';\nimport EmployerRecordsPermitsReducer from './systemAdmin/EmployerRecordsPermitsReducer';\nimport DepartmentPermitsReducer from './systemAdmin/DepartmentPermitsReducer';\nimport CenterPermitReducer from './systemAdmin/CenterPermitReducer';\nimport InsertDeletePermitRPReducer from './systemAdmin/InsertDeletePermitRPReducer';\nimport InsertDeletePermitCenterReducer from './systemAdmin/InsertDeletePermitCenterReducer';\nimport InsertDeletePermitDeptoReducer from './systemAdmin/InsertDeletePermitDeptoReducer';\nimport ChangePasswordAdminReducer from './systemAdmin/ChangePasswordAdminReducer';\nimport { getNewUser, ActualizaUsuarioReducer, EliminaUsuarioReducer, } from './systemAdmin/NewUserReducer';\nimport RestartPasswordReducer from './systemAdmin/RestartPasswordReducer';\nimport SearchEmployeeReducer from './systemAdmin/SearchEmployeeReducer';\nimport CompaniesListReducer from './systemAdmin/CompaniesListReducer';\nimport ChangePasswordEmployeeReducer from './systemAdmin/ChangePasswordEmployeeReducer';\nimport UnlockEmployeesReducer from './systemAdmin/UnlockEmployeesReducer';\nimport AccessMethodReducer from './systemAdmin/AccessMethodReducer';\nimport JobCatalogReducer from './systemAdmin/JobCatalogReducer';\nimport PermitPositionUserReducer from './systemAdmin/PermitPositionUserReducer';\nimport InsertDeletePosReducer from './systemAdmin/InsertDeletePosReducer';\nimport AdditionalFieldsReducer from './systemAdmin/AdditionalFieldsReducer';\nimport DeleteAddFieldsReducer from './systemAdmin/DeleteAddFieldsReducer';\nimport NextInfoUserReducer from './systemAdmin/NextInfoUserReducer';\nimport SaveInfoExtraReducer from './systemAdmin/SaveInfoExtraReducer';\nimport ReceiptGenerationEmployeeReducer from './systemAdmin/ReceiptGenerationEmployeeReducer';\nimport BlockUserReducer from './systemAdmin/BlockUserReducer';\nimport AllUsersReducer from './systemAdmin/AllUsersReducer';\nimport WelcomeMessageReducer from './systemAdmin/WelcomeMessageReducer';\nimport EditWelcomeMessageReducer from './systemAdmin/EditWelcomeMessageReducer';\nimport SelectedAdditionalFieldsReducer from './systemAdmin/SelectedAdditionalFieldsReducer';\nimport NewCorporativeMessageReducer from './systemAdmin/NewCorporativeMessageReducer';\nimport EditCorporativeMessageReducer from './systemAdmin/EditCorporativeMessageReducer';\nimport ListCorporativeMessageReducer from './systemAdmin/ListCorporativeMessagesReducer';\nimport DetailCorporativeMessageReducer from './systemAdmin/DetailCorporativeMessageReducer';\nimport ControlVacationsReducer from './systemAdmin/ControlVacationsReducer';\nimport ConsultaRolesReducer from './systemAdmin/ConsultaRolesReducer';\nimport EmployeeCatalogReducer from './systemAdmin/EmployeeCatalogReducer'\n\n//EULEN\nimport CancelVacationsEulenReducer from './systemAdmin/CancelVacationsEulenReducer';\nimport AuthorizeCancelVacationsReducer from './jefe/AuthorizeCancelVacationsReducer';\nimport RejectCancelVacationsReducer from './jefe/RejectCancelVacationsReducer';\nimport VacationsMassiveReducer from './eulen/VacationsMassiveReducer';\nimport AuthorizeVacationsMassiveReducer from './eulen/AuthorizeVacationsMassiveReducer';\nimport RejectVacationsMassiveReducer from './eulen/RejectVacationsMassiveReducer';\nimport VacationsRhVacationReducer from './eulen/VacationsRhVacationReducer';\nimport ListCompaniesRptReducer from './eulen/ListCompaniesRptReducer';\nimport FilterCenterReducer from './eulen/FilterCenterReducer';\nimport FilterBoosReducer from './eulen/FilterBoosReducer';\nimport ReportRHVacReducer from './eulen/ReportRHVacReducer';\nimport AdminMenuReducer from './eulen/AdminMenuReducer';\nimport AdminMenuActivateReducer from './eulen/AdminMenuActivateReducer';\nimport VacationsMassiveDirectReducer from './eulen/VacationsMassiveDirectReducer';\nimport AuthorizeVacationsMassiveDirectReducer from './eulen/AuthorizeVacationsMassiveDirectReducer';\nimport RejectVacationsMassiveDirectReducer from './eulen/RejectVacationsMassiveDirectReducer';\nimport VacationsDirectReducer from './eulen/VacationsDirectReducer';\nimport ReportRHVacDirectReducer from './eulen/ReportRHVacDirectReducer';\n\n//KRONES PERDIEM\nimport CreatePerdiemReducer from './perdiem/CreatePerdiemReducer';\nimport GetPerdiemReducer from './perdiem/GetPerdiemReducer';\nimport DeletePerdiemReducer from './perdiem/DeletePerdiemReducer';\nimport EditPerdiemReducer from './perdiem/EditPerdiemReducer';\nimport GeneratePerdiemReducer from './perdiem/GeneratePerdiemReducer';\nimport SignPerdiemReducer from './perdiem/SignPerdiemReducer';\nimport DownloadPerdiemReducer from './perdiem/DownloadPerdiemReducer';\nimport IdPerdiemReducer from './perdiem/IdPerdiemReducer';\nimport AuthorizersReducer from './perdiem/AuthorizersReducer';\nimport SendEmailsReducer from './perdiem/SendEmailsReducer';\nimport ConceptsReducer from './perdiem/ConceptsReducer';\nimport ServiceCodeReducer from './perdiem/ServiceCodeReducer';\n\nimport EmployeeVacationsReducer from './jefe/EmployeeVacationsReducer';\nimport CommentRejectVacationsReducer from './jefe/CommentRejectVacationsReducer';\nimport VacationsExpirationReducer from './empleado/VacationExpirationReducer';\n//import ConsultaRolesReducer from './systemAdmin/ConsultaRolesReducer';\nimport DeptosCenterReducer from './perdiem/DeptosCenterReducer';\nimport JefesPerdiemReducer from './perdiem/JefesPerdiemReducer';\nimport EmpleadosAllReducer from './perdiem/EmpleadosAllReducer';\nimport EmpRepoReducer from './perdiem/EmpRepoReducer';\nimport EmpleadosAlMandoReducer from './perdiem/EmpleadosAlMandoReducer';\nimport RejectChiefReducer from './perdiem/RejectChiefReducer';\nimport AuthorizeChiefReducer from './perdiem/AuthorizeChiefReducer';\nimport GetPreviewReducer from './perdiem/GetPreviewReducer';\nimport AuthorizeRejectReducer from './perdiem/AuthorizeRejectReducer';\nimport EmpleadosPerdiemReducer from './perdiem/EmpleadosPerdiemReducer';\nimport GetPreviewCanceledReducer from './perdiem/GetPreviewCanceledReducer';\nimport GetPreviewAuthorizedReducer from './perdiem/GetPreviewAuthorizedReducer';\nimport ReportConvertReducer from './perdiem/ReportConvertReducer';\nimport GetXlsPerdiemReducer from './perdiem/GetXlsPerdiemReducer';\nimport SendDataChiefReducer from './perdiem/SendDataChiefReducer';\nimport EmployeeMovNomReducer from './perdiem/EmployeeMovNomReducer'\n\n//MERHAL\nimport CatIncidentsReducer from './empleado/CatIncidentsReducer';\nimport InsertIncidentReducer from './empleado/InsertIncidentAction';\nimport SkipWeekendReducer from './empleado/SkipWeekendReducer';\nimport AuthorizeIncidentReducer from './jefe/AuthorizeIncidentReducer';\nimport RejectIncidentReducer from './jefe/RejectIncidentReducer';\nimport VacationCalendarReducer from './common/VacationCalendarReducer';\nimport IncidenciasKronesReducer from './empleado/IncidenciasKronesReducer';\nimport EmpleadoJornadaReducer from './empleado/EmpleadoJornadaReducer';\nimport ValidaFechasReducer from './empleado/ValidaFechasReducer';\n\n\n//RIU\nimport URLReporteDocDeacargadosEmpReducer from './systemAdmin/URLReporteDocDeacargadosEmpReducer';\nimport Log_RegistraDescargaArchivoReducer from './empleado/Log_RegistraDescargaArchivoReducer';\nimport ConsultaVarExtReducer from './systemAdmin/ConsultaVarExtReducer';\nimport ConsultaArchivosReducer from './systemAdmin/ConsultaArchivosReducer';\nimport GuardaArchivoReducer from './systemAdmin/GuardaArchivoReducer';\nimport DeleteFilesReducer from './systemAdmin/DeleteFilesReducer';\nimport ConsultaVarFirmaReducer from './empleado/ConsultaVarFirmaReducer';\nimport ConsultaFirmaReducer from './empleado/ConsultaFirmaReducer';\nimport ActualizaFirmaReducer from './empleado/ActualizaFirmaReducer';\nimport IncidentAlertReducer from './common/IncidentAlertReducer';\n\nimport VarShowOptionsReducer from './systemAdmin/VarShowOptionsReducer';\n\n//NOM035\nimport { getTipoEncuestasReducer, getEmpleadosGUIA1Reducer, getUbicacionesConteoReducer, getSeleccionEmpUbiReducer, setEnviarEncuestasGUIA1Reducer, setEnviarEncuestasGUIA2_3Reducer } from \"./systemAdmin/GetTipoEncuestasReducer\";\n\n//PEÑAFIEL \nimport { CtrlVacacionesEmpleadoV4Reducer, CtrlVacionEmpleadoDatosReducer } from './empleado/ControlVacacionesEmpleadoReducer';\nimport GetDiasBloqueadosReducer from './systemAdmin/GetDiasBloqueadosReducer';\nimport RecoverPwdByEmailReducer from './common/RecoverPwdByEmailReducer';\n\nimport GeneraRptVacacionIncidenciaReducer from './systemAdmin/GeneraRptVacacionIncidenciaReducer';\n\n//ASPEN-COMAU\nimport { generaReporteCtrlVac1Reducer, generaReporteCtrlVac2Reducer, generaReporteCtrlVac3Reducer } from \"./reportes/GeneraReporteCtrlVacacionesReducer\";\nimport TypeEmployeeCatalogReducer from './systemAdmin/TypeEmployeeCatalogReducer';\nimport GetincidenciasAspenReducer from './empleado/GetincidenciasAspenReducer';\n\n//MARSH\nimport { generaRptPDFCtrlVacacionesReducer } from \"./reportes/GeneraRptPDFCtrlVacacionesReducer\";\n\n//GENERAL\nimport { GetValoresConfigReducer } from \"./common/GetValoresConfigReducer\";\n\nimport { UpdateValorConfigReducer, } from './common/UpdateValorConfigReducer';\n\nimport { GetReportaExtranjerosReducer } from \"./systemAdmin/GetReportaExtranjerosReducer\";\n\nimport { GetTBTipoEmpleadoReducer, UpdateTBTipoEmpleadoReducer, GetFaltaTipoEmpleadoReducer, InsertFaltaTipoEmpleadoReducer, DeleteFaltaTipoEmpleadoReducer, UpdateFaltaTipoEmpleadoReducer, } from './systemAdmin/FaltaTipoEmpleadoReducer';\n\n//INCIDENCIAS CONFIG\nimport { GetIncidenciasConfigReducer, IniciaIncidenciaConfigEventoReducer, CancelaIncidenciaConfigEventoReducer, UpdateIncidenciasConfigReducer, } from './systemAdmin/IncidenciasConfigReducer';\n\nimport { GetIncidenciasRazonesReducer, } from './systemAdmin/IncidenciasRazonesReducer';\n\nimport { GetReporte1SolicitudVacacioneCamposIncidenciasReducer, } from './systemAdmin/GetReporte1SolicitudVacacioneCamposIncidenciasReducer';\n\n//TBFALTA\nimport { GetTBFaltaReducer, InsertTBFaltaReducer, DeleteTBFaltaReducer, UpdateTBFaltaReducer, } from './systemAdmin/TBFaltaReducer';\n\nimport { AfilIndividualizadoReducer, } from './empleado/AfilIndividualizadoReducer';\n\nimport { GetTBAutorizadorFijoReducer, InsertTBAutorizadorFijoReducer, DeleteTBAutorizadorFijoReducer, UpdateTBAutorizadorFijoReducer, } from './systemAdmin/TBAutorizadorFijoReducer';\n\n// CARGA ARCHIVOS PERSONALES \nimport DocumentTypeReducer from './empleado/DocumentTypeReducer';\nimport ConsultaArchivosPersonalesReducer from './empleado/ConsultaArchivosPersonalesReducer';\nimport GuardaArchivosPersonalesReducer from './empleado/GuardaArchivoPersonalReducer';\nimport DeletePersonalFilesReducer from './empleado/DeletePersonalFilesReducer.js';\nimport ConsultaArchivosPersonalesPorTrabajadorReducer from './empleado/ConsultaArchivosPersonalesPorTrabajadorReducer.js';\nimport IncidentsReportReducer from './systemAdmin/IncidentsReportReducer';\n\n// RESPUESTA A QUEJAS\n\nimport ComplaintResponseReducer from './systemAdmin/ComplaintResponseReducer';\n\n// CANCELACION INCIDENCIAS\n\nimport AuthorizeCancelIncidentsReducer from './jefe/AuthorizeCancelIncidentsReducer';\nimport RejectCancelIncidentsReducer from './jefe/RejectCancelIncidentsReducer';\n\n\n\nconst rootReducer = combineReducers({\n validateError: ValidateErrorReducer,\n login: LoginReducer,\n securityQuestion: SecurityQuestionReducer,\n changePassword: ChangePasswordReducer,\n recoveryPassword: RecoveryPasswordReducer,\n updatePassword: UpdatePasswordReducer,\n ImageUser: ImageUserReducer,\n dataUser: DataUserReducer,\n changeColor: ChangeColorReducer,\n showWelcome: ShowWelcomeReducer,\n movimientosImss: MovimientosImssReducer,\n changeMenu: ChangeMenuReducer,\n nomina: NominaReducer,\n detalleNomina: DetalleNominaReducer,\n //nominaInfo:NominaInfoReducer,\n detalleImss: DetalleImssReducer,\n movimientosInfonavit: MovimientosInfonavitReducer,\n termCond: TermCondReducer,\n privacyNotice: PrivacyNoticeReducer,\n messages: MessagesReducer,\n messagesDetail: MessagesDetailReducer,\n detalleInfonavit: DetalleInfonavitReducer,\n vacations: VacationsReducer,\n insertVacations: InsertVacationsReducer,\n uploadImage: UploadImageReducer,\n quejaMessage: QuejaMessageReducer,\n siBalance: SiBalanceReducer,\n urlEncuesta: UrlEncuestaReducer,\n urlPdf: UrlPdfReducer,\n urlXml: UrlXmlReducer,\n changeUserType: ChangeUserTypeReducer,\n validateEncuesta: ValidateEncuestaReducer,\n myMessagesRh: MyMessagesRhReducer,\n messageaRH: MessageaRHReducer,\n fcmToken: FcmTokenReducer,\n registerFcm: RegisterFcmReducer,\n uploadFcm: UploadFcmReducer,\n qr: QrReducer,\n\n //JEFE\n requestVacationsAll: RequestedVacationsReducer,\n authorizeVacations: AuthorizeVacationsReducer,\n rejectVacations: RejectVacationsReducer,\n seeVacations: SeeVacationsReducer,\n\n //RH USER\n allMessagesRh: AllMessagesRhReducer,\n readMessage: ReadMessageReducer,\n deleteMessage: DeleteMessageReducer,\n getTypesNomina: GetTypesNominaReducer,\n getNominaPeriods: GetNominaPeriodsReducer,\n getCalendarNomina: GetCalendarNominaReducer,\n getCentersNomina: GetCenterNominaReducer,\n processNomina: ProcessNominaReducer,\n periodosNominaRh: PeriodosNominaRhReducer,\n detalleNominaRh: DetalleNominaRhReducer,\n companies: CompaniesReducer,\n license: LicenseDataReducer,\n promotions: PromotionsReducer,\n buzonQuejas: BuzonQuejasReducer,\n buzonQuejasDetalle: BuzonQuejasDetalleReducer,\n deleteComplaint: DeleteComplaintReducer,\n calendar: CalendarReducer,\n\n //NUEVOS\n centersCatalog: CentersCatalogReducer,\n deptsCatalog: DeptsCatalogReducer,\n employerRecords: EmployerRecordsReducer,\n employerRecordsPermits: EmployerRecordsPermitsReducer,\n departmentPermits: DepartmentPermitsReducer,\n centerPermit: CenterPermitReducer,\n insertDeletePermitRP: InsertDeletePermitRPReducer,\n insertDeletePermitCenter: InsertDeletePermitCenterReducer,\n insertDeletePermitDepto: InsertDeletePermitDeptoReducer,\n changePasswordAdmin: ChangePasswordAdminReducer,\n companiesList: CompaniesListReducer,\n newUser: getNewUser,\n restartPassword: RestartPasswordReducer,\n searchEmployee: SearchEmployeeReducer,\n changePasswordEmployee: ChangePasswordEmployeeReducer,\n unlockEmployees: UnlockEmployeesReducer,\n accessMethod: AccessMethodReducer,\n jobCatalog: JobCatalogReducer,\n permitPositionUser: PermitPositionUserReducer,\n insertDeletePos: InsertDeletePosReducer,\n additionalFields: AdditionalFieldsReducer,\n deleteAddFields: DeleteAddFieldsReducer,\n nextInfoUser: NextInfoUserReducer,\n saveInfoExtra: SaveInfoExtraReducer,\n receiptGenerationEmployee: ReceiptGenerationEmployeeReducer,\n blockUser: BlockUserReducer,\n allUsers: AllUsersReducer,\n welcomeMessage: WelcomeMessageReducer,\n editWelcomeMessage: EditWelcomeMessageReducer,\n selectedAdditionalFields: SelectedAdditionalFieldsReducer,\n newCorporativeMessage: NewCorporativeMessageReducer,\n editCorporativeMessage: EditCorporativeMessageReducer,\n listCorporativeMessage: ListCorporativeMessageReducer,\n detailCorporativeMessage: DetailCorporativeMessageReducer,\n consultaRoles: ConsultaRolesReducer,\n employeeCatalog: EmployeeCatalogReducer,\n\n //EULEN\n controlVacations: ControlVacationsReducer,\n cancelVacationsEulen: CancelVacationsEulenReducer,\n authorizeCancelVacations: AuthorizeCancelVacationsReducer,\n rejectCancelVacations: RejectCancelVacationsReducer,\n\n vacationsMassive: VacationsMassiveReducer,\n authorizeVacationsMassive: AuthorizeVacationsMassiveReducer,\n rejectVacationsMassive: RejectVacationsMassiveReducer,\n vacationsRhVacation: VacationsRhVacationReducer,\n listCompaniesRpt: ListCompaniesRptReducer,\n filterCenter: FilterCenterReducer,\n filterBoos: FilterBoosReducer,\n reportRHVac: ReportRHVacReducer,\n adminMenu: AdminMenuReducer,\n adminMenuActivate: AdminMenuActivateReducer,\n vacationsMassiveDirect: VacationsMassiveDirectReducer,\n authorizeVacationsMassiveDirect: AuthorizeVacationsMassiveDirectReducer,\n rejectVacationsMassiveDirect: RejectVacationsMassiveDirectReducer,\n vacationsDirect: VacationsDirectReducer,\n reportRHVacDirect: ReportRHVacDirectReducer,\n\n //MERHAL\n skipWeekend: SkipWeekendReducer,\n catIncidents: CatIncidentsReducer,\n insertIncident: InsertIncidentReducer,\n authorizeIncident: AuthorizeIncidentReducer,\n rejectIncident: RejectIncidentReducer,\n validaFechas: ValidaFechasReducer,\n\n //PERDIEM\n getPerdiem: GetPerdiemReducer,\n createPerdiem: CreatePerdiemReducer,\n deletePerdiem: DeletePerdiemReducer,\n editPerdiem: EditPerdiemReducer,\n generatePerdiem: GeneratePerdiemReducer,\n signPerdiem: SignPerdiemReducer,\n downloadPerdiem: DownloadPerdiemReducer,\n idPerdiem: IdPerdiemReducer,\n deptosCenter: DeptosCenterReducer,\n jefesPerdiem: JefesPerdiemReducer,\n empleadosAll: EmpleadosAllReducer,\n empRepo: EmpRepoReducer,\n empleadosAlMando: EmpleadosAlMandoReducer,\n rejectChief: RejectChiefReducer,\n authorizeChief: AuthorizeChiefReducer,\n getPreview: GetPreviewReducer,\n authorizeReject: AuthorizeRejectReducer,\n empleadosPerdiem: EmpleadosPerdiemReducer,\n getPreviewCanceled: GetPreviewCanceledReducer,\n getPreviewAuthorized: GetPreviewAuthorizedReducer,\n getXlsPerdiem: GetXlsPerdiemReducer,\n reportConvert: ReportConvertReducer,\n authorizers: AuthorizersReducer,\n sendEmails: SendEmailsReducer,\n sendDataChief: SendDataChiefReducer,\n employeeMovNom: EmployeeMovNomReducer,\n concepts:ConceptsReducer,\n serviceCode: ServiceCodeReducer,\n\n\n employeeVacations: EmployeeVacationsReducer,\n commentRejectVacations: RejectIncidentReducer,\n vacationsExpiration: VacationsExpirationReducer,\n //consultaRoles: ConsultaRolesReducer,\n vacationCalendar: VacationCalendarReducer,\n incidenciasKrones: IncidenciasKronesReducer,\n empleadoJornada: EmpleadoJornadaReducer,\n\n varShowOptions: VarShowOptionsReducer,\n rptVacationsIncidents: GeneraRptVacacionIncidenciaReducer,\n \n //RIU\n urlReporteDocDeacargadosEmp: URLReporteDocDeacargadosEmpReducer,\n log_RegistraDescargaArchivo: Log_RegistraDescargaArchivoReducer,\n consultaVarExt: ConsultaVarExtReducer,\n consultaArchivos: ConsultaArchivosReducer,\n guardaArchivos: GuardaArchivoReducer,\n deleteFiles: DeleteFilesReducer,\n consultaVarFirma: ConsultaVarFirmaReducer,\n consultaFirma: ConsultaFirmaReducer,\n actualizaFirma: ActualizaFirmaReducer,\n incidentAlert: IncidentAlertReducer,\n\n //NOM035\n tipoEncuestas: getTipoEncuestasReducer, // GetTipoEncuestasReducer,\n empleadosGUIA1: getEmpleadosGUIA1Reducer, \n ubicacionesConteo: getUbicacionesConteoReducer, \n seleccionEmpUbi: getSeleccionEmpUbiReducer, \n enviarEncuestasGUIA1: setEnviarEncuestasGUIA1Reducer,\n enviarEncuestasGUIA2_3: setEnviarEncuestasGUIA2_3Reducer,\n\n //PEÑAFIEL\n ctrlVacionEmpleadoDatos: CtrlVacionEmpleadoDatosReducer,\n ctrlVacacionesEmpleadoV4: CtrlVacacionesEmpleadoV4Reducer,\n getDiasBloqueados: GetDiasBloqueadosReducer,\n recoverPwdByEmail: RecoverPwdByEmailReducer,\n\n //ASPEN-COMAU\n generaReporteCtrlVac1: generaReporteCtrlVac1Reducer,\n generaReporteCtrlVac2: generaReporteCtrlVac2Reducer,\n generaReporteCtrlVac3: generaReporteCtrlVac3Reducer,\n typeEmployeeCatalog: TypeEmployeeCatalogReducer,\n GetincidenciasAspen: GetincidenciasAspenReducer,\n\n //MARSH\n generaRptPDFCtrlVacaciones: generaRptPDFCtrlVacacionesReducer,\n\n //GENERAL\n getValoresConfig: GetValoresConfigReducer,\n updateValorConfig: UpdateValorConfigReducer, \n\n getReportaExtranjeros: GetReportaExtranjerosReducer,\n\n //FALTA TIPO EMPLEADO\n getTBTipoEmpleado: GetTBTipoEmpleadoReducer, \n updateTBTipoEmpleado: UpdateTBTipoEmpleadoReducer, \n getFaltaTipoEmpleado: GetFaltaTipoEmpleadoReducer, \n insertFaltaTipoEmpleado: InsertFaltaTipoEmpleadoReducer, \n deleteFaltaTipoEmpleado: DeleteFaltaTipoEmpleadoReducer, \n updateFaltaTipoEmpleado: UpdateFaltaTipoEmpleadoReducer, \n\n //INCIDENCIAS CONFIG\n getIncidenciasConfig: GetIncidenciasConfigReducer, \n iniciaIncidenciaConfigEvento: IniciaIncidenciaConfigEventoReducer, \n cancelaIncidenciaConfigEvento: CancelaIncidenciaConfigEventoReducer, \n updateIncidenciasConfig: UpdateIncidenciasConfigReducer, \n\n //INCIDENCIAS RAZONES\n getIncidenciasRazones: GetIncidenciasRazonesReducer, \n\n getReporte1SolicitudVacacioneCamposIncidencias: GetReporte1SolicitudVacacioneCamposIncidenciasReducer, \n\n //TBFALTA\n getTBFalta: GetTBFaltaReducer, \n insertTBFalta: InsertTBFaltaReducer, \n deleteTBFalta: DeleteTBFaltaReducer, \n updateTBFalta: UpdateTBFaltaReducer, \n\n afilIndividualizado: AfilIndividualizadoReducer, \n\n getTBAutorizadorFijo: GetTBAutorizadorFijoReducer,\n insertTBAutorizadorFijo: InsertTBAutorizadorFijoReducer,\n deleteTBAutorizadorFijo: DeleteTBAutorizadorFijoReducer,\n updateTBAutorizadorFijo: UpdateTBAutorizadorFijoReducer,\n\n getTBAutorizadorFijo: GetTBAutorizadorFijoReducer,\n insertTBAutorizadorFijo: InsertTBAutorizadorFijoReducer,\n deleteTBAutorizadorFijo: DeleteTBAutorizadorFijoReducer,\n updateTBAutorizadorFijo: UpdateTBAutorizadorFijoReducer,\n\n //CARGA ARCHIVOS PERSONALES \n documentType: DocumentTypeReducer,\n consultaArchivosPersonales: ConsultaArchivosPersonalesReducer,\n guardaArchivosPersonales: GuardaArchivosPersonalesReducer,\n deletePersonalFiles: DeletePersonalFilesReducer,\n consultaArchivosPersonalesPorTrabajador: ConsultaArchivosPersonalesPorTrabajadorReducer,\n incidentsReport: IncidentsReportReducer,\n\n actualizaUsuario: ActualizaUsuarioReducer, \n eliminaUsuario: EliminaUsuarioReducer, \n\n // RESPUESTA A QUEJAS\n complaintResponse: ComplaintResponseReducer,\n\n // CANCELACION INCIDENCIAS\n authorizeCancelIncidents: AuthorizeCancelIncidentsReducer,\n rejectCancelIncidents: RejectCancelIncidentsReducer,\n\n\n});\n\nconst rootReducerBridge = (state, action) => {\n if (action.type === RESET_STORE) {\n state = undefined;\n }\n return rootReducer(state, action);\n};\n\nexport default rootReducerBridge;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React, { Component, useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { changeValidateError } from '../../api/actions/common/ValidateErrorsAction'\nimport { resetStore } from '../../api/actions/common/ResetAllStoreAction';\nimport swal from '@sweetalert/with-react';\n// import logo from '../../utils/images/logoSic.png';\n\nimport { connect } from \"react-redux\";\nimport { alert } from '../../utils/common/alert';\nimport { getItemExp, setItemExp, clearItemsExp } from \"../../utils/common/expiredSession\";\n\nconst ValidateErrorService = props => {\n\n const [validateErrorData, setValidateErrorData] = useState({});\n\n useEffect(() => {\n const errorData = props.validateErrorData;\n console.log('VALIDATOR', validateErrorData)\n if (errorData && 'error' in errorData && errorData.haveError) {\n setValidateErrorData(errorData);\n }\n \n _renderAlert();\n });\n\n const _resetApp = () => {\n //alert('Se cerrará la sesión');\n props.history.push(`${process.env.PUBLIC_URL}/login`)\n }\n\n const _renderAlert = () => {\n let skipReset = false;\n if (validateErrorData && 'haveError' in validateErrorData) {\n if ( localStorage.getItem(\"REACT_APP_IS_LOGIN_EXPIRATION\") == '1' && validateErrorData['reset'] === true) {\n skipReset = true;\n setItemExp('logInExpired', true);\n }\n else {\n alert(validateErrorData.error);\n }\n \n props.changeValidateError({});\n setValidateErrorData({});\n if (!skipReset && validateErrorData && 'reset' in validateErrorData && validateErrorData.reset === true) {\n props.resetStore();\n _resetApp();\n }\n }\n }\n\n const Component = props.component;\n\n return (\n <>\n <Component />\n </>\n )\n}\n\nconst mapStateToProps = (state) => {\n return {\n store: state,\n validateErrorData: state.validateError.validateErrorData,\n }\n};\n\nconst mapDispatchToProps = {\n changeValidateError,\n resetStore\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ValidateErrorService));\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App.js';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport thunk from 'redux-thunk';\nimport { createLogger } from 'redux-logger';\nimport reducers from './api/reducers';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter } from 'react-router-dom';\nimport { ToastProvider } from 'react-toast-notifications';\nimport ValidateErrorService from './components/shared/ValidateErrorService';\n\nlet PRODUCTION = process.env.NODE_ENV === 'production';\n\nif (PRODUCTION)\n console.log = () => { };\n\nlet middleware = !PRODUCTION\n ? applyMiddleware(thunk, createLogger())\n : applyMiddleware(thunk);\n\nconst store = createStore(reducers, middleware);\n\n// const clearCacheData = () => {\n// caches.keys().then((names) => {\n// names.forEach((name) => {\n// caches.delete(name);\n// });\n// });\n// };\n\n// clearCacheData();\n\nReactDOM.render(\n <Provider store={store}>\n <BrowserRouter>\n <ToastProvider>\n <ValidateErrorService component={App} />\n </ToastProvider>\n </BrowserRouter>\n </Provider>,\n document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/xlsx.bfb4012a.png\";","module.exports = __webpack_public_path__ + \"static/media/pdf.b00eefe5.png\";","module.exports = __webpack_public_path__ + \"static/media/xml.b313858d.png\";"],"sourceRoot":""}