invoice_bar 0.0.1

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 (436) hide show
  1. data/LICENSE +15 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/javascripts/invoice_bar/invoice_bar.js +98 -0
  5. data/app/assets/stylesheets/invoice_bar/document.css.scss +170 -0
  6. data/app/assets/stylesheets/invoice_bar/forms.css.scss +60 -0
  7. data/app/assets/stylesheets/invoice_bar/invoice_bar.css +10 -0
  8. data/app/assets/stylesheets/invoice_bar/tables.css.scss +14 -0
  9. data/app/controllers/invoice_bar/accounts_controller.rb +26 -0
  10. data/app/controllers/invoice_bar/application_controller.rb +59 -0
  11. data/app/controllers/invoice_bar/contacts_controller.rb +40 -0
  12. data/app/controllers/invoice_bar/currencies_controller.rb +29 -0
  13. data/app/controllers/invoice_bar/dashboard_controller.rb +11 -0
  14. data/app/controllers/invoice_bar/invoice_templates_controller.rb +108 -0
  15. data/app/controllers/invoice_bar/invoices_controller.rb +246 -0
  16. data/app/controllers/invoice_bar/receipt_templates_controller.rb +108 -0
  17. data/app/controllers/invoice_bar/receipts_controller.rb +164 -0
  18. data/app/controllers/invoice_bar/search_controller.rb +26 -0
  19. data/app/controllers/invoice_bar/sessions_controller.rb +35 -0
  20. data/app/controllers/invoice_bar/settings_controller.rb +12 -0
  21. data/app/controllers/invoice_bar/users_controller.rb +83 -0
  22. data/app/helpers/invoice_bar/invoice_bar_helper.rb +43 -0
  23. data/app/models/invoice_bar/account.rb +50 -0
  24. data/app/models/invoice_bar/address.rb +48 -0
  25. data/app/models/invoice_bar/contact.rb +32 -0
  26. data/app/models/invoice_bar/currency.rb +13 -0
  27. data/app/models/invoice_bar/invoice.rb +51 -0
  28. data/app/models/invoice_bar/invoice_template.rb +35 -0
  29. data/app/models/invoice_bar/item.rb +77 -0
  30. data/app/models/invoice_bar/receipt.rb +66 -0
  31. data/app/models/invoice_bar/receipt_template.rb +35 -0
  32. data/app/models/invoice_bar/user.rb +42 -0
  33. data/app/views/invoice_bar/accounts/_form.html.erb +25 -0
  34. data/app/views/invoice_bar/accounts/edit.html.erb +3 -0
  35. data/app/views/invoice_bar/accounts/index.html.erb +44 -0
  36. data/app/views/invoice_bar/accounts/new.html.erb +3 -0
  37. data/app/views/invoice_bar/accounts/show.html.erb +24 -0
  38. data/app/views/invoice_bar/contacts/_form.html.erb +44 -0
  39. data/app/views/invoice_bar/contacts/edit.html.erb +3 -0
  40. data/app/views/invoice_bar/contacts/index.html.erb +42 -0
  41. data/app/views/invoice_bar/contacts/new.html.erb +3 -0
  42. data/app/views/invoice_bar/contacts/show.html.erb +43 -0
  43. data/app/views/invoice_bar/currencies/_form.html.erb +16 -0
  44. data/app/views/invoice_bar/currencies/edit.html.erb +3 -0
  45. data/app/views/invoice_bar/currencies/index.html.erb +40 -0
  46. data/app/views/invoice_bar/currencies/new.html.erb +3 -0
  47. data/app/views/invoice_bar/currencies/show.html.erb +12 -0
  48. data/app/views/invoice_bar/documents/_show.html.erb +110 -0
  49. data/app/views/invoice_bar/forms/_address.html.erb +22 -0
  50. data/app/views/invoice_bar/forms/_address_fields.html.erb +22 -0
  51. data/app/views/invoice_bar/forms/_contact_main_fields.html.erb +23 -0
  52. data/app/views/invoice_bar/forms/_document.html.erb +131 -0
  53. data/app/views/invoice_bar/forms/_errors.html.erb +17 -0
  54. data/app/views/invoice_bar/forms/_filter.html.erb +33 -0
  55. data/app/views/invoice_bar/forms/_item_fields.html.erb +34 -0
  56. data/app/views/invoice_bar/forms/_items.html.erb +40 -0
  57. data/app/views/invoice_bar/forms/_payment_fields.html.erb +22 -0
  58. data/app/views/invoice_bar/invoice_templates/choose_template.html.erb +7 -0
  59. data/app/views/invoice_bar/invoice_templates/edit.html.erb +2 -0
  60. data/app/views/invoice_bar/invoice_templates/index.html.erb +51 -0
  61. data/app/views/invoice_bar/invoice_templates/new.html.erb +3 -0
  62. data/app/views/invoice_bar/invoice_templates/show.html.erb +1 -0
  63. data/app/views/invoice_bar/invoices/edit.html.erb +1 -0
  64. data/app/views/invoice_bar/invoices/index.html.erb +127 -0
  65. data/app/views/invoice_bar/invoices/new.html.erb +4 -0
  66. data/app/views/invoice_bar/invoices/show.html.erb +1 -0
  67. data/app/views/invoice_bar/invoices/show.pdf.prawn +128 -0
  68. data/app/views/invoice_bar/layouts/_head.html.erb +5 -0
  69. data/app/views/invoice_bar/layouts/_messages.html.erb +8 -0
  70. data/app/views/invoice_bar/layouts/_navbar.html.erb +40 -0
  71. data/app/views/invoice_bar/layouts/signed_in.html.erb +20 -0
  72. data/app/views/invoice_bar/layouts/signed_out.html.erb +29 -0
  73. data/app/views/invoice_bar/receipt_templates/choose_template.html.erb +7 -0
  74. data/app/views/invoice_bar/receipt_templates/edit.html.erb +1 -0
  75. data/app/views/invoice_bar/receipt_templates/index.html.erb +51 -0
  76. data/app/views/invoice_bar/receipt_templates/new.html.erb +3 -0
  77. data/app/views/invoice_bar/receipt_templates/show.html.erb +1 -0
  78. data/app/views/invoice_bar/receipts/edit.html.erb +1 -0
  79. data/app/views/invoice_bar/receipts/index.html.erb +82 -0
  80. data/app/views/invoice_bar/receipts/new.html.erb +4 -0
  81. data/app/views/invoice_bar/receipts/show.html.erb +1 -0
  82. data/app/views/invoice_bar/receipts/show.pdf.prawn +128 -0
  83. data/app/views/invoice_bar/search/index.html.erb +201 -0
  84. data/app/views/invoice_bar/sessions/new.html.erb +23 -0
  85. data/app/views/invoice_bar/settings/index.html.erb +42 -0
  86. data/app/views/invoice_bar/users/_form.html.erb +32 -0
  87. data/app/views/invoice_bar/users/edit.html.erb +1 -0
  88. data/app/views/invoice_bar/users/index.html.erb +46 -0
  89. data/app/views/invoice_bar/users/new.html.erb +1 -0
  90. data/app/views/invoice_bar/users/show.html.erb +0 -0
  91. data/app/views/invoice_bar/users/signup.html.erb +25 -0
  92. data/app/views/kaminari/_first_page.html.erb +3 -0
  93. data/app/views/kaminari/_gap.html.erb +3 -0
  94. data/app/views/kaminari/_last_page.html.erb +3 -0
  95. data/app/views/kaminari/_next_page.html.erb +3 -0
  96. data/app/views/kaminari/_page.html.erb +3 -0
  97. data/app/views/kaminari/_paginator.html.erb +17 -0
  98. data/app/views/kaminari/_prev_page.html.erb +3 -0
  99. data/config/database.yml +25 -0
  100. data/config/initializers/backtrace_silencers.rb +7 -0
  101. data/config/initializers/encoding.rb +3 -0
  102. data/config/initializers/inflections.rb +15 -0
  103. data/config/initializers/kaminari_config.rb +10 -0
  104. data/config/initializers/mime_types.rb +5 -0
  105. data/config/initializers/requires.rb +4 -0
  106. data/config/initializers/secret_token.rb +7 -0
  107. data/config/initializers/session_store.rb +8 -0
  108. data/config/initializers/sorcery.rb +401 -0
  109. data/config/initializers/wrap_parameters.rb +14 -0
  110. data/config/locales/cs.yml +424 -0
  111. data/config/routes.rb +50 -0
  112. data/db/migrate/20121012142346_create_invoice_bar_addresses.rb +16 -0
  113. data/db/migrate/20121012142357_create_invoice_bar_invoice_templates.rb +20 -0
  114. data/db/migrate/20121012142418_create_invoice_bar_invoices.rb +27 -0
  115. data/db/migrate/20121012142428_create_invoice_bar_accounts.rb +17 -0
  116. data/db/migrate/20121012142442_create_invoice_bar_items.rb +17 -0
  117. data/db/migrate/20121012142454_create_invoice_bar_currencies.rb +9 -0
  118. data/db/migrate/20121012142502_create_invoice_bar_contacts.rb +19 -0
  119. data/db/migrate/20121012144941_create_invoice_bar_users.rb +24 -0
  120. data/db/migrate/20121205185321_create_invoice_bar_receipts.rb +21 -0
  121. data/db/migrate/20121205185353_create_invoice_bar_receipt_templates.rb +18 -0
  122. data/db/seeds.rb +33 -0
  123. data/db/test.sqlite3 +0 -0
  124. data/lib/billable.rb +305 -0
  125. data/lib/invoice_bar/engine.rb +80 -0
  126. data/lib/invoice_bar/version.rb +5 -0
  127. data/lib/invoice_bar.rb +7 -0
  128. data/lib/searchable.rb +34 -0
  129. data/lib/tasks/invoicebar_tasks.rake +4 -0
  130. data/test/dummy/README.rdoc +261 -0
  131. data/test/dummy/Rakefile +7 -0
  132. data/test/dummy/app/assets/javascripts/application.js +15 -0
  133. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  134. data/test/dummy/app/controllers/application_controller.rb +3 -0
  135. data/test/dummy/app/helpers/application_helper.rb +2 -0
  136. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  137. data/test/dummy/config/application.rb +68 -0
  138. data/test/dummy/config/boot.rb +10 -0
  139. data/test/dummy/config/database.yml +25 -0
  140. data/test/dummy/config/environment.rb +5 -0
  141. data/test/dummy/config/environments/development.rb +37 -0
  142. data/test/dummy/config/environments/production.rb +67 -0
  143. data/test/dummy/config/environments/test.rb +37 -0
  144. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  145. data/test/dummy/config/initializers/inflections.rb +15 -0
  146. data/test/dummy/config/initializers/invoice_bar.rb +10 -0
  147. data/test/dummy/config/initializers/mime_types.rb +5 -0
  148. data/test/dummy/config/initializers/secret_token.rb +7 -0
  149. data/test/dummy/config/initializers/session_store.rb +8 -0
  150. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  151. data/test/dummy/config/routes.rb +3 -0
  152. data/test/dummy/config.ru +4 -0
  153. data/test/dummy/db/development.sqlite3 +0 -0
  154. data/test/dummy/db/production.sqlite3 +0 -0
  155. data/test/dummy/db/schema.rb +174 -0
  156. data/test/dummy/db/test.sqlite3 +0 -0
  157. data/test/dummy/log/development.log +549752 -0
  158. data/test/dummy/log/production.log +12 -0
  159. data/test/dummy/log/test.log +8610 -0
  160. data/test/dummy/public/404.html +26 -0
  161. data/test/dummy/public/422.html +26 -0
  162. data/test/dummy/public/500.html +25 -0
  163. data/test/dummy/public/favicon.ico +0 -0
  164. data/test/dummy/script/rails +6 -0
  165. data/test/dummy/tmp/cache/assets/BF2/9B0/sprockets%2F1649cd914028570da99e391611416461 +0 -0
  166. data/test/dummy/tmp/cache/assets/C11/6D0/sprockets%2F33531011fa6963571866f11d2c35313d +0 -0
  167. data/test/dummy/tmp/cache/assets/C13/000/sprockets%2F5357734603b21a0c32f75614f7067c31 +0 -0
  168. data/test/dummy/tmp/cache/assets/C34/BA0/sprockets%2F476d3ab21730a46162605402631fe23a +0 -0
  169. data/test/dummy/tmp/cache/assets/C4B/E90/sprockets%2F035a31410d4460e61989eeb25886c270 +0 -0
  170. data/test/dummy/tmp/cache/assets/C4E/B20/sprockets%2F7318bf12f2451e817f480b607c746332 +0 -0
  171. data/test/dummy/tmp/cache/assets/C57/D20/sprockets%2Ff88514480770419cd12db0649278b84a +0 -0
  172. data/test/dummy/tmp/cache/assets/C58/6A0/sprockets%2F353374217619061b5ce3969c7cd819b3 +0 -0
  173. data/test/dummy/tmp/cache/assets/C65/E00/sprockets%2F672e89378f0995592ad01994536ba60b +0 -0
  174. data/test/dummy/tmp/cache/assets/C6B/6E0/sprockets%2F3028ed1b448217ad51235f70e14814c0 +0 -0
  175. data/test/dummy/tmp/cache/assets/C6B/720/sprockets%2F371c30ee6af2d2121712842394d550b3 +0 -0
  176. data/test/dummy/tmp/cache/assets/C74/FF0/sprockets%2F2935380ab04cd59423316d55eb65b432 +0 -0
  177. data/test/dummy/tmp/cache/assets/C7E/450/sprockets%2F9cfb945244675bb31d32d80c18317822 +0 -0
  178. data/test/dummy/tmp/cache/assets/C89/6B0/sprockets%2F32372ed7818205654f9b4c6c0f398e41 +0 -0
  179. data/test/dummy/tmp/cache/assets/C8B/580/sprockets%2F643c9f08f9f01f35717241752c6d656b +0 -0
  180. data/test/dummy/tmp/cache/assets/C8D/D10/sprockets%2F637cba17049670418f4286ee7a3e8295 +0 -0
  181. data/test/dummy/tmp/cache/assets/C8E/6E0/sprockets%2Fc66d4743799007238128516ff08dfb6c +0 -0
  182. data/test/dummy/tmp/cache/assets/C93/450/sprockets%2Fe7ba340a2482428011300d2ee814f2b6 +0 -0
  183. data/test/dummy/tmp/cache/assets/C9A/F10/sprockets%2F70b1f5795498d49c48f11a58e094773f +0 -0
  184. data/test/dummy/tmp/cache/assets/CA2/E20/sprockets%2F8f0f457319183311b10ddc6e0337de41 +0 -0
  185. data/test/dummy/tmp/cache/assets/CA3/830/sprockets%2F9a9d172e93422b2192f1a5b80520a7c4 +0 -0
  186. data/test/dummy/tmp/cache/assets/CAD/870/sprockets%2Fa360887b06bad5328d1870349fae6126 +0 -0
  187. data/test/dummy/tmp/cache/assets/CB2/DE0/sprockets%2F639a912fd05bb9acb75624b343618558 +0 -0
  188. data/test/dummy/tmp/cache/assets/CB3/630/sprockets%2F501a45647fb70ab06d9d9566b9f11682 +0 -0
  189. data/test/dummy/tmp/cache/assets/CB9/620/sprockets%2F48651b5837773c5c3f3024e5b713f8ed +0 -0
  190. data/test/dummy/tmp/cache/assets/CBB/730/sprockets%2F93687f971b297d0d1e0a4721e5487c2d +0 -0
  191. data/test/dummy/tmp/cache/assets/CC0/4E0/sprockets%2F0a4620c09e33f12c747fbd798975788b +0 -0
  192. data/test/dummy/tmp/cache/assets/CC2/320/sprockets%2F6f4db22314397e4f29367682f7ad4b69 +0 -0
  193. data/test/dummy/tmp/cache/assets/CC3/3D0/sprockets%2F089add15d2a400824da7221e2b81d034 +0 -0
  194. data/test/dummy/tmp/cache/assets/CC7/C30/sprockets%2Fadb5bf6286f95889bb40657a27195638 +0 -0
  195. data/test/dummy/tmp/cache/assets/CCE/490/sprockets%2F07411fdbe680b6812f75ad74ca421060 +0 -0
  196. data/test/dummy/tmp/cache/assets/CD5/440/sprockets%2F4a93eaa36745c41235d49703bc1e2a94 +0 -0
  197. data/test/dummy/tmp/cache/assets/CD5/6A0/sprockets%2Fd8483c8cc949e29761ed8d26f9981821 +0 -0
  198. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  199. data/test/dummy/tmp/cache/assets/CD8/830/sprockets%2Ffd04d8117670102499a9cc26e03beb91 +0 -0
  200. data/test/dummy/tmp/cache/assets/CDA/7E0/sprockets%2F08273270e5ad4e8c40f032ae65f359a6 +0 -0
  201. data/test/dummy/tmp/cache/assets/CDB/4A0/sprockets%2F9ffe20f0f1056553046b042d4e752d8e +0 -0
  202. data/test/dummy/tmp/cache/assets/CDB/DD0/sprockets%2F77011cabd37795e415d3b39c27ac8532 +0 -0
  203. data/test/dummy/tmp/cache/assets/CDC/3B0/sprockets%2F7b0af18e9e71d15c3bb63853295016d4 +0 -0
  204. data/test/dummy/tmp/cache/assets/CDE/800/sprockets%2F416bd8cb992bd8c80b742034c4286a81 +0 -0
  205. data/test/dummy/tmp/cache/assets/CDF/B00/sprockets%2F3854abaa9035337b6ae850f481b69d81 +0 -0
  206. data/test/dummy/tmp/cache/assets/CE1/B50/sprockets%2F60b3d77c8e86d79212403cddca614934 +0 -0
  207. data/test/dummy/tmp/cache/assets/CE2/120/sprockets%2F46ae2947ec023073bbe827de1d615579 +0 -0
  208. data/test/dummy/tmp/cache/assets/CE2/610/sprockets%2F77999ce208b427f3d1cd786a01d0170d +0 -0
  209. data/test/dummy/tmp/cache/assets/CE4/D30/sprockets%2F3c72e61f887354ae35f015f9d4a06d17 +0 -0
  210. data/test/dummy/tmp/cache/assets/CE6/2C0/sprockets%2Fc1346d6629ff13645b4e2ce9c61a2893 +0 -0
  211. data/test/dummy/tmp/cache/assets/CE6/A90/sprockets%2F0d30a948c673d664a672e936f5b4a8d1 +0 -0
  212. data/test/dummy/tmp/cache/assets/CE9/850/sprockets%2Fc0201847da9589eebe5b28c66872b417 +0 -0
  213. data/test/dummy/tmp/cache/assets/CEA/9E0/sprockets%2Fdfedfb73194983c312432973ade78720 +0 -0
  214. data/test/dummy/tmp/cache/assets/CEE/D20/sprockets%2Fd2d3fcca91c5f7f325e1839984082592 +0 -0
  215. data/test/dummy/tmp/cache/assets/CF2/C90/sprockets%2F94a5468a372fd075ca78973f780c1fc6 +0 -0
  216. data/test/dummy/tmp/cache/assets/CF5/D40/sprockets%2F061b2b8dc611337ead0ae1630d9d6412 +0 -0
  217. data/test/dummy/tmp/cache/assets/CF8/310/sprockets%2F50b6e57b9678d674917d9d7ace69d022 +0 -0
  218. data/test/dummy/tmp/cache/assets/CF8/D30/sprockets%2Ff19cb0e8a30eb388c418d11240d152d0 +0 -0
  219. data/test/dummy/tmp/cache/assets/CFE/410/sprockets%2Fd9f0b12757bcfd24db130773b412314f +0 -0
  220. data/test/dummy/tmp/cache/assets/D00/F20/sprockets%2F8b4c51c2d4c103d0d6a468ac625c1658 +0 -0
  221. data/test/dummy/tmp/cache/assets/D02/010/sprockets%2F4569921d8d0226a3e2d57ad01620ecbe +0 -0
  222. data/test/dummy/tmp/cache/assets/D02/340/sprockets%2F1036c0439cb6b47c2c2fc1712b8e657b +0 -0
  223. data/test/dummy/tmp/cache/assets/D02/C00/sprockets%2F8ccbad1c51529c475316bb90801fe315 +0 -0
  224. data/test/dummy/tmp/cache/assets/D03/9C0/sprockets%2Fc96d3e1ca1315cab038596f20d0792f1 +0 -0
  225. data/test/dummy/tmp/cache/assets/D03/B20/sprockets%2F08d6902adcd450723918aeab800b159e +0 -0
  226. data/test/dummy/tmp/cache/assets/D04/BC0/sprockets%2F27be5fd4190e64c12116475ecc09c2c2 +0 -0
  227. data/test/dummy/tmp/cache/assets/D05/6B0/sprockets%2F51d171ec47d28c1d5722d2b86a0d1f65 +0 -0
  228. data/test/dummy/tmp/cache/assets/D06/E80/sprockets%2Fe62e39d519ee0a8131fae43440c153e5 +0 -0
  229. data/test/dummy/tmp/cache/assets/D09/F80/sprockets%2F0b34327edf1e11f0da567616d772c7e4 +0 -0
  230. data/test/dummy/tmp/cache/assets/D0A/B60/sprockets%2F42131e5fd69f30b0d08266afda8913e5 +0 -0
  231. data/test/dummy/tmp/cache/assets/D0F/390/sprockets%2F5132b836fb094301ff28a6be7dd16d77 +0 -0
  232. data/test/dummy/tmp/cache/assets/D0F/A70/sprockets%2F92ec90512978b6c597112bcaf1da29c3 +0 -0
  233. data/test/dummy/tmp/cache/assets/D0F/B20/sprockets%2Fa0a35bd579e7223e80e1a749e7f2a734 +0 -0
  234. data/test/dummy/tmp/cache/assets/D12/4C0/sprockets%2F88cb06f8a7fb491631fa0093781cd05f +0 -0
  235. data/test/dummy/tmp/cache/assets/D19/3F0/sprockets%2F5de5ba4c867332253b5098d0d1f9ef68 +0 -0
  236. data/test/dummy/tmp/cache/assets/D1A/990/sprockets%2F08909075dd6adc239945db46e13e3fb9 +0 -0
  237. data/test/dummy/tmp/cache/assets/D1C/C80/sprockets%2F4fa92f7c8915da6aa468ed76560953b0 +0 -0
  238. data/test/dummy/tmp/cache/assets/D1D/3F0/sprockets%2F97be6327d4928ac25347c4cc773e66da +0 -0
  239. data/test/dummy/tmp/cache/assets/D1E/230/sprockets%2Ff4317e07329a7c47de1c83f63e8f6a84 +0 -0
  240. data/test/dummy/tmp/cache/assets/D21/190/sprockets%2Fe4c9d0a614ae75783a09fc7e952d7198 +0 -0
  241. data/test/dummy/tmp/cache/assets/D23/290/sprockets%2F1d514a434ff003bf9c55a23a408bc5a1 +0 -0
  242. data/test/dummy/tmp/cache/assets/D23/F40/sprockets%2Fd7a8df989fa0b8678a833877b220e0b7 +0 -0
  243. data/test/dummy/tmp/cache/assets/D24/1D0/sprockets%2F88354bcfd9280ced1df9853346b9c294 +0 -0
  244. data/test/dummy/tmp/cache/assets/D25/040/sprockets%2F3eb1238aefc0b348a7218c93ae001b06 +0 -0
  245. data/test/dummy/tmp/cache/assets/D2D/3E0/sprockets%2F98fc4b59de5e8d96ae5746480a2e9129 +0 -0
  246. data/test/dummy/tmp/cache/assets/D2E/310/sprockets%2F26abc5030ac50e298349385e5dbaa5d0 +0 -0
  247. data/test/dummy/tmp/cache/assets/D30/1A0/sprockets%2Fa1d4848a05a94bf03d1cb69451e0e32e +0 -0
  248. data/test/dummy/tmp/cache/assets/D31/0D0/sprockets%2F8e968fb5539c735f9e65a2c338990ebe +0 -0
  249. data/test/dummy/tmp/cache/assets/D32/3E0/sprockets%2F51d82b9d10a1f278193ae09b2e6cc14c +0 -0
  250. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  251. data/test/dummy/tmp/cache/assets/D33/120/sprockets%2F41ac728e4d2c9fc115030eb2fa94455d +0 -0
  252. data/test/dummy/tmp/cache/assets/D33/EE0/sprockets%2F285d50fab811d6aab44360b43b358ee8 +0 -0
  253. data/test/dummy/tmp/cache/assets/D36/4F0/sprockets%2F6a5e6e2e8a23e1c5e7359e4018ba1a16 +0 -0
  254. data/test/dummy/tmp/cache/assets/D37/6B0/sprockets%2Ffb4b7383d900b9103ee4eeb16a49156a +0 -0
  255. data/test/dummy/tmp/cache/assets/D38/4B0/sprockets%2F4628f5361aa685f70bdbc0efb715c702 +0 -0
  256. data/test/dummy/tmp/cache/assets/D39/180/sprockets%2Fb6a2dcb4f4b6904a6e5f5a5b38572324 +0 -0
  257. data/test/dummy/tmp/cache/assets/D39/E50/sprockets%2F1e19909eba7771baae63c28571d213dc +0 -0
  258. data/test/dummy/tmp/cache/assets/D3A/220/sprockets%2F4ba28941ec4418b83a3e08f5e4b3f22e +0 -0
  259. data/test/dummy/tmp/cache/assets/D3D/0C0/sprockets%2F5f4828a143b7a17c86ad173af45ea44f +0 -0
  260. data/test/dummy/tmp/cache/assets/D3E/D80/sprockets%2F26a353f794ccad1723ad26d564963dae +0 -0
  261. data/test/dummy/tmp/cache/assets/D3F/EE0/sprockets%2F4d4955da738ce18fcb5d5c254c20471d +0 -0
  262. data/test/dummy/tmp/cache/assets/D40/C00/sprockets%2Fafe2733518c27c73f2d19f27edc5c063 +0 -0
  263. data/test/dummy/tmp/cache/assets/D42/790/sprockets%2F54ebab76bb0c774f441f24a9b049a699 +0 -0
  264. data/test/dummy/tmp/cache/assets/D49/080/sprockets%2F47eee138813998c77fb4d63aea0a83b2 +0 -0
  265. data/test/dummy/tmp/cache/assets/D4A/F80/sprockets%2F573908d07c7e4a37eb475c916f44eaeb +0 -0
  266. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  267. data/test/dummy/tmp/cache/assets/D4F/950/sprockets%2Ffe8890753c95311541bfee8ec93bf6a3 +0 -0
  268. data/test/dummy/tmp/cache/assets/D50/660/sprockets%2F8934155ef2c7db6ff48de8d6a572b352 +0 -0
  269. data/test/dummy/tmp/cache/assets/D50/990/sprockets%2F2f7692187d5d687fd78bcbdd44583a0a +0 -0
  270. data/test/dummy/tmp/cache/assets/D52/BE0/sprockets%2F95f7169a509d1fe46b4b8b7f0d9b9d25 +0 -0
  271. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  272. data/test/dummy/tmp/cache/assets/D5B/270/sprockets%2Fd7121a8e796ab4de09bb1d140a03bd38 +0 -0
  273. data/test/dummy/tmp/cache/assets/D5B/B80/sprockets%2F420c9ca8933da2c7ac42af560ba80a72 +0 -0
  274. data/test/dummy/tmp/cache/assets/D5E/9A0/sprockets%2Fcbae55800082a9de23b02dc0f7416c7f +0 -0
  275. data/test/dummy/tmp/cache/assets/D60/890/sprockets%2Fa63fc11056490cd0ad51c725eea3cd87 +0 -0
  276. data/test/dummy/tmp/cache/assets/D60/F10/sprockets%2F251e00aea88ff5a6c41ed112283f1ef4 +0 -0
  277. data/test/dummy/tmp/cache/assets/D61/310/sprockets%2Ff9192502dcd75958872e1edf6cd8e89e +0 -0
  278. data/test/dummy/tmp/cache/assets/D62/480/sprockets%2Feb89e74e65edfd75c4048038f7e4897c +0 -0
  279. data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2Fcca470eef56334f9ee3600394ca06a0c +0 -0
  280. data/test/dummy/tmp/cache/assets/D64/800/sprockets%2F8be19b06af6bb950af657a2a500c459a +0 -0
  281. data/test/dummy/tmp/cache/assets/D66/EC0/sprockets%2F5b533bbfba939b541a49cd9fb302364b +0 -0
  282. data/test/dummy/tmp/cache/assets/D67/CC0/sprockets%2Fd6be1951f1e10b034d95fc7e317ade62 +0 -0
  283. data/test/dummy/tmp/cache/assets/D69/ED0/sprockets%2F8573a0c480d82a6de7d4431cec53ecb4 +0 -0
  284. data/test/dummy/tmp/cache/assets/D6D/310/sprockets%2F9accebd1400d2d65bc13881889ea5e54 +0 -0
  285. data/test/dummy/tmp/cache/assets/D70/E30/sprockets%2Fdb69f2e4f8e94a52181602e81b7dda1c +0 -0
  286. data/test/dummy/tmp/cache/assets/D71/270/sprockets%2F87be1f988bb5dec8ad602202d66e61d1 +0 -0
  287. data/test/dummy/tmp/cache/assets/D71/DD0/sprockets%2Fdb33de95e82ca2e939a7a1173cd19a57 +0 -0
  288. data/test/dummy/tmp/cache/assets/D73/850/sprockets%2F1e6628b9b7568f1c549eeaaf5a101f4d +0 -0
  289. data/test/dummy/tmp/cache/assets/D74/350/sprockets%2F2a7fa3c361bcd65892a8d8cc4c7772d3 +0 -0
  290. data/test/dummy/tmp/cache/assets/D76/8E0/sprockets%2F5af05ee642ef7c6c480c59d2683c05cf +0 -0
  291. data/test/dummy/tmp/cache/assets/D79/530/sprockets%2F87127ee1c6bcf4b91d8e5f2eda951842 +0 -0
  292. data/test/dummy/tmp/cache/assets/D7E/7D0/sprockets%2F44be519f93759ef9d6faa21a8e532b7c +0 -0
  293. data/test/dummy/tmp/cache/assets/D7E/B50/sprockets%2Fd1d6bc2c8e90a69086a3fdd51d49e779 +0 -0
  294. data/test/dummy/tmp/cache/assets/D81/2E0/sprockets%2F0d2d4106bae377afa11cfc40ba8f6222 +0 -0
  295. data/test/dummy/tmp/cache/assets/D81/BE0/sprockets%2Fd17fbca0deb79f1d5fb200b13158010c +0 -0
  296. data/test/dummy/tmp/cache/assets/D82/950/sprockets%2F1f8a65498915f9fbdf8b2da74db800d8 +0 -0
  297. data/test/dummy/tmp/cache/assets/D87/2B0/sprockets%2Ffaf16963d8b856b046a1a96fef6d898b +0 -0
  298. data/test/dummy/tmp/cache/assets/D8A/CA0/sprockets%2F63b0ad83380a8b15a52c34cafe5c2de3 +0 -0
  299. data/test/dummy/tmp/cache/assets/D94/470/sprockets%2F3bf12b0f588dafba93c72a8ae1d20719 +0 -0
  300. data/test/dummy/tmp/cache/assets/D95/FB0/sprockets%2F7c5d5a248061ab4c0db3935cc39ff0fc +0 -0
  301. data/test/dummy/tmp/cache/assets/D97/2B0/sprockets%2Fd1ddf0ff80e01a73c31b2ced62877a94 +0 -0
  302. data/test/dummy/tmp/cache/assets/D98/0E0/sprockets%2F8f1dba887ccd80e10b70c026a3ce498b +0 -0
  303. data/test/dummy/tmp/cache/assets/D99/730/sprockets%2F6f1142f8fa2beb906b4a9ccd8e03a546 +0 -0
  304. data/test/dummy/tmp/cache/assets/D99/B70/sprockets%2F3330226a3ee4588f0e6c083dcbcef6fa +0 -0
  305. data/test/dummy/tmp/cache/assets/D99/D60/sprockets%2Fa5a6f50cb869da7b5d4170b7b2d7e2a6 +0 -0
  306. data/test/dummy/tmp/cache/assets/D9E/1F0/sprockets%2Fb51430da8d69a96e5689aafa8c0ac71b +0 -0
  307. data/test/dummy/tmp/cache/assets/D9E/460/sprockets%2F717a54dade795a66c2f6daea7c325a80 +0 -0
  308. data/test/dummy/tmp/cache/assets/DA1/6E0/sprockets%2F8ad3ca6d1c8f263b9cedad086e598122 +0 -0
  309. data/test/dummy/tmp/cache/assets/DA3/3E0/sprockets%2F37a6f8767ca6016b823aaccee078c8bf +0 -0
  310. data/test/dummy/tmp/cache/assets/DA4/640/sprockets%2F758aa928cedd052eb72b6c4d7dc438b6 +0 -0
  311. data/test/dummy/tmp/cache/assets/DA6/BD0/sprockets%2Ff7c34df9d6167bc3a49b90f74bd82a2c +0 -0
  312. data/test/dummy/tmp/cache/assets/DA9/280/sprockets%2Fc3386f232e36f9522dff1af8eb7d4e4d +0 -0
  313. data/test/dummy/tmp/cache/assets/DA9/BA0/sprockets%2F67d5749f62dd1a31ea998fdfc2b2e6c0 +0 -0
  314. data/test/dummy/tmp/cache/assets/DB0/610/sprockets%2F27f0e95fc9f245cfe45afd4d1f362a99 +0 -0
  315. data/test/dummy/tmp/cache/assets/DB1/AE0/sprockets%2Fbcf7eefe90b850e5b45267f2691c8ee5 +0 -0
  316. data/test/dummy/tmp/cache/assets/DB1/CC0/sprockets%2F449b63a2ccce6c96ca656fe56f4f29b8 +0 -0
  317. data/test/dummy/tmp/cache/assets/DB6/8D0/sprockets%2F99b8bcd8e7ac9e932a271c13e98fee45 +0 -0
  318. data/test/dummy/tmp/cache/assets/DBD/470/sprockets%2F449cee166e97d8dd62dcf38dc48f47c6 +0 -0
  319. data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Fade0348f1f4f6d204cf07c256ccd33fa +0 -0
  320. data/test/dummy/tmp/cache/assets/DC5/510/sprockets%2Fddbe0b0bccf8028b03ef7993c5af8320 +0 -0
  321. data/test/dummy/tmp/cache/assets/DC6/880/sprockets%2F95ecea645241bc5c7263fbaf5bf3f2b0 +0 -0
  322. data/test/dummy/tmp/cache/assets/DC6/CD0/sprockets%2F2faab17861cdba1eb9e317d38a76da64 +0 -0
  323. data/test/dummy/tmp/cache/assets/DCA/B50/sprockets%2Fd3d82ca385d97142b4e57c7dca6fca0a +0 -0
  324. data/test/dummy/tmp/cache/assets/DCE/020/sprockets%2F6ce5583d1ef1afd8d72012c6dc9a4f4c +0 -0
  325. data/test/dummy/tmp/cache/assets/DCE/EA0/sprockets%2F8119567d3d979c4b91fea2b2bcaaefb0 +0 -0
  326. data/test/dummy/tmp/cache/assets/DD0/7F0/sprockets%2Fef2fa8f93ebd90602b488eaf3a0e554a +0 -0
  327. data/test/dummy/tmp/cache/assets/DD3/850/sprockets%2F3f0d25d896ebcb795fbcac0f45d874b0 +0 -0
  328. data/test/dummy/tmp/cache/assets/DDB/8C0/sprockets%2F837f7b8e8f33dbae4de34ba908bd328f +0 -0
  329. data/test/dummy/tmp/cache/assets/DDB/DA0/sprockets%2F3f6a3c8e4688abce408f6caf5b8dd653 +0 -0
  330. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  331. data/test/dummy/tmp/cache/assets/DDD/1E0/sprockets%2F596348d03c6fbcd9ac02fb9dbde6c878 +0 -0
  332. data/test/dummy/tmp/cache/assets/DE5/B70/sprockets%2Fc77a5e9b5e4f9fd02af4c1ed88d69d73 +0 -0
  333. data/test/dummy/tmp/cache/assets/DF0/CF0/sprockets%2F644ea5f42501f70e1a3daffaa5b9d1fd +0 -0
  334. data/test/dummy/tmp/cache/assets/DF2/260/sprockets%2F35c0090f47903a5efee65ac30cddccaf +0 -0
  335. data/test/dummy/tmp/cache/assets/DF5/5F0/sprockets%2F7f6b1930adca83a531ddbaa53ad76ee9 +0 -0
  336. data/test/dummy/tmp/cache/assets/DF6/390/sprockets%2Fa1c2e7c32b51dbfb4e5cb62f9f43a7a9 +0 -0
  337. data/test/dummy/tmp/cache/assets/DF8/B40/sprockets%2F037ccfb8fa7231bfa7ffbc59d070c3d4 +0 -0
  338. data/test/dummy/tmp/cache/assets/DFB/F00/sprockets%2F010dfb576ac2abb5d9d8ee5a9f6d328a +0 -0
  339. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  340. data/test/dummy/tmp/cache/assets/E05/460/sprockets%2Fefc998afbc280b66df981c0ea0ea29c4 +0 -0
  341. data/test/dummy/tmp/cache/assets/E13/660/sprockets%2F1307359c773fdc80cdee9cf87efdd6fa +0 -0
  342. data/test/dummy/tmp/cache/assets/E1B/2A0/sprockets%2F6a86e3ac6f50aadb84ef5a3600adbc1d +0 -0
  343. data/test/dummy/tmp/cache/assets/E1B/B40/sprockets%2Fff174762b8bfd6df1fd9ad6fed18896d +0 -0
  344. data/test/dummy/tmp/cache/assets/E1E/220/sprockets%2F2c2fccd808a30aff0b21fac944dc6c7c +0 -0
  345. data/test/dummy/tmp/cache/assets/E21/3B0/sprockets%2Fabaa5df24f3535acc9cdfd56b0e0b349 +0 -0
  346. data/test/dummy/tmp/cache/assets/E32/120/sprockets%2F13ebfca6482f8e2fec5eface39805b2d +0 -0
  347. data/test/dummy/tmp/cache/assets/E32/1B0/sprockets%2F8539ffcc451cffbed1e1c8f09fa5a1c5 +0 -0
  348. data/test/dummy/tmp/cache/assets/E34/E20/sprockets%2F1a542cad56953aff56cbfbf337fcf9af +0 -0
  349. data/test/dummy/tmp/cache/assets/E3B/040/sprockets%2Fb8f87d0eb5a059cec709bdff6f7bfc15 +0 -0
  350. data/test/dummy/tmp/cache/assets/E5B/6A0/sprockets%2Fe58ffacd2cad19c5f5bda5b91f4620bf +0 -0
  351. data/test/dummy/tmp/cache/assets/E5C/840/sprockets%2Fcbfdfc7aeac880cc161f9fa61af654c3 +0 -0
  352. data/test/dummy/tmp/cache/assets/E68/250/sprockets%2F88d5fa5be6cb9d7e540bad6e94bdd8aa +0 -0
  353. data/test/dummy/tmp/cache/assets/E6F/F60/sprockets%2Fcf91796bdc66abbcde70ce9fcf47a76d +0 -0
  354. data/test/dummy/tmp/cache/assets/E7D/DA0/sprockets%2F3a4ceceac3e02f2a7b82dcf3f25ea7ad +0 -0
  355. data/test/dummy/tmp/cache/assets/E81/0E0/sprockets%2Fcc36d9cdd3fc1c5a8d1b54ccfadad352 +0 -0
  356. data/test/dummy/tmp/cache/assets/EBE/170/sprockets%2Fa7a17e1d2fe6fb6d5e368cfeddfae1ca +0 -0
  357. data/test/dummy/tmp/cache/assets/EED/8B0/sprockets%2F2c35ce7baabe8d64cceace7cb95bfd9a +0 -0
  358. data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/document.css.scssc +0 -0
  359. data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/forms.css.scssc +0 -0
  360. data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/tables.css.scssc +0 -0
  361. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_accordion.scssc +0 -0
  362. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_alerts.scssc +0 -0
  363. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_breadcrumbs.scssc +0 -0
  364. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_button-groups.scssc +0 -0
  365. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_buttons.scssc +0 -0
  366. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_carousel.scssc +0 -0
  367. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_close.scssc +0 -0
  368. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_code.scssc +0 -0
  369. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_component-animations.scssc +0 -0
  370. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_dropdowns.scssc +0 -0
  371. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_forms.scssc +0 -0
  372. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_grid.scssc +0 -0
  373. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_hero-unit.scssc +0 -0
  374. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_labels-badges.scssc +0 -0
  375. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_layouts.scssc +0 -0
  376. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_media.scssc +0 -0
  377. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_mixins.scssc +0 -0
  378. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_modals.scssc +0 -0
  379. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_navbar.scssc +0 -0
  380. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_navs.scssc +0 -0
  381. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_pager.scssc +0 -0
  382. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_pagination.scssc +0 -0
  383. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_popovers.scssc +0 -0
  384. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_progress-bars.scssc +0 -0
  385. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_reset.scssc +0 -0
  386. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-1200px-min.scssc +0 -0
  387. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-767px-max.scssc +0 -0
  388. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-768px-979px.scssc +0 -0
  389. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-navbar.scssc +0 -0
  390. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-utilities.scssc +0 -0
  391. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_scaffolding.scssc +0 -0
  392. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_sprites.scssc +0 -0
  393. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_tables.scssc +0 -0
  394. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_thumbnails.scssc +0 -0
  395. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_tooltip.scssc +0 -0
  396. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_type.scssc +0 -0
  397. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_utilities.scssc +0 -0
  398. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_variables.scssc +0 -0
  399. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_wells.scssc +0 -0
  400. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/bootstrap.scssc +0 -0
  401. data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/responsive.scssc +0 -0
  402. data/test/dummy/tmp/cache/sass/e3442098eb9df3b4438ecccd23acb9a9a8b7fa1f/bootstrap-responsive.scssc +0 -0
  403. data/test/dummy/tmp/cache/sass/e3442098eb9df3b4438ecccd23acb9a9a8b7fa1f/bootstrap.scssc +0 -0
  404. data/test/factories/invoice_bar_account.rb +16 -0
  405. data/test/factories/invoice_bar_address.rb +10 -0
  406. data/test/factories/invoice_bar_contact.rb +7 -0
  407. data/test/factories/invoice_bar_currency.rb +7 -0
  408. data/test/factories/invoice_bar_invoice.rb +28 -0
  409. data/test/factories/invoice_bar_invoice_template.rb +22 -0
  410. data/test/factories/invoice_bar_item.rb +7 -0
  411. data/test/factories/invoice_bar_receipt.rb +27 -0
  412. data/test/factories/invoice_bar_receipt_template.rb +21 -0
  413. data/test/factories/invoice_bar_user.rb +9 -0
  414. data/test/functional/invoice_bar/accounts_controller_test.rb +65 -0
  415. data/test/functional/invoice_bar/contacts_controller_test.rb +67 -0
  416. data/test/functional/invoice_bar/currencies_controller_test.rb +59 -0
  417. data/test/functional/invoice_bar/invoice_templates_controller_test.rb +71 -0
  418. data/test/functional/invoice_bar/invoices_controller_test.rb +76 -0
  419. data/test/functional/invoice_bar/receipt_templates_controller_test.rb +67 -0
  420. data/test/functional/invoice_bar/receipts_controller_test.rb +68 -0
  421. data/test/functional/invoice_bar/users_controller_test.rb +83 -0
  422. data/test/invoice_bar_test.rb +7 -0
  423. data/test/performance/browsing_test.rb +14 -0
  424. data/test/test_helper.rb +40 -0
  425. data/test/unit/invoice_bar/account_test.rb +31 -0
  426. data/test/unit/invoice_bar/address_test.rb +31 -0
  427. data/test/unit/invoice_bar/contact_test.rb +17 -0
  428. data/test/unit/invoice_bar/currency_test.rb +13 -0
  429. data/test/unit/invoice_bar/helpers/invoice_bar_helper_test.rb +19 -0
  430. data/test/unit/invoice_bar/invoice_template_test.rb +36 -0
  431. data/test/unit/invoice_bar/invoice_test.rb +67 -0
  432. data/test/unit/invoice_bar/item_test.rb +48 -0
  433. data/test/unit/invoice_bar/receipt_template_test.rb +34 -0
  434. data/test/unit/invoice_bar/receipt_test.rb +48 -0
  435. data/test/unit/invoice_bar/user_test.rb +29 -0
  436. metadata +1030 -0
