R/record_sales.R

Defines functions record_sales

Documented in record_sales

#' Return a new value within plus of minus delta percent of the initial value, adjusting roundings based on the initial magnitude.
#' @param amount Numeric. Value of the sales.
#' @param date   Date. Date of the sale
#' @param vat    Numeric. Percentage of VAT (assumed included in the amount).
#' @param dso    Integer. Number of Days Sales Outstanding.
#' @return A dataframe with accounting entries for the transaction.
#' @export


record_sales <- function(amount,
                         date,
                         vat,
                         dso){
  
  revenues <- round(amount / (1 + vat),2)
  vatamt <- amount - revenues
  newdate <- date+dso
  
  sale <- data.frame(
    date    = c(date                 ,date      ,date         ,newdate,newdate),
    account = c("accounts_receivable","revenues","payable_vat","cash","accounts_receivable"),
    debit   = c(amount               ,NA        ,NA           ,amount,NA),
    credit  = c(NA                   ,revenues  ,vatamt       ,NA    ,amount)
  )
  
  return(sale)
}
NicolasJBM/simulacR documentation built on Dec. 25, 2019, 5:20 a.m.