#' Get SIRENE
#'
#' get a list of information from the SIRENE database
#'
#' @param db name of the database
#' @param .siret a siret number
#'
#' @return a list
#' @export
#'
#' @examples
#'
#'
get_sirene <- function(db, .siret) {
dplyr::tbl(src = db, from = "table_sirene") %>%
dplyr::filter_(.dots = ~ siret == .siret) %>%
dplyr::select_(.dots = list(~ siret, ~ siren, ~ date_creation_etablissement, ~ siege, ~ libelle_naf_niveau1)) %>%
dplyr::collect() %>%
as.list()
}
#' Get siret
#'
#' @param db database connexion
#' @param .numero_compte account number
#'
#' @return a string
#' @export
#'
#' @examples
#'
#'
get_siret <- function(db, .numero_compte) {
dplyr::tbl(src = db, "table_effectif") %>%
dplyr::filter_(.dots = list(~ compte == .numero_compte)) %>%
dplyr::select_(.dots = ~ siret) %>%
dplyr::distinct_() %>%
dplyr::collect() %>%
.$siret
}
#' Get accountnumber
#'
#' @param db a database connexion
#' @param .siret a siret number
#'
#' @return a string
#' @export
#'
#' @examples
#'
get_accountnumber <- function(db, .siret) {
dplyr::tbl(src = db, from = "table_effectif") %>%
dplyr::filter_(.dots = list(~ siret == .siret)) %>%
dplyr::select_(.dots = ~ compte) %>%
dplyr::distinct_() %>%
dplyr::collect() %>%
.$compte
}
#' is ccsf
#'
#' @param db a database connexion
#' @param siret a valid siret number
#'
#' @return a boolean
#' @export
#'
#' @examples
#'
is_ccsf <- function(db, siret) {
account_number <- get_accountnumber(
db = database_signauxfaibles,
.siret = siret
)
dplyr::tbl(src = db, from = "table_ccsv") %>%
dplyr::filter(numero_compte == account_number) %>%
dplyr::collect() %>%
nrow() > 0
}
#' Get CCSV
#'
#' Get information in the CCSV table for a siret number
#'
#' @param db name of the database
#' @param .siret a siret number
#'
#' @return a tibble
#' @export
#'
#' @examples
#'
get_ccsv <- function(db, .siret) {
.compte <- get_accountnumber(db = db, .siret = .siret)
dplyr::tbl(src = db, from = "table_ccsv") %>%
dplyr::filter_(.dots = list(~ compte == .compte)) %>%
dplyr::collect()
}
#' Get raison sociale
#'
#' @param db a database connexion
#' @param .siret a siret number
#'
#' @return a string
#' @export
#'
#' @examples
#'
#'
get_raisonsociale <- function(db, .siret) {
dplyr::tbl(src = db, from = "table_effectif") %>%
dplyr::filter_(.dots = ~ siret == .siret) %>%
dplyr::distinct_(.dots = ~ raison_sociale) %>%
dplyr::collect() %>%
magrittr::extract2("raison_sociale")
}
#' Get effecitf
#'
#' Get the effectif table for a siret number
#'
#' @param db a database connexion
#' @param .siret a siret number
#'
#' @return a tibble
#' @export
#'
#' @examples
#'
get_effectif <- function(db, .siret) {
dplyr::tbl(src = db, from = "table_effectif") %>%
dplyr::filter_(.dots = ~ siret == .siret) %>%
dplyr::select_(.dots = list(~ siret, ~ compte, ~ period, ~ effectif)) %>%
dplyr::collect()
}
#' Plot effectif
#'
#' @param db a database connexion
#' @param .siret siret number
#'
#' @return a ggplot
#' @export
#'
#' @examples
#'
plot_effectif <- function(db, .siret) {
get_effectif(db = db, .siret = .siret) %>%
dplyr::mutate_(
.dots = list(
"date" = ~ lubridate::ymd(paste0(period, "-01")),
"yearmon" = ~ zoo::as.yearmon(date)
)) %>%
ggplot2::ggplot() +
ggplot2::geom_col(
mapping = ggplot2::aes(x = yearmon, y = effectif),
color = "white"
) +
zoo::scale_x_yearmon()
}
#' Get meancotisation
#'
#' @param db database connexion
#' @param siret a valid siret number
#'
#' @return a table
#' @export
#'
#' @examples
#'
get_meancotisation <- function(db, siret) {
account_number <- get_accountnumber(db = db, .siret = siret)
dplyr::tbl(src = db, from = "wholesample_meancotisation") %>%
dplyr::filter_(
.dots = list(~ numero_compte == account_number)
) %>%
dplyr::collect() %>%
dplyr::mutate(periode = lubridate::ymd(periode))
}
#' Plot mean cotisation
#'
#' @param db database connexion
#' @param siret a siret number
#'
#' @return a ggplot
#' @export
#'
#' @examples
#'
plot_meancotisation <- function(db, siret) {
get_meancotisation(
db = db,
siret = siret) %>%
ggplot2::ggplot() +
ggplot2::geom_col(
mapping = ggplot2::aes(
x = periode,
y = mean_cotisation_due)
) +
ggplot2::scale_x_date()
}
#' Get ratio cotisation effectif
#'
#' @param db database connexion
#' @param siret siret number
#'
#' @return a table
#' @export
#'
#' @examples
#'
get_ratio_cotisation_effectif <- function(db, siret) {
get_effectif(db = db, .siret = siret) %>%
dplyr::mutate(
periode = paste0(period, "-01")
) %>%
dplyr::inner_join(
y = get_meancotisation(db = db, siret = siret) %>%
dplyr::mutate(periode = as.character(periode)),
by = c("compte" = "numero_compte", "periode")
) %>%
dplyr::mutate_(
.dots = list("cotisation_effectif" = ~ mean_cotisation_due / effectif)
) %>%
dplyr::select_(
.dots = list(~ siret, ~ periode, ~ cotisation_effectif)
)
}
#' PLot ratio cotisation effectif
#'
#' @param db a database connexion
#' @param siret a siret number
#'
#' @return a ggplot
#' @export
#'
#' @examples
#'
plot_ratio_cotisation_effectif <- function(db, siret) {
get_ratio_cotisation_effectif(db = db, siret = siret) %>%
dplyr::mutate_(.dots = list("yearmon" = ~ zoo::as.yearmon(periode))) %>%
ggplot2::ggplot() +
ggplot2::geom_col(
mapping = ggplot2::aes_string(
x = "yearmon",
y = "cotisation_effectif"
),
color = "white"
) +
zoo::scale_x_yearmon() +
ggplot2::scale_y_continuous(
labels = tricky::french_formatting
)
}
#' Get dettecumulee
#'
#' @param db database name
#' @param siret siret number
#'
#' @return a tibble
#' @export
#'
#' @examples
#'
#' \dontrun{
#' get_dettecumulee(db = database_signauxfaibles, siret = "37850713100027")
#' }
#'
get_dettecumulee <- function(db, siret) {
account_number <- get_accountnumber(db = database_signauxfaibles, .siret = siret)
dplyr::tbl(src = db, "wholesample_dettecumulee") %>%
dplyr::filter(numero_compte == account_number) %>%
dplyr::collect() %>%
dplyr::mutate(
"yearmon" = zoo::as.yearmon(periode),
"dettecumulee" = montant_part_ouvriere + montant_part_patronale
)
}
#' Plot dettecumulee
#'
#' @param db a database connexion
#' @param siret a siret number
#' @param variable a variable name ("montant_part_patronale", "dettecumulee", "montant_part_patronale")
#'
#' @return a ggplot
#' @export
#'
#' @examples
#'
plot_dettecumulee <- function(db, siret, variable) {
account_number <- get_accountnumber(db = database_signauxfaibles, .siret = siret)
dplyr::tbl(src = db, "wholesample_dettecumulee") %>%
dplyr::filter(numero_compte == account_number) %>%
dplyr::collect() %>%
dplyr::mutate(
"yearmon" = zoo::as.yearmon(periode),
"dettecumulee" = montant_part_ouvriere + montant_part_patronale
) %>%
ggplot2::ggplot() +
ggplot2::geom_col(
mapping = ggplot2::aes_string(
x = "yearmon",
y = variable)
) +
zoo::scale_x_yearmon()
}
#' Get ratio dettecumulee cotisation
#'
#' @param db a database connexion
#' @param siret a siret number
#'
#' @return a table
#' @export
#'
#' @examples
#'
get_ratio_dettecumulee_cotisation <- function(db, siret) {
account_number <- get_accountnumber(db = db, .siret = siret)
get_meancotisation(db = db, siret = siret) %>%
dplyr::mutate(periode = as.character(periode)) %>%
dplyr::inner_join(
y = dplyr::tbl(src = db, "wholesample_dettecumulee") %>%
dplyr::filter(numero_compte == account_number) %>%
dplyr::collect() %>%
dplyr::mutate(
"dettecumulee" = montant_part_ouvriere + montant_part_patronale
),
by = c("numero_compte", "periode")
) %>%
dplyr::mutate("ratio_dettecumulee_cotisation" = dettecumulee / mean_cotisation_due) %>%
dplyr::select(numero_compte, periode, ratio_dettecumulee_cotisation)
}
#' plot ratio dettecumulee cotisation
#'
#' @param db database connexion
#' @param siret siret number
#'
#' @return a ggplot
#' @export
#'
#' @examples
#'
plot_ratio_dettecumulee_cotisation <- function(db, siret) {
get_ratio_dettecumulee_cotisation(
db = db,
siret = siret) %>%
dplyr::mutate(
"yearmon" = zoo::as.yearmon(lubridate::ymd(periode))
) %>%
ggplot2::ggplot() +
ggplot2::geom_col(
mapping = ggplot2::aes_string(
x = "yearmon",
y = "ratio_dettecumulee_cotisation"
)
) +
zoo::scale_x_yearmon()
}
#' Get delais
#'
#' @param db database connexion
#' @param siret a valid siret number
#'
#' @return a table
#' @export
#'
#' @examples
#'
#' \dontrun{
#' get_delais(db = database_signauxfaibles, siret = "54200362900020")
#' }
get_delais <- function(db, siret) {
account_number <- get_accountnumber(db = db, .siret = siret)
dplyr::tbl(src = db, from = "table_delais") %>%
dplyr::filter(numero_compte == account_number) %>%
dplyr::collect()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.