;csv: examples updates
[ci skip]
This commit is contained in:
		
							parent
							
								
									8b237cd4a0
								
							
						
					
					
						commit
						e2f6252874
					
				
							
								
								
									
										36
									
								
								examples/csv/amazon-orders.csv.rules
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								examples/csv/amazon-orders.csv.rules
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| # amazon-orders.csv.rules | ||||
| 
 | ||||
| # skip one header line | ||||
| skip 1 | ||||
| 
 | ||||
| # name the csv fields, and assign the transaction's date, amount and code. | ||||
| # Avoided the "status" and "amount" hledger field names to prevent confusion. | ||||
| fields date, _, toorfrom, name, amzstatus, amzamount, fees, code | ||||
| 
 | ||||
| # how to parse the date | ||||
| date-format %b %-d, %Y | ||||
| 
 | ||||
| # combine two fields to make the description | ||||
| description %toorfrom %name | ||||
| 
 | ||||
| # save the status as a tag | ||||
| comment     status:%amzstatus | ||||
| 
 | ||||
| # set the base account for all transactions | ||||
| account1    assets:amazon | ||||
| # leave amount1 blank so it can balance the other(s). | ||||
| # I'm assuming amzamount excludes the fees, don't remember | ||||
| 
 | ||||
| # set a generic account2 | ||||
| account2    expenses:misc | ||||
| amount2     %amzamount | ||||
| # and maybe refine it further: | ||||
| #include categorisation.rules | ||||
| 
 | ||||
| # add a third posting for fees, but only if they are non-zero. | ||||
| # Commas in the data makes counting fields hard, so count from the right instead. | ||||
| # (Regex translation: "a field containing a non-zero dollar amount,  | ||||
| # immediately before the 1 right-most fields") | ||||
| if ,\$[1-9][.0-9]+(,[^,]*){1}$ | ||||
|  account3    expenses:fees | ||||
|  amount3     %fees | ||||
| @ -1,31 +0,0 @@ | ||||
| # sample of CSV being converted | ||||
| # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID" | ||||
| # "Oct 28, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17AL58JSK6RPD4HDGLNJPQI1PB98NDKPVHL" | ||||
| #  1              2         3    4                5           6        7       8 | ||||
| 
 | ||||
| # skip the header line | ||||
| skip: 1 | ||||
| 
 | ||||
| # name the csv fields, and assign some of them as entry fields | ||||
| fields: date, type, toorfrom, name, status_, amount, fees, code | ||||
| 
 | ||||
| # parse the date | ||||
| date-format: %b %-d, %Y | ||||
| 
 | ||||
| # combine these fields as the description | ||||
| description: %toorfrom %name | ||||
| 
 | ||||
| # save these fields as tags | ||||
| comment:     status:%status_, fees:%fees | ||||
| 
 | ||||
| # flip the sign on the amount | ||||
| amount:      -%amount | ||||
| 
 | ||||
| # set the base account for all txns | ||||
| account1:    assets:personal:online:amazon | ||||
| 
 | ||||
| # set a more specific account2 for txns matching these patterns: | ||||
| 
 | ||||
| #if INTEREST PAYMENT | ||||
| # account2:  revenues:personal:interest | ||||
| 
 | ||||
| @ -1,20 +1,17 @@ | ||||
| # hledger csv conversion rules for bank of ireland | ||||
| 
 | ||||
| # sample of CSV being converted | ||||
| # Date,Details,Debit,Credit,Balance | ||||
| # 07/12/2012,LODGMENT       529898,,10.0,131.21 | ||||
| # 07/12/2012,PAYMENT,5,,126 | ||||
| # 1    2       3     4      5  | ||||
| # bankofireland-checking.csv.rules | ||||
| 
 | ||||
| # skip the header line | ||||
| skip | ||||
| 
 | ||||
| # name the csv fields, and assign some of them as journal entry fields | ||||
| fields  date, description, amount-out, amount-in, balance | ||||
| # Note: we generate balance assertions from the balance field here, | ||||
| # but you may sometimes need to remove these because: | ||||
| 
 | ||||
