
#### 0_1 Configuration, assumptions and data import ####
forutsetninger = load(file="./Data/forutsetninger.Rdata")
load(file = "./Data/geo_variables.Rdata")

#### Import data ####
dat = read_xlsx("./Data/BaseData/Uttrekk til Reberegning - 26.01.2026 10_51_37.xlsx")
id = read_xlsx("./Data/BaseData/id_ir_23.xlsx") 

dat <- dat %>% dplyr::rename(orgn = id,
                            y = aar,
                            comp = selskap,
                            ld_usla = d_usla,
                            rd_impl = r_impl,
                            ld_impl = d_impl,
                            t_impl = s_impl,
                            rd_usla = r_usla,
                            ld_dep.sf = d_avs,
                            rd_dep.sf = r_avs,
                            t_dep.sf = s_avs,
                            rd_nl = r_nettap,
                            ld_nl = d_nettap,
                            t_pens = s_pensj,
                            t_sal = s_lonn,
                            t_sal.cap = s_lonnakt,
                            t_pens.eq = s_pensjek,
                            rd_sal = r_lonn,
                            rd_sal.cap = r_lonnakt,
                            rd_pens = r_pensj,
                            rd_pens.eq = r_pensjek,
                            ld_pens = d_pensj,
                            ld_sal = d_lonn,
                            ld_sal.cap = d_lonnakt,
                            ld_pens.eq = d_pensjek,
                            ld_gci = d_grs,
                            rd_wv.ol = r_vluft,
                            rd_wv.uc = r_vjord,
                            rd_wv.sc = r_vsjo,
                            rd_wv.ss = r_grmva,
                            ld_sub = d_ab,
                            ld_bv.sf = d_bfv,
                            rd_bv.sf = r_bfv,
                            t_bv.sf = s_bfv,
                            ld_ss = d_ns,
                            ld_hvoh = d_hsll,
                            ld_hv = d_hs,
                            ld_cens = d_kile,
                            rd_cens = r_kile,
                            t_cens = s_kile,
                            ld_cga = d_utred,
                            rd_dep.gf = r_abavs,
                            rd_bv.gf = r_abbfv,
                            ld_dep.gf = d_abavs,
                            ld_bv.gf = d_abbfv,
                            ld_391 = d_391,
                            rd_391 = r_391,
                            t_391 = s_391,
                            ld_hvug = d_hsjord,
                            ld_hvsc = d_hssjo,
                            ld_OPEXxS = d_DVxL,
                            rd_OPEXxS = r_DVxL,
                            t_OPEXxS = s_DVxL,
                            rd_cga = r_utred,
                            ld_elhub = d_elhub,
                            rd_elhub = r_elhub,
                            t_elhub =s_elhub, 
                            ldz_innmat_midl = d_innmat_midl,
                            ldz_le = d_le
                            )

        dat$orgn <- as.integer(dat$orgn)
        
        # Deleting companies with no revenue cap
        # Removes Andersen Web Consulting
        dat <- dat[!(dat$orgn==879867762),] #WEB CONSULTING Andersen
        dat <- dat[!(dat$orgn==996732673),] # NORSKE SKOG SKOGN AS
        dat <- dat[!(dat$orgn==984015666),] # YARA NORGE AS
        dat <- dat[!(dat$orgn==971040246),] # USTEKVEIKJA KRAFTVERK DA
        
        
        # Removes Statnett SFs and Nord Link Norges observations from dataset (TSO)
        dat <- dat[!(dat$orgn==962986633),] # Statnett
        dat <- dat[!(dat$orgn==995204517),] # Nordlink
        dat <- dat[!(dat$orgn==954090493),] # Sira Kvina
        
       
        
        dat = merge.data.frame(dat, pnl.rc, by = "orgn", all.x = TRUE)
        dat <- dat %>% 
          mutate(pnl.rc = pnl.rc/1000)

        id$orgn <- as.integer(id$orgn)
        id$name = NULL
        dat = merge.data.frame(dat, id, by = "orgn", all.x = TRUE)
        dat$comp <- as.character(dat$comp)
        dat$id.y <- paste(dat$id, dat$y, sep="")     # Create id.y variable
        dat$id.y <- as.numeric(dat$id.y)
        dat$orgn.y <- paste(dat$y, dat$orgn, sep="") # Create orgn.y variable
        dat$orgn.y <- as.numeric(dat$orgn.y)

# Replacing TEK-values for Hammerfest (Pga. tidligere spesialbehandling. Rapporteringen er korrekt fra og med TEK 2018)
       dat$rd_wv.ol <- ifelse(dat$id.y == 652017, 22852.07828, dat$rd_wv.ol) # HAMMERFEST
       dat$rd_wv.uc <- ifelse(dat$id.y == 652017, 2533.391857, dat$rd_wv.uc) # HAMMERFEST
       dat$rd_wv.ss <- ifelse(dat$id.y == 652017, (9644.175394+998.14), dat$rd_wv.ss) # HAMMERFEST


