#' 找到成本中心及渠道费用分配标准
#'
#' @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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.