Packaging #2
							
								
								
									
										2
									
								
								ledgerr/.Rbuildignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								ledgerr/.Rbuildignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					^.*\.Rproj$
 | 
				
			||||||
 | 
					^\.Rproj\.user$
 | 
				
			||||||
							
								
								
									
										3
									
								
								ledgerr/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ledgerr/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					.Rproj.user
 | 
				
			||||||
 | 
					.Rhistory
 | 
				
			||||||
 | 
					.RData
 | 
				
			||||||
							
								
								
									
										9
									
								
								ledgerr/DESCRIPTION
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ledgerr/DESCRIPTION
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					Package: ledgerr
 | 
				
			||||||
 | 
					Title: R Functions For Bookkeeping (one line, title case)
 | 
				
			||||||
 | 
					Version: 0.0.0.9000
 | 
				
			||||||
 | 
					Authors@R: person("Matt", "Burton-Kelly", email = "bedrocks@gmail.com", role = c("aut", "cre"))
 | 
				
			||||||
 | 
					Description: This package acts as a frontend for simple bookkeeping spreadsheets and provides functions for reports.
 | 
				
			||||||
 | 
					Depends: R (>= 3.2.4)
 | 
				
			||||||
 | 
					License: GNU Affero General Public License” version 3 (AGPL-3)
 | 
				
			||||||
 | 
					Encoding: UTF-8
 | 
				
			||||||
 | 
					LazyData: true
 | 
				
			||||||
							
								
								
									
										2
									
								
								ledgerr/NAMESPACE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								ledgerr/NAMESPACE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					# Generated by roxygen2: fake comment so roxygen2 overwrites silently.
 | 
				
			||||||
 | 
					exportPattern("^[^\\.]")
 | 
				
			||||||
							
								
								
									
										18
									
								
								ledgerr/R/net.R
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								ledgerr/R/net.R
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					net<-function(journ,
 | 
				
			||||||
 | 
					              classselect="all",
 | 
				
			||||||
 | 
					              accselect="all",
 | 
				
			||||||
 | 
					              dates="all"){
 | 
				
			||||||
 | 
					  if("all" %in% classselect) {
 | 
				
			||||||
 | 
					    classselect<-levels(journ$Class)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if("all" %in% accselect) {
 | 
				
			||||||
 | 
					    accselect<-levels(journ$Account)
 | 
				
			||||||
 | 
					  }  
 | 
				
			||||||
 | 
					  if("all" %in% dates) {
 | 
				
			||||||
 | 
					    dates<-c(min(journ$Date),max(journ$Date))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  net<-sum(journ$Credit[journ$Class %in% classselect & journ$Account %in% accselect & journ$Date>=dates[1] & journ$Date<=dates[2]],
 | 
				
			||||||
 | 
					           na.rm=T)-sum(journ$Debit[journ$Class %in% classselect & journ$Account %in% accselect & journ$Date>=dates[1] & journ$Date<=dates[2]],
 | 
				
			||||||
 | 
					                        na.rm=T)
 | 
				
			||||||
 | 
					  return(net)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										29
									
								
								ledgerr/R/net.acc.R
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								ledgerr/R/net.acc.R
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					net.acc<-function(journ,
 | 
				
			||||||
 | 
					                  classselect="all",
 | 
				
			||||||
 | 
					                  accselect="all",
 | 
				
			||||||
 | 
					                  dates="all",
 | 
				
			||||||
 | 
					                  total=F) {
 | 
				
			||||||
 | 
					  # List of classes - need to do this here before passing to net()
 | 
				
			||||||
 | 
					  if("all" %in% accselect) {
 | 
				
			||||||
 | 
					    accselect<-unique(journ$Account)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  # Set up data frame
 | 
				
			||||||
 | 
					  net.acc.out<-data.frame(Account=character(),
 | 
				
			||||||
 | 
					                          Net=numeric(),
 | 
				
			||||||
 | 
					                          stringsAsFactors=FALSE)
 | 
				
			||||||
 | 
					  # Loop through accounts, calculate net, and add to data frame
 | 
				
			||||||
 | 
					  for (i in 1:length(accselect)) {
 | 
				
			||||||
 | 
					    net.acc.out[i,] <- c(as.character(accselect[i]),
 | 
				
			||||||
 | 
					                         net(journ,
 | 
				
			||||||
 | 
					                             classselect=classselect,
 | 
				
			||||||
 | 
					                             accselect=accselect[i],
 | 
				
			||||||
 | 
					                             dates=dates))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  # Sort by account name
 | 
				
			||||||
 | 
					  net.acc.out<-net.acc.out[order(net.acc.out$Account) , ]
 | 
				
			||||||
 | 
					  # Add total net row
 | 
				
			||||||
 | 
					  if(total) {
 | 
				
			||||||
 | 
					    net.acc.out[nrow(net.acc.out)+1,]<-c("Total",net(journal))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return(net.acc.out)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								ledgerr/R/net.class.R
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								ledgerr/R/net.class.R
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					net.class<-function(journ,
 | 
				
			||||||
 | 
					                    classselect="all",
 | 
				
			||||||
 | 
					                    accselect="all",
 | 
				
			||||||
 | 
					                    dates="all",
 | 
				
			||||||
 | 
					                    total=F) {
 | 
				
			||||||
 | 
					  # List of classes
 | 
				
			||||||
 | 
					  if("all" %in% classselect) {
 | 
				
			||||||
 | 
					    classselect<-levels(journ$Class)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  # Set up data frame
 | 
				
			||||||
 | 
					  net.class.out<-data.frame(Class=character(),
 | 
				
			||||||
 | 
					                            Net=numeric(),
 | 
				
			||||||
 | 
					                            stringsAsFactors=FALSE)
 | 
				
			||||||
 | 
					  # Loop through classes, calculate net, and add to data frame
 | 
				
			||||||
 | 
					  for (i in 1:length(classselect)) {
 | 
				
			||||||
 | 
					    net.class.out[i,] <- c(classselect[i],
 | 
				
			||||||
 | 
					                           net(journ,
 | 
				
			||||||
 | 
					                               classselect=classselect[i],
 | 
				
			||||||
 | 
					                               accselect=accselect,
 | 
				
			||||||
 | 
					                               dates="all"))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  # Add total net row
 | 
				
			||||||
 | 
					  if(total) {
 | 
				
			||||||
 | 
					    net.class.out[nrow(net.class.out)+1,]<-c("Total",net(journal))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return(net.class.out)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								working.Rmd
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								working.Rmd
									
									
									
									
									
								
							@@ -36,24 +36,6 @@ journal$Debit<-as.numeric(sub(",","",journal$Debit))
 | 
				
			|||||||
journal$Credit<-as.numeric(sub(",","",journal$Credit))
 | 
					journal$Credit<-as.numeric(sub(",","",journal$Credit))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Temp function location
 | 
					## Temp function location
 | 
				
			||||||
# TODO https://github.com/mattbk/ledgerr/issues/1
 | 
					 | 
				
			||||||
########## net() function, takes journal, class name(s), and date range as arguments
 | 
					 | 
				
			||||||
net<-function(journ,classselect="all",accselect="all",dates="all"){
 | 
					 | 
				
			||||||
  if("all" %in% classselect) {
 | 
					 | 
				
			||||||
    classselect<-levels(journ$Class)
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  if("all" %in% accselect) {
 | 
					 | 
				
			||||||
    accselect<-levels(journ$Account)
 | 
					 | 
				
			||||||
  }  
 | 
					 | 
				
			||||||
  if("all" %in% dates) {
 | 
					 | 
				
			||||||
    dates<-c(min(journ$Date),max(journ$Date))
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  net<-sum(journ$Credit[journ$Class %in% classselect & journ$Account %in% accselect & journ$Date>=dates[1] & journ$Date<=dates[2]],
 | 
					 | 
				
			||||||
           na.rm=T)-sum(journ$Debit[journ$Class %in% classselect & journ$Account %in% accselect & journ$Date>=dates[1] & journ$Date<=dates[2]],
 | 
					 | 
				
			||||||
                        na.rm=T)
 | 
					 | 
				
			||||||
  return(net)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
##########
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
########## Net table by class
 | 
					########## Net table by class
 | 
				
			||||||
net.class<-function(journ,
 | 
					net.class<-function(journ,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user