rock_books 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/LICENSE.txt +201 -21
  4. data/RELEASE_NOTES.md +16 -0
  5. data/lib/rock_books/cmd_line/command_line_interface.rb +18 -7
  6. data/lib/rock_books/documents/book_set.rb +14 -9
  7. data/lib/rock_books/documents/chart_of_accounts.rb +45 -30
  8. data/lib/rock_books/documents/journal.rb +45 -40
  9. data/lib/rock_books/reports/receipts_report.rb +23 -10
  10. data/lib/rock_books/reports/report_context.rb +1 -4
  11. data/lib/rock_books/reports/reporter.rb +1 -1
  12. data/lib/rock_books/reports/transaction_report.rb +4 -2
  13. data/lib/rock_books/version.rb +1 -1
  14. data/sample_data/minimal/rockbooks-reports/html/ck_hsbc_disb.html +40 -0
  15. data/sample_data/minimal/rockbooks-reports/html/index.html +271 -0
  16. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_accts_rec.html +27 -0
  17. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_bank_fees.html +27 -0
  18. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_books_refs.html +27 -0
  19. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc_hsbc_visa.html +74 -0
  20. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc_proc.html +27 -0
  21. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ck_hsbc.html +45 -0
  22. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_conf_fees.html +36 -0
  23. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cowork_fees.html +42 -0
  24. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_govt_fees.html +27 -0
  25. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_inet_fees.html +27 -0
  26. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_int_exp.html +27 -0
  27. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_loan_to_sh.html +47 -0
  28. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_meals_ent.html +27 -0
  29. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_misc_exp.html +27 -0
  30. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_mktng_exp.html +27 -0
  31. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_own_equity.html +35 -0
  32. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_prof_fees.html +27 -0
  33. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_repair_maint.html +27 -0
  34. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ret_earn.html +27 -0
  35. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ship_exp.html +27 -0
  36. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sls_cons.html +35 -0
  37. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sw_exp.html +27 -0
  38. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_airfare.html +35 -0
  39. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_autorent.html +27 -0
  40. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_gas_etc.html +27 -0
  41. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_govt.html +27 -0
  42. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_lodging.html +36 -0
  43. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_m_e.html +27 -0
  44. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_m_i.html +27 -0
  45. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_mileage.html +35 -0
  46. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_misc.html +27 -0
  47. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_parking.html +27 -0
  48. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_perdiem_mi.html +35 -0
  49. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_taxi.html +27 -0
  50. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_trainfare.html +27 -0
  51. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_unclass.html +27 -0
  52. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_acct.pdf +0 -0
  53. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_amount.pdf +0 -0
  54. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_date.pdf +0 -0
  55. data/sample_data/minimal/rockbooks-reports/pdf/balance_sheet.pdf +0 -0
  56. data/sample_data/minimal/rockbooks-reports/pdf/ck_hsbc_disb.pdf +0 -0
  57. data/sample_data/minimal/rockbooks-reports/pdf/general.pdf +0 -0
  58. data/sample_data/minimal/rockbooks-reports/pdf/hsbc_visa.pdf +0 -0
  59. data/sample_data/minimal/rockbooks-reports/pdf/income_statement.pdf +0 -0
  60. data/sample_data/minimal/rockbooks-reports/pdf/receipts.pdf +0 -0
  61. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_accts_rec.pdf +0 -0
  62. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_bank_fees.pdf +0 -0
  63. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_books_refs.pdf +0 -0
  64. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc_hsbc_visa.pdf +0 -0
  65. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc_proc.pdf +0 -0
  66. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ck_hsbc.pdf +0 -0
  67. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_conf_fees.pdf +0 -0
  68. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cowork_fees.pdf +0 -0
  69. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_govt_fees.pdf +0 -0
  70. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_inet_fees.pdf +0 -0
  71. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_insurance.pdf +0 -0
  72. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_int_exp.pdf +0 -0
  73. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_loan_to_sh.pdf +0 -0
  74. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_meals_ent.pdf +0 -0
  75. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_misc_exp.pdf +0 -0
  76. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_mktng_exp.pdf +0 -0
  77. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_own_equity.pdf +0 -0
  78. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_paypal.pdf +0 -0
  79. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_prof_fees.pdf +0 -0
  80. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_repair_maint.pdf +0 -0
  81. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ret_earn.pdf +0 -0
  82. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ship_exp.pdf +0 -0
  83. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sls_cons.pdf +0 -0
  84. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_supplies.pdf +0 -0
  85. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sw_exp.pdf +0 -0
  86. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_airfare.pdf +0 -0
  87. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_autorent.pdf +0 -0
  88. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_gas_etc.pdf +0 -0
  89. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_govt.pdf +0 -0
  90. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_lodging.pdf +0 -0
  91. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_m_e.pdf +0 -0
  92. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_m_i.pdf +0 -0
  93. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_mileage.pdf +0 -0
  94. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_misc.pdf +0 -0
  95. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_parking.pdf +0 -0
  96. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_perdiem_mi.pdf +0 -0
  97. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_taxi.pdf +0 -0
  98. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_trainfare.pdf +0 -0
  99. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_unclass.pdf +0 -0
  100. data/sample_data/minimal/rockbooks-reports/txt/ck_hsbc_disb.txt +24 -0
  101. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_accts_rec.txt +11 -0
  102. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_bank_fees.txt +11 -0
  103. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_books_refs.txt +11 -0
  104. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cc_hsbc_visa.txt +58 -0
  105. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cc_proc.txt +11 -0
  106. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ck_hsbc.txt +29 -0
  107. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_conf_fees.txt +20 -0
  108. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cowork_fees.txt +26 -0
  109. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_govt_fees.txt +11 -0
  110. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_inet_fees.txt +11 -0
  111. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_int_exp.txt +11 -0
  112. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_loan_to_sh.txt +31 -0
  113. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_meals_ent.txt +11 -0
  114. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_misc_exp.txt +11 -0
  115. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_mktng_exp.txt +11 -0
  116. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_own_equity.txt +19 -0
  117. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_prof_fees.txt +11 -0
  118. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_repair_maint.txt +11 -0
  119. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ret_earn.txt +11 -0
  120. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ship_exp.txt +11 -0
  121. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_sls_cons.txt +19 -0
  122. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_sw_exp.txt +11 -0
  123. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_airfare.txt +19 -0
  124. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_autorent.txt +11 -0
  125. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_gas_etc.txt +11 -0
  126. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_govt.txt +11 -0
  127. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_lodging.txt +20 -0
  128. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_m_e.txt +11 -0
  129. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_m_i.txt +11 -0
  130. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_mileage.txt +19 -0
  131. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_misc.txt +11 -0
  132. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_parking.txt +11 -0
  133. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_perdiem_mi.txt +19 -0
  134. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_taxi.txt +11 -0
  135. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_trainfare.txt +11 -0
  136. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_unclass.txt +11 -0
  137. metadata +115 -3
