R/mrpt02_sap_ui.R

Defines functions sap_res_ui_fromDB mrpt_md_ui_rptItem_read mrpt_md_ui_rptItem mrpt_ui_itemMapping_costRpt mrpt_ds_ui_sapData mrpt_md_ui_division_read name mrpt_md_ui_division mrpt_md_ui_costCenter_syncLastOne mrpt_md_ui_costCenter_checkStatus mrpt_md_ui_costCenter

Documented in mrpt_ds_ui_sapData mrpt_md_ui_costCenter mrpt_md_ui_costCenter_checkStatus mrpt_md_ui_costCenter_syncLastOne mrpt_md_ui_division mrpt_md_ui_division_read mrpt_md_ui_rptItem mrpt_md_ui_rptItem_read mrpt_ui_itemMapping_costRpt sap_res_ui_fromDB

#' 找到成本中心及渠道费用分配标准
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 月
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_costCenter()
mrpt_md_ui_costCenter <- function(conn=tsda::conn_rds('jlrds'),FYear =2021,FPeriod =5) {

sql <- paste0("select * from t_mrpt_costCenterRatio_sap
where FYear =  ",FYear," and FPeriod =  ",FPeriod)
r <- tsda::sql_select(conn,sql)
ncount <- nrow(r)
if (ncount >0){
  names(r) <- c('成本中心','类型','品牌渠道','分配值','品牌','渠道','年','月')
}
return(r)

}



#' 检验数据同步状态
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 月份
#'
#' @return 返回值,没有数据TRUE
#' @export
#'
#' @examples
#' mrpt_md_ui_costCenter_checkStatus()
mrpt_md_ui_costCenter_checkStatus <- function(conn=tsda::conn_rds('jlrds'),FYear =2021,FPeriod =9){
  sql <- paste0("select 1   from t_mrpt_costCenterRatio_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_costCenter_syncLastOne()
mrpt_md_ui_costCenter_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_del <- paste0("delete  from t_mrpt_costCenterRatio_sap   where FYear = ",FYear," and FPeriod = ",FPeriod)
  cat(sql_del)
  tsda::sql_update(conn,sql_del)
  #添加当期数据
  sql_ins <- paste0("insert into t_mrpt_costCenterRatio_sap
  select [FcostCenter]
      ,[FType]
      ,[FChannel]
      ,[FValue]
      ,[FBrand2]
      ,[FChannel2]
      ,",FYear," as [FYear]
      ,",FPeriod," as [FPeriod]
	  from t_mrpt_costCenterRatio_sap
where FYear = ",FYear_last," and FPeriod = ",FPeriod_last," ")
  cat(sql_ins)
  tsda::sql_update(conn,sql_ins)




}





#' 事业部定义表
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_division()
mrpt_md_ui_division <- function(conn=tsda::conn_rds('jlrds')) {

  sql <- paste0("select * from t_mrpt_division")
  r <- tsda::sql_select(conn,sql)
  ncount <- nrow(r)
  if (ncount >0){
    names(r) <- c('品牌','渠道','渠道类型','事业部类型','过滤方案','描述1','描述2','成本中心类型','财务伙伴','邮箱')
  }
  return(r)

}

name <- function(variables) {

}


#' 读取事业部定义表
#'
#' @param file_name 文件名
#' @param table_name 表名
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_division_read()
mrpt_md_ui_division_read <- function(file_name ="data-raw/md/事业部模板.xlsx",
                                     table_name = 't_mrpt_division',
                                     conn=tsda::conn_rds('jlrds')) {
  #library(readxl)
  #读取数据用于1.01
  data <- readxl::read_excel(file_name)
  col_selected <-c('品牌','渠道','渠道类型','事业部类型','过滤方案','描述1','描述2','成本中心类型','财务伙伴','财务邮箱')
  data <- data[,col_selected]
  col_sql <- tsda::db_getColName(conn = conn,table_name = table_name)
  names(data) <- col_sql
  #仅仅针对选择的数据
  ncount <- nrow(data)
  if(ncount >0){
    #备份数据
    sql_bak <- paste0("insert into t_mrpt_division_bak
select *  from t_mrpt_division
")
    tsda::sql_update(conn,sql_bak)
    #删除数据
    sql <- paste0("delete  from t_mrpt_division")
    tsda::sql_update(conn,sql)
    #重新写入数据
    tsda::db_writeTable(conn = conn,table_name = table_name,r_object = data,append = T)

  }
  #删除定

  return(data)

}



#' 读取SAP数据源信息
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_ds_ui_sapData()
mrpt_ds_ui_sapData <- function(conn=tsda::conn_rds('jlrds'),FYear =2021,FPeriod =5) {

  sql <- paste0("select * from t_mrpt_data_sap
where FYear =  ",FYear," and FPeriod =  ",FPeriod)
  r <- tsda::sql_select(conn,sql)
  ncount <- nrow(r)
  if (ncount >0){
    names(r) <- c('凭证日期','过账日期','成本中心代码','成本中心名称','成本要素代码','成本要素名称','金额','摘要','凭证号','年','月')
  }
  return(r)

}



#' 成本项目及报表项目对照表
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_ui_itemMapping_costRpt()
mrpt_ui_itemMapping_costRpt <- function(conn=tsda::conn_rds('jlrds'),FYear =2021,FPeriod =5) {

  sql <- paste0("select * from t_mrpt_costItem_sap
where FYear =  ",FYear," and FPeriod =  ",FPeriod)
  r <- tsda::sql_select(conn,sql)
  ncount <- nrow(r)
  if (ncount >0){
    names(r) <- c('成本要素','统一费用名称','年','月','科目代码')
  }
  return(r)

}






#' 报表项目表
#'
#' @param conn 连接
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_rptItem()
mrpt_md_ui_rptItem <- function(conn=tsda::conn_rds('jlrds')) {

  sql <- paste0("select * from t_mrpt_rptItem")
  r <- tsda::sql_select(conn,sql)
  ncount <- nrow(r)
  if (ncount >0){
    names(r) <- c('报表项目序号','报表项目名称','计算公式','渠道类型','费用统一名称')
  }
  return(r)

}


#' 上传报表项目表
#'
#' @param conn 连接
#' @param file_name 名称文件
#'
#' @return 返回值
#' @export
#'
#' @examples
#' mrpt_md_ui_rptItem()
mrpt_md_ui_rptItem_read <- function(conn=tsda::conn_rds('jlrds'),
                                    file_name = "data-raw/md/报表项目模板.xlsx") {

  #library(readxl)
  data <- readxl::read_excel(file_name)
  #View(data)

  sql_ins <- paste0("insert into  t_mrpt_rptItem_bak  select * from t_mrpt_rptItem")
   tsda::sql_update(conn,sql_ins)
   sql_del <- paste0("delete  from t_mrpt_rptItem")
   tsda::sql_update(conn,sql_del)

  ncount <- nrow(data)
  if (ncount >0){
    names(data) <- c('FRptItemNumber','FRptItemName','FFormula','FChannelType','FFeeName')
    tsda::db_writeTable(conn = conn,table_name = 't_mrpt_rptItem',r_object = data,append = T)
  }
  return(data)

}






#处理表--------
#' SAP处理结果表
#'
#' @param conn 连接
#' @param FBrand 品牌
#' @param FChannel 渠道
#' @param FYear 年份
#' @param FPeriod 月份
#'
#' @return 返回值
#' @export
#'
#' @examples
#' sap_res_ui_fromDB()
sap_res_ui_fromDB <-function(conn=tsda::conn_rds('jlrds'),
                             FBrand ='自然堂',
                             FChannel='商超',
                             FYear=2021,
                             FPeriod=5){
  sql <- paste0("select * from vw_mrpt_data_sap
where FBrand2 ='",FBrand,"' and FChannel2='",FChannel,"' and FYear= ",FYear," and FPeriod= ",FPeriod)
  res <- tsda::sql_select(conn,sql)
  ncount =nrow(res)
  if(ncount >0){
    names(res) <- c('年','月','成本中心代码','成本要素名称','凭证金额','报表项目名称','报表项目代码','成本中心类型',
                    '品牌','渠道','渠道费用比率','分配金额','凭证号')
  }
  return(res)


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