pajuan commited on
Commit
3a5cf04
1 Parent(s): 590b2b8

Upload app.R

Browse files
Files changed (1) hide show
  1. app.R +745 -745
app.R CHANGED
@@ -1,18 +1,21 @@
 
 
 
1
  #
2
  # 0. routing
3
  # --------
4
 
5
  #
6
- PROYECT_HOME=dirname(rstudioapi::getActiveDocumentContext()$path)
7
- setwd(PROYECT_HOME)
8
- list.files(getwd())
9
  #
10
- absolute_path=function(
11
- APP_HOME
12
- ){
13
- sprintf("%s/%s", PROYECT_HOME,APP_HOME)
14
- }
15
- absolute_path("datasource inspecciones")
16
  #
17
 
18
  #setwd(absolute_path("assets"))
@@ -23,15 +26,14 @@ absolute_path("datasource inspecciones")
23
  # --------
24
 
25
  #
26
- library(shiny)
27
- options(shiny.maxRequestSize=30*1024^2)
28
 
29
  #
30
  # 1.1 custom-dependencias
31
  # --------
32
 
33
- CODE_HOME=absolute_path("code")
34
- setwd(CODE_HOME)
35
  source("dataframe extention.R")
36
  source("Compute_YEI.R")
37
 
@@ -41,9 +43,9 @@ source("Compute_YEI.R")
41
 
42
  #
43
  talk_states=list(
44
- "unauthenticated"="No has ingresado credenciales válidas aún",
45
- "authenticated"="Estás autenticado y los reportes están listos para exportar"
46
- )
47
  #
48
  CURRENT_STATE="unauthenticated"
49
  EXPORT_STATE=FALSE
@@ -53,19 +55,19 @@ credentials.authenticate=function(
53
  input_pasword,
54
  valid_credentials=data.frame(user="stockpesca", pasword="Temporal1843@!")
55
  ){
56
- #
57
- # cambia el estado de la aplicaci?n seg?n la validez de las credenciales
58
- #
59
-
60
- valid=
61
  valid_credentials %>% dplyr::filter(user==input_user & pasword==input_pasword)
62
- if (nrow(valid)>0)
63
- { .GlobalEnv[["CURRENT_STATE"]] ="authenticated"}
64
- else {
65
- .GlobalEnv[["CURRENT_STATE"]] ="unauthenticated"
66
- }
67
-
68
- print(.GlobalEnv[["CURRENT_STATE"]])
69
  }
70
 
71
  #