@@ -81,47 +81,52 @@ class Journal
81
81
 
82
82
 
83
83
  def parse_line(journal_entry_context)
84
- line = journal_entry_context.line
85
- case line.strip
86
- when /^@doc_type:/
87
- @doc_type = line.split(/^@doc_type:/).last.strip
88
- when /^@account_code:/
89
- @account_code = line.split(/^@account_code:/).last.strip
90
-
91
- unless chart_of_accounts.include?(@account_code)
92
- raise AccountNotFoundError.new(@account_code, journal_entry_context)
93
- end
94
-
95
- # if debit or credit has not yet been specified, inherit the setting from the account:
96
- unless @debit_or_credit
97
- @debit_or_credit = chart_of_accounts.debit_or_credit_for_code(@account_code)
98
- end
99
-
100
- when /^@title:/
101
- @title = line.split(/^@title:/).last.strip
102
- when /^@short_name:/
103
- @short_name = line.split(/^@short_name:/).last.strip
104
- when /^@date_prefix:/
105
- @date_prefix = line.split(/^@date_prefix:/).last.strip
106
- when /^@debit_or_credit:/
107
- data = line.split(/^@debit_or_credit:/).last.strip
108
- @debit_or_credit = data.to_sym
109
- when /^$/
110
- # ignore empty line
111
- when /^#/
112
- # ignore comment line
113
- when /^\d/ # a date/acct/amount line starting with a number
114
- entries << JournalEntryBuilder.new(journal_entry_context).build
115
- else # Text line(s) to be attached to the most recently parsed transaction
116
- unless entries.last
117
- raise Error.new("Entry for this description cannot be found: #{line}")
118
- end
119
- entries.last.description << line << "\n"
120
-
121
- if /^Receipt:/.match(line)
122
- receipt_spec = line.split(/^Receipt:/).last.strip
123
- entries.last.receipts << receipt_spec
84
+ begin
85
+ line = journal_entry_context.line
86
+ case line.strip
87
+ when /^@doc_type:/
88
+ @doc_type = line.split(/^@doc_type:/).last.strip
89
+ when /^@account_code:/
90
+ @account_code = line.split(/^@account_code:/).last.strip
91
+
92
+ unless chart_of_accounts.include?(@account_code)
93
+ raise AccountNotFoundError.new(@account_code, journal_entry_context)
94
+ end
95
+
96
+ # if debit or credit has not yet been specified, inherit the setting from the account:
97
+ unless @debit_or_credit
98
+ @debit_or_credit = chart_of_accounts.debit_or_credit_for_code(@account_code)
99
+ end
100
+
101
+ when /^@title:/
102
+ @title = line.split(/^@title:/).last.strip
103
+ when /^@short_name:/
104
+ @short_name = line.split(/^@short_name:/).last.strip
105
+ when /^@date_prefix:/
106
+ @date_prefix = line.split(/^@date_prefix:/).last.strip
107
+ when /^@debit_or_credit:/
108
+ data = line.split(/^@debit_or_credit:/).last.strip
109
+ @debit_or_credit = data.to_sym
110
+ when /^$/
111
+ # ignore empty line
112
+ when /^#/
113
+ # ignore comment line
114
+ when /^\d/ # a date/acct/amount line starting with a number
115
+ entries << JournalEntryBuilder.new(journal_entry_context).build
116
+ else # Text line(s) to be attached to the most recently parsed transaction
117
+ unless entries.last
118
+ raise Error.new("Entry for this description cannot be found: #{line}")
119
+ end
120
+ entries.last.description << line << "\n"
121
+
122
+ if /^Receipt:/.match(line)
123
+ receipt_spec = line.split(/^Receipt:/).last.strip
124
+ entries.last.receipts << receipt_spec
125
+ end
124
126
  end
