
# ********************************************************************************************************************************
# ******************************** GENERACIÓN DE TABULADOS - ENCUESTA ESTRUCTURAL EMPRESARIAL ************************************
# ********************************************************************************************************************************

# ********************************************************************** #
# Instituto Nacional de Estadística y Censos (INEC)                      #
# Fuente: Encuesta Estructural Empresarial 2024                          #
# Responsable: Unidad de Gestión de Estadísticas Estructurales (GESE)    #
# ********************************************************************** #
# Fecha de elaboración: 18/11/2022                                       #
# Fecha última modificación: 27/03/2026                                  #
# ********************************************************************** #
# Elaborado por:                                                         #
# Gestión de Estadísticas Estructurales - GESE                           #
# Instituto Nacional de Estadística y Censos                             #
# ********************************************************************** #
# Revisado por                                                           #
# Roberto Chaves                                                         #
# Jefe de Gestión de Estadísticas Estructurales                          #
# Instituto Nacional de Estadística y Censos                             #
# roberto_chaves@inec.gob.ec                                             #
# ********************************************************************** #
# Aprobado por:                                                          #
# Diana Barco                                                            #
# Directora de Estadísticas Económicas (DECON)                           #
# Instituto Nacional de Estadística y Censos                             #
# Diana_Barco@inec.gob.ec                                                #
##########################################################################

#========================================================================#
# FUNCIONES                                                              #
#========================================================================#

"Carga de librerías"

enesem_lib <- function(libreria) {
  if (!requireNamespace(as.character(libreria), quietly = TRUE)) {
    install.packages(as.character(libreria))
  }
  library(libreria, character.only = TRUE)
}

"Configuración Tabulados"

escribir_tabulado <- function(wb, hoja, objeto, fila, col = 2) {
  writeData(
    wb, hoja, objeto,
    startRow = fila,
    startCol = col,
    colNames = FALSE
  )
}

#========================================================================#
# CARGAR LIBRERIAS                                                       #
#========================================================================#

enesem_lib("openxlsx")
enesem_lib("dplyr")
enesem_lib("rio")
enesem_lib("Hmisc")
enesem_lib("tidyverse")
enesem_lib("haven")
enesem_lib("janitor") 

# **** TABULADOS 2024 -------------------------------------------------

#Establecer la dirección de trabajo.

"Estimado Usuario. Por favor en el disco C: de su computadora, crear una carpeta llamada Tabulados Estructural, y coloque la BDD de la encuesta, la sintaxis llamada 2024_ENESEM_Sintaxis_Tabulados t el archivo excel Tabulado_Estilo.xlsx.
En esta carpeta se exportarán los resultados de los tabulados."

setwd("C:/Tabulados Estructural")

#Abrir directorio.
dir()

# *** Llamar base de datos****

data <-  read_sav("2024_ESTRUCTURAL_EMPRESARIAL_BDD.sav") #En caso de haber editado el nombre de la BDD reemplazarlo en esta línea
# data <-  read_delim("2024_ESTRUCTURAL_EMPRESARIAL_BDD.csv",delim = ";", escape_double = FALSE, trim_ws = TRUE) #En caso de que se descargue la base de datos en formato csv, quitar comentario (#) de esta línea de código y comentar (#) el comando read_sav.

#Seteando directorio de Servicios#
"Se generará una nueva carpeta dentro de Tabulados Estructurales donde se exportarán los documentos excel de tabulados"

dir.create ("TOMOI-TABULADOS")

# GENERACIÓN DE TABULADOS  ------------------------------------------------

#Variable de tamaño
data$cod_tamano <- as.character(data$cod_tamano)

# *****************************************************
# * CREACIÓN DE FUNCIONES PARA GENERACIÓN DE TABULADOS*
# *****************************************************

# Generaciones de tabulados
tabulados <- function(data, var_des, var_res) { # Se deben ingresar las variables de desagregación del tabulados y las variables de resultado
  cuadro <- data %>% # Toma la base input
    select(all_of(c(var_des, var_res)), f_exp) %>% # selecciona tanto las variables de desagregación, resultados y factor de expansión
    mutate_if(is.numeric, ~.*f_exp) %>% # multiplica a las variables numéricas por el factor de expansión
    select(-f_exp) %>% # elimino el factor de expansión
    group_by(!!!syms(var_des)) %>% # agrupo por las variables de desagregación
    summarise_all(sum, na.rm = T) # sumo todas las variables menos las de agrupación
  
  k <- c(colSums(cuadro[, 3:ncol(cuadro)])) # se crea un vector con las sumas para las variables de resultados
  
  cuadro <- rbind(k, cuadro) %>%
    select(all_of(var_des), everything()) # uno el data frame con el vector y ordeno 
  
  cuadro[1, 2] <- "Total Nacional" # Pongo este título en la celda especificada
  
  return(cuadro) # retorno la variable.
}

