setScience(proj="DeNormalizing", quiet=TRUE, subProj="clientmanager", load=FALSE)

colsToPull = c("client_manager_is_active", "client_manager", "client_manager_id")
qry <- makeQry(schema="bi", tbl="CLIENT_MANAGERS_BY_LABEL", colsToPull=colsToPull, colsToAgg=c("Labels_Under_Management"='*'), aggFunc="count", order="1, 2", limit=NULL)
DT.client_managers <- sfQry(qry)

## SET Y/N  field to factor
DT.client_managers[, client_manager_is_active := toFactorWithExpectedLevels(client_manager_is_active, levels=c('Y', 'N'))]

## ------------------------------------------------------- ##
##  CHECK FOR MORE THAN ONE TYPE PER CLIENT MANAGER NAME   ##
## ------------------------------------------------------- ##
CMs_with_many <- DT.client_managers[, .N, keyby=client_manager][N != 1, client_manager]
catn("These client managers have more than one row associated to them:")
print(DT.client_managers[client_manager %in% CMs_with_many])
## ------------------------------------------------------- ##

CMs_film <- c("Jeremy Rosen", "Jennifer Schwartz", "Andrew Tell", "Doug Shineman", "Ben Markowitz", "Monisha Gandhi", "Maggie Leyden", "Abraham Schwartz", "Unassigned", "Marc Cuevas")
DT.client_managers[, cm_group := NULL]
DT.client_managers[, cm_group := NA_character_]
DT.client_managers[client_manager %in% CMs_film, cm_group := "Film & TV"]
DT.client_managers[is.na(cm_group), cm_group := "Music"]

DT.client_managers[, cm_group := toFactorWithExpectedLevels(cm_group, c("Film & TV"), showWarnings=FALSE)]

kCols <- c("cm_group", "client_manager_is_active", "client_manager", "client_manager_id")
setkeyIfNot(DT.client_managers, kCols, organize=TRUE, verbose=FALSE)
DT.client_managers

writeDT(DT.client_managers, to=getRS())