127
+ rescue => e
128
+ puts "Error occurred parsing:\n#{journal_entry_context}\n\n"
129
+ raise
125
130
  end
126
131
  end
127
132
 
@@ -6,13 +6,14 @@ class ReceiptsReport
6
6
 
7
7
  include Reporter
8
8
 
9
- attr_reader :context, :missing, :existing
9
+ attr_reader :context, :missing, :existing, :unused
10
10
 
11
11
 
12
- def initialize(report_context, missing, existing)
12
+ def initialize(report_context, missing, existing, unused)
13
13
  @context = report_context
14
14
  @missing = missing
15
15
  @existing = existing
16
+ @unused = unused
16
17
  end
17
18
 
18
19
 
@@ -21,9 +22,6 @@ class ReceiptsReport
21
22
  lines << center(context.entity || 'Unspecified Entity')
22
23
  lines << "#{center("Receipts Report")}"
23
24
  lines << banner_line
24
- lines << ''
25
- lines << ''
26
- lines << ''
27
25
  lines.join("\n")
28
26
  end
29
27
 
@@ -39,15 +37,30 @@ class ReceiptsReport
39
37
  end
40
38
 
41
39
 
40
+ def report_one_section(name, list)
41
+ output = ''
42
+ output << "\n\n\n#{name} Receipts:\n\n" << column_headings
43
+ if list.empty?
44
+ output << "[None]\n\n\n"
45
+ else
46
+ list.each { |receipt| output << receipt_info_line(receipt) }
47
+ end
48
+ output
49
+ end
50
+
51
+
42
52
  def generate_report
43
53
  output = generate_header
54
+ output << report_one_section('Missing', missing)
44
55
 
45
- output << "Missing Receipts:\n\n" << column_headings
46
- missing.each { |info| output << receipt_info_line(info) }
47
-
48
- output << "\n\n\nExisting Receipts:\n\n" << column_headings
49
- existing.each { |info| output << receipt_info_line(info) }
56
+ output << "\n\n\nUnused Receipts:\n\n"
57
+ if unused.empty?
58
+ output << "[None]\n\n\n"
59
+ else
60
+ unused.each { |filespec| output << filespec << "\n" }
61
+ end
50
62
 
63
+ output << report_one_section('Existing', existing)
51
64
  output
52
65
  end