# Generación de cuadro por género 

data_g <- data %>% 
  select(c(id_empresa,k , cod_letra, des_letra, cod_tamano, des_tamano,f_exp, v5088, v5089, v5090, v5175, v5176, v5177, v5178, v5179, v5180))

data_g <- mutate_if(data_g, is.numeric, ~ .* data_g$f_exp)

calcular_indice <- function(data, var_num, var_den, nombre_indice) {
  resultado <- data %>% 
    group_by(cod_letra, des_letra) %>% 
    summarise(
      num_sum = sum(.data[[var_num]], na.rm = TRUE),
      den_sum = sum(.data[[var_den]], na.rm = TRUE)
    ) %>% 
    mutate(indice = (num_sum / den_sum))
  
  # Cálculo del índice general
  total_num <- sum(resultado$num_sum, na.rm = TRUE)
  total_den <- sum(resultado$den_sum, na.rm = TRUE)
  indice_total <- (total_num / total_den)
  
  # Formateo del resultado
  df_resultado <- as.data.frame(t(c(NA, indice_total)))
  df_resultado[1,1] <- nombre_indice
  names(df_resultado) <- c("Descripción", "2024")
  
  df_resultado <- df_resultado %>%
    summarise(`2024` = round_half_up(`2024`, 6))
  
  return(df_resultado)
}


# Generación de Brechas

calcular_brecha <- function(data, var_mujer, var_hombre, var_total, nombre_brecha) {
  resultado <- data %>% 
    group_by(cod_letra, des_letra) %>% 
    summarise(
      sum_mujer = sum(.data[[var_mujer]], na.rm = TRUE),
      sum_hombre = sum(.data[[var_hombre]], na.rm = TRUE),
      sum_total = sum(.data[[var_total]], na.rm = TRUE)
    ) %>% 
    mutate(
      porcentaje_mujer = sum_mujer / sum_total,
      porcentaje_hombre = sum_hombre / sum_total,
      brecha = porcentaje_mujer - porcentaje_hombre
    )
  
  # Cálculo total
  total_mujer <- sum(resultado$sum_mujer, na.rm = TRUE)
  total_hombre <- sum(resultado$sum_hombre, na.rm = TRUE)
  total_total <- sum(resultado$sum_total, na.rm = TRUE)
  
  porcentaje_total_mujer <- total_mujer / total_total
  porcentaje_total_hombre <- total_hombre / total_total
  brecha_total <- porcentaje_total_mujer - porcentaje_total_hombre
  
  # Formateo del resultado
  df_resultado <- as.data.frame(t(c(NA, brecha_total)))
  df_resultado[1,1] <- nombre_brecha
  names(df_resultado) <- c("Descripción", "2024")
  
  df_resultado <- df_resultado %>%
    summarise(`2024` = round_half_up(`2024`, 6))
  
  return(df_resultado)
}

# ***********************************************************
# * CREACIÓN DE VARIABLE ADICIONAL PARA CÁLCULO DE TABULADOS*
# *****************************************************

# **** CUADRO 1. NÚMERO DE EMPRESAS, PERSONAL OCUPADO, REMUNERACIONES, PRODUCCIÓN TOTAL, ----
#     CONSUMO INTERMEDIO, VALOR AGREGADO, DEPRECIACIONES Y FORMACION BRUTA DE CAPITAL

# C1-SECCIÓN ----
Cuadro1A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("k", "totalpeoc", "totremun", "prodtota",
                                                                               "consint", "valag", "deprecia", "fbkf_1"))

names(Cuadro1A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Número empresas", "Personal ocupado empresarial", "Remuneraciones empresariales", "Producción total empresarial", "Consumo intermedio empresarial",
                     "Valor agregado empresarial", "Depreciaciones", "Formación bruta de capital fijo empresarial")

Cuadro1A_1 <- Cuadro1A %>% select("Número empresas")
Cuadro1A_2 <- Cuadro1A %>% select("Personal ocupado empresarial")
Cuadro1A_3 <- Cuadro1A %>% select("Remuneraciones empresariales")
Cuadro1A_4 <- Cuadro1A %>% select("Producción total empresarial")
Cuadro1A_5 <- Cuadro1A %>% select("Consumo intermedio empresarial")
Cuadro1A_6 <- Cuadro1A %>% select("Valor agregado empresarial")
Cuadro1A_7 <- Cuadro1A %>% select("Formación bruta de capital fijo empresarial")

# C1-TAMAÑO ----
Cuadro1B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("k", "totalpeoc", "totremun", "prodtota",
                                                                                 "consint", "valag", "deprecia", "fbkf_1"))