| # We generate balance assertions by assigning to "balance" | ||||
| # above, but you may sometimes need to remove these because: | ||||
| # | ||||
| # - the CSV balance differs from the true balance,  | ||||
| #   by up to 0.0000000000005 in my experience | ||||
| # | ||||
| # - it is sometimes calculated based on non-chronological ordering, | ||||
| #   eg when multiple transactions clear on the same day | ||||
| 
 | ||||
| @ -25,10 +22,4 @@ date-format  %d/%m/%Y | ||||
| currency  EUR | ||||
| 
 | ||||
| # set the base account for all txns | ||||
| account1  assets:personal:bank:bank of ireland:checking | ||||
| 
 | ||||
| # an alternative to using amount-in & amount-out: | ||||
| # use the (sign-flipped) third field by default, or if it's empty, the fourth | ||||
| # amount  -%3 | ||||
| # if ^[^,]*,[^,]*,, | ||||
| #  amount  %4 | ||||
| account1  assets:bank:boi:checking | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| # coinbase-common.rules | ||||
| # Common hledger CSV rules for coinbase per-account reports | ||||
| # (https://www.coinbase.com/reports, type: transaction history) | ||||
| # Sample: | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| # eternity.csv.rules | ||||
| # hledger CSV conversion rules for the Eternity iphone app's emailed time log report | ||||
| # cf http://hledger.org/MANUAL.html#convert | ||||
| 
 | ||||
| @ -7,6 +8,3 @@ date-format %-m/%-d/%y | ||||
| amount-field 3 | ||||
| account2-field 5 | ||||
| description-field %(4)%(5) - %(6) | ||||
| 
 | ||||
| .* | ||||
| expenses:personal:time | ||||
|  | ||||
| @ -1,52 +0,0 @@ | ||||
| # conversion rules for paypal CSV (pre-2018 format) | ||||
| # sample: | ||||
| #Date, Time, Time Zone, Name, Type, Status, Currency, Amount, Receipt ID, Balance,  | ||||
| #"7/20/2009","17:09:22","PDT","Skype","Preapproved Payment Sent","Completed","USD","-10.00","","0.00", | ||||
| 
 | ||||
| # skip the header line | ||||
| skip  1 | ||||
| 
 | ||||
| # name the csv fields, and assign some of them as entry fields | ||||
| fields  date, time, timezone, description, type, status_, currency, grossamount, feeamount, netamount, fromemail, toemail, code, counterpartystatus, etc | ||||
| 
 | ||||
| amount %netamount | ||||
| 
 | ||||
| #if In Progress | ||||
| # skip | ||||
| 
 | ||||
| # date is in US format | ||||
| date-format  %-m/%-d/%Y | ||||
| 
 | ||||
| # save some other fields as tags | ||||
| comment  type:%5, status:%6 | ||||
| 
 | ||||
| # set the base account for all txns | ||||
| account1  assets:personal:online:paypal | ||||
| 
 | ||||
| # conditional blocks | ||||
| 
 | ||||
| # "Update" txns are duplicates, mark them for manual cleanup | ||||
| if | ||||
| Update to  | ||||
|  account2     IGNORE | ||||
|  description  (DELETE) %4 | ||||
|  amount       0 | ||||
| 
 | ||||
| # replace USD currency symbol with $ | ||||
| # matches against the whole record, good enough | ||||
| if | ||||
| ,USD, | ||||
|  currency $ | ||||
| 
 | ||||
| # set a more specific account2 for txns matching these patterns: | ||||
| 
 | ||||
| if | ||||
| INTEREST PAYMENT | ||||
|  account2  revenues:personal:interest | ||||
| 
 | ||||
| if | ||||
| AVAAZ FOUNDATION | ||||
|  account2  expenses:personal:gifts:charity | ||||
| 
 | ||||
| include .common.rules | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user