53
66
 
@@ -1,9 +1,6 @@
1
1
  module RockBooks
2
2
 
3
- class ReportContext < Struct.new(
4
- :chart_of_accounts,
5
- :journals,
6
- :page_width)
3
+ class ReportContext < Struct.new(:chart_of_accounts, :journals, :page_width)
7
4
 
8
5
  def entity
9
6
  chart_of_accounts.entity
@@ -95,7 +95,7 @@ module Reporter
95
95
  acct_amounts = entry.acct_amounts
96
96
 
97
97
  # "2017-10-29 hsbc_visa":
98
- output = entry.date.to_s << ' ' << (SHORT_NAME_FORMAT_STRING % entry.doc_short_name)
98
+ output = entry.date.to_s << ' ' << (SHORT_NAME_FORMAT_STRING % entry.doc_short_name) << ' '
99
99
 
100
100
  indent = ' ' * output.length
101
101
 
@@ -37,7 +37,7 @@ class TransactionReport
37
37
  def format_entry_first_acct_amount(entry)
38
38
  entry.date.to_s \
39
39
  << ' ' \
40
- << format_acct_amount(entry.acct_amounts.first) \
40
+ << format_acct_amount(entry.acct_amounts.last) \
41
41
  << "\n"
42
42
  end
43
43
 
@@ -89,7 +89,9 @@ class TransactionReport
89
89
  entries = entries.select { |entry| filter.(entry) }
90
90
  end
91
91
 
92
- entries.each { |entry| sio << format_entry(entry) << "\n" }
92
+ entries.each do |entry|
93
+ sio << format_entry(entry) << "\n"
94
+ end
93
95
  totals = AcctAmount.aggregate_amounts_by_account(JournalEntry.entries_acct_amounts(entries))
94
96
  sio << generate_and_format_totals('Totals', totals)
95
97
  sio.string
@@ -1,3 +1,3 @@
1
1
  module RockBooks
