R/mrpt_md_budget.R

Defines functions mrpt_md_reClassify_read mrpt_md_reClassify_select mrpt_md_ui_costItem_syncLastOne mrpt_md_ui_costItem_checkStatus mrpt_md_ui_costItem_read mrpt_md_ui_costCenter_read mrpt_md_chando_acctRpt_select mrpt_md_chando_acctRpt_read mrpt_md_subChannel mrpt_md_channel2 mrpt_md_channel mrpt_md_brand

Documented in mrpt_md_brand mrpt_md_chando_acctRpt_read mrpt_md_chando_acctRpt_select mrpt_md_channel mrpt_md_channel2 mrpt_md_reClassify_read mrpt_md_reClassify_select mrpt_md_subChannel mrpt_md_ui_costCenter_read mrpt_md_ui_costItem_checkStatus mrpt_md_ui_costItem_read mrpt_md_ui_costItem_syncLastOne

#' 获取品牌信息
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_brand()
mrpt_md_brand<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select  distinct FBrand  from t_mrpt_brand")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-tsdo::vect_as_list(r$FBrand)
  }
  return(res)

}

#' 获取渠道信息
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_channel<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select  distinct  FChannel
from t_mrpt_channel")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-tsdo::vect_as_list(r$FChannel)
  }
  return(res)

}

#' 获取渠道信息并具有子渠道
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel2()
mrpt_md_channel2<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select  distinct  FChannel
from t_mrpt_channel2 ")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-tsdo::vect_as_list(r$FChannel)
  }
  return(res)

}

#' 获取子渠道信息
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_subChannel<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select FName  from t_mrpt_subChannel")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-tsdo::vect_as_list(r$FName)
  }
  return(res)

}


#' 自然堂电商科目及报表项目对照表
#'
#' @param conn 连接
#' @param file_name 文件名
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_chando_acctRpt_read<- function(conn=tsda::conn_rds('jlrds'),
                                       file_name ="data-raw/md/自然堂电商科目及报表项目对照表模板.xlsx"
                              ) {
  data <- readxl::read_excel(file_name,
                             sheet = "对照表",
                             col_types = c("text", "text", "text",
                                           "text"))
  ncount <- nrow(data)
  if(ncount >0){
    names(data) <- c('FAcctNumber','FAcctName','FRptItemNumber','FRptItemName')
    #清空原来数据
    sql <- paste0("delete  from t_mrpt_chando_acctRptItem")
    tsda::sql_update(conn,sql)
    #上传新的数据
    tsda::db_writeTable(conn = conn,table_name = 't_mrpt_chando_acctRptItem',r_object = data,append = T)

  }



}


#' 自然堂电商科目及报表项目对照表
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_chando_acctRpt_select<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select * from t_mrpt_chando_acctRptItem")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-r
    names(res) <- c('科目代码',	'科目名称',	'报表项目代码',	'报表项目名称')
  }
  return(res)

}





