R/mod_garantii_database.R

Defines functions mod_garantii_database_server mod_garantii_database_ui

#' garantii_database UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd 
#'
#' @importFrom shiny NS tagList
mod_garantii_database_ui <- function(id){
  ns <- NS(id)
  # This modules handles submenu soldul de garantii under sidebar Prudentialitate - Database Tab
  
  fluidRow(   
    shinyjs::useShinyjs(),
    
    column( width = 3, shinyWidgets::airDatepickerInput(inputId = ns("date_baza_solduri"),
            label = "Selecteaza data raportului",value = Sys.Date(),autoClose = TRUE,language = "ro") ),
            
          
    column(width = 3),
    column( width = 6,  br(),    shinyWidgets::downloadBttn(outputId = ns("down_solduri"),
                   label = "Download tabelul de mai jos in format detaliat",style = "stretch",color = "primary")),
    
    DT::dataTableOutput(ns("baza_date_solduri"))
  )
  
}
    
#' garantii_database Server Functions
#'
#' @noRd 
mod_garantii_database_server <- function(id, vals){
  moduleServer( id, function(input, output, session){
    ns <- session$ns
    
    #Below observer selects tab Database when sidebar soldul de garantii is selected and 
    #updates selecion dates of the table according to what exists in file (vals$view_baza_solduri - first read inside app.server)
    # It also renders the table as it depends to the observed event - vals$view_baza_solduri
    
    observeEvent( vals$view_baza_solduri,{
      
      shinyWidgets::updateAirDateInput(inputId = 'date_baza_solduri',  session = session,
              value = max(vals$view_baza_solduri$data_raport, na.rm = T) )
     
      output$baza_date_solduri <- DT::renderDataTable(
        DT::datatable(data = vals$view_baza_solduri %>%
                        dplyr::filter(data_raport == input$date_baza_solduri)  %>%
                        dplyr::select(-data_raport) %>% dplyr::arrange(Tip_surse, desc(Sold_garantii)),
                      caption = htmltools::tags$caption(style = 'caption-side: top; text-align: left;',
                              paste0("Baza de date a soldurilor la data de ", input$date_baza_solduri)),
                      options = list(dom =  "Bt", pageLength = nrow(vals$view_baza_solduri), buttons = c("copy","csv","excel")),
                      rownames = F,extensions = "Buttons") %>%
                        DT::formatRound(columns = 3:6, digits = 0)
      )
      output$down_solduri <- downloadHandler(filename = function() { paste0("solduri_",input$date_baza_solduri,".csv") },
                content = function(file) { readr::write_csv(x = readRDS("R/reactivedata/solduri/baza_banci.rds") %>%
                    dplyr::filter(data_raport == input$date_baza_solduri), file = file) }  )
      
      })
    
    
    
     
    
    
    
    } )
  
}
 
    
## To be copied in the UI
# mod_garantii_database_ui("garantii_database_ui_1")
    
## To be copied in the server
# mod_garantii_database_server("garantii_database_ui_1")
fizic37/risk_report documentation built on Dec. 10, 2022, 12:23 p.m.