2
- VERSION = "0.2.1"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,40 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <meta http-equiv="Content-Style-Type" content="text/css">
6
+ <title></title>
7
+ <meta name="Generator" content="Cocoa HTML Writer">
8
+ <meta name="CocoaVersion" content="1671.2">
9
+ <style type="text/css">
10
+ p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px 'Courier New'}
11
+ p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px 'Courier New'; min-height: 16.0px}
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <p class="p1"><b>--------------------------------------------------------------------------------</b></p>
16
+ <p class="p1"><b><span class="Apple-converted-space">                              </span>XYZ Consulting, Inc.</b></p>
17
+ <p class="p1"><b><span class="Apple-converted-space">                   </span>HSBC Checking Disbursements Journal - 2018</b></p>
18
+ <p class="p1"><b><span class="Apple-converted-space">               </span>Transactions for Account #ck.hsbc -- HSBC Checking</b></p>
19
+ <p class="p1"><b>--------------------------------------------------------------------------------</b></p>
20
+ <p class="p2"><b></b><br></p>
21
+ <p class="p2"><b></b><br></p>
22
+ <p class="p1"><b>2018-01-01<span class="Apple-converted-space">    </span>5000.00<span class="Apple-converted-space">        </span>ck.hsbc<span class="Apple-converted-space">  </span>HSBC Checking</b></p>
23
+ <p class="p1"><b>Initial Deposit from Shareholder</b></p>
24
+ <p class="p2"><b></b><br></p>
25
+ <p class="p1"><b>2018-01-05 <span class="Apple-converted-space">  </span>-2000.00<span class="Apple-converted-space">        </span>ck.hsbc<span class="Apple-converted-space">  </span>HSBC Checking</b></p>
26
+ <p class="p2"><b></b><br></p>
27
+ <p class="p1"><b>2018-01-07 <span class="Apple-converted-space">  </span>10000.00<span class="Apple-converted-space">        </span>ck.hsbc<span class="Apple-converted-space">  </span>HSBC Checking</b></p>
28
+ <p class="p1"><b>Invoice #437, Dec. 2017 work, ABC, Inc.</b></p>
29
+ <p class="p2"><b></b><br></p>
30
+ <p class="p1"><b>Totals</b></p>
31
+ <p class="p1"><b>------</b></p>
32
+ <p class="p2"><b></b><br></p>
33
+ <p class="p1"><b><span class="Apple-converted-space">     </span>2000.00 <span class="Apple-converted-space">  </span>cc.hsbc.visa<span class="Apple-converted-space">    </span>Visa Credit Card</b></p>
34
+ <p class="p1"><b><span class="Apple-converted-space">    </span>13000.00 <span class="Apple-converted-space">  </span>ck.hsbc <span class="Apple-converted-space">        </span>HSBC Checking</b></p>
35
+ <p class="p1"><b><span class="Apple-converted-space">    </span>-5000.00 <span class="Apple-converted-space">  </span>own.equity<span class="Apple-converted-space">      </span>Owner's Equity</b></p>
36
+ <p class="p1"><b><span class="Apple-converted-space">   </span>-10000.00 <span class="Apple-converted-space">  </span>sls.cons<span class="Apple-converted-space">        </span>Sales - Consulting</b></p>
37
+ <p class="p1"><b>------------</b></p>
38
+ <p class="p1"><b><span class="Apple-converted-space">        </span>0.00</b></p>
39
+ </body>
40
+ </html>
@@ -0,0 +1,271 @@
1
+ <!DOCTYPE html>
2
+
3
+
4
+ <html>
5
+
6
+ <head>
7
+
8
+ <!--Bootstrap:-->
9
+ <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
10
+
11
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
12
+ <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
13
+
14
+ <style>
15
+ body {
16
+ padding: 18px;
17
+ background-color: #e7f7cd;
18
+ color: darkgreen;
19
+ }
20
+
21
+ h2 {
22
+ margin-top: 32px;
23
+ margin-bottom: 12px;
24
+ }
25
+
26
+ .this_page_style {
27
+ background-color: #e7f7cd;
28
+ color: darkgreen;
29
+ border: 0px;
30
+ }
31
+
32
+
33
+
34
+ </style>
35
+
36
+ </head>
37
+
38
+ <body>
39
+
40
+ <h1>XYZ Consulting, Inc.</h1>
41
+ <p class="muted">Reports Generated at 2019-03-04 12:09:49 by RockBooks version 0.2.1</p>
42
+
43
+
44
+ <h2>Financial Statements</h2>
45
+ <div id="financial-statements">
46
+ <a href='balance_sheet.html' class="btn btn-success">Balance Sheet</a>
47
+ <a href='income_statement.html' class="btn btn-success">Income Statement</a>
48
+ </div>
49
+
50
+
51
+ <h2>Supporting Documents</h2>
52
+ <div id="supporting-documents" style="display: inline ">
53
+
54
+
55
+ <a href=/Users/kbennett/work/rock_books/sample_data/minimal/receipts class="btn btn-success">Receipts</a>
56
+
57
+
58
+ </div>
59
+
60
+
61
+ <h2>All Transactions Reports</h2>
62
+ <div id="all-transactions">
63
+ <a href="all_txns_by_acct.html" class="btn btn-success">By Account</a>
64
+ <a href="all_txns_by_amount.html" class="btn btn-success">By Amount</a>
65
+ <a href="all_txns_by_date.html" class="btn btn-success">By Date</a>
66
+ </div>
67
+
68
+
69
+
70
+ <br /><br />
71
+ <div class="collapsible-heading">
72
+ <div class="container-fluid">
73
+ <div class="row">
74
+
75
+ <div class="col-sm2" style="margin-right: 12px;">
76
+ <a class="btn btn-success" data-toggle="collapse" href="#journal-reports" role="button" aria-expanded="false" aria-controls="collapseExample">
77
+ +/-
78
+ </a>
79
+ </div>
80
+
81
+ <div class="col-sm10">
82
+ <h2 style="margin: 0px;">Journal Reports</h2>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+
88
+
89
+ </div>
90
+ <div class="collapse" id="journal-reports">
91
+ <div class="card card-body this_page_style">
92
+ <ul>
93
+
94
+ <li><a href="ck.hsbc.disb.html" class="this_page_style" target="_blank">HSBC Checking Disbursements Journal - 2018 -- ck.hsbc.disb -- ck.hsbc</a></li>
95
+
96
+ <li><a href="hsbc_visa.html" class="this_page_style" target="_blank">HSBC Visa Journal - 2018 -- hsbc_visa -- cc.hsbc.visa</a></li>
97
+
98
+ <li><a href="general.html" class="this_page_style" target="_blank">General Journal - 2018 -- general -- </a></li>
99
+
100
+ </ul>
101
+ </div>
102
+ </div>
103
+
104
+
105
+ <br /><br />
106
+ <div class="collapsible-heading">
107
+ <div class="container-fluid">
108
+ <div class="row">
109
+
110
+ <div class="col-sm2" style="margin-right: 12px;">
111
+ <a class="btn btn-success" data-toggle="collapse" href="#individual-accounts" role="button" aria-expanded="false" aria-controls="collapseExample">
112
+ +/-
113
+ </a>
114
+ </div>
115
+
116
+ <div class="col-sm10">
117
+ <h2 style="margin: 0px;">Individual Accounts</h2>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+
123
+
124
+ <div class="collapse" id="individual-accounts">
125
+ <div class="card card-body this_page_style">
126
+ <ul>
127
+
128
+
129
+ <li><a href="single-account/acct_ck.hsbc.html" class="this_page_style">HSBC Checking (ck.hsbc)</a></li>
130
+
131
+ <li><a href="single-account/acct_paypal.html" class="this_page_style">Paypal (paypal)</a></li>
132
+
133
+ <li><a href="single-account/acct_accts.rec.html" class="this_page_style">Accounts Receivable (accts.rec)</a></li>
134
+
135
+ <li><a href="single-account/acct_cc.hsbc.visa.html" class="this_page_style">Visa Credit Card (cc.hsbc.visa)</a></li>
136
+
137
+ <li><a href="single-account/acct_loan.to.sh.html" class="this_page_style">Loan Payable to Shareholder (loan.to.sh)</a></li>
138
+
139
+ <li><a href="single-account/acct_own.equity.html" class="this_page_style">Owner's Equity (own.equity)</a></li>
140
+
141
+ <li><a href="single-account/acct_ret.earn.html" class="this_page_style">Retained Earnings (ret.earn)</a></li>
142
+
143
+ <li><a href="single-account/acct_sls.cons.html" class="this_page_style">Sales - Consulting (sls.cons)</a></li>
144
+
145
+ <li><a href="single-account/acct_bank.fees.html" class="this_page_style">Bank Charges (bank.fees)</a></li>
146
+
147
+ <li><a href="single-account/acct_books.refs.html" class="this_page_style">Books, Screencasts, References (books.refs)</a></li>
148
+
149
+ <li><a href="single-account/acct_conf.fees.html" class="this_page_style">Conference Fees (conf.fees)</a></li>
150
+
151
+ <li><a href="single-account/acct_cowork.fees.html" class="this_page_style">Coworking Fees (cowork.fees)</a></li>
152
+
153
+ <li><a href="single-account/acct_govt.fees.html" class="this_page_style">Government Fees (govt.fees)</a></li>
154
+
155
+ <li><a href="single-account/acct_inet.fees.html" class="this_page_style">Internet Service, Domain, and Hosting Fees (inet.fees)</a></li>
156
+
157
+ <li><a href="single-account/acct_insurance.html" class="this_page_style">Insurance (insurance)</a></li>
158
+
159
+ <li><a href="single-account/acct_int.exp.html" class="this_page_style">Interest Expense (int.exp)</a></li>
160
+
161
+ <li><a href="single-account/acct_mktng.exp.html" class="this_page_style">Marketing Expenses (mktng.exp)</a></li>
162
+
163
+ <li><a href="single-account/acct_meals.ent.html" class="this_page_style">Meals & Entertainment (meals.ent)</a></li>
164
+
165
+ <li><a href="single-account/acct_misc.exp.html" class="this_page_style">Miscellaneous Expenses (misc.exp)</a></li>
166
+
167
+ <li><a href="single-account/acct_prof.fees.html" class="this_page_style">Professional Fees (prof.fees)</a></li>
168
+
169
+ <li><a href="single-account/acct_repair.maint.html" class="this_page_style">Repair & Maintenance (repair.maint)</a></li>
170
+
171
+ <li><a href="single-account/acct_ship.exp.html" class="this_page_style">Shipping and Mailing Expenses (ship.exp)</a></li>
172
+
173
+ <li><a href="single-account/acct_sw.exp.html" class="this_page_style">Software Expense (sw.exp)</a></li>
174
+
175
+ <li><a href="single-account/acct_supplies.html" class="this_page_style">Supplies (supplies)</a></li>
176
+
177
+ <li><a href="single-account/acct_cc.proc.html" class="this_page_style">Credit Card Processing Fees (cc.proc)</a></li>
178
+
179
+ <li><a href="single-account/acct_tr.airfare.html" class="this_page_style">Travel - Air Fares (tr.airfare)</a></li>
180
+
181
+ <li><a href="single-account/acct_tr.autorent.html" class="this_page_style">Travel - Auto Rental (tr.autorent)</a></li>
182
+
183
+ <li><a href="single-account/acct_tr.gas.etc.html" class="this_page_style">Travel - Gas, Oil, Tolls, etc. (tr.gas.etc)</a></li>
184
+
185
+ <li><a href="single-account/acct_tr.govt.html" class="this_page_style">Travel - Government Fees (tr.govt)</a></li>
186
+
187
+ <li><a href="single-account/acct_tr.lodging.html" class="this_page_style">Travel - Lodging (tr.lodging)</a></li>
188
+
189
+ <li><a href="single-account/acct_tr.m.i.html" class="this_page_style">Travel - Meals & Incidentals (tr.m.i)</a></li>
190
+
191
+ <li><a href="single-account/acct_tr.mileage.html" class="this_page_style">Travel - Mileage Allowance (tr.mileage)</a></li>
192
+
193
+ <li><a href="single-account/acct_tr.misc.html" class="this_page_style">Travel - Miscellaneous (tr.misc)</a></li>
194
+
195
+ <li><a href="single-account/acct_tr.parking.html" class="this_page_style">Travel - Parking (tr.parking)</a></li>
196
+
197
+ <li><a href="single-account/acct_tr.perdiem.mi.html" class="this_page_style">Travel - Per Diem (Meals and Incidentals) (tr.perdiem.mi)</a></li>
198
+
199
+ <li><a href="single-account/acct_tr.taxi.html" class="this_page_style">Travel - Taxi (tr.taxi)</a></li>
200
+
201
+ <li><a href="single-account/acct_tr.trainfare.html" class="this_page_style">Travel - Train Fare (tr.trainfare)</a></li>
202
+
203
+ <li><a href="single-account/acct_tr.m.e.html" class="this_page_style">Meals and Entertainment (tr.m.e)</a></li>
204
+
205
+ <li><a href="single-account/acct_tr.unclass.html" class="this_page_style">Expenses Not Yet Classified (tr.unclass)</a></li>
206
+
207
+ </ul>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+
213
+ <br /><br />
214
+ <div class="collapsible-heading">
215
+ <div class="container-fluid">
216
+ <div class="row">
217
+
218
+ <div class="col-sm2" style="margin-right: 12px;">
219
+ <a class="btn btn-success" data-toggle="collapse" href="#other" role="button" aria-expanded="false" aria-controls="collapseExample">
220
+ +/-
221
+ </a>
222
+ </div>
223
+
224
+ <div class="col-sm10">
225
+ <h2 style="margin: 0px;">Other</h2>
226
+ </div>
227
+ </div>
228
+ </div>
229
+ </div>
230
+
231
+
232
+ <div class="collapse" id="other">
233
+ <div class="card card-body this_page_style">
234
+ <ul>
235
+
236
+ <li><a href="receipts.html" class="this_page_style">Missing and Existing Receipts</a></li>
237
+
238
+ </ul>
239
+ </div>
240
+ </div>
241
+
242
+ <br /><br />
243
+ <div class="collapsible-heading">
244
+ <div class="container-fluid">
245
+ <div class="row">
246
+
247
+ <div class="col-sm2" style="margin-right: 12px;">
248
+ <a class="btn btn-success" data-toggle="collapse" href="#other-formats" role="button" aria-expanded="false" aria-controls="collapseExample">
249
+ +/-
250
+ </a>
251
+ </div>
252
+
253
+ <div class="col-sm10">
254
+ <h2 style="margin: 0px;">Reports in PDF and Text Formats</h2>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ </div>
259
+
260
+
261
+ <div class="collapse" id="other-formats">
262
+ <div class="card card-body this_page_style">
263
+ <ul>
264
+ <li><a href="../pdf" class="this_page_style" target="_blank">PDF Format</a></li>
265
+ <li><a href="../txt" class="this_page_style" target="_blank">Text Format</a></li>
266
+ </ul>
267
+ </div>
268
+ </div>
269
+
270
+ </body>
271
+ </html>