@@ -0,0 +1,424 @@
1
+ cs:
2
+ invoice_bar:
3
+ invoice_bar: FakturačníBar
4
+ navbar:
5
+ dashboard: Přehled
6
+ invoices: Faktury
7
+ receipts: Doklady
8
+ contacts: Kontakty
9
+ users: Správa uživatelů
10
+ currencies: Správa měn
11
+ profile: Nastavení
12
+ settings: Nastavení
13
+ stats: Statistiky
14
+ accounts: Účty
15
+ search: Vyhledat
16
+ logout: Odhlásit se
17
+ nothing_found: Nic nenalezeno
18
+ no_data: Žádná data k dispozici
19
+ navigation:
20
+ all: Všechny
21
+ received: Přijaté
22
+ issued: Vydané
23
+ expence: Výdajové
24
+ income: Příjmové
25
+ form:
26
+ contact: pro/od firmy
27
+ from_date: od data
28
+ to_date: do data
29
+ from_amount: od částky
30
+ to_amount: do částky
31
+ bill_number: číslo dokladu
32
+ keywords:
33
+ payment: Platba
34
+ titles:
35
+ receipts: Doklady
36
+ receipt_templates: Šablony
37
+ invoices: Faktury
38
+ invoice_templates: Šablony
39
+ invoice_pdf: Faktura
40
+ number: č.
41
+ bill: Účetní doklad
42
+ users:
43
+ list: Uživatelé
44
+ new: Registrace
45
+ edit: Profil
46
+ contacts:
47
+ list: Kontakty
48
+ new: Přidat kontakt
49
+ edit: Změnit kontakt
50
+ accounts:
51
+ list: Účty
52
+ new: Přidat účet
53
+ edit: Změnit účet
54
+ currencies:
55
+ list: Měny
56
+ new: Přidat měnu
57
+ edit: Změnit měnu
58
+ links:
59
+ new_invoice: Nová faktura
60
+ new_invoice_for_contact: Pro klienta
61
+ new_invoice_from_template: Ze šablony
62
+ new_invoice_template: Nová šablona faktury
63
+ new_receipt: Nový doklad
64
+ new_receipt_template: Nová šablona dokladu
65
+ new_receipt_for_contact: Pro klienta
66
+ new_receipt_from_template: Ze šablony
67
+ new_item: Nová položka
68
+ new_account: Nový účet
69
+ delete_item: Smazat
70
+ prefill: Použít
71
+ buttons:
72
+ all: Všechny
73
+ paid: Zaplaceno
74
+ not_paid: Nezaplaceno
75
+ sent: Posláno
76
+ not_sent: Neposláno
77
+ filter: Filtrovat
78
+ save: Uložit
79
+ new_contact: Přidat kontakt
80
+ add: Přidat položku
81
+ delete_selected: Smazat vybrané
82
+ edit: Upravit
83
+ destroy: Smazat
84
+ destroy_confirm: Určitě smazat?
85
+ login: Přihlásit
86
+ logout: Odhlásit se
87
+ signup: Registrovat
88
+ inputs:
89
+ remember_me: Zapamatovat?
90
+ models:
91
+ user: Uživatel
92
+ invoice_template_item: Položka faktury
93
+ invoice_template: Šablona faktury
94
+ item: Položka faktury
95
+ invoice: Faktura
96
+ currency: Měna
97
+ contact: Kontakt
98
+ address: Adresa
99
+ account: Účet
100
+ attributes: &attributes
101
+ user:
102
+ id: ID
103
+ address_id: Adresa
104
+ bill_number_format: Formát čísla vydaných dokladů
105
+ email: E-mail
106
+ ic: IČ
107
+ invoice_number_format: Formát čísla faktur
108
+ name: Jméno
109
+ next_bill_number: Číslo dalšího vydaného dokladu
110
+ next_invoice_number: Číslo další faktury
111
+ next_received_bill_number: Číslo dalšího přijatého dokladu
112
+ phone: Telefon
113
+ received_bill_number_format: Formát čísla přijatých dokladů
114
+ web: Web
115
+ password: Heslo
116
+ account: Účet
117
+ currency:
118
+ name: Označení měny
119
+ symbol: Symbol
120
+ priority: Priorita pořadí
121
+ address:
122
+ city: Město
123
+ city_part: Městská část
124
+ extra_address_line: Volitelný řádek adresy
125
+ postcode: PSČ
126
+ city_and_postcode: PSČ a město
127
+ street: Ulice
128
+ street_number: Číslo
129
+ street_and_number: Ulice a číslo popisné
130
+ account:
131
+ amount: Částka
132
+ bank_account_number: Číslo bankovního účtu
133
+ currency_id: Měna
134
+ iban: IBAN
135
+ name: Název účtu
136
+ swift: BIC/SWIFT
137
+ user_id: Uživatel
138
+ contact:
139
+ address_id: Adresa
140
+ bank_account: Číslo bankovního účtu
141
+ dic: DIČ
142
+ email: E-mail
143
+ ic: IČ
144
+ name: Jméno osoby/Název firmy
145
+ phone: Telefon
146
+ web: Web
147
+ user_id: Uživatel
148
+ invoice:
149
+ status: Stav
150
+ payment: Platba
151
+ purchaser: Odběratel
152
+ provider: Dodavatel
153
+ account_id: Účet
154
+ amount: Celková částka
155
+ contact_address_id: Adresa
156
+ contact_dic: DIČ
157
+ contact_ic: IČ
158
+ contact_name: Firma
159
+ currency_id: Měna
160
+ due_date: Datum splatnosti
161
+ issue_date: Datum vystavení
162
+ number: Číslo faktury
163
+ paid: Zaplaceno?
164
+ payment_identification_number: Variabilní symbol
165
+ published: Vystaveno?
166
+ sent: Posláno?
167
+ user_address_id: Adresa uživatele
168
+ user_id: Uživatel
169
+ invoice_template:
170
+ account_id: Účet
171
+ amount: Celková částka
172
+ contact_address_id: Adresa
173
+ contact_dic: DIČ
174
+ contact_ic: IČ
175
+ contact_name: Firma
176
+ currency_id: Měna
177
+ due_date: Datum splatnosti
178
+ issue_date: Datum vystavení
179
+ name: Název šablony
180
+ payment_identification_number: Variabilní symbol
181
+ user_address_id: Adresa uživatele
182
+ user_id: Uživatel
183
+ receipt:
184
+ payment: Platba
185
+ purchaser: Odběratel
186
+ provider: Dodavatel
187
+ account_id: Účet
188
+ amount: Celková částka
189
+ contact_address_id: Adresa
190
+ contact_dic: DIČ
191
+ contact_ic: IČ
192
+ contact_name: Firma
193
+ currency_id: Měna
194
+ due_date: Datum splatnosti
195
+ issue_date: Datum vystavení
196
+ number: Číslo dokladu
197
+ paid: Zaplaceno?
198
+ payment_identification_number: Variabilní symbol
199
+ published: Vystaveno?
200
+ sent: Posláno?
201
+ user_address_id: Adresa uživatele
202
+ user_id: Uživatel
203
+ receipt_template:
204
+ account_id: Účet
205
+ amount: Celková částka
206
+ contact_address_id: Adresa
207
+ contact_dic: DIČ
208
+ contact_ic: IČ
209
+ contact_name: Firma
210
+ currency_id: Měna
211
+ due_date: Datum splatnosti
212
+ issue_date: Datum vystavení
213
+ name: Název šablony
214
+ payment_identification_number: Variabilní symbol
215
+ user_address_id: Adresa uživatele
216
+ user_id: Uživatel
217
+ item:
218
+ amount: Celková částka
219
+ invoice_id: Faktura
220
+ name: Položka
221
+ number: Počet
222
+ price: Cena za MJ
223
+ unit: MJ
224
+ default_unit: ks
225
+ invoice_template_item:
226
+ amount: Celková částka
227
+ invoice_id: Faktura
228
+ name: Popis
229
+ number: Počet
230
+ price: Cena za MJ
231
+ unit: MJ
232
+ date:
233
+ abbr_day_names:
234
+ - Ne
235
+ - Po
236
+ - Út
237
+ - St
238
+ - Čt
239
+ - Pá
240
+ - So
241
+ abbr_month_names:
242
+ -
243
+ - Led
244
+ - Úno
245
+ - Bře
246
+ - Dub
247
+ - Kvě
248
+ - Čvn
249
+ - Čvc
250
+ - Srp
251
+ - Zář
252
+ - Říj
253
+ - Lis
254
+ - Pro
255
+ day_names:
256
+ - Neděle
257
+ - Pondělí
258
+ - Úterý
259
+ - Středa
260
+ - Čtvrtek
261
+ - Pátek
262
+ - Sobota
263
+ formats:
264
+ default: ! '%d. %m. %Y'
265
+ long: ! '%d. %B %Y'
266
+ short: ! '%d %b'
267
+ invoice: ! '%d. %m. %Y'
268
+ month_names:
269
+ -
270
+ - Leden
271
+ - Únor
272
+ - Březen
273
+ - Duben
274
+ - Květen
275
+ - Červen
276
+ - Červenec
277
+ - Srpen
278
+ - Září
279
+ - Říjen
280
+ - Listopad
281
+ - Prosinec
282
+ order:
283
+ - :day
284
+ - :month
285
+ - :year
286
+ errors: &errors
287
+ format: ! '%{attribute} %{message}'
288
+ messages:
289
+ accepted: musí být potvrzeno
290
+ blank: je povinná položka
291
+ confirmation: nebylo potvrzeno
292
+ empty: nesmí být prázdný/á/é
293
+ equal_to: musí být rovno %{count}
294
+ even: musí být sudé číslo
295
+ exclusion: je vyhrazeno pro jiný účel
296
+ greater_than: musí být větší než %{count}
297
+ greater_than_or_equal_to: musí být větší nebo rovno %{count}
298
+ inclusion: není v seznamu povolených hodnot
299
+ invalid: není platná hodnota
300
+ less_than: musí být méně než %{count}
301
+ less_than_or_equal_to: musí být méně nebo rovno %{count}
302
+ not_a_number: není číslo
303
+ not_an_integer: musí být celé číslo
304
+ odd: musí být liché číslo
305
+ uniqueness: není unikátní (již existuje)
306
+ record_invalid: ! 'Validace je neúspešná: %{errors}'
307
+ taken: již databáze obsahuje
308
+ too_long: je příliš dlouhý/á/é (max. %{count} znaků)
309
+ too_short: je příliš krátký/á/é (min. %{count} znaků)
310
+ wrong_length: nemá správnou délku (očekáváno %{count} znaků)
311
+ template:
312
+ body: ! 'Následující pole obsahují chybně vyplněné údaje: '
313
+ header:
314
+ one: Při ukládání došlo k chybě
315
+ few: Při ukládání došlo k %{count} chybám
316
+ other: Při ukládání došlo k %{count} chybám
317
+ helpers:
318
+ select:
319
+ prompt: Prosím vyberte si
320
+ submit:
321
+ create: Vytvořit %{model}
322
+ submit: Uložit %{model}
323
+ update: Aktualizovat %{model}
324
+ number:
325
+ currency:
326
+ format:
327
+ delimiter: ! ' '
328
+ format: ! '%n %u'
329
+ precision: 2
330
+ separator: ! ','
331
+ significant: false
332
+ strip_insignificant_zeros: false
333
+ unit: Kč
334
+ format:
335
+ delimiter: ! ','
336
+ precision: 3
337
+ separator: .
338
+ significant: false
339
+ strip_insignificant_zeros: false
340
+ human:
341
+ decimal_units:
342
+ format: ! '%n %u'
343
+ units:
344
+ billion: Miliarda
345
+ million: Milion
346
+ quadrillion: Kvadrilion
347
+ thousand: Tisíc
348
+ trillion: Bilion
349
+ unit: ''
350
+ format:
351
+ delimiter: ''
352
+ precision: 1
353
+ significant: false
354
+ strip_insignificant_zeros: false
355
+ storage_units:
356
+ format: ! '%n %u'
357
+ units:
358
+ byte: B
359
+ gb: GB
360
+ kb: KB
361
+ mb: MB
362
+ tb: TB
363
+ percentage:
364
+ format:
365
+ delimiter: ''
366
+ precision:
367
+ format:
368
+ delimiter: ''
369
+ support:
370
+ array:
371
+ last_word_connector: ! ' a '
372
+ two_words_connector: ! ' a '
373
+ words_connector: ! ', '
374
+ time:
375
+ am: am
376
+ formats:
377
+ default: ! '%a %d. %B %Y %H:%M %z'
378
+ long: ! '%A %d. %B %Y %H:%M'
379
+ short: ! '%d. %m. %H:%M'
380
+ pm: pm
381
+ activemodel:
382
+ errors:
383
+ <<: *errors
384
+ activerecord:
385
+ errors:
386
+ <<: *errors
387
+ models:
388
+ user: uživatele
389
+ invoice_template: šablony
390
+ invoice: faktury
391
+ receipt: dokladu
392
+ receipt_templates: šablony
393
+ currency: měny
394
+ contact: kontaktu
395
+ address: adresy
396
+ account: účtu
397
+ attributes:
398
+ <<: *attributes
399
+ views:
400
+ pagination:
401
+ first: "&laquo; Na začátek"
402
+ last: "Na konec &raquo;"
403
+ previous: "&lsaquo; Předchozí"
404
+ next: "Následující &rsaquo;"
405
+ truncate: "&hellip;"
406
+ flash:
407
+ actions:
408
+ create:
409
+ notice: "V pořádku vytvořeno."
410
+ update:
411
+ notice: "V pořádku změněno."
412
+ destroy:
413
+ notice: "Smazáno."
414
+ alert: "Nepodařilo se smazat."
415
+ messages:
416
+ not_authenticated: Prosím přihlašte se.
417
+ not_administrator: Pro daný úkon nemáte potřebná práva.
418
+ cannot_log_in: Přihlášení se nepodařilo. Prosím zkontrolujte své přihlašovací údaje.
419
+ ic_loaded: Informace o subjektu načteny.
420
+ cannot_load_ic: Nepodařilo se načíst údaje z databáze ARES.
421
+ signed_up: Byli jste v pořádku zaregistrování. Prosím, přihlašte se.
422
+ logged_out: Byli jste v pořádku odhlášení.
423
+ no_currencies: Nejdříve vytvořte měnu.
424
+ no_accounts: Nejdříve vytvořte účet.
data/config/routes.rb ADDED
@@ -0,0 +1,50 @@
1
+ InvoiceBar::Engine.routes.draw do
2
+ # Sessions
3
+ get 'logout' => 'sessions#destroy', :as => 'logout'
4
+ get 'login' => 'sessions#new', :as => 'login'
5
+ get 'login_from_http_basic' => 'sessions#login_from_http_basic', :as => 'login_from_http_basic'
6
+
7
+ resources :sessions
8
+
9
+ # Search
10
+ get 'search' => 'search#index', :as => 'search'
11
+
12
+ # Users
13
+ get 'signup' => 'users#new', :as => 'signup'
14
+ get 'profile' => 'settings#index', :as => 'profile'
15
+
16
+ resources :users
17
+
18
+ # Contacts
19
+ resources :contacts
20
+
21
+ # Currencies
22
+ resources :currencies
23
+
24
+ # Accounts
25
+ resources :accounts
26
+
27
+ # Invoices
28
+ get 'invoices/from_template/:id' => 'invoices#from_template', :as => 'invoice_from_template'
29
+ get 'invoices/:id/mark_as_paid' => 'invoices#mark_as_paid', :as => 'mark_invoice_as_paid'
30
+ get 'invoices/:id/mark_as_sent' => 'invoices#mark_as_sent', :as => 'mark_invoice_as_sent'
31
+ get 'invoices/:id/create_receipt_for_invoice' => 'invoices#create_receipt_for_invoice', :as => 'create_receipt_for_invoice'
32
+ get 'invoices/filter' => 'invoices#filter', :as => 'filter_invoices', method: :get
33
+ get 'invoices/issued' => 'invoices#issued', :as => 'issued_invoices', method: :get
34
+ get 'invoices/received' => 'invoices#received', :as => 'received_invoices', method: :get
35
+
36
+ resources :invoices
37
+ resources :invoice_templates
38
+
39
+ # Receipts
40
+ get 'receipts/from_template/:id' => 'receipts#from_template', :as => 'receipt_from_template'
41
+ get 'receipts/filter' => 'receipts#filter', :as => 'filter_receipts', method: :get
42
+ get 'receipts/income' => 'receipts#income', :as => 'income_receipts', method: :get
43
+ get 'receipts/expence' => 'receipts#expence', :as => 'expence_receipts', method: :get
44
+
45
+ resources :receipts
46
+ resources :receipt_templates
47
+
48
+ # Root default
49
+ root :to => 'dashboard#index'
50
+ end
@@ -0,0 +1,16 @@
1
+ class CreateInvoiceBarAddresses < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_addresses do |t|
4
+ t.string :street, :null => false
5
+ t.string :street_number, :null => false
6
+ t.string :city, :null => false
7
+ t.string :city_part, :default => nil
8
+ t.string :postcode, :null => false
9
+ t.string :extra_address_line, :default => nil
10
+ t.integer :addressable_id, :null => false
11
+ t.string :addressable_type, :null => false
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ class CreateInvoiceBarInvoiceTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_invoice_templates do |t|
4
+ t.string :name, :null => false, :unique => true
5
+ t.date :issue_date, :default => nil
6
+ t.date :due_date, :default => nil
7
+ t.string :contact_name, :default => nil
8
+ t.integer :contact_ic, :default => nil
9
+ t.string :contact_dic, :default => nil
10
+ t.integer :user_id, :default => nil
11
+ t.integer :payment_identification_number, :default => nil
12
+ t.integer :account_id, :default => nil
13
+ t.integer :amount, :default => nil
14
+
15
+ t.timestamps
16
+ end
17
+
18
+ add_index :invoice_bar_invoice_templates, :name
19
+ end
20
+ end
@@ -0,0 +1,27 @@
1
+ class CreateInvoiceBarInvoices < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_invoices do |t|
4
+ t.string :number, :null => false
5
+ t.date :issue_date, :null => false
6
+ t.date :due_date, :null => false
7
+ t.string :contact_name, :null => false
8
+ t.integer :contact_ic, :default => nil
9
+ t.string :contact_dic, :default => nil
10
+ t.integer :user_id, :null => false
11
+ t.integer :payment_identification_number, :default => nil
12
+ t.integer :account_id, :null => false
13
+ t.integer :amount, :null => false
14
+ t.boolean :sent, :null => false, :default => false
15
+ t.boolean :paid, :null => false, :default => false
16
+ t.boolean :issuer, :null => false, :default => true
17
+ t.integer :receipt_id, :default => nil
18
+
19
+ t.timestamps
20
+ end
21
+
22
+ add_index :invoice_bar_invoices, :number
23
+ add_index :invoice_bar_invoices, :contact_name
24
+ add_index :invoice_bar_invoices, :contact_ic
25
+ add_index :invoice_bar_invoices, :payment_identification_number
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ class CreateInvoiceBarAccounts < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_accounts do |t|
4
+ t.string :name, :null => false
5
+ t.integer :user_id, :null => false
6
+ t.string :bank_account_number, :default => nil
7
+ t.string :iban, :default => nil
8
+ t.string :swift, :default => nil
9
+ t.integer :amount, :null => false, :default => 0
10
+ t.integer :currency_id, :null => false, :default => 1
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :invoice_bar_accounts, :name
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ class CreateInvoiceBarItems < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_items do |t|
4
+ t.string :name, :null => false
5
+ t.integer :price, :null => false
6
+ t.string :unit, :default => nil
7
+ t.integer :number, :default => nil
8
+ t.integer :amount, :null => false
9
+ t.integer :itemable_id, :null => false
10
+ t.string :itemable_type, :null => false
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :invoice_bar_items, :name
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ class CreateInvoiceBarCurrencies < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_currencies do |t|
4
+ t.string :name, :null => false, :unique => true
5
+ t.string :symbol, :null => false, :unique => true
6
+ t.integer :priority, :null => false, :default => 1
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ class CreateInvoiceBarContacts < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_contacts do |t|
4
+ t.string :name, :null => false, :unique => true
5
+ t.string :email, :default => nil
6
+ t.string :phone, :default => nil
7
+ t.string :web, :default => nil
8
+ t.string :bank_account, :default => nil
9
+ t.integer :ic, :default => nil
10
+ t.string :dic, :default => nil
11
+ t.integer :user_id, :null => false
12
+
13
+ t.timestamps
14
+ end
15
+
16
+ add_index :invoice_bar_contacts, :name
17
+ add_index :invoice_bar_contacts, :ic
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ class CreateInvoiceBarUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_users do |t|
4
+ t.string :email, :null => false, :unique => true
5
+ t.string :crypted_password, :default => nil
6
+ t.string :salt, :default => nil
7
+ t.string :remember_me_token, :default => nil
8
+ t.datetime :remember_me_token_expires_at, :default => nil
9
+ t.string :reset_password_token, :default => nil
10
+ t.datetime :reset_password_token_expires_at, :default => nil
11
+ t.datetime :reset_password_email_sent_at, :default => nil
12
+ t.string :name, :null => false
13
+ t.string :phone, :default => nil
14
+ t.string :web, :default => nil
15
+ t.integer :ic, :null => false, :unique => true
16
+ t.boolean :administrator
17
+
18
+ t.timestamps
19
+ end
20
+
21
+ add_index :invoice_bar_users, :reset_password_token
22
+ add_index :invoice_bar_users, :remember_me_token
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ class CreateInvoiceBarReceipts < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_receipts do |t|
4
+ t.string :number, :null => false
5
+ t.date :issue_date, :null => false
6
+ t.string :contact_name, :null => false
7
+ t.integer :contact_ic, :default => nil
8
+ t.string :contact_dic, :default => nil
9
+ t.integer :user_id, :null => false
10
+ t.integer :account_id, :null => false
11
+ t.integer :amount, :null => false
12
+ t.boolean :issuer, :null => false, :default => true
13
+
14
+ t.timestamps
15
+ end
16
+
17
+ add_index :invoice_bar_receipts, :number
18
+ add_index :invoice_bar_receipts, :contact_name
19
+ add_index :invoice_bar_receipts, :contact_ic
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ class CreateInvoiceBarReceiptTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :invoice_bar_receipt_templates do |t|
4
+ t.string :name, :null => false, :unique => true
5
+ t.date :issue_date, :default => nil
6
+ t.string :contact_name, :default => nil
7
+ t.integer :contact_ic, :default => nil
8
+ t.string :contact_dic, :default => nil
9
+ t.integer :user_id, :default => nil
10
+ t.integer :account_id, :default => nil
11
+ t.integer :amount, :default => nil
12
+
13
+ t.timestamps
14
+ end
15
+
16
+ add_index :invoice_bar_receipt_templates, :name
17
+ end
18
+ end