rock_books 0.2.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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>