names(Cuadro1B) <- c("Tamaño de empresa", "Descripción", "Número empresas", "Personal ocupado empresarial", "Remuneraciones empresariales", "Producción total empresarial", "Consumo intermedio empresarial",
                     "Valor agregado empresarial", "Depreciaciones", "Formación bruta de capital fijo empresarial")

Cuadro1B_1 <- Cuadro1B %>% select("Número empresas")
Cuadro1B_2 <- Cuadro1B %>% select("Personal ocupado empresarial")
Cuadro1B_3 <- Cuadro1B %>% select("Remuneraciones empresariales")
Cuadro1B_4 <- Cuadro1B %>% select("Producción total empresarial")
Cuadro1B_5 <- Cuadro1B %>% select("Consumo intermedio empresarial")
Cuadro1B_6 <- Cuadro1B %>% select("Valor agregado empresarial")
Cuadro1B_7 <- Cuadro1B %>% select("Formación bruta de capital fijo empresarial")

# C2-SECCIÓN ----
Cuadro2A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("totalpeoc","v5088", "v5089","v5177", "v5175", 
                                                                               "v5176"))

names(Cuadro2A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Total personal ocupado empresarial", "Total de hombres", "Total de mujeres",  "Total de sueldos y salarios pagados en el mes de noviembre",
                     "Total sueldo y salarios pagados en el mes de noviembre - hombres", "Total sueldo y salarios pagados en el mes de noviembre - mujeres")

# C2-TAMAÑO ----
Cuadro2B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("totalpeoc","v5088", "v5089","v5177", "v5175", 
                                                                                 "v5176"))

names(Cuadro2B) <- c("Tamaño de empresa", "Descripción", "Total personal ocupado empresarial", "Total de hombres", "Total de mujeres", "Total de sueldos y salarios pagados en el mes de noviembre",
                     "Total sueldo y salarios pagados en el mes de noviembre - hombres", "Total sueldo y salarios pagados en el mes de noviembre - mujeres")

# **********************************
#     C2-CATEGORIAS DE OCUPACIÓN
# **********************************

ciuo <- "Grupos de Ocupación"
peocuh <- "Total hombres"
peocum <- "Total mujeres"
totpeocu <- "Total de Personal Ocupado"
suelsanovhom <- "Total Sueldos y Salarios Pagados Noviembre - Hombres"
suelsanovmuje <- "Total Sueldos y Salarios Pagados Noviembre - Mujeres"
totsuelsanov <- "Total Sueldos y Salarios Pagados en el mes de Noviembre"

# **** Grupo 1 ****
GO1 <- transmute(data,
                 ciuo=1,
                 peocuh=v5007,
                 peocum=v5008,
                 totpeocu=v5009,
                 suelsanovhom=v5094,
                 suelsanovmuje=v5095,
                 totsuelsanov=v5096,
                 f_exp)

# **** Grupo 2 ****
GO2 <- transmute(data,
                 ciuo=2,
                 peocuh=v5016,
                 peocum=v5017,
                 totpeocu=v5018,
                 suelsanovhom=v5103,
                 suelsanovmuje=v5104,
                 totsuelsanov=v5105,
                 f_exp)

# **** Grupo 3 ****
GO3 <- transmute(data,
                 ciuo=3,
                 peocuh=v5025,
                 peocum=v5026,
                 totpeocu=v5027,
                 suelsanovhom=v5112,
                 suelsanovmuje=v5113,
                 totsuelsanov=v5114,
                 f_exp)

# **** Grupo 4 ****
GO4 <- transmute(data,
                 ciuo=4,
                 peocuh=v5034,
                 peocum=v5035,
                 totpeocu=v5036,
                 suelsanovhom=v5121,
                 suelsanovmuje=v5122,
                 totsuelsanov=v5123,
                 f_exp)

# **** Grupo 5 ****
GO5 <- transmute(data,
                 ciuo=5,
                 peocuh=v5043,
                 peocum=v5044,
                 totpeocu=v5045,
                 suelsanovhom=v5130,
                 suelsanovmuje=v5131,
                 totsuelsanov=v5132,
                 f_exp)

# **** Grupo 6 ****
GO6 <- transmute(data,
                 ciuo=6,
                 peocuh=v5052,
                 peocum=v5053,
                 totpeocu=v5054,
                 suelsanovhom=v5139,
                 suelsanovmuje=v5140,
                 totsuelsanov=v5141,
                 f_exp)

# **** Grupo 7 ****
GO7 <- transmute(data,
                 ciuo=7,
                 peocuh=v5061,
                 peocum=v5062,
                 totpeocu=v5063,
                 suelsanovhom=v5148,
                 suelsanovmuje=v5149,
                 totsuelsanov=v5150,
                 f_exp)