#' 成本中心上传功能
#'
#' @param conn 连接
#' @param file_name 文件名
#' @param FYear 年月
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_costCenter_read()
mrpt_md_ui_costCenter_read<- function(conn=tsda::conn_rds('jlrds'),
                                       file_name ="data-raw/md/成本中心划分及渠道费用分配表模板.xlsx",
                                       FYear=2021,
                                       FPeriod = 6
) {
  data <- readxl::read_excel(file_name)
  ncount <- nrow(data)
  if(ncount >0){

     names(data) <- c('FcostCenter',
                      'FType',
                      'FChannel',
                      'FValue',
                      'FBrand2',
                      'FChannel2',
                      'FYear',
                      'FPeriod')
     data$FYear <- FYear
     data$FPeriod <-FPeriod
    #清空原来数据
    sql <- paste0("delete from  t_mrpt_costCenterRatio_sap
where FYear = ",FYear," and FPeriod =   ",FPeriod,"")
    tsda::sql_update(conn,sql)
    #上传新的数据
    tsda::db_writeTable(conn = conn,table_name = 't_mrpt_costCenterRatio_sap',r_object = data,append = T)

  }



}






#' 成本要素上传功能
#'
#' @param conn 连接
#' @param file_name 文件名
#' @param FYear 年月
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_costCenter_read()
mrpt_md_ui_costItem_read<- function(conn=tsda::conn_rds('jlrds'),
                                      file_name ="data-raw/md/成本要素模板.xlsx",
                                      FYear=2021,
                                      FPeriod = 6
) {
  data <- readxl::read_excel(file_name,col_types = c("text", "text", "text"))
  ncount <- nrow(data)
  if(ncount >0){

    names(data) <- c('FCostItemNumber',
                     'FCostItemName',
                     'FRptItemName')
    data$FYear <- FYear
    data$FPeriod <-FPeriod
    data <- data[,c('FCostItemName','FRptItemName','FYear','FPeriod','FCostItemNumber')]

    #清空原来数据
    sql <- paste0("delete from  t_mrpt_costItem_sap
where FYear = ",FYear," and FPeriod =   ",FPeriod,"")
    tsda::sql_update(conn,sql)
    #上传新的数据
    tsda::db_writeTable(conn = conn,table_name = 't_mrpt_costItem_sap',r_object = data,append = T)

  }



}


#' 检验相关数据的状态
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 期间
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_costItem_checkStatus()
mrpt_md_ui_costItem_checkStatus<- function(conn=tsda::conn_rds('jlrds'),

                                           FYear=2021,
                                           FPeriod = 9
) {
  sql <- paste0("select 1  from  t_mrpt_costItem_sap
where FYear = ",FYear," and FPeriod =   ",FPeriod,"")
  data = tsda::sql_select(conn,sql)
  ncount = nrow(data)
  if(ncount >0 ){
    res <- FALSE
  }else{
    res <- TRUE
  }
  return(res)


}



#' 成本要素同步上月数据至当前月
#'
#' @param conn 连接
#' @param FYear 年月
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_costItem_syncLastOne()
mrpt_md_ui_costItem_syncLastOne<- function(conn=tsda::conn_rds('jlrds'),

                                    FYear=2021,
                                    FPeriod = 9
) {

  #获取上期信息
  last_info = md_getLastYearPeriod(conn = conn,FYear = FYear,FPeriod = FPeriod)
  FYear_last = last_info[1]
  FPeriod_last =last_info[2]


    #清空原来数据
    sql <- paste0("delete from  t_mrpt_costItem_sap
where FYear = ",FYear," and FPeriod =   ",FPeriod,"")
    tsda::sql_update(conn,sql)
    #添加新的内容
    sql_ins <- paste0("insert into  t_mrpt_costItem_sap
    SELECT [FCostItemName]
      ,[FRptItemName]
      ,",FYear," as [FYear]
      , ",FPeriod," as [FPeriod]
      ,[FCostItemNumber]
  FROM  [t_mrpt_costItem_sap]
  where FYear = ",FYear_last," and FPeriod = ",FPeriod_last," ")
    tsda::sql_update(conn,sql_ins)







  }








#' 重分类
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_reClassify_select<- function(conn=tsda::conn_rds('jlrds')) {
  sql <- paste0("select  FreClassifiedCode,FreClassifiedDesc,FglAcctNumber,FCostItemName
from t_mrpt_rule_sap_reClassified")
  r <- tsda::sql_select(conn = conn,sql)
  ncount <- nrow(r)
  if(ncount>0){
    res <-r
    names(res) <- c('重分类代码',	'重分类描述',	'科目代码',	'科目名称')
  }
  return(res)

}

#' 重分类上传
#'
#' @param conn 连接
#' @param file_name 文件名
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_channel()
mrpt_md_reClassify_read<- function(conn=tsda::conn_rds('jlrds'),
                                   file_name = "data-raw/md/重分类及科目对照表.xlsx") {


  data <- readxl::read_excel(file_name)


  ncount <- nrow(data)
  if(ncount>0){
    sql_ins  <- paste0("insert into t_mrpt_rule_sap_reClassified_bak select  * from t_mrpt_rule_sap_reClassified")
    tsda::sql_update(conn = conn,sql_ins)
    sql_del <- paste0("delete from t_mrpt_rule_sap_reClassified")
    tsda::sql_update(conn = conn,sql_del)
    data <- data[,c('重分类代码',	'重分类描述',	'科目代码',	'科目名称')]
    data <- data[,c('重分类代码',		'科目代码',	'重分类描述','科目名称')]
    names(data) <- c('FreClassifiedCode',		'FglAcctNumber',	'FreClassifiedDesc','FCostItemName')
    tsda::db_writeTable(conn = conn,table_name = 't_mrpt_rule_sap_reClassified',r_object = data,append = T)
  }
  return(data)

}
takewiki/jlrdspkg documentation built on March 29, 2022, 3:17 a.m.