@@ -74,18 +76,18 @@ credentials.authenticate=function(
74
 
75
  #
76
  empty_table=data.frame(
77
- data=c("No tiene permisos para ver esta tabla")
78
  )
79
  #
80
- library(dplyr)
81
- datasource.raw_inspecciones=function(
82
-
83
- ){
84
- setwd(absolute_path("datasource inspecciones"))
85
- readxl::read_excel("TABLA MAESTRA.xlsx") %>%
86
- #head() %>%
87
- as.data.frame()
88
- }
89
  #datasource.raw_inspecciones() %>% View()
90
  inspecciones.cache=NULL
91
  #inspecciones.cache=datasource.raw_inspecciones()
@@ -95,14 +97,14 @@ inspecciones.cache=NULL
95
  query_data=function(
96
  file_path
97
  ){
98
- if(.GlobalEnv[["CURRENT_STATE"]]=="unauthenticated"){
99
- empty_table
100
- } else {
101
- # datasource.raw_inspecciones()
102
- # #
103
- # user_input_pwd="Temporal1843@!"
104
- # db_file_name="inspecciones.accdb"
105
- #
106
  # try({
107
  # #
108
  # setwd(absolute_path("datasource inspecciones"))
@@ -123,18 +125,18 @@ query_data=function(
123
  # dbFetch(query)
124
  # }) %>% as.data.frame()
125
  #
126
-
127
- tryCatch({
128
- data <- readxl::read_excel(file_path)
129
- print("Archivo leído correctamente")
130
- data
131
- }, error = function(e) {
132
- print("Error al leer el archivo:")
133
- print(e$message)
134
- data.frame(Mensaje = "Error al leer el archivo Excel")
135
- })
136
- }
137
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
139
 
140
  #
@@ -146,200 +148,200 @@ query_data=function(
146
  inspecciones.activas=function(
147
  inspecciones
148
  ){
149
- inspecciones %>%
150
- #
151
- dplyr::mutate(
152
- activa=TRUE
153
- ) %>%
154
- dplyr::filter(
155
- activa
156
- )
157
  }
158
  #
159
  inspecciones.ensamblar_variables_de_reporte=function(
160
  inspecciones
161
  ){
162
- inspecciones %>%
163
- dplyr::mutate(
164
- ano=ANO_ZARPE,
165
- mes=MES_ZARPE,
166
- arte=ARTE,
167
- sitio=SITIO,
168
- fecha=paste(ANO_ZARPE, MES_ZARPE, DIA_ZARPE, sep="+" ),
169
- horas_faena=HORA_FAENA
170
- )
171
  }
172
  #
173
  tabla_de_reporte.formatear_ciclo_anual_en_columnas=
174
- function(
175
- Tabla_de_reporte
176
- ){
177
- Tabla_de_reporte %>%
178
- tidyr::pivot_wider(
179
- names_from = mes,
180
- names_prefix = "month_",
181
- values_from = dplyr::last(names(.))
182
- ) %>%
183
- Dataframe.order(
184
- c( grep(names(.), pattern="^[^m]", value=TRUE),
185
- paste("month_", 1:12, sep=""))
186
- )
187
- }
188
  #
189
  table_logic_per_index=list(
190
- "1.1"=function(
191
- inspecciones=inspecciones.cache
192
- ){
193
- inspecciones %>%
194
- inspecciones.activas() %>%
195
- inspecciones.ensamblar_variables_de_reporte() %>%
196
-
197
- split(paste(.$ano, .$mes, .$arte)) %>%
198
- lapply(function(sub_df){
199
- data.frame(
200
- ano=dplyr::first(sub_df$ano),
201
- mes=dplyr::first(sub_df$mes),
202
- arte=dplyr::first(sub_df$arte),
203
- reportada="(conteo) faenas activas",
204
- faenas_activas=sub_df %>% nrow()
205
- )
206
- }) %>%
207
- bind_rows() %>%
208
-
209
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
210
- },
211
- "1.2"=function(
212
- inspecciones=inspecciones.cache
213
- ){
214
- inspecciones %>%
215
- inspecciones.activas() %>%
216
- inspecciones.ensamblar_variables_de_reporte() %>%
217
-
218
- split(paste(.$ano, .$mes, .$arte, .$sitio)) %>%
219
- lapply(function(sub_df){
220
- data.frame(
221
- ano=dplyr::first(sub_df$ano),
222
- mes=dplyr::first(sub_df$mes),
223
- arte=dplyr::first(sub_df$arte),
224
- sitio=dplyr::first(sub_df$sitio),
225
- reportada="(conteo) faenas activas",
226
- faenas_activas=sub_df %>% nrow()
227
- )
228
- }) %>%
229
- bind_rows() %>%
230
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
231
- },
232
- "1.3"=function(
233
  inspecciones=inspecciones.cache
234
- ){
235
- inspecciones %>%
236
- inspecciones.activas() %>%
237
- inspecciones.ensamblar_variables_de_reporte() %>%
238
-
239
- split(paste(.$ano, .$mes, .$arte, .$AREA, .$SUBAREA)) %>%
240
- lapply(function(sub_df){
241
- data.frame(
242
- ano=dplyr::first(sub_df$ano),
243
- mes=dplyr::first(sub_df$mes),
244
- arte=dplyr::first(sub_df$arte),
245
- area=dplyr::first(sub_df$AREA),
246
- subarea=dplyr::first(sub_df$SUBAREA),
247
- reportada="(conteo) faenas activas",
248
- faenas_activas=nrow(sub_df)
249
- )
250
- }) %>%
251
- bind_rows() %>%
252
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
253
- },
254
- "1.4"=function(
255
- inspecciones=inspecciones.cache
256
- ){
257
- inspecciones %>%
258
- inspecciones.activas() %>%
259
- inspecciones.ensamblar_variables_de_reporte() %>%
260
-
261
- split(paste(.$ano, .$mes, .$arte)) %>%
262
- lapply(function(sub_df){
263
- data.frame(
264
- ano=dplyr::first(sub_df$ano),
265
- mes=dplyr::first(sub_df$mes),
266
- arte=dplyr::first(sub_df$arte),
267
- reportada="dias de actividad",
268
- dias_actividad=length(unique(sub_df$fecha))
269
- )
270
- }) %>%
271
- bind_rows() %>%
272
-
273
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
274
-
275
- },
276
- "1.5"=function(
277
- inspecciones=inspecciones.cache
278
- ){
279
- inspecciones %>%
280
- inspecciones.activas() %>%
281
- inspecciones.ensamblar_variables_de_reporte() %>%
282
-
283
- split(paste(.$ano, .$mes, .$arte, .$sitio)) %>%
284
- lapply(function(sub_df){
285
- data.frame(
286
- ano=dplyr::first(sub_df$ano),
287
- mes=dplyr::first(sub_df$mes),
288
- arte=dplyr::first(sub_df$arte),
289
- sitio=dplyr::first(sub_df$sitio),
290
- reportada="dias de actividad",
291
- dias_actividad=length(unique(sub_df$fecha))
292
- )
293
- }) %>%
294
- bind_rows() %>%
295
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
296
- },
297
- "1.6"=function(
298
- inspecciones=inspecciones.cache
299
- ){
300
- inspecciones %>%
301
- inspecciones.activas() %>%
302
- inspecciones.ensamblar_variables_de_reporte() %>%
303
-
304
- split(paste(.$ano, .$mes, .$arte)) %>%
305
- lapply(function(sub_df){
306
- data.frame(
307
- ano=dplyr::first(sub_df$ano),
308
- mes=dplyr::first(sub_df$mes),
309
- arte=dplyr::first(sub_df$arte),
310
- reportada="(promedio) de las horas de faena x (1.3)",
311
- horas_de_faena=round(mean(sub_df$horas_faena),3)*(1.3)
312
- )
313
- }) %>%
314
- bind_rows() %>%
315
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
316
- },
317
- "1.7"=function(
318
- inspecciones=inspecciones.cache
319
- ){
320
- inspecciones %>%
321
- inspecciones.activas() %>%
322
- inspecciones.ensamblar_variables_de_reporte() %>%
323
-
324
- split(paste(.$ano, .$mes, .$arte, .$AREA, .$SUBAREA )) %>%
325
- lapply(function(sub_df){
326
- data.frame(
327
- ano=dplyr::first(sub_df$ano),
328
- mes=dplyr::first(sub_df$mes),
329
- arte=dplyr::first(sub_df$arte),
330
- area=dplyr::first(sub_df$AREA),
331
- subarea=dplyr::first(sub_df$SUBAREA),
332
- reportada="(promedio) de las horas de faena x (1.3)",
333
- horas_de_faena=round(mean(sub_df$horas_faena),3)*(1.3)
334
- )
335
- }) %>%
336
- bind_rows() %>%
337
- tabla_de_reporte.formatear_ciclo_anual_en_columnas()
338
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  )
340
 
341
  #
342
- setwd(CODE_HOME)
343
  source("Compute_YEI.R")
344
  #
345
  table_logic_per_index[["2.1"]]=
@@ -394,7 +396,7 @@ table_logic_per_index[["2.3"]]=
394
 
395
  "arte",
396
  "sitio"
397
-
398
 
399
  )
400
  ) %>%
@@ -435,7 +437,7 @@ table_logic_per_index[["2.5"]]=
435
  GROUP_BY=c(
436
  "ano",
437
  "mes",
438
-
439
 
440
  "arte",
441
  "SUBGRUPO",
@@ -496,41 +498,41 @@ table_logic_per_index[["2.7"]]=
496
  #
497
 
498
  #
499
- setwd(CODE_HOME)
500
  source("Compute_YEI.R")
501
  #
502
  inspecciones.ensamblar_captura_diaria=
503
- function(
504
- inspecciones=inspecciones.cache
505
- ){
506
- inspecciones %>%
507
-
508
- inspecciones.activas() %>%
509
- inspecciones.ensamblar_variables_de_reporte() %>%
510
-
511
- dplyr::transmute(
512
- captura_total=CT_KG,
513
-
514
- dia_zarpe=paste(ANO_ZARPE, MES_ZARPE , DIA_ZARPE, sep="/" ),
515
- dia_arribo=paste(ANO_ARRIBO, MES_ARRIBO, DIA_ARRIBO, sep="/" ),
516
 
517
- num_pescadores=PESCADORES,
 
518
 
519
- arte_pesca=ARTE,
520
- grupo=GRUPO
521
- ) %>%
522
- dplyr::mutate(
523
- dia_zarpe=as.Date(dia_zarpe),
524
- dia_arribo=as.Date(dia_arribo)
525
- ) %>%
526
- dplyr::mutate(
527
- num_dias=as.numeric((dia_arribo-dia_zarpe)+1)
528
- ) %>%
529
- dplyr::mutate(
530
- captura_diaria=round( (captura_total/num_dias),4),
531
- captura_diaria_por_pescador=round( ( (captura_total/num_dias)/num_pescadores ),4),
532
- )
533
- }
 
 
 
 
 
 
 
 
534
  #
535
  table_logic_per_index[["3.1"]]=
536
  function(
@@ -605,7 +607,7 @@ table_logic_per_index[["3.3"]]=
605
  fetch_table_per_index=function(
606
  index=1.1
607
  ){
608
- table_logic_per_index[[index]]()
609
  }
610
  #
611
  table.preview=function(
@@ -613,10 +615,10 @@ table.preview=function(
613
  max_rows=15,
614
  max_cols=8
615
  ){
616
- tryCatch({
617
  table[1:min(max_rows, nrow(table) ), 1:min(max_cols, ncol(nrow(table)))]
618
- },
619
- error = function(e){empty_table})
620
  }
621
 
622
  # 5. exportar a un reporte ?nico
@@ -625,180 +627,178 @@ table.preview=function(
625
  # 6. interfaz del usuario exportar a un reporte ?nico
626
  #
627
 
628
- setwd(PROYECT_HOME)
629
  #
630
  library(shiny)
631
  ui = fluidPage(
632
-
633
-
634
- column(3,
635
- fluidRow(
636
- wellPanel(
637
- shiny::HTML("<p> Bienvenido a la <strong> aplicación pesquera </strong>. Escoja una acción </p>")
638
- )),
639
-
640
- fluidRow(
641
- wellPanel(
642
- shiny::tags$strong("Credenciales"),
643
-
644
- shiny::textInput("usuario",
645
- label=NULL,
646
- placeholder = "inserte usuario",
647
- width='100%'),
648
- shiny::passwordInput("contrasena",
649
- label=NULL,
650
- placeholder = "inserte contrasena",
651
- width='100%')
652
- # shiny::actionButton("enviar_credenciales",
653
- # "Enviar credenciales",
654
- # width='100%')
655
- )),
656
-
657
- fluidRow(
658
- wellPanel(
659
-
660
- fileInput('main_file_input', 'Seleccione un archivo desde su computador',
661
- accept = c(".xlsx")
662
- ))),
663
-
664
- fluidRow(
665
- wellPanel(
666
-
667
- shiny::tags$strong("Reportes"),
668
- shiny::tags$br(),
669
- shiny::actionButton("exportar_reportes",
670
- "Exportar reportes",
671
- width='100%'),
672
- textOutput("export_result")
673
- ),
674
- plotOutput(
675
- "logo",
676
- width = "100%",
677
- height = "200px")
678
- ),
679
-
680
- ), # column,
681
-
682
- column(12-4,
683
-
684
- offset = 1,
685
-
686
- fluidRow(wellPanel(
687
- shiny::tags$strong("Mensajes"),
688
- textOutput("messages"))),
689
-
690
-
691
- shiny::tags$strong("Pre-visualización de reportes"),
692
-
693
- tabsetPanel(
694
-
695
- tabPanel("0. Tabla maestra",
696
-
697
- div(shiny::tableOutput("0_tabla_maestra"),
698
- style = "font-size:50%")),
699
-
700
- tabPanel("1. Esfuerzo",
701
-
702
- tabsetPanel(
703
-
704
- tabPanel(
705
- "1.1",
706
- div(shiny::tableOutput("1.1")),
707
- style = "font-size:50%"),
708
-
709
- tabPanel(
710
- "1.2",
711
- div(shiny::tableOutput("1.2")),
712
- style = "font-size:50%"),
713
-
714
- tabPanel(
715
- "1.3",
716
- div(shiny::tableOutput("1.3")),
717
- style = "font-size:50%"
718
- ),
719
-
720
- tabPanel(
721
- "1.4",
722
- div(shiny::tableOutput("1.4")),
723
- style = "font-size:50%"),
724
-
725
- tabPanel(
726
- "1.5",
727
- div(shiny::tableOutput("1.5")),
728
- style = "font-size:50%"),
729
-
730
- tabPanel(
731
- "1.6",
732
- div(shiny::tableOutput("1.6")),
733
- style = "font-size:50%"),
734
-
735
- tabPanel(
736
- "1.7",
737
- div(shiny::tableOutput("1.7")),
738
- style = "font-size:50%")
739
- )),
740
 
741
- tabPanel("2. Captura total",
742
-
743
- tabsetPanel(
744
-
745
- tabPanel(
746
- "2.1",
747
- div(shiny::tableOutput("2.1")),
748
- style = "font-size:50%"),
749
-
750
- tabPanel(
751
- "2.2",
752
- div(shiny::tableOutput("2.2")),
753
- style = "font-size:50%"),
754
-
755
- tabPanel(
756
- "2.3",
757
- div(shiny::tableOutput("2.3")),
758
- style = "font-size:50%"),
759
-
760
- tabPanel(
761
- "2.4",
762
- div(shiny::tableOutput("2.4")),
763
- style = "font-size:50%"),
764
-
765
- tabPanel(
766
- "2.5",
767
- div(shiny::tableOutput("2.5")),
768
- style = "font-size:50%"),
769
-
770
- tabPanel(
771
- "2.6",
772
- div(shiny::tableOutput("2.6")),
773
- style = "font-size:50%"),
774
-
775
- tabPanel(
776
- "2.7",
777
- div(shiny::tableOutput("2.7")),
778
- style = "font-size:50%")
779
- )),
780
-
781
- tabPanel("3. CPUE",
782
-
783
- tabsetPanel(
784
-
785
- tabPanel(
786
- "3.1",
787
- div(shiny::tableOutput("3.1")),
788
- style = "font-size:50%"),
789
-
790
- tabPanel(
791
- "3.2",
792
- div(shiny::tableOutput("3.2")),
793
- style = "font-size:50%"),
794
-
795
- tabPanel(
796
- "3.3",
797
- div(shiny::tableOutput("3.3")),
798
- style = "font-size:50%")))
799
-
800
- # )),
801
- )))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
802
 
803
 
804
  #
@@ -832,7 +832,7 @@ server = function(input, output) {
832
  actualizar_mensaje_exportado=reactive({
833
  exportado
834
  })
835
-
836
  #
837
  output$"0_tabla_maestra" = renderTable({
838
 
@@ -890,309 +890,309 @@ server = function(input, output) {
890
  width = '100%',
891
  spacing = "s"
892
  )
893
- output$"1.2" = renderTable({
894
- if (authenticated()) {
895
- print(paste("User is authenticated, showing results..."))
896
- data <- fetch_table_per_index("1.2")
897
- data
898
- } else {
899
- print(paste("User is not authenticated, returning error message..."))
900
- "No tiene permisos para ver esta tabla"
901
- }
902
- },
903
- striped = TRUE,
904
- hover=TRUE,
905
- bordered=TRUE,
906
- width='100%',
907
- spacing="s"
908
- )
909
-
910
- output$"1.3" = renderTable({
911
- if (authenticated()) {
912
- print(paste("User is authenticated, showing results..."))
913
- data <- fetch_table_per_index("1.3")
914
- data
915
- } else {
916
- print(paste("User is not authenticated, returning error message..."))
917
- "No tiene permisos para ver esta tabla"
918
- }
919
- },
920
- striped = TRUE,
921
- hover=TRUE,
922
- bordered=TRUE,
923
- width='100%',
924
- spacing="s"
925
- )
926
-
927
- output$"1.4" = renderTable({
928
- if (authenticated()) {
929
- print(paste("User is authenticated, showing results..."))
930
- data <- fetch_table_per_index("1.4")
931
- data
932
- } else {
933
- print(paste("User is not authenticated, returning error message..."))
934
- "No tiene permisos para ver esta tabla"
935
- }
936
- },
937
- striped = TRUE,
938
- hover=TRUE,
939
- bordered=TRUE,
940
- width='100%',
941
- spacing="s"
942
- )
943
- output$"1.5" = renderTable({
944
- if (authenticated()) {
945
- print(paste("User is authenticated, showing results..."))
946
- data <- fetch_table_per_index("1.5")
947
- data
948
- } else {
949
- print(paste("User is not authenticated, returning error message..."))
950
- "No tiene permisos para ver esta tabla"
951
- }
952
- },
953
- striped = TRUE,
954
- hover=TRUE,
955
- bordered=TRUE,
956
- width='100%',
957
- spacing="s"
958
- )
959
- output$"1.6" = renderTable({
960
- if (authenticated()) {
961
- print(paste("User is authenticated, showing results..."))
962
- data <- fetch_table_per_index("1.6")
963
- data
964
- } else {
965
- print(paste("User is not authenticated, returning error message..."))
966
- "No tiene permisos para ver esta tabla"
967
- }
968
- },
969
- striped = TRUE,
970
- hover=TRUE,
971
- bordered=TRUE,
972
- width='100%',
973
- spacing="s"
974
- )
975
- output$"1.7" = renderTable({
976
- if (authenticated()) {
977
- print(paste("User is authenticated, showing results..."))
978
- data <- fetch_table_per_index("1.7")
979
- data
980
- } else {
981
- print(paste("User is not authenticated, returning error message..."))
982
- "No tiene permisos para ver esta tabla"
983
- }
984
- },
985
- striped = TRUE,
986
- hover=TRUE,
987
- bordered=TRUE,
988
- width='100%',
989
- spacing="s"
990
- )
991
- output$"2.1" = renderTable({
992
- if (authenticated()) {
993
- print(paste("User is authenticated, showing results..."))
994
- data <- fetch_table_per_index("2.1")
995
- data
996
- } else {
997
- print(paste("User is not authenticated, returning error message..."))
998
- "No tiene permisos para ver esta tabla"
999
- }
1000
- },
1001
- striped = TRUE,
1002
- hover=TRUE,
1003
- bordered=TRUE,
1004
- width='100%',
1005
- spacing="s"
1006
- )
1007
- output$"2.2" = renderTable({
1008
- if (authenticated()) {
1009
- print(paste("User is authenticated, showing results..."))
1010
- data <- fetch_table_per_index("2.2")
1011
- data
1012
- } else {
1013
- print(paste("User is not authenticated, returning error message..."))
1014
- "No tiene permisos para ver esta tabla"
1015
- }
1016
- },
1017
- striped = TRUE,
1018
- hover=TRUE,
1019
- bordered=TRUE,
1020
- width='100%',
1021
- spacing="s"
1022
- )
1023
- output$"2.3" = renderTable({
1024
- if (authenticated()) {
1025
- print(paste("User is authenticated, showing results..."))
1026
- data <- fetch_table_per_index("2.3")
1027
- data
1028
- } else {
1029
- print(paste("User is not authenticated, returning error message..."))
1030
- "No tiene permisos para ver esta tabla"
1031
- }
1032
- },
1033
- striped = TRUE,
1034
- hover=TRUE,
1035
- bordered=TRUE,
1036
- width='100%',
1037
- spacing="s"
1038
- )
1039
- output$"2.4" = renderTable({
1040
- if (authenticated()) {
1041
- print(paste("User is authenticated, showing results..."))
1042
- data <- fetch_table_per_index("2.4")
1043
- data
1044
- } else {
1045
- print(paste("User is not authenticated, returning error message..."))
1046
- "No tiene permisos para ver esta tabla"
1047
- }
1048
- },
1049
- striped = TRUE,
1050
- hover=TRUE,
1051
- bordered=TRUE,
1052
- width='100%',
1053
- spacing="s"
1054
- )
1055
- output$"2.5" = renderTable({
1056
- if (authenticated()) {
1057
- print(paste("User is authenticated, showing results..."))
1058
- data <- fetch_table_per_index("2.5")
1059
- data
1060
- } else {
1061
- print(paste("User is not authenticated, returning error message..."))
1062
- "No tiene permisos para ver esta tabla"
1063
- }
1064
- },
1065
- striped = TRUE,
1066
- hover=TRUE,
1067
- bordered=TRUE,
1068
- width='100%',
1069
- spacing="s"
1070
- )
1071
- output$"2.6" = renderTable({
1072
- if (authenticated()) {
1073
- print(paste("User is authenticated, showing results..."))
1074
- data <- fetch_table_per_index("2.6")
1075
- data
1076
- } else {
1077
- print(paste("User is not authenticated, returning error message..."))
1078
- "No tiene permisos para ver esta tabla"
1079
- }
1080
- },
1081
- striped = TRUE,
1082
- hover=TRUE,
1083
- bordered=TRUE,
1084
- width='100%',
1085
- spacing="s"
1086
- )
1087
- output$"2.7" = renderTable({
1088
- if (authenticated()) {
1089
- print(paste("User is authenticated, showing results..."))
1090
- data <- fetch_table_per_index("2.7")
1091
- data
1092
- } else {
1093
- print(paste("User is not authenticated, returning error message..."))
1094
- "No tiene permisos para ver esta tabla"
1095
- }
1096
- },
1097
- striped = TRUE,
1098
- hover=TRUE,
1099
- bordered=TRUE,
1100
- width='100%',
1101
- spacing="s"
1102
- )
1103
-
1104
- output$"3.1" = renderTable({
1105
- if (authenticated()) {
1106
- print(paste("User is authenticated, showing results..."))
1107
- data <- fetch_table_per_index("3.1")
1108
- data
1109
- } else {
1110
- print(paste("User is not authenticated, returning error message..."))
1111
- "No tiene permisos para ver esta tabla"
1112
- }
1113
- },
1114
- striped = TRUE,
1115
- hover=TRUE,
1116
- bordered=TRUE,
1117
- width='100%',
1118
- spacing="s"
1119
- )
1120
- output$"3.2" = renderTable({
1121
- if (authenticated()) {
1122
- print(paste("User is authenticated, showing results..."))
1123
- data <- fetch_table_per_index("3.2")
1124
- data
1125
- } else {
1126
- print(paste("User is not authenticated, returning error message..."))
1127
- "No tiene permisos para ver esta tabla"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1128
  }
1129
- },
1130
- striped = TRUE,
1131
- hover=TRUE,
1132
- bordered=TRUE,
1133
- width='100%',
1134
- spacing="s"
1135
- )
1136
- output$"3.3" = renderTable({
1137
- if (authenticated()) {
1138
- print(paste("User is authenticated, showing results..."))
1139
- data <- fetch_table_per_index("3.3")
1140
- data
1141
- } else {
1142
- print(paste("User is not authenticated, returning error message..."))
1143
- "No tiene permisos para ver esta tabla"
 
 
 
1144
  }
1145
- },
1146
- striped = TRUE,
1147
- hover=TRUE,
1148
- bordered=TRUE,
1149
- width='100%',
1150
- spacing="s"
1151
- )
1152
-
1153
- output$"export_result"=renderText({
1154
- actualizar_mensaje_exportado()
1155
- ifelse(exportado$se_exporto==TRUE, "Felicidades! El reporte fue exportado", "Aún no has exportado el reporte")
1156
- })
1157
-
1158
- observeEvent(input$exportar_reportes,{
1159
- if (.GlobalEnv[["CURRENT_STATE"]] == "authenticated") {
1160
- # Ensure the 'reportes' directory exists
1161
- setwd(PROYECT_HOME)
1162
- if (!dir.exists("reportes")) {
1163
- dir.create("reportes")
1164
- }
1165
- setwd("reportes")
1166
-
1167
- # Create a new workbook
1168
- wb <- openxlsx::createWorkbook()
1169
-
1170
- # Generate and add each report to a separate sheet
1171
- report_indices <- c("1.1", "1.2","1.3", "1.4", "1.5", "1.6", "1.7",
1172
- "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7",
1173
- "3.1", "3.2","3.3")
1174
-
1175
- for (index in report_indices) {
1176
- tryCatch({
1177
- report_data <- fetch_table_per_index(index)
1178
- openxlsx::addWorksheet(wb, sheetName = paste("Reporte", index))
1179
- openxlsx::writeData(wb, sheet = paste("Reporte", index), x = report_data)
1180
- }, error = function(e) {
1181
- print(paste("Error generating report", index, ":", e$message))
1182
- })
1183
- }
1184
-
1185
- # Save the workbook
1186
- openxlsx::saveWorkbook(wb, "exporte_reportes.xlsx", overwrite = TRUE)
1187
-
1188
- .GlobalEnv[["EXPORT_STATE"]] <- TRUE
1189
- exportado$se_exporto <- TRUE
1190
-
1191
- # Optional: Show a message or log the successful export
1192
- print("Reports exported successfully!")
1193
- }
1194
- })
1195
-
1196
  }
1197
 
1198
  # Run the application
 
1
+ library(magrittr)
2
+ library(shiny)
3
+
4
  #
5
  # 0. routing
6
  # --------
7
 
8
  #
9
+ #PROYECT_HOME=dirname(rstudioapi::getActiveDocumentContext()$path)
10
+ #setwd(PROYECT_HOME)
11
+ #list.files(getwd())
12
  #
13
+ #absolute_path=function(
14
+ # APP_HOME
15
+ #){
16
+ # sprintf("%s/%s", PROYECT_HOME,APP_HOME)
17
+ #}
18
+ #absolute_path("datasource inspecciones")
19
  #
20
 
21
  #setwd(absolute_path("assets"))
 
26
  # --------
27
 
28
  #
29
+ #options(shiny.maxRequestSize=30*1024^2)
 
30
 
31
  #
32
  # 1.1 custom-dependencias
33
  # --------
34
 
35
+ #CODE_HOME=absolute_path("code")
36
+ #setwd(CODE_HOME)
37
  source("dataframe extention.R")
38
  source("Compute_YEI.R")
39
 
 
43
 
44
  #
45
  talk_states=list(
46
+ "unauthenticated"="No has ingresado credenciales válidas aún",
47
+ "authenticated"="Estás autenticado y los reportes están listos para exportar"
48
+ )
49
  #
50
  CURRENT_STATE="unauthenticated"
51
  EXPORT_STATE=FALSE
 
55
  input_pasword,
56
  valid_credentials=data.frame(user="stockpesca", pasword="Temporal1843@!")
57
  ){
58
+ #
59
+ # cambia el estado de la aplicaci?n seg?n la validez de las credenciales
60
+ #
61
+
62
+ valid=
63
  valid_credentials %>% dplyr::filter(user==input_user & pasword==input_pasword)
64
+ if (nrow(valid)>0)
65
+ { .GlobalEnv[["CURRENT_STATE"]] ="authenticated"}
66
+ else {
67
+ .GlobalEnv[["CURRENT_STATE"]] ="unauthenticated"
68
+ }
69
+
70
+ print(.GlobalEnv[["CURRENT_STATE"]])
71
  }
72
 
73
  #
 
76
 
77
  #
78
  empty_table=data.frame(
79
+ data=c("No tiene permisos para ver esta tabla")
80
  )
81
  #
82
+ #library(dplyr)
83
+ # datasource.raw_inspecciones=function(
84
+ #
85
+ #){
86
+ # setwd(absolute_path("datasource inspecciones"))
87
+ # readxl::read_excel("TABLA MAESTRA.xlsx") %>%
88
+ #head() %>%
89
+ # as.data.frame()
90
+ #}
91
  #datasource.raw_inspecciones() %>% View()
92
  inspecciones.cache=NULL
93
  #inspecciones.cache=datasource.raw_inspecciones()
 
97
  query_data=function(
98
  file_path
99
  ){
100
+ if(.GlobalEnv[["CURRENT_STATE"]]=="unauthenticated"){
101
+ empty_table
102
+ } else {
103
+ # datasource.raw_inspecciones()
104
+ # #
105
+ # user_input_pwd="Temporal1843@!"
106
+ # db_file_name="inspecciones.accdb"
107
+ #
108
  # try({
109
  # #
110
  # setwd(absolute_path("datasource inspecciones"))
 
125
  # dbFetch(query)
126
  # }) %>% as.data.frame()
127
  #
 
 
 
 
 
 
 
 
 
 
 
128
 
129
+ tryCatch({
130
+ data <- readxl::read_excel(file_path)
131
+ print("Archivo leído correctamente")
132
+ data
133
+ }, error = function(e) {
134
+ print("Error al leer el archivo:")
135
+ print(e$message)
136
+ data.frame(Mensaje = "Error al leer el archivo Excel")
137
+ })
138
+ }
139
+
140
  }
141
 
142
  #
 
148
  inspecciones.activas=function(
149
  inspecciones
150
  ){
151
+ inspecciones %>%
152
+ #
153
+ dplyr::mutate(
154
+ activa=TRUE
155
+ ) %>%
156
+ dplyr::filter(
157
+ activa
158
+ )
159
  }
160
  #
161
  inspecciones.ensamblar_variables_de_reporte=function(
162
  inspecciones
163
  ){
164
+ inspecciones %>%
165
+ dplyr::mutate(
166
+ ano=ANO_ZARPE,
167
+ mes=MES_ZARPE,
168
+ arte=ARTE,
169
+ sitio=SITIO,
170
+ fecha=paste(ANO_ZARPE, MES_ZARPE, DIA_ZARPE, sep="+" ),
171
+ horas_faena=HORA_FAENA
172
+ )
173
  }
174
  #
175
  tabla_de_reporte.formatear_ciclo_anual_en_columnas=
176
+ function(
177
+ Tabla_de_reporte
178
+ ){
179
+ Tabla_de_reporte %>%
180
+ tidyr::pivot_wider(
181
+ names_from = mes,
182
+ names_prefix = "month_",
183
+ values_from = dplyr::last(names(.))
184
+ ) %>%
185
+ Dataframe.order(
186
+ c( grep(names(.), pattern="^[^m]", value=TRUE),
187
+ paste("month_", 1:12, sep=""))
188
+ )
189
+ }
190
  #
191
  table_logic_per_index=list(
192
+ "1.1"=function(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  inspecciones=inspecciones.cache
194
+ ){
195
+ inspecciones %>%
196
+ inspecciones.activas() %>%
197
+ inspecciones.ensamblar_variables_de_reporte() %>%
198
+
199
+ split(paste(.$ano, .$mes, .$arte)) %>%
200
+ lapply(function(sub_df){
201
+ data.frame(
202
+ ano=dplyr::first(sub_df$ano),
203
+ mes=dplyr::first(sub_df$mes),
204
+ arte=dplyr::first(sub_df$arte),
205
+ reportada="(conteo) faenas activas",
206
+ faenas_activas=sub_df %>% nrow()
207
+ )
208
+ }) %>%
209
+ bind_rows() %>%
210
+
211
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
212
+ },
213
+ "1.2"=function(
214
+ inspecciones=inspecciones.cache
215
+ ){
216
+ inspecciones %>%
217
+ inspecciones.activas() %>%
218
+ inspecciones.ensamblar_variables_de_reporte() %>%
219
+
220
+ split(paste(.$ano, .$mes, .$arte, .$sitio)) %>%
221
+ lapply(function(sub_df){
222
+ data.frame(
223
+ ano=dplyr::first(sub_df$ano),
224
+ mes=dplyr::first(sub_df$mes),
225
+ arte=dplyr::first(sub_df$arte),
226
+ sitio=dplyr::first(sub_df$sitio),
227
+ reportada="(conteo) faenas activas",
228
+ faenas_activas=sub_df %>% nrow()
229
+ )
230
+ }) %>%
231
+ bind_rows() %>%
232
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
233
+ },
234
+ "1.3"=function(
235
+ inspecciones=inspecciones.cache
236
+ ){
237
+ inspecciones %>%
238
+ inspecciones.activas() %>%
239
+ inspecciones.ensamblar_variables_de_reporte() %>%
240
+
241
+ split(paste(.$ano, .$mes, .$arte, .$AREA, .$SUBAREA)) %>%
242
+ lapply(function(sub_df){
243
+ data.frame(
244
+ ano=dplyr::first(sub_df$ano),
245
+ mes=dplyr::first(sub_df$mes),
246
+ arte=dplyr::first(sub_df$arte),
247
+ area=dplyr::first(sub_df$AREA),
248
+ subarea=dplyr::first(sub_df$SUBAREA),
249
+ reportada="(conteo) faenas activas",
250
+ faenas_activas=nrow(sub_df)
251
+ )
252
+ }) %>%
253
+ bind_rows() %>%
254
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
255
+ },
256
+ "1.4"=function(
257
+ inspecciones=inspecciones.cache
258
+ ){
259
+ inspecciones %>%
260
+ inspecciones.activas() %>%
261
+ inspecciones.ensamblar_variables_de_reporte() %>%
262
+
263
+ split(paste(.$ano, .$mes, .$arte)) %>%
264
+ lapply(function(sub_df){
265
+ data.frame(
266
+ ano=dplyr::first(sub_df$ano),
267
+ mes=dplyr::first(sub_df$mes),
268
+ arte=dplyr::first(sub_df$arte),
269
+ reportada="dias de actividad",
270
+ dias_actividad=length(unique(sub_df$fecha))
271
+ )
272
+ }) %>%
273
+ bind_rows() %>%
274
+
275
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
276
+
277
+ },
278
+ "1.5"=function(
279
+ inspecciones=inspecciones.cache
280
+ ){
281
+ inspecciones %>%
282
+ inspecciones.activas() %>%
283
+ inspecciones.ensamblar_variables_de_reporte() %>%
284
+
285
+ split(paste(.$ano, .$mes, .$arte, .$sitio)) %>%
286
+ lapply(function(sub_df){
287
+ data.frame(
288
+ ano=dplyr::first(sub_df$ano),
289
+ mes=dplyr::first(sub_df$mes),
290
+ arte=dplyr::first(sub_df$arte),
291
+ sitio=dplyr::first(sub_df$sitio),
292
+ reportada="dias de actividad",
293
+ dias_actividad=length(unique(sub_df$fecha))
294
+ )
295
+ }) %>%
296
+ bind_rows() %>%
297
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
298
+ },
299
+ "1.6"=function(
300
+ inspecciones=inspecciones.cache
301
+ ){
302
+ inspecciones %>%
303
+ inspecciones.activas() %>%
304
+ inspecciones.ensamblar_variables_de_reporte() %>%
305
+
306
+ split(paste(.$ano, .$mes, .$arte)) %>%
307
+ lapply(function(sub_df){
308
+ data.frame(
309
+ ano=dplyr::first(sub_df$ano),
310
+ mes=dplyr::first(sub_df$mes),
311
+ arte=dplyr::first(sub_df$arte),
312
+ reportada="(promedio) de las horas de faena x (1.3)",
313
+ horas_de_faena=round(mean(sub_df$horas_faena),3)*(1.3)
314
+ )
315
+ }) %>%
316
+ bind_rows() %>%
317
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
318
+ },
319
+ "1.7"=function(
320
+ inspecciones=inspecciones.cache
321
+ ){
322
+ inspecciones %>%
323
+ inspecciones.activas() %>%
324
+ inspecciones.ensamblar_variables_de_reporte() %>%
325
+
326
+ split(paste(.$ano, .$mes, .$arte, .$AREA, .$SUBAREA )) %>%
327
+ lapply(function(sub_df){
328
+ data.frame(
329
+ ano=dplyr::first(sub_df$ano),
330
+ mes=dplyr::first(sub_df$mes),
331
+ arte=dplyr::first(sub_df$arte),
332
+ area=dplyr::first(sub_df$AREA),
333
+ subarea=dplyr::first(sub_df$SUBAREA),
334
+ reportada="(promedio) de las horas de faena x (1.3)",
335
+ horas_de_faena=round(mean(sub_df$horas_faena),3)*(1.3)
336
+ )
337
+ }) %>%
338
+ bind_rows() %>%
339
+ tabla_de_reporte.formatear_ciclo_anual_en_columnas()
340
+ }
341
  )
342
 
343
  #
344
+ #setwd(CODE_HOME)
345
  source("Compute_YEI.R")
346
  #
347
  table_logic_per_index[["2.1"]]=
 
396
 
397
  "arte",
398
  "sitio"
399
+
400
 
401
  )
402
  ) %>%
 
437
  GROUP_BY=c(
438
  "ano",
439
  "mes",
440
+
441
 
442
  "arte",
443
  "SUBGRUPO",
 
498
  #
499
 
500
  #
501
+ #setwd(CODE_HOME)
502
  source("Compute_YEI.R")
503
  #
504
  inspecciones.ensamblar_captura_diaria=
505
+ function(
506
+ inspecciones=inspecciones.cache
507
+ ){
508
+ inspecciones %>%
 
 
 
 
 
 
 
 
 
509
 
510
+ inspecciones.activas() %>%
511
+ inspecciones.ensamblar_variables_de_reporte() %>%
512
 
513
+ dplyr::transmute(
514
+ captura_total=CT_KG,
515
+
516
+ dia_zarpe=paste(ANO_ZARPE, MES_ZARPE , DIA_ZARPE, sep="/" ),
517
+ dia_arribo=paste(ANO_ARRIBO, MES_ARRIBO, DIA_ARRIBO, sep="/" ),
518
+
519
+ num_pescadores=PESCADORES,
520
+
521
+ arte_pesca=ARTE,
522
+ grupo=GRUPO
523
+ ) %>%
524
+ dplyr::mutate(
525
+ dia_zarpe=as.Date(dia_zarpe),
526
+ dia_arribo=as.Date(dia_arribo)
527
+ ) %>%
528
+ dplyr::mutate(
529
+ num_dias=as.numeric((dia_arribo-dia_zarpe)+1)
530
+ ) %>%
531
+ dplyr::mutate(
532
+ captura_diaria=round( (captura_total/num_dias),4),
533
+ captura_diaria_por_pescador=round( ( (captura_total/num_dias)/num_pescadores ),4),
534
+ )
535
+ }
536
  #
537
  table_logic_per_index[["3.1"]]=
538
  function(
 
607
  fetch_table_per_index=function(
608
  index=1.1
609
  ){
610
+ table_logic_per_index[[index]]()
611
  }
612
  #
613
  table.preview=function(
 
615
  max_rows=15,
616
  max_cols=8
617
  ){
618
+ tryCatch({
619
  table[1:min(max_rows, nrow(table) ), 1:min(max_cols, ncol(nrow(table)))]
620
+ },
621
+ error = function(e){empty_table})
622
  }
623
 
624
  # 5. exportar a un reporte ?nico
 
627
  # 6. interfaz del usuario exportar a un reporte ?nico
628
  #
629
 
630
+ #setwd(PROYECT_HOME)
631
  #
632
  library(shiny)
633
  ui = fluidPage(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
 
635
+
636
+ column(3,
637
+ fluidRow(
638
+ wellPanel(
639
+ shiny::HTML("<p> Bienvenido a la <strong> aplicación pesquera </strong>. Escoja una acción </p>")
640
+ )),
641
+ fluidRow(
642
+ wellPanel(
643
+ shiny::tags$strong("Credenciales"),
644
+ shiny::textInput("usuario",
645
+ label=NULL,
646
+ placeholder = "inserte usuario",
647
+ width='100%'),
648
+ shiny::passwordInput("contrasena",
649
+ label=NULL,
650
+ placeholder = "inserte contrasena",
651
+ width='100%')
652
+ # shiny::actionButton("enviar_credenciales",
653
+ # "Enviar credenciales",
654
+ # width='100%')
655
+ )),
656
+
657
+ fluidRow(
658
+ wellPanel(
659
+
660
+ fileInput('main_file_input', 'Seleccione un archivo desde su computador',
661
+ accept = c(".xlsx")
662
+ ))),
663
+
664
+ fluidRow(
665
+ wellPanel(
666
+
667
+ shiny::tags$strong("Reportes"),
668
+ shiny::tags$br(),
669
+ shiny::actionButton("exportar_reportes",
670
+ "Exportar reportes",
671
+ width='100%'),
672
+ textOutput("export_result")
673
+ ),
674
+ plotOutput(
675
+ "logo",
676
+ width = "100%",
677
+ height = "200px")
678
+ ),
679
+
680
+ ), # column,
681
+
682
+ column(12-4,
683
+
684
+ offset = 1,
685
+
686
+ fluidRow(wellPanel(
687
+ shiny::tags$strong("Mensajes"),
688
+ textOutput("messages"))),
689
+
690
+
691
+ shiny::tags$strong("Pre-visualización de reportes"),
692
+
693
+ tabsetPanel(
694
+
695
+ tabPanel("0. Tabla maestra",
696
+
697
+ div(shiny::tableOutput("0_tabla_maestra"),
698
+ style = "font-size:50%")),
699
+
700
+ tabPanel("1. Esfuerzo",
701
+
702
+ tabsetPanel(
703
+
704
+ tabPanel(
705
+ "1.1",
706
+ div(shiny::tableOutput("1.1")),
707
+ style = "font-size:50%"),
708
+
709
+ tabPanel(
710
+ "1.2",
711
+ div(shiny::tableOutput("1.2")),
712
+ style = "font-size:50%"),
713
+
714
+ tabPanel(
715
+ "1.3",
716
+ div(shiny::tableOutput("1.3")),
717
+ style = "font-size:50%"
718
+ ),
719
+
720
+ tabPanel(
721
+ "1.4",
722
+ div(shiny::tableOutput("1.4")),
723
+ style = "font-size:50%"),
724
+
725
+ tabPanel(
726
+ "1.5",
727
+ div(shiny::tableOutput("1.5")),
728
+ style = "font-size:50%"),
729
+
730
+ tabPanel(
731
+ "1.6",
732
+ div(shiny::tableOutput("1.6")),
733
+ style = "font-size:50%"),
734
+
735
+ tabPanel(
736
+ "1.7",
737
+ div(shiny::tableOutput("1.7")),
738
+ style = "font-size:50%")
739
+ )),
740
+
741
+ tabPanel("2. Captura total",
742
+
743
+ tabsetPanel(
744
+
745
+ tabPanel(
746
+ "2.1",
747
+ div(shiny::tableOutput("2.1")),
748
+ style = "font-size:50%"),
749
+
750
+ tabPanel(
751
+ "2.2",
752
+ div(shiny::tableOutput("2.2")),
753
+ style = "font-size:50%"),
754
+
755
+ tabPanel(
756
+ "2.3",
757
+ div(shiny::tableOutput("2.3")),
758
+ style = "font-size:50%"),
759
+
760
+ tabPanel(
761
+ "2.4",
762
+ div(shiny::tableOutput("2.4")),
763
+ style = "font-size:50%"),
764
+
765
+ tabPanel(
766
+ "2.5",
767
+ div(shiny::tableOutput("2.5")),
768
+ style = "font-size:50%"),
769
+
770
+ tabPanel(
771
+ "2.6",
772
+ div(shiny::tableOutput("2.6")),
773
+ style = "font-size:50%"),
774
+
775
+ tabPanel(
776
+ "2.7",
777
+ div(shiny::tableOutput("2.7")),
778
+ style = "font-size:50%")
779
+ )),
780
+
781
+ tabPanel("3. CPUE",
782
+
783
+ tabsetPanel(
784
+
785
+ tabPanel(
786
+ "3.1",
787
+ div(shiny::tableOutput("3.1")),
788
+ style = "font-size:50%"),
789
+
790
+ tabPanel(
791
+ "3.2",
792
+ div(shiny::tableOutput("3.2")),
793
+ style = "font-size:50%"),
794
+
795
+ tabPanel(
796
+ "3.3",
797
+ div(shiny::tableOutput("3.3")),
798
+ style = "font-size:50%")))
799
+
800
+ # )),
801
+ )))
802
 
803
 
804
  #
 
832
  actualizar_mensaje_exportado=reactive({
833
  exportado
834
  })
835
+
836
  #
837
  output$"0_tabla_maestra" = renderTable({
838
 
 
890
  width = '100%',
891
  spacing = "s"
892
  )
893
+ output$"1.2" = renderTable({
894
+ if (authenticated()) {
895
+ print(paste("User is authenticated, showing results..."))
896
+ data <- fetch_table_per_index("1.2")
897
+ data
898
+ } else {
899
+ print(paste("User is not authenticated, returning error message..."))
900
+ "No tiene permisos para ver esta tabla"
901
+ }
902
+ },
903
+ striped = TRUE,
904
+ hover=TRUE,
905
+ bordered=TRUE,
906
+ width='100%',
907
+ spacing="s"
908
+ )
909
+
910
+ output$"1.3" = renderTable({
911
+ if (authenticated()) {
912
+ print(paste("User is authenticated, showing results..."))
913
+ data <- fetch_table_per_index("1.3")
914
+ data
915
+ } else {
916
+ print(paste("User is not authenticated, returning error message..."))
917
+ "No tiene permisos para ver esta tabla"
918
+ }
919
+ },
920
+ striped = TRUE,
921
+ hover=TRUE,
922
+ bordered=TRUE,
923
+ width='100%',
924
+ spacing="s"
925
+ )
926
+
927
+ output$"1.4" = renderTable({
928
+ if (authenticated()) {
929
+ print(paste("User is authenticated, showing results..."))
930
+ data <- fetch_table_per_index("1.4")
931
+ data
932
+ } else {
933
+ print(paste("User is not authenticated, returning error message..."))
934
+ "No tiene permisos para ver esta tabla"
935
+ }
936
+ },
937
+ striped = TRUE,
938
+ hover=TRUE,
939
+ bordered=TRUE,
940
+ width='100%',
941
+ spacing="s"
942
+ )
943
+ output$"1.5" = renderTable({
944
+ if (authenticated()) {
945
+ print(paste("User is authenticated, showing results..."))
946
+ data <- fetch_table_per_index("1.5")
947
+ data
948
+ } else {
949
+ print(paste("User is not authenticated, returning error message..."))
950
+ "No tiene permisos para ver esta tabla"
951
+ }
952
+ },
953
+ striped = TRUE,
954
+ hover=TRUE,
955
+ bordered=TRUE,
956
+ width='100%',
957
+ spacing="s"
958
+ )
959
+ output$"1.6" = renderTable({
960
+ if (authenticated()) {
961
+ print(paste("User is authenticated, showing results..."))
962
+ data <- fetch_table_per_index("1.6")
963
+ data
964
+ } else {
965
+ print(paste("User is not authenticated, returning error message..."))
966
+ "No tiene permisos para ver esta tabla"
967
+ }
968
+ },
969
+ striped = TRUE,
970
+ hover=TRUE,
971
+ bordered=TRUE,
972
+ width='100%',
973
+ spacing="s"
974
+ )
975
+ output$"1.7" = renderTable({
976
+ if (authenticated()) {
977
+ print(paste("User is authenticated, showing results..."))
978
+ data <- fetch_table_per_index("1.7")
979
+ data
980
+ } else {
981
+ print(paste("User is not authenticated, returning error message..."))
982
+ "No tiene permisos para ver esta tabla"
983
+ }
984
+ },
985
+ striped = TRUE,
986
+ hover=TRUE,
987
+ bordered=TRUE,
988
+ width='100%',
989
+ spacing="s"
990
+ )
991
+ output$"2.1" = renderTable({
992
+ if (authenticated()) {
993
+ print(paste("User is authenticated, showing results..."))
994
+ data <- fetch_table_per_index("2.1")
995
+ data
996
+ } else {
997
+ print(paste("User is not authenticated, returning error message..."))
998
+ "No tiene permisos para ver esta tabla"
999
+ }
1000
+ },
1001
+ striped = TRUE,
1002
+ hover=TRUE,
1003
+ bordered=TRUE,
1004
+ width='100%',
1005
+ spacing="s"
1006
+ )
1007
+ output$"2.2" = renderTable({
1008
+ if (authenticated()) {
1009
+ print(paste("User is authenticated, showing results..."))
1010
+ data <- fetch_table_per_index("2.2")
1011
+ data
1012
+ } else {
1013
+ print(paste("User is not authenticated, returning error message..."))
1014
+ "No tiene permisos para ver esta tabla"
1015
+ }
1016
+ },
1017
+ striped = TRUE,
1018
+ hover=TRUE,
1019
+ bordered=TRUE,
1020
+ width='100%',
1021
+ spacing="s"
1022
+ )
1023
+ output$"2.3" = renderTable({
1024
+ if (authenticated()) {
1025
+ print(paste("User is authenticated, showing results..."))
1026
+ data <- fetch_table_per_index("2.3")
1027
+ data
1028
+ } else {
1029
+ print(paste("User is not authenticated, returning error message..."))
1030
+ "No tiene permisos para ver esta tabla"
1031
+ }
1032
+ },
1033
+ striped = TRUE,
1034
+ hover=TRUE,
1035
+ bordered=TRUE,
1036
+ width='100%',
1037
+ spacing="s"
1038
+ )
1039
+ output$"2.4" = renderTable({
1040
+ if (authenticated()) {
1041
+ print(paste("User is authenticated, showing results..."))
1042
+ data <- fetch_table_per_index("2.4")
1043
+ data
1044
+ } else {
1045
+ print(paste("User is not authenticated, returning error message..."))
1046
+ "No tiene permisos para ver esta tabla"
1047
+ }
1048
+ },
1049
+ striped = TRUE,
1050
+ hover=TRUE,
1051
+ bordered=TRUE,
1052
+ width='100%',
1053
+ spacing="s"
1054
+ )
1055
+ output$"2.5" = renderTable({
1056
+ if (authenticated()) {
1057
+ print(paste("User is authenticated, showing results..."))
1058
+ data <- fetch_table_per_index("2.5")
1059
+ data
1060
+ } else {
1061
+ print(paste("User is not authenticated, returning error message..."))
1062
+ "No tiene permisos para ver esta tabla"
1063
+ }
1064
+ },
1065
+ striped = TRUE,
1066
+ hover=TRUE,
1067
+ bordered=TRUE,
1068
+ width='100%',
1069
+ spacing="s"
1070
+ )
1071
+ output$"2.6" = renderTable({
1072
+ if (authenticated()) {
1073
+ print(paste("User is authenticated, showing results..."))
1074
+ data <- fetch_table_per_index("2.6")
1075
+ data
1076
+ } else {
1077
+ print(paste("User is not authenticated, returning error message..."))
1078
+ "No tiene permisos para ver esta tabla"
1079
+ }
1080
+ },
1081
+ striped = TRUE,
1082
+ hover=TRUE,
1083
+ bordered=TRUE,
1084
+ width='100%',
1085
+ spacing="s"
1086
+ )
1087
+ output$"2.7" = renderTable({
1088
+ if (authenticated()) {
1089
+ print(paste("User is authenticated, showing results..."))
1090
+ data <- fetch_table_per_index("2.7")
1091
+ data
1092
+ } else {
1093
+ print(paste("User is not authenticated, returning error message..."))
1094
+ "No tiene permisos para ver esta tabla"
1095
+ }
1096
+ },
1097
+ striped = TRUE,
1098
+ hover=TRUE,
1099
+ bordered=TRUE,
1100
+ width='100%',
1101
+ spacing="s"
1102
+ )
1103
+
1104
+ output$"3.1" = renderTable({
1105
+ if (authenticated()) {
1106
+ print(paste("User is authenticated, showing results..."))
1107
+ data <- fetch_table_per_index("3.1")
1108
+ data
1109
+ } else {
1110
+ print(paste("User is not authenticated, returning error message..."))
1111
+ "No tiene permisos para ver esta tabla"
1112
+ }
1113
+ },
1114
+ striped = TRUE,
1115
+ hover=TRUE,
1116
+ bordered=TRUE,
1117
+ width='100%',
1118
+ spacing="s"
1119
+ )
1120
+ output$"3.2" = renderTable({
1121
+ if (authenticated()) {
1122
+ print(paste("User is authenticated, showing results..."))
1123
+ data <- fetch_table_per_index("3.2")
1124
+ data
1125
+ } else {
1126
+ print(paste("User is not authenticated, returning error message..."))
1127
+ "No tiene permisos para ver esta tabla"
1128
+ }
1129
+ },
1130
+ striped = TRUE,
1131
+ hover=TRUE,
1132
+ bordered=TRUE,
1133
+ width='100%',
1134
+ spacing="s"
1135
+ )
1136
+ output$"3.3" = renderTable({
1137
+ if (authenticated()) {
1138
+ print(paste("User is authenticated, showing results..."))
1139
+ data <- fetch_table_per_index("3.3")
1140
+ data
1141
+ } else {
1142
+ print(paste("User is not authenticated, returning error message..."))
1143
+ "No tiene permisos para ver esta tabla"
1144
+ }
1145
+ },
1146
+ striped = TRUE,
1147
+ hover=TRUE,
1148
+ bordered=TRUE,
1149
+ width='100%',
1150
+ spacing="s"
1151
+ )
1152
+
1153
+ output$"export_result"=renderText({
1154
+ actualizar_mensaje_exportado()
1155
+ ifelse(exportado$se_exporto==TRUE, "Felicidades! El reporte fue exportado", "Aún no has exportado el reporte")
1156
+ })
1157
+
1158
+ observeEvent(input$exportar_reportes,{
1159
+ if (.GlobalEnv[["CURRENT_STATE"]] == "authenticated") {
1160
+ # Ensure the 'reportes' directory exists
1161
+ setwd(PROYECT_HOME)
1162
+ if (!dir.exists("reportes")) {
1163
+ dir.create("reportes")
1164
  }
1165
+ setwd("reportes")
1166
+
1167
+ # Create a new workbook
1168
+ wb <- openxlsx::createWorkbook()
1169
+
1170
+ # Generate and add each report to a separate sheet
1171
+ report_indices <- c("1.1", "1.2","1.3", "1.4", "1.5", "1.6", "1.7",
1172
+ "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7",
1173
+ "3.1", "3.2","3.3")
1174
+
1175
+ for (index in report_indices) {
1176
+ tryCatch({
1177
+ report_data <- fetch_table_per_index(index)
1178
+ openxlsx::addWorksheet(wb, sheetName = paste("Reporte", index))
1179
+ openxlsx::writeData(wb, sheet = paste("Reporte", index), x = report_data)
1180
+ }, error = function(e) {
1181
+ print(paste("Error generating report", index, ":", e$message))
1182
+ })
1183
  }
1184
+
1185
+ # Save the workbook
1186
+ openxlsx::saveWorkbook(wb, "exporte_reportes.xlsx", overwrite = TRUE)
1187
+
1188
+ .GlobalEnv[["EXPORT_STATE"]] <- TRUE
1189
+ exportado$se_exporto <- TRUE
1190
+
1191
+ # Optional: Show a message or log the successful export
1192
+ print("Reports exported successfully!")
1193
+ }
1194
+ })
1195
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1196
  }
1197
 
1198
  # Run the application