# **** Grupo 8 ****
GO8 <- transmute(data,
                 ciuo=8,
                 peocuh=v5070,
                 peocum=v5071,
                 totpeocu=v5072,
                 suelsanovhom=v5157,
                 suelsanovmuje=v5158,
                 totsuelsanov=v5159,
                 f_exp)

# **** Grupo 9 ****
GO9 <- transmute(data,
                 ciuo=9,
                 peocuh=v5079,
                 peocum=v5080,
                 totpeocu=v5081,
                 suelsanovhom=v5166,
                 suelsanovmuje=v5167,
                 totsuelsanov=v5168,
                 f_exp)

# **** Unificación de archivos - Grupos de Ocupación ****
grupos <- rbind(GO1, GO2, GO3, GO4, GO5, GO6, GO7, GO8, GO9)
rm(GO1, GO2, GO3, GO4, GO5, GO6, GO7, GO8, GO9)

grupos <- mutate(grupos, des_ciuo="")

grupos <- grupos %>% 
  mutate(des_ciuo = case_when(ciuo==1 ~ "Directores y Gerentes",
                              ciuo==2 ~ "Profesionales, Científicos e Intelectuales",
                              ciuo==3 ~ "Técnicos y Profesionales de nivel medio",
                              ciuo==4 ~ "Personal de Apoyo administrativo / Empleados de oficina",
                              ciuo==5 ~ "Trabajadores de los Servicios y Vendedores de Comercios y Mercados",
                              ciuo==6 ~ "Agricultores y Trabajadores Calificados Agropecuarios, Forestales y Pesqueros",
                              ciuo==7 ~ "Oficiales, Operarios y Artesanos de artes Mecánicas y de otros oficios",
                              ciuo==8 ~ "Operadores de Instalaciones y Máquinas y Ensambladores",
                              ciuo==9 ~ "Trabajadores no calificados, Ocupaciones elementales"))
grupos$ciuo <- with(grupos, as.character(ciuo))


# **** CUADRO DE RESULTADO ****

# C2-SECCIÓN ----
Cuadro2C <- tabulados(grupos, var_des = c("ciuo", "des_ciuo"), var_res = c("totpeocu","peocuh", "peocum", "totsuelsanov", "suelsanovhom", 
                                                                           "suelsanovmuje"))

names(Cuadro2C) <- c("Grupos de Ocupación", "Descripción", "Total personal ocupado empresarial", "Total de hombres", "Total de mujeres", "Total de sueldos y salarios pagados en el mes de noviembre",
                     "Total sueldos y salarios pagados en el mes de noviembre-hombres", "Total sueldos y salarios pagados en el mes de noviembre-mujeres")



# **** CUADRO 3. REMUNERACIONES

# C3-SECCIÓN ----
Cuadro3A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("totremun", "v1082", "v1085", "v1088", "otrrem"))

names(Cuadro3A) <- c("Sección CIIU Rev. 4.0", "Descripción","Remuneraciones empresariales", "Total Costo y gasto de sueldos, salarios y demás remuneraciones  que constituyen materia gravada del IESS", "Total costo y gasto en beneficios sociales, indemnizaciones y otras remuneraciones que no constituyen materia gravada del IESS", 
                     "Total costo y gasto del aporte a la seguridad social (incluye fondo de reserva)", 
                     "Otras remuneraciones")

# C3-TAMAÑO ----
Cuadro3B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("totremun", "v1082", "v1085", "v1088", "otrrem"))

names(Cuadro3B) <- c("Tamaño de empresa", "Descripción","Remuneraciones empresariales", "Total Costo y gasto de sueldos, salarios y demás remuneraciones  que constituyen materia gravada del IESS", "Total costo y gasto en beneficios sociales, indemnizaciones y otras remuneraciones que no constituyen materia gravada del IESS", 
                     "Total costo y gasto del aporte a la seguridad social (incluye fondo de reserva)", 
                     "Otras remuneraciones")


# **** CUADRO 4. PRODUCCIÓN TOTAL

# C4-SECCIÓN ----
Cuadro4A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("prodtota", "v2001", "v_merc", "v2004",
                                                                               "oingxser", "Cbnp", "varexisbt", "varexism", "tcaf"))

names(Cuadro4A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Producción total empresarial", "Ventas netas de bienes producidos por la empresa", "Venta de bienes comercializados por la empresa",
                     "Ventas netas de servicios", "Otros ingresos por servicios y no operacionales", "Costo de compras netas de bienes no producidos",
                     "Variación de existencias de artículos producidos para la venta", "Variación de existencias de artículos para la venta sin transformación (Mercaderías)",
                     "Total Construcciones de activos fijos por cuenta propia")

