R/util.R

Defines functions md_check_not_exists md_getLastYearPeriod vect_to_string rpt_percent

Documented in md_check_not_exists md_getLastYearPeriod rpt_percent vect_to_string

#' 计算数值百分比
#'
#' @param value 数据
#' @param base 基数
#' @param digit 小数位数
#'
#' @return 返回值
#' @export
#'
#' @examples
#' rpt_percent()
rpt_percent <- function(value,base,digit=2) {
  ncount <- length(value)
  r <- lapply(1:ncount, function(i){
    print(i)
    print(base[i])

    if(is.na(base[i])){
      res <- 0
    }else{
      if(base[i] ==0){
        res <-0
      }else{
        res <- round((value[i] /(base[i] +0.1-0.1) -1)*100,digit)
      }

    }
  })
  res <- unlist(r)

}


#' 将向量转化为格式字符串
#'
#' @param vect 向量
#'
#' @return 返回值
#' @export
#'
#' @examples
#' vect_to_string()
vect_to_string <- function(vect=letters) {
  res <-paste("'",vect,"'",collapse = ',',sep = '')
  return(res)

}


#' 获取上一期信息
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 期间
#'
#' @return 返回值
#' @export
#'
#' @examples
#' md_getLastYearPeriod()
md_getLastYearPeriod <- function(conn=tsda::conn_rds('jlrds'),

                                 FYear =2021,
                                 FPeriod =8
) {
  sql <- paste0("SELECT  [Fyear] as FYear
      ,[Fmonth] as FPeriod

  FROM [t_md_period]
  where FmonthId in
  (  SELECT
      [FmonthId] -1
  FROM  [t_md_period]
  where Fyear = ",FYear," and Fmonth = ",FPeriod," )")
  data <- tsda::sql_select(conn,sql)
  ncount <- nrow(data)
  if(ncount >0){

    res = c(data$FYear[1],data$FPeriod[1])


  }else{
    res = c(2021,1)


  }
  return(res)

}


#' 判断基础资料是否存在
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 期间
#' @param table_name 表名
#'
#' @return 返回值
#' @export
#'
#' @examples
#' md_check_not_exists()
md_check_not_exists <- function(conn=tsda::conn_rds('jlrds'),

                                 FYear =2021,
                                 FPeriod =8,
                                 table_name = 't_mrpt_costCenterRatio_sap'
){

  sql <- paste0("select count(1) as FCount
from  ",table_name,"
where FYear =  ",FYear," and FPeriod = ",FPeriod," ")
  data  = tsda::sql_select(conn,sql)
  info = data$FCount
  if(info == 0 ){
    res = TRUE
  }else{
    res = FALSE
  }
  return(res)

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