# GL_pt0_a Keys and Variables.r


## TODO:  Put these in kCols.smry or something similiar
    if (FALSE)
          uniqCols <- c("zz_hasData", "margin_for_perc_split", "perc_split_as_reported", "GL_gross_forDSagg")
## --------------------------------------------


  ## --------------------------------------------
  ## GLOBAL VARIABLES
  ## --------------------------------------------
  if (!exists("fakeToday") || is.null(fakeToday)) {
    fakeToday    <- NULL
    fakeToday.GL <- NULL
  } else {
    fakeToday    <- as.Date(fakeToday)
    fakeToday.GL <- lubridate::floor_date(fakeToday - 58, unit="month")
    ## Alternatively, consider using   findMaxDate("aggregated_accounting", fakeToday)
  }

  minDateToKeep    <- as.Date('2013-01-01')
  minDateToConfirm <- as.Date('2014-01-01')  ## Eventually this should be the same as minDateToKeep
  
  DT.stores <- try(get_dim_store(refresh=TRUE)  )
  if (isErr(DT.stores)) {
    rm(DT.stores)
    warning("   ~=~=~= *** [  THERE WAS AN ERROR REFRESHING DT.stores  ] *** =~=~=~")
    DT.stores <- get_dim_store(refresh=FALSE)
  }

  ## Some SCs never appaer in a given store (eg, selecto and napster). These need a default value
  ## Note that this will be trickier when we add in, say, country and genre
  cols.to.spliton <- c("music_vs_video", "release_product_type", "release_is_compilation")  ## no label_sc_group
  default.metavalues <- list("Music",       "Music",                 FALSE)
  names(default.metavalues) <- cols.to.spliton

  ## MARGINS FOR OSC
  oscMargins <- list(RED=.06, Allegro=.10, SelectO=.14, Orchard=1.00)
  oscFactorLevels <- c("Orchard", "RED", "Allegro", "SelectO")
  SCs <- setdiff(oscFactorLevels, "Orchard")

  ## Value used for manual check 
  .Expected_Rev_Jan_to_April_2014 <-  75781455.99728 


  ## --------------------------------------------
  ## FLAGS for future files
  ## --------------------------------------------
  # flags might have been set from a calling file
  # dropCurrentTable.manualnumbs <- TRUE
  # skip_exportOfBudget <- FALSE
  # verbose.joinColsProcessing <- TRUE
  # verbose.showdbsettings <- TRUE
  # verbose.qry.oa <- FALSE
  assignIfNotExist("dropCurrentTable.manualnumbs", TRUE, verbose=TRUE)
  assignIfNotExist("skip_exportOfBudget", FALSE, verbose=TRUE)
  assignIfNotExist("verbose.joinColsProcessing", FALSE, verbose=TRUE)
  assignIfNotExist("verbose.showdbsettings", TRUE, verbose=TRUE)
  assignIfNotExist("verbose.qry.oa", FALSE, verbose=TRUE)

  ## --------------------------------------------
  ## FOLDERS 
  ## --------------------------------------------
  folder.revenue_sheets    <- ingest.p("Revenue_Sheets/", expand=FALSE)

  ## where manual template files are located
  folder.manual_templates  <- ingest.p("Monthly_Manual_Templates/", expand=FALSE)

  ## Where RED and OSC split percentages are located
  folder.sc_splits         <- ingest.p("SC_splits", expand=FALSE)


  ## --------------------------------------------
  ## KEYS
  ## --------------------------------------------

  ## For the DT.GL
  kCols.GL <- c("accounting_month", "ID_greatplains", "storepart", "DMV")

  ## for now, storeid is NOT sufficient for unique stores, specifically due to NAs. 
  kCols.date       <- c("date")
  kCols.store      <- c("storeid", "store_name")
  kCols.SC         <- c("label_sc_group")

  kCols.datestore   <- c(kCols.date, kCols.store)
  kCols.datestoreSC <- c(kCols.date, kCols.store, kCols.SC)

  kCols.main       <- c(kCols.datestore, kCols.SC)  ## "music_vs_video_by_dmv" is not needed. It is unique per store_name

  kCols.storeSC <- c(kCols.store, kCols.SC)

  kCols.SC_date <- c(kCols.SC, kCols.date)
  kCols.date_SC <- c(kCols.date, kCols.SC)

  kCols.SC_meta <- unique(c(kCols.SC, cols.to.spliton))
  kCols.meta_SC <- unique(c(cols.to.spliton, kCols.SC))

  kCols.store_meta <- c(kCols.store, cols.to.spliton)

  ## NEED TO FIGURE OUT NON-ALLOWABLE LOGIC
  kCols.splitgroup <- c(kCols.main, cols.to.spliton)
  kCols.splitgroup_noSC <- setdiff(kCols.splitgroup, kCols.SC)
  kCols.splitgroup_nostore <- setdiff(kCols.splitgroup, kCols.store)
  kCols.splitgroup_nodate <- setdiff(kCols.splitgroup, kCols.date)

  kCols.main_nodate       <- setdiff(kCols.main,       kCols.date)


  kCols.smry <-  c(kCols.splitgroup, "store_musicbucket", "store_videobucket", "ancillaryline")
  kCols.smry_nostore <-  setdiff(kCols.smry, kCols.store)

  kCols.smry_supbuk <-  c(kCols.splitgroup, "store_musicsuperbucket", "store_musicbucket", "store_videobucket", "ancillaryline")