# C4-TAMAÑO ----
Cuadro4B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("prodtota", "v2001", "v_merc", "v2004",
                                                                                 "oingxser", "Cbnp", "varexisbt", "varexism", "tcaf"))

names(Cuadro4B) <- c("Tamaño de empresa", "Descripción", "Producción total empresarial", "Ventas netas de bienes producidos por la empresa", "Venta de bienes comercializados por la empresa",
                     "Ventas netas de servicios", "Otros ingresos por servicios y no operacionales", "Costo de compras netas de bienes no producidos",
                     "Variación de existencias de artículos producidos para la venta", "Variación de existencias de artículos para la venta sin transformación (Mercaderías)",
                     "Total Construcciones de activos fijos por cuenta propia")


# **** CUADRO 5. CONSUMO INTERMEDIO ****

# C5-SECCIÓN ----

Cuadro5A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("consint", "totinsum", "matprima", "repacces",
                                                                               "gasopera", "otrgasop"))

names(Cuadro5A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Consumo intermedio empresarial", "Total insumos", "Materia prima utilizada",
                     "Suministros, herramientas, materiales y repuestos", "Gastos operacionales", "Otros gastos operacionales")

# C5-TAMAÑO ----
Cuadro5B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("consint", "totinsum", "matprima", "repacces",
                                                                                 "gasopera", "otrgasop"))

names(Cuadro5B) <- c("Tamaño de empresa", "Descripción", "Consumo intermedio empresarial", "Total insumos", "Materia prima utilizada",
                     "Suministros, herramientas, materiales y repuestos", "Gastos operacionales", "Otros gastos operacionales")


# **** CUADRO 6. VALOR Y CANTIDAD DE LOS COMBUSTIBLES Y LUBRICANTES CONSUMIDOS

# C6-SECCIÓN ----

Cuadro6A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("v9105", "v9058", "v9059", "v9062", "v9063", "v9066", "v9067", "v9070", "v9071", "v9074",
                                                                               "v9075", "v9078", "v9079", "v9082", "v9083", "v9086", "v9087", "v9090", "v9091", "v9094",
                                                                               "v9095", "v9098", "v9099", "v9102"))

names(Cuadro6A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Valor total de combustibles y lubricantes", "Cantidad de gasolina súper (Galones)", "Valor de gasolina súper",
                     "Cantidad de gasolina extra (Galones)", "Valor de gasolina extra", "Cantidad de jet fuel (Galones)", "Valor de jet fuel",
                     "Cantidad de diésel (Galones)", "Valor de diésel", "Cantidad de gas licuado (glp)(Kilogramos)", "Valor de gas licuado (glp)",
                     "Cantidad de gas natural", "Valor de gas natural (Millones BTU)", "Cantidad de residuo fuel oíl (Galones)", "Valor de residuo fuel oíl",
                     "Cantidad de crudo residual (Galones)", "Valor de crudo residual", "Cantidad de carbón (kilogramos)",
                     "Valor de carbón", "Cantidad de gasolina ecopaís (Galones)", "Valor de gasolina ecopaís", "Cantidad de aceites (Galones)",
                     "Valor de aceites", "Valor de otros combustibles y lubricantes")

# C6-TAMAÑO ----
Cuadro6B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("v9105", "v9058", "v9059", "v9062", "v9063", "v9066", "v9067", "v9070", "v9071", "v9074",
                                                                                 "v9075", "v9078", "v9079", "v9082", "v9083", "v9086", "v9087", "v9090", "v9091", "v9094",
                                                                                 "v9095", "v9098", "v9099", "v9102"))

names(Cuadro6B) <- c("Tamaño de empresa", "Descripción", "Valor total de combustibles y lubricantes", "Cantidad de gasolina súper (Galones)", "Valor de gasolina súper",
                     "Cantidad de gasolina extra (Galones)", "Valor de gasolina extra", "Cantidad de jet fuel (Galones)", "Valor de jet fuel",
                     "Cantidad de diésel (Galones)", "Valor de diésel", "Cantidad de gas licuado (glp)(Kilogramos)", "Valor de gas licuado (glp)",
                     "Cantidad de gas natural", "Valor de gas natural (Millones BTU)", "Cantidad de residuo fuel oíl (Galones)", "Valor de residuo fuel oíl",
                     "Cantidad de crudo residual (Galones)", "Valor de crudo residual", "Cantidad de carbón (kilogramos)",
                     "Valor de carbón", "Cantidad de gasolina ecopaís (Galones)", "Valor de gasolina ecopaís", "Cantidad de aceites (Galones)",
                     "Valor de aceites", "Valor de otros combustibles y lubricantes")

# **** CUADRO 7. VALOR Y CANTIDAD DE ENERGIA ELÉCTRICA