# Korrigering av verdier for Lnett AS 
#Dette gjC8res fordi Lyse produksjon og Lnett er fusjonert fra og med 2020,
# men fusjonen gjelder bare for Dnett. 
# LP sitt Rnett mC% derfor trekkes ut for C%rene 2017,18 og 2019
#Denne koden mC% derfor ogsC% benyttes for Varsel 24 og 25
       
        dat$rd_dep.sf <- ifelse(dat$id.y == 5112017, (dat$rd_dep.sf - 281), dat$rd_dep.sf)
        dat$rd_dep.sf <- ifelse(dat$id.y == 5112018, (dat$rd_dep.sf - 434), dat$rd_dep.sf)
        dat$rd_dep.sf <- ifelse(dat$id.y == 5112019, (dat$rd_dep.sf - 558), dat$rd_dep.sf)
        dat$rd_bv.sf <- ifelse(dat$id.y == 5112017, (dat$rd_bv.sf - 2340), dat$rd_bv.sf)
        dat$rd_bv.sf <- ifelse(dat$id.y == 5112018, (dat$rd_bv.sf - 13668), dat$rd_bv.sf)
        dat$rd_bv.sf <- ifelse(dat$id.y == 5112019, (dat$rd_bv.sf - 12800), dat$rd_bv.sf)
        dat$rd_pens <- ifelse(dat$id.y == 5112017, (dat$rd_pens - 2), dat$rd_pens)
        dat$rd_sal <- ifelse(dat$id.y == 5112017, (dat$rd_sal - 15), dat$rd_sal)
        dat$rd_OPEXxS <- ifelse(dat$id.y == 5112017, (dat$rd_OPEXxS - 783), dat$rd_OPEXxS)
        dat$rd_OPEXxS <- ifelse(dat$id.y == 5112018, (dat$rd_OPEXxS - 347), dat$rd_OPEXxS)        
        dat$rd_wv.ss <- ifelse(dat$id.y == 5112017, (dat$rd_wv.ss - 5106), dat$rd_wv.ss)
        dat$rd_wv.ss <- ifelse(dat$id.y == 5112018, (dat$rd_wv.ss - 6895), dat$rd_wv.ss)
        dat$rd_wv.ss <- ifelse(dat$id.y == 5112019, (dat$rd_wv.ss - 6895), dat$rd_wv.ss)
        
        
  # Inkluderer luftfartshinder for Odda bakover i tid (endringen er reell fra og med 2022) etter fusjon med Fagne
                
        dat$rd_wv.ol <- ifelse(dat$id.y == 1462017, (dat$rd_wv.ol + 745.2), dat$rd_wv.ol)         
        dat$rd_wv.ol <- ifelse(dat$id.y == 1462018, (dat$rd_wv.ol + 745.2), dat$rd_wv.ol)         
        dat$rd_wv.ol <- ifelse(dat$id.y == 1462019, (dat$rd_wv.ol + 745.2), dat$rd_wv.ol) 
        dat$rd_wv.ol <- ifelse(dat$id.y == 1462020, (dat$rd_wv.ol + 745.2), dat$rd_wv.ol)
        dat$rd_wv.ol <- ifelse(dat$id.y == 1462021, (dat$rd_wv.ol + 745.2), dat$rd_wv.ol)
        
        
  # Fjerner luftfartshinder for Fagne bakover i tid (endringen er reell fra og med 2022) etter fusjon med Odda
        dat$rd_wv.ol <- ifelse(dat$id.y == 5032017, (dat$rd_wv.ol - 745.3), dat$rd_wv.ol)      
        dat$rd_wv.ol <- ifelse(dat$id.y == 5032018, (dat$rd_wv.ol - 745.3), dat$rd_wv.ol)      
        dat$rd_wv.ol <- ifelse(dat$id.y == 5032019, (dat$rd_wv.ol - 745.3), dat$rd_wv.ol)
        dat$rd_wv.ol <- ifelse(dat$id.y == 5032020, (dat$rd_wv.ol - 745.3), dat$rd_wv.ol) 
        dat$rd_wv.ol <- ifelse(dat$id.y == 5032021, (dat$rd_wv.ol - 745.3), dat$rd_wv.ol) 

        
# Check for companies without ID
        missing.id <- dat[is.na(dat$id),]
        unique(missing.id[c("comp", "orgn")])
        stopifnot(nrow(missing.id) == 0)
        rm(missing.id, id)

# Replace NA values with zeros to have correct means for pensions costs
        dat[is.na(dat)] = 0
        
# Joining in area price from RC year-2
        dat <- dat %>% 
          left_join(ap.t_2, by='id')
      
# Sorting data
      idasvector <- as.vector(dat$id)
      dat <- dat[order(idasvector),]
      rm(idasvector)
      
      