# C7-SECCIÓN ----
Cuadro7A <- tabulados(data, var_des = c("cod_letra", "des_letra"), var_res = c("vtee", "veepyc", "v9002", "tceel","ceepyc", "v9001"))

names(Cuadro7A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Valor total energía eléctrica", "Valor energía eléctrica producida y consumida", "Valor energía eléctrica comprada por red pública",
                    "Total cantidad de energía eléctrica (KWh)","Cantidad energía eléctrica producida y consumida (kwh)", "Cantidad energía eléctrica comprada por red pública (kwh)")

# C7-TAMAÑO ----
Cuadro7B <- tabulados(data, var_des = c("cod_tamano", "des_tamano"), var_res = c("vtee", "veepyc", "v9002","tceel", "ceepyc", "v9001"))

names(Cuadro7B) <- c("Tamaño empresa", "Descripción", "Valor total energía eléctrica", "Valor energía eléctrica producida y consumida", "Valor energía eléctrica comprada por red pública",
                     "Total cantidad de energía eléctrica (KWh)","Cantidad energía eléctrica producida y consumida (kwh)", "Cantidad energía eléctrica comprada por red pública (kwh)")


# *** CUADRO 8. INDICADORES DE RELACIÓN

dataC8 <- select(data, cod_letra, cant_ener, des_letra, cod_tamano, des_tamano, prodtota, totalpeoc, valag, f_exp)
dataC8 <- mutate_if(dataC8, is.numeric, ~ .* dataC8$f_exp)

# GENERACIÓN DE INDICADORES SECCIÓN

# *C8-SECCIÓN
# 8-1
C8_1 <- filter(dataC8, prodtota>0 & totalpeoc>0)
C8_1 <- C8_1 %>%  group_by(cod_letra, des_letra)%>%
  summarise(prodtota_sum=(sum(prodtota, na.rm = T)),totalpeoc_sum=(sum(totalpeoc, na.rm = T))) %>%
  mutate(prodpo=(prodtota_sum/totalpeoc_sum))

# 8-2
C8_2 <- filter(dataC8, valag>0 & totalpeoc>0)
C8_2 <- C8_2 %>%  group_by(cod_letra, des_letra) %>%
  summarise(valag_sum=(sum(valag, na.rm = T)), totalpeoc_sum=(sum(totalpeoc, na.rm = T))) %>%
  mutate(valagpo=valag_sum/totalpeoc_sum)


# **** Unificacion de indicadores
C8S1 <- full_join(C8_1, C8_2, by="cod_letra")
C8S <- select(C8S1, cod_letra, des_letra.x, prodpo, valagpo)
rm(C8S1)
names(C8S) <- c("Sección CIIU Rev. 4.0", "Descripción", "Producción por persona ocupada", "Valor agregado por persona ocupada")

# *Cálculo de totales
k11 <- c(colSums(C8_1[,3]))
k12 <- c(colSums(C8_1[,4]))
k21 <- c(colSums(C8_2[,3]))
k22 <- c(colSums(C8_2[,4]))
k1 <- ((k11/k12))
k2 <- ((k21/k22))
k8A <- as.data.frame(t(c(NA, NA, k1, k2)))
k8A[1,2] <- "Indicador Nacional"

rm(k11, k12, k21, k22, k1, k2)
names(k8A) <- c("Sección CIIU Rev. 4.0", "Descripción", "Producción por persona ocupada", "Valor agregado por persona ocupada")

c81 <- rbind(k8A, C8S)

c83 <- c81 %>% 
  select(c(`Producción por persona ocupada`))
c84 <- c81 %>% 
  select(c(`Valor agregado por persona ocupada`))

# GENERACIÓN DE INDICADORES DE RELACION-TAMAÑO
# *C8-TAMAÑO
# 8-1
C8_1B <- filter(dataC8, prodtota>0 & totalpeoc>0)
C8_1B <- C8_1B %>%  group_by(cod_tamano, des_tamano) %>%
  summarise(prodtota_sum=(sum(prodtota, na.rm = T)), totalpeoc_sum=(sum(totalpeoc, na.rm = T))) %>%
  mutate(prodpo=(prodtota_sum/totalpeoc_sum))

# 8-2
C8_2B <- filter(dataC8, valag>0 & totalpeoc>0)
C8_2B <- C8_2B %>%  group_by(cod_tamano, des_tamano) %>%
  summarise(valag_sum=(sum(valag, na.rm = T)), totalpeoc_sum=(sum(totalpeoc, na.rm = T))) %>%
  mutate(valagpo=(valag_sum/totalpeoc_sum))

# **** Unificación de indicadores
C8T1 <- full_join(C8_1B, C8_2B, by="cod_tamano")
C8T <- select(C8T1, cod_tamano, des_tamano.x, prodpo, valagpo)
rm(C8T1)

names(C8T) <- c("Tamaño de empresa", "Descripción", "Producción por persona ocupada", "Valor agregado por persona ocupada")

# *Cálculo de totales
k11 <- c(colSums(C8_1B[,3]))
k12 <- c(colSums(C8_1B[,4]))
k21 <- c(colSums(C8_2B[,3]))
k22 <- c(colSums(C8_2B[,4]))
k1 <- ((k11/k12))
k2 <- ((k21/k22))
k8B <- as.data.frame(t(c(NA,NA,k1, k2)))
k8B[1,2] <- "Indicador Nacional"

rm(k11, k12, k21, k22, k1, k2)
colnames(k8B)
names(k8B) <- c("Tamaño de empresa", "Descripción", "Producción por persona ocupada", "Valor agregado por persona ocupada")

c82 <- rbind(k8B, C8T)

c85 <- c82 %>% 
  select(c(`Producción por persona ocupada`))
c86 <- c82 %>% 
  select(c(`Valor agregado por persona ocupada`))

# GENERACIÓN DE INDICADORES GÉNERO

# Índice de Feminidad 
indice_feminidad <- calcular_indice(data_g, "v5089", "v5088", "Feminidad")
indice_feminidad <- indice_feminidad %>% 
  mutate(`2024`= `2024`*100)

# Índice de Masculinidad
indice_masculinidad <- calcular_indice(data_g, "v5088", "v5089", "Masculinidad")
indice_masculinidad <- indice_masculinidad %>% 
  mutate(`2024`= `2024`*100)

# Promedio de empleados por sexo
# --- Mujeres
Promedio_empleados_mujer <- calcular_indice(data_g, "v5089", "k", "Promedio_mujeres")
# --- Hombres
Promedio_empleados_hombre <- calcular_indice(data_g, "v5088", "k", "Promedio_hombres")

# Porcentaje de empleados por sexo
# --- Mujeres
Porcentaje_empleados_mujer <- calcular_indice(data_g, "v5089", "v5090", "Porcentaje_mujeres")
# --- Hombres
Porcentaje_empleados_hombre <- calcular_indice(data_g, "v5088", "v5090", "Porcentaje_hombres")

# Promedio de Remuneraciones por Sexo
# --- Mujeres
Promedio_remuneracion_mujer <- calcular_indice(data_g, "v5176", "v5089", "Promedio_remu_mujeres")
# --- Hombres
Promedio_remuneracion_hombre <- calcular_indice(data_g, "v5175", "v5088", "Promedio_remu_mujeres")

# Porcentaje de remuneraciones por Sexo
# --- Mujeres
Porcentaje_remuneraciones_mujer <- calcular_indice(data_g, "v5176", "v5177", "Porcentaje_remu_mujeres")
# --- Hombres
Porcentaje_remuneraciones_hombre <- calcular_indice(data_g, "v5175", "v5177", "Porcentaje_remu_hombres")

# Brecha de la participación en el salario por sexo
brecha_salario <- calcular_brecha(data_g, "v5176", "v5175", "v5177", "Brecha de participación en el salario por sexo")

# Brecha de la participación en el empleo por sexo
brecha_empleo <- calcular_brecha(data_g, "v5089", "v5088", "v5090", "Brecha de participación en el empleo por sexo")

# Combinar objetos ( indicadores ) en una misma columna
Tabla <- bind_rows(indice_feminidad,indice_masculinidad,Promedio_empleados_mujer,Promedio_empleados_hombre,
                   Porcentaje_empleados_mujer,Porcentaje_empleados_hombre,Promedio_remuneracion_mujer,Promedio_remuneracion_hombre,
                   Porcentaje_remuneraciones_mujer,Porcentaje_remuneraciones_hombre,brecha_empleo, brecha_salario)



# ============================================================================ #
#####               DISEÑO Y EXPORTACIÓN DE TABULADOS A EXCEL              ##### 
# ============================================================================ #
"En esta sección se diseñara y exportara los tabulados en formato excel"

##### Configuración tabulados #####
# Transponer cuadro 9A y 9B

Cuadro1A_1_horizontal <- as.data.frame(t(Cuadro1A_1))
Cuadro1A_2_horizontal <- as.data.frame(t(Cuadro1A_2))
Cuadro1A_3_horizontal <- as.data.frame(t(Cuadro1A_3))
Cuadro1A_4_horizontal <- as.data.frame(t(Cuadro1A_4))
Cuadro1A_5_horizontal <- as.data.frame(t(Cuadro1A_5))
Cuadro1A_6_horizontal <- as.data.frame(t(Cuadro1A_6))
Cuadro1A_7_horizontal <- as.data.frame(t(Cuadro1A_7))
Cuadro1B_1_horizontal <- as.data.frame(t(Cuadro1B_1))
Cuadro1B_2_horizontal <- as.data.frame(t(Cuadro1B_2))
Cuadro1B_3_horizontal <- as.data.frame(t(Cuadro1B_3))
Cuadro1B_4_horizontal <- as.data.frame(t(Cuadro1B_4))
Cuadro1B_5_horizontal <- as.data.frame(t(Cuadro1B_5))
Cuadro1B_6_horizontal <- as.data.frame(t(Cuadro1B_6))
Cuadro1B_7_horizontal <- as.data.frame(t(Cuadro1B_7))

# Transponer cuadro 9A y 9B

Cuadro10_A_1_horizontal <- as.data.frame(t(c83))
Cuadro10_A_2_horizontal <- as.data.frame(t(c84))
Cuadro10_B_1_horizontal <- as.data.frame(t(c85))
Cuadro10_B_2_horizontal <- as.data.frame(t(c86))

##### Configuración tabulados #####

plantilla <- loadWorkbook("Tabulado_Estilo.xlsx")

config_tabulados <- tribble(
  
  ~hoja,  ~objeto, ~fila, ~col,
  "C1-A",  Cuadro1A, 3, 1,#tabulado 1A
  "C1-B",  Cuadro1B, 3, 1, #tabulado 1B
  "C2-A",  Cuadro2A, 3, 1, #tabulado 2A
  "C2-B",  Cuadro2B, 3, 1, #tabulado 2B
  "C2-C",  Cuadro2C, 3, 1, #tabulado 2C
  "C3-A",  Cuadro3A, 3, 1, #tabulado 3A
  "C3-B",  Cuadro3B, 3, 1, #tabulado 3B
  "C4-A",  Cuadro4A, 3, 1, #tabulado 4A
  "C4-B",  Cuadro4B, 3, 1, #tabulado 4B
  "C5-A",  Cuadro5A, 3, 1, #tabulado 5A
  "C5-B",  Cuadro5B, 3, 1, #tabulado 5B
  "C6-A",  Cuadro6A, 3, 1, #tabulado 6A
  "C6-B",  Cuadro6B, 3, 1, #tabulado 6B
  "C7-A",  Cuadro7A, 3, 1, #tabulado 7A
  "C7-B",  Cuadro7B, 3, 1, #tabulado 7B
  "C8-A",  c81, 3, 1, #tabulado 8A
  "C8-B",  c82, 3, 1, #tabulado 8B
  "C9-A",  Cuadro1A_1_horizontal, 13, 2, #tabulado 9A
  "C9-A",  Cuadro1A_2_horizontal, 23, 2,#tabulado 9A
  "C9-A",  Cuadro1A_3_horizontal, 33, 2, #tabulado 9A
  "C9-A",  Cuadro1A_4_horizontal, 43, 2, #tabulado 9A
  "C9-A",  Cuadro1A_5_horizontal, 53, 2, #tabulado 9A
  "C9-A",  Cuadro1A_6_horizontal, 63, 2, #tabulado 9A
  "C9-A",  Cuadro1A_7_horizontal, 73, 2, #tabulado 9A
  "C9-B",  Cuadro1B_1_horizontal, 12, 2, #tabulado 9B
  "C9-B",  Cuadro1B_2_horizontal, 22, 2, #tabulado 9B
  "C9-B",  Cuadro1B_3_horizontal, 32, 2, #tabulado 9B
  "C9-B",  Cuadro1B_4_horizontal, 42, 2, #tabulado 9B
  "C9-B",  Cuadro1B_5_horizontal, 52, 2, #tabulado 9B
  "C9-B",  Cuadro1B_6_horizontal, 62, 2, #tabulado 9B
  "C9-B",  Cuadro1B_7_horizontal, 72, 2, #tabulado 9B
  "C10-A", Cuadro10_A_1_horizontal, 13, 2, #tabulado 10A
  "C10-A", Cuadro10_A_2_horizontal, 23, 2, #tabulado 10A
  "C10-B", Cuadro10_B_1_horizontal, 12, 2,  #tabulado 9B
  "C10-B", Cuadro10_B_2_horizontal, 22, 2, #tabulado 9B
  "In. Gen", Tabla, 3, 11) #tabulado 9B

"Integración de tabulados"

pwalk(config_tabulados, ~ escribir_tabulado(plantilla, ..1, ..2, ..3, ..4))

# GUARDAR -----------------------------------------------------------------

setwd("TOMOI-TABULADOS")
saveWorkbook(plantilla, "2024_ENESEM_Tabulados_TomoI.xlsx",overwrite = TRUE)



