invoice_bar 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +15 -0
- data/README.rdoc +3 -0
- data/Rakefile +39 -0
- data/app/assets/javascripts/invoice_bar/invoice_bar.js +98 -0
- data/app/assets/stylesheets/invoice_bar/document.css.scss +170 -0
- data/app/assets/stylesheets/invoice_bar/forms.css.scss +60 -0
- data/app/assets/stylesheets/invoice_bar/invoice_bar.css +10 -0
- data/app/assets/stylesheets/invoice_bar/tables.css.scss +14 -0
- data/app/controllers/invoice_bar/accounts_controller.rb +26 -0
- data/app/controllers/invoice_bar/application_controller.rb +59 -0
- data/app/controllers/invoice_bar/contacts_controller.rb +40 -0
- data/app/controllers/invoice_bar/currencies_controller.rb +29 -0
- data/app/controllers/invoice_bar/dashboard_controller.rb +11 -0
- data/app/controllers/invoice_bar/invoice_templates_controller.rb +108 -0
- data/app/controllers/invoice_bar/invoices_controller.rb +246 -0
- data/app/controllers/invoice_bar/receipt_templates_controller.rb +108 -0
- data/app/controllers/invoice_bar/receipts_controller.rb +164 -0
- data/app/controllers/invoice_bar/search_controller.rb +26 -0
- data/app/controllers/invoice_bar/sessions_controller.rb +35 -0
- data/app/controllers/invoice_bar/settings_controller.rb +12 -0
- data/app/controllers/invoice_bar/users_controller.rb +83 -0
- data/app/helpers/invoice_bar/invoice_bar_helper.rb +43 -0
- data/app/models/invoice_bar/account.rb +50 -0
- data/app/models/invoice_bar/address.rb +48 -0
- data/app/models/invoice_bar/contact.rb +32 -0
- data/app/models/invoice_bar/currency.rb +13 -0
- data/app/models/invoice_bar/invoice.rb +51 -0
- data/app/models/invoice_bar/invoice_template.rb +35 -0
- data/app/models/invoice_bar/item.rb +77 -0
- data/app/models/invoice_bar/receipt.rb +66 -0
- data/app/models/invoice_bar/receipt_template.rb +35 -0
- data/app/models/invoice_bar/user.rb +42 -0
- data/app/views/invoice_bar/accounts/_form.html.erb +25 -0
- data/app/views/invoice_bar/accounts/edit.html.erb +3 -0
- data/app/views/invoice_bar/accounts/index.html.erb +44 -0
- data/app/views/invoice_bar/accounts/new.html.erb +3 -0
- data/app/views/invoice_bar/accounts/show.html.erb +24 -0
- data/app/views/invoice_bar/contacts/_form.html.erb +44 -0
- data/app/views/invoice_bar/contacts/edit.html.erb +3 -0
- data/app/views/invoice_bar/contacts/index.html.erb +42 -0
- data/app/views/invoice_bar/contacts/new.html.erb +3 -0
- data/app/views/invoice_bar/contacts/show.html.erb +43 -0
- data/app/views/invoice_bar/currencies/_form.html.erb +16 -0
- data/app/views/invoice_bar/currencies/edit.html.erb +3 -0
- data/app/views/invoice_bar/currencies/index.html.erb +40 -0
- data/app/views/invoice_bar/currencies/new.html.erb +3 -0
- data/app/views/invoice_bar/currencies/show.html.erb +12 -0
- data/app/views/invoice_bar/documents/_show.html.erb +110 -0
- data/app/views/invoice_bar/forms/_address.html.erb +22 -0
- data/app/views/invoice_bar/forms/_address_fields.html.erb +22 -0
- data/app/views/invoice_bar/forms/_contact_main_fields.html.erb +23 -0
- data/app/views/invoice_bar/forms/_document.html.erb +131 -0
- data/app/views/invoice_bar/forms/_errors.html.erb +17 -0
- data/app/views/invoice_bar/forms/_filter.html.erb +33 -0
- data/app/views/invoice_bar/forms/_item_fields.html.erb +34 -0
- data/app/views/invoice_bar/forms/_items.html.erb +40 -0
- data/app/views/invoice_bar/forms/_payment_fields.html.erb +22 -0
- data/app/views/invoice_bar/invoice_templates/choose_template.html.erb +7 -0
- data/app/views/invoice_bar/invoice_templates/edit.html.erb +2 -0
- data/app/views/invoice_bar/invoice_templates/index.html.erb +51 -0
- data/app/views/invoice_bar/invoice_templates/new.html.erb +3 -0
- data/app/views/invoice_bar/invoice_templates/show.html.erb +1 -0
- data/app/views/invoice_bar/invoices/edit.html.erb +1 -0
- data/app/views/invoice_bar/invoices/index.html.erb +127 -0
- data/app/views/invoice_bar/invoices/new.html.erb +4 -0
- data/app/views/invoice_bar/invoices/show.html.erb +1 -0
- data/app/views/invoice_bar/invoices/show.pdf.prawn +128 -0
- data/app/views/invoice_bar/layouts/_head.html.erb +5 -0
- data/app/views/invoice_bar/layouts/_messages.html.erb +8 -0
- data/app/views/invoice_bar/layouts/_navbar.html.erb +40 -0
- data/app/views/invoice_bar/layouts/signed_in.html.erb +20 -0
- data/app/views/invoice_bar/layouts/signed_out.html.erb +29 -0
- data/app/views/invoice_bar/receipt_templates/choose_template.html.erb +7 -0
- data/app/views/invoice_bar/receipt_templates/edit.html.erb +1 -0
- data/app/views/invoice_bar/receipt_templates/index.html.erb +51 -0
- data/app/views/invoice_bar/receipt_templates/new.html.erb +3 -0
- data/app/views/invoice_bar/receipt_templates/show.html.erb +1 -0
- data/app/views/invoice_bar/receipts/edit.html.erb +1 -0
- data/app/views/invoice_bar/receipts/index.html.erb +82 -0
- data/app/views/invoice_bar/receipts/new.html.erb +4 -0
- data/app/views/invoice_bar/receipts/show.html.erb +1 -0
- data/app/views/invoice_bar/receipts/show.pdf.prawn +128 -0
- data/app/views/invoice_bar/search/index.html.erb +201 -0
- data/app/views/invoice_bar/sessions/new.html.erb +23 -0
- data/app/views/invoice_bar/settings/index.html.erb +42 -0
- data/app/views/invoice_bar/users/_form.html.erb +32 -0
- data/app/views/invoice_bar/users/edit.html.erb +1 -0
- data/app/views/invoice_bar/users/index.html.erb +46 -0
- data/app/views/invoice_bar/users/new.html.erb +1 -0
- data/app/views/invoice_bar/users/show.html.erb +0 -0
- data/app/views/invoice_bar/users/signup.html.erb +25 -0
- data/app/views/kaminari/_first_page.html.erb +3 -0
- data/app/views/kaminari/_gap.html.erb +3 -0
- data/app/views/kaminari/_last_page.html.erb +3 -0
- data/app/views/kaminari/_next_page.html.erb +3 -0
- data/app/views/kaminari/_page.html.erb +3 -0
- data/app/views/kaminari/_paginator.html.erb +17 -0
- data/app/views/kaminari/_prev_page.html.erb +3 -0
- data/config/database.yml +25 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/encoding.rb +3 -0
- data/config/initializers/inflections.rb +15 -0
- data/config/initializers/kaminari_config.rb +10 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/requires.rb +4 -0
- data/config/initializers/secret_token.rb +7 -0
- data/config/initializers/session_store.rb +8 -0
- data/config/initializers/sorcery.rb +401 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/cs.yml +424 -0
- data/config/routes.rb +50 -0
- data/db/migrate/20121012142346_create_invoice_bar_addresses.rb +16 -0
- data/db/migrate/20121012142357_create_invoice_bar_invoice_templates.rb +20 -0
- data/db/migrate/20121012142418_create_invoice_bar_invoices.rb +27 -0
- data/db/migrate/20121012142428_create_invoice_bar_accounts.rb +17 -0
- data/db/migrate/20121012142442_create_invoice_bar_items.rb +17 -0
- data/db/migrate/20121012142454_create_invoice_bar_currencies.rb +9 -0
- data/db/migrate/20121012142502_create_invoice_bar_contacts.rb +19 -0
- data/db/migrate/20121012144941_create_invoice_bar_users.rb +24 -0
- data/db/migrate/20121205185321_create_invoice_bar_receipts.rb +21 -0
- data/db/migrate/20121205185353_create_invoice_bar_receipt_templates.rb +18 -0
- data/db/seeds.rb +33 -0
- data/db/test.sqlite3 +0 -0
- data/lib/billable.rb +305 -0
- data/lib/invoice_bar/engine.rb +80 -0
- data/lib/invoice_bar/version.rb +5 -0
- data/lib/invoice_bar.rb +7 -0
- data/lib/searchable.rb +34 -0
- data/lib/tasks/invoicebar_tasks.rake +4 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +68 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/invoice_bar.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/production.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +174 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +549752 -0
- data/test/dummy/log/production.log +12 -0
- data/test/dummy/log/test.log +8610 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/assets/BF2/9B0/sprockets%2F1649cd914028570da99e391611416461 +0 -0
- data/test/dummy/tmp/cache/assets/C11/6D0/sprockets%2F33531011fa6963571866f11d2c35313d +0 -0
- data/test/dummy/tmp/cache/assets/C13/000/sprockets%2F5357734603b21a0c32f75614f7067c31 +0 -0
- data/test/dummy/tmp/cache/assets/C34/BA0/sprockets%2F476d3ab21730a46162605402631fe23a +0 -0
- data/test/dummy/tmp/cache/assets/C4B/E90/sprockets%2F035a31410d4460e61989eeb25886c270 +0 -0
- data/test/dummy/tmp/cache/assets/C4E/B20/sprockets%2F7318bf12f2451e817f480b607c746332 +0 -0
- data/test/dummy/tmp/cache/assets/C57/D20/sprockets%2Ff88514480770419cd12db0649278b84a +0 -0
- data/test/dummy/tmp/cache/assets/C58/6A0/sprockets%2F353374217619061b5ce3969c7cd819b3 +0 -0
- data/test/dummy/tmp/cache/assets/C65/E00/sprockets%2F672e89378f0995592ad01994536ba60b +0 -0
- data/test/dummy/tmp/cache/assets/C6B/6E0/sprockets%2F3028ed1b448217ad51235f70e14814c0 +0 -0
- data/test/dummy/tmp/cache/assets/C6B/720/sprockets%2F371c30ee6af2d2121712842394d550b3 +0 -0
- data/test/dummy/tmp/cache/assets/C74/FF0/sprockets%2F2935380ab04cd59423316d55eb65b432 +0 -0
- data/test/dummy/tmp/cache/assets/C7E/450/sprockets%2F9cfb945244675bb31d32d80c18317822 +0 -0
- data/test/dummy/tmp/cache/assets/C89/6B0/sprockets%2F32372ed7818205654f9b4c6c0f398e41 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/580/sprockets%2F643c9f08f9f01f35717241752c6d656b +0 -0
- data/test/dummy/tmp/cache/assets/C8D/D10/sprockets%2F637cba17049670418f4286ee7a3e8295 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/6E0/sprockets%2Fc66d4743799007238128516ff08dfb6c +0 -0
- data/test/dummy/tmp/cache/assets/C93/450/sprockets%2Fe7ba340a2482428011300d2ee814f2b6 +0 -0
- data/test/dummy/tmp/cache/assets/C9A/F10/sprockets%2F70b1f5795498d49c48f11a58e094773f +0 -0
- data/test/dummy/tmp/cache/assets/CA2/E20/sprockets%2F8f0f457319183311b10ddc6e0337de41 +0 -0
- data/test/dummy/tmp/cache/assets/CA3/830/sprockets%2F9a9d172e93422b2192f1a5b80520a7c4 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/870/sprockets%2Fa360887b06bad5328d1870349fae6126 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/DE0/sprockets%2F639a912fd05bb9acb75624b343618558 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/630/sprockets%2F501a45647fb70ab06d9d9566b9f11682 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/620/sprockets%2F48651b5837773c5c3f3024e5b713f8ed +0 -0
- data/test/dummy/tmp/cache/assets/CBB/730/sprockets%2F93687f971b297d0d1e0a4721e5487c2d +0 -0
- data/test/dummy/tmp/cache/assets/CC0/4E0/sprockets%2F0a4620c09e33f12c747fbd798975788b +0 -0
- data/test/dummy/tmp/cache/assets/CC2/320/sprockets%2F6f4db22314397e4f29367682f7ad4b69 +0 -0
- data/test/dummy/tmp/cache/assets/CC3/3D0/sprockets%2F089add15d2a400824da7221e2b81d034 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/C30/sprockets%2Fadb5bf6286f95889bb40657a27195638 +0 -0
- data/test/dummy/tmp/cache/assets/CCE/490/sprockets%2F07411fdbe680b6812f75ad74ca421060 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/440/sprockets%2F4a93eaa36745c41235d49703bc1e2a94 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/6A0/sprockets%2Fd8483c8cc949e29761ed8d26f9981821 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/830/sprockets%2Ffd04d8117670102499a9cc26e03beb91 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/7E0/sprockets%2F08273270e5ad4e8c40f032ae65f359a6 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/4A0/sprockets%2F9ffe20f0f1056553046b042d4e752d8e +0 -0
- data/test/dummy/tmp/cache/assets/CDB/DD0/sprockets%2F77011cabd37795e415d3b39c27ac8532 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/3B0/sprockets%2F7b0af18e9e71d15c3bb63853295016d4 +0 -0
- data/test/dummy/tmp/cache/assets/CDE/800/sprockets%2F416bd8cb992bd8c80b742034c4286a81 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/B00/sprockets%2F3854abaa9035337b6ae850f481b69d81 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/B50/sprockets%2F60b3d77c8e86d79212403cddca614934 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/120/sprockets%2F46ae2947ec023073bbe827de1d615579 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/610/sprockets%2F77999ce208b427f3d1cd786a01d0170d +0 -0
- data/test/dummy/tmp/cache/assets/CE4/D30/sprockets%2F3c72e61f887354ae35f015f9d4a06d17 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/2C0/sprockets%2Fc1346d6629ff13645b4e2ce9c61a2893 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/A90/sprockets%2F0d30a948c673d664a672e936f5b4a8d1 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/850/sprockets%2Fc0201847da9589eebe5b28c66872b417 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/9E0/sprockets%2Fdfedfb73194983c312432973ade78720 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/D20/sprockets%2Fd2d3fcca91c5f7f325e1839984082592 +0 -0
- data/test/dummy/tmp/cache/assets/CF2/C90/sprockets%2F94a5468a372fd075ca78973f780c1fc6 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/D40/sprockets%2F061b2b8dc611337ead0ae1630d9d6412 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/310/sprockets%2F50b6e57b9678d674917d9d7ace69d022 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/D30/sprockets%2Ff19cb0e8a30eb388c418d11240d152d0 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/410/sprockets%2Fd9f0b12757bcfd24db130773b412314f +0 -0
- data/test/dummy/tmp/cache/assets/D00/F20/sprockets%2F8b4c51c2d4c103d0d6a468ac625c1658 +0 -0
- data/test/dummy/tmp/cache/assets/D02/010/sprockets%2F4569921d8d0226a3e2d57ad01620ecbe +0 -0
- data/test/dummy/tmp/cache/assets/D02/340/sprockets%2F1036c0439cb6b47c2c2fc1712b8e657b +0 -0
- data/test/dummy/tmp/cache/assets/D02/C00/sprockets%2F8ccbad1c51529c475316bb90801fe315 +0 -0
- data/test/dummy/tmp/cache/assets/D03/9C0/sprockets%2Fc96d3e1ca1315cab038596f20d0792f1 +0 -0
- data/test/dummy/tmp/cache/assets/D03/B20/sprockets%2F08d6902adcd450723918aeab800b159e +0 -0
- data/test/dummy/tmp/cache/assets/D04/BC0/sprockets%2F27be5fd4190e64c12116475ecc09c2c2 +0 -0
- data/test/dummy/tmp/cache/assets/D05/6B0/sprockets%2F51d171ec47d28c1d5722d2b86a0d1f65 +0 -0
- data/test/dummy/tmp/cache/assets/D06/E80/sprockets%2Fe62e39d519ee0a8131fae43440c153e5 +0 -0
- data/test/dummy/tmp/cache/assets/D09/F80/sprockets%2F0b34327edf1e11f0da567616d772c7e4 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/B60/sprockets%2F42131e5fd69f30b0d08266afda8913e5 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/390/sprockets%2F5132b836fb094301ff28a6be7dd16d77 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/A70/sprockets%2F92ec90512978b6c597112bcaf1da29c3 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/B20/sprockets%2Fa0a35bd579e7223e80e1a749e7f2a734 +0 -0
- data/test/dummy/tmp/cache/assets/D12/4C0/sprockets%2F88cb06f8a7fb491631fa0093781cd05f +0 -0
- data/test/dummy/tmp/cache/assets/D19/3F0/sprockets%2F5de5ba4c867332253b5098d0d1f9ef68 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/990/sprockets%2F08909075dd6adc239945db46e13e3fb9 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/C80/sprockets%2F4fa92f7c8915da6aa468ed76560953b0 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/3F0/sprockets%2F97be6327d4928ac25347c4cc773e66da +0 -0
- data/test/dummy/tmp/cache/assets/D1E/230/sprockets%2Ff4317e07329a7c47de1c83f63e8f6a84 +0 -0
- data/test/dummy/tmp/cache/assets/D21/190/sprockets%2Fe4c9d0a614ae75783a09fc7e952d7198 +0 -0
- data/test/dummy/tmp/cache/assets/D23/290/sprockets%2F1d514a434ff003bf9c55a23a408bc5a1 +0 -0
- data/test/dummy/tmp/cache/assets/D23/F40/sprockets%2Fd7a8df989fa0b8678a833877b220e0b7 +0 -0
- data/test/dummy/tmp/cache/assets/D24/1D0/sprockets%2F88354bcfd9280ced1df9853346b9c294 +0 -0
- data/test/dummy/tmp/cache/assets/D25/040/sprockets%2F3eb1238aefc0b348a7218c93ae001b06 +0 -0
- data/test/dummy/tmp/cache/assets/D2D/3E0/sprockets%2F98fc4b59de5e8d96ae5746480a2e9129 +0 -0
- data/test/dummy/tmp/cache/assets/D2E/310/sprockets%2F26abc5030ac50e298349385e5dbaa5d0 +0 -0
- data/test/dummy/tmp/cache/assets/D30/1A0/sprockets%2Fa1d4848a05a94bf03d1cb69451e0e32e +0 -0
- data/test/dummy/tmp/cache/assets/D31/0D0/sprockets%2F8e968fb5539c735f9e65a2c338990ebe +0 -0
- data/test/dummy/tmp/cache/assets/D32/3E0/sprockets%2F51d82b9d10a1f278193ae09b2e6cc14c +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D33/120/sprockets%2F41ac728e4d2c9fc115030eb2fa94455d +0 -0
- data/test/dummy/tmp/cache/assets/D33/EE0/sprockets%2F285d50fab811d6aab44360b43b358ee8 +0 -0
- data/test/dummy/tmp/cache/assets/D36/4F0/sprockets%2F6a5e6e2e8a23e1c5e7359e4018ba1a16 +0 -0
- data/test/dummy/tmp/cache/assets/D37/6B0/sprockets%2Ffb4b7383d900b9103ee4eeb16a49156a +0 -0
- data/test/dummy/tmp/cache/assets/D38/4B0/sprockets%2F4628f5361aa685f70bdbc0efb715c702 +0 -0
- data/test/dummy/tmp/cache/assets/D39/180/sprockets%2Fb6a2dcb4f4b6904a6e5f5a5b38572324 +0 -0
- data/test/dummy/tmp/cache/assets/D39/E50/sprockets%2F1e19909eba7771baae63c28571d213dc +0 -0
- data/test/dummy/tmp/cache/assets/D3A/220/sprockets%2F4ba28941ec4418b83a3e08f5e4b3f22e +0 -0
- data/test/dummy/tmp/cache/assets/D3D/0C0/sprockets%2F5f4828a143b7a17c86ad173af45ea44f +0 -0
- data/test/dummy/tmp/cache/assets/D3E/D80/sprockets%2F26a353f794ccad1723ad26d564963dae +0 -0
- data/test/dummy/tmp/cache/assets/D3F/EE0/sprockets%2F4d4955da738ce18fcb5d5c254c20471d +0 -0
- data/test/dummy/tmp/cache/assets/D40/C00/sprockets%2Fafe2733518c27c73f2d19f27edc5c063 +0 -0
- data/test/dummy/tmp/cache/assets/D42/790/sprockets%2F54ebab76bb0c774f441f24a9b049a699 +0 -0
- data/test/dummy/tmp/cache/assets/D49/080/sprockets%2F47eee138813998c77fb4d63aea0a83b2 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/F80/sprockets%2F573908d07c7e4a37eb475c916f44eaeb +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/950/sprockets%2Ffe8890753c95311541bfee8ec93bf6a3 +0 -0
- data/test/dummy/tmp/cache/assets/D50/660/sprockets%2F8934155ef2c7db6ff48de8d6a572b352 +0 -0
- data/test/dummy/tmp/cache/assets/D50/990/sprockets%2F2f7692187d5d687fd78bcbdd44583a0a +0 -0
- data/test/dummy/tmp/cache/assets/D52/BE0/sprockets%2F95f7169a509d1fe46b4b8b7f0d9b9d25 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/270/sprockets%2Fd7121a8e796ab4de09bb1d140a03bd38 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/B80/sprockets%2F420c9ca8933da2c7ac42af560ba80a72 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/9A0/sprockets%2Fcbae55800082a9de23b02dc0f7416c7f +0 -0
- data/test/dummy/tmp/cache/assets/D60/890/sprockets%2Fa63fc11056490cd0ad51c725eea3cd87 +0 -0
- data/test/dummy/tmp/cache/assets/D60/F10/sprockets%2F251e00aea88ff5a6c41ed112283f1ef4 +0 -0
- data/test/dummy/tmp/cache/assets/D61/310/sprockets%2Ff9192502dcd75958872e1edf6cd8e89e +0 -0
- data/test/dummy/tmp/cache/assets/D62/480/sprockets%2Feb89e74e65edfd75c4048038f7e4897c +0 -0
- data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2Fcca470eef56334f9ee3600394ca06a0c +0 -0
- data/test/dummy/tmp/cache/assets/D64/800/sprockets%2F8be19b06af6bb950af657a2a500c459a +0 -0
- data/test/dummy/tmp/cache/assets/D66/EC0/sprockets%2F5b533bbfba939b541a49cd9fb302364b +0 -0
- data/test/dummy/tmp/cache/assets/D67/CC0/sprockets%2Fd6be1951f1e10b034d95fc7e317ade62 +0 -0
- data/test/dummy/tmp/cache/assets/D69/ED0/sprockets%2F8573a0c480d82a6de7d4431cec53ecb4 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/310/sprockets%2F9accebd1400d2d65bc13881889ea5e54 +0 -0
- data/test/dummy/tmp/cache/assets/D70/E30/sprockets%2Fdb69f2e4f8e94a52181602e81b7dda1c +0 -0
- data/test/dummy/tmp/cache/assets/D71/270/sprockets%2F87be1f988bb5dec8ad602202d66e61d1 +0 -0
- data/test/dummy/tmp/cache/assets/D71/DD0/sprockets%2Fdb33de95e82ca2e939a7a1173cd19a57 +0 -0
- data/test/dummy/tmp/cache/assets/D73/850/sprockets%2F1e6628b9b7568f1c549eeaaf5a101f4d +0 -0
- data/test/dummy/tmp/cache/assets/D74/350/sprockets%2F2a7fa3c361bcd65892a8d8cc4c7772d3 +0 -0
- data/test/dummy/tmp/cache/assets/D76/8E0/sprockets%2F5af05ee642ef7c6c480c59d2683c05cf +0 -0
- data/test/dummy/tmp/cache/assets/D79/530/sprockets%2F87127ee1c6bcf4b91d8e5f2eda951842 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/7D0/sprockets%2F44be519f93759ef9d6faa21a8e532b7c +0 -0
- data/test/dummy/tmp/cache/assets/D7E/B50/sprockets%2Fd1d6bc2c8e90a69086a3fdd51d49e779 +0 -0
- data/test/dummy/tmp/cache/assets/D81/2E0/sprockets%2F0d2d4106bae377afa11cfc40ba8f6222 +0 -0
- data/test/dummy/tmp/cache/assets/D81/BE0/sprockets%2Fd17fbca0deb79f1d5fb200b13158010c +0 -0
- data/test/dummy/tmp/cache/assets/D82/950/sprockets%2F1f8a65498915f9fbdf8b2da74db800d8 +0 -0
- data/test/dummy/tmp/cache/assets/D87/2B0/sprockets%2Ffaf16963d8b856b046a1a96fef6d898b +0 -0
- data/test/dummy/tmp/cache/assets/D8A/CA0/sprockets%2F63b0ad83380a8b15a52c34cafe5c2de3 +0 -0
- data/test/dummy/tmp/cache/assets/D94/470/sprockets%2F3bf12b0f588dafba93c72a8ae1d20719 +0 -0
- data/test/dummy/tmp/cache/assets/D95/FB0/sprockets%2F7c5d5a248061ab4c0db3935cc39ff0fc +0 -0
- data/test/dummy/tmp/cache/assets/D97/2B0/sprockets%2Fd1ddf0ff80e01a73c31b2ced62877a94 +0 -0
- data/test/dummy/tmp/cache/assets/D98/0E0/sprockets%2F8f1dba887ccd80e10b70c026a3ce498b +0 -0
- data/test/dummy/tmp/cache/assets/D99/730/sprockets%2F6f1142f8fa2beb906b4a9ccd8e03a546 +0 -0
- data/test/dummy/tmp/cache/assets/D99/B70/sprockets%2F3330226a3ee4588f0e6c083dcbcef6fa +0 -0
- data/test/dummy/tmp/cache/assets/D99/D60/sprockets%2Fa5a6f50cb869da7b5d4170b7b2d7e2a6 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/1F0/sprockets%2Fb51430da8d69a96e5689aafa8c0ac71b +0 -0
- data/test/dummy/tmp/cache/assets/D9E/460/sprockets%2F717a54dade795a66c2f6daea7c325a80 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/6E0/sprockets%2F8ad3ca6d1c8f263b9cedad086e598122 +0 -0
- data/test/dummy/tmp/cache/assets/DA3/3E0/sprockets%2F37a6f8767ca6016b823aaccee078c8bf +0 -0
- data/test/dummy/tmp/cache/assets/DA4/640/sprockets%2F758aa928cedd052eb72b6c4d7dc438b6 +0 -0
- data/test/dummy/tmp/cache/assets/DA6/BD0/sprockets%2Ff7c34df9d6167bc3a49b90f74bd82a2c +0 -0
- data/test/dummy/tmp/cache/assets/DA9/280/sprockets%2Fc3386f232e36f9522dff1af8eb7d4e4d +0 -0
- data/test/dummy/tmp/cache/assets/DA9/BA0/sprockets%2F67d5749f62dd1a31ea998fdfc2b2e6c0 +0 -0
- data/test/dummy/tmp/cache/assets/DB0/610/sprockets%2F27f0e95fc9f245cfe45afd4d1f362a99 +0 -0
- data/test/dummy/tmp/cache/assets/DB1/AE0/sprockets%2Fbcf7eefe90b850e5b45267f2691c8ee5 +0 -0
- data/test/dummy/tmp/cache/assets/DB1/CC0/sprockets%2F449b63a2ccce6c96ca656fe56f4f29b8 +0 -0
- data/test/dummy/tmp/cache/assets/DB6/8D0/sprockets%2F99b8bcd8e7ac9e932a271c13e98fee45 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/470/sprockets%2F449cee166e97d8dd62dcf38dc48f47c6 +0 -0
- data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Fade0348f1f4f6d204cf07c256ccd33fa +0 -0
- data/test/dummy/tmp/cache/assets/DC5/510/sprockets%2Fddbe0b0bccf8028b03ef7993c5af8320 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/880/sprockets%2F95ecea645241bc5c7263fbaf5bf3f2b0 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/CD0/sprockets%2F2faab17861cdba1eb9e317d38a76da64 +0 -0
- data/test/dummy/tmp/cache/assets/DCA/B50/sprockets%2Fd3d82ca385d97142b4e57c7dca6fca0a +0 -0
- data/test/dummy/tmp/cache/assets/DCE/020/sprockets%2F6ce5583d1ef1afd8d72012c6dc9a4f4c +0 -0
- data/test/dummy/tmp/cache/assets/DCE/EA0/sprockets%2F8119567d3d979c4b91fea2b2bcaaefb0 +0 -0
- data/test/dummy/tmp/cache/assets/DD0/7F0/sprockets%2Fef2fa8f93ebd90602b488eaf3a0e554a +0 -0
- data/test/dummy/tmp/cache/assets/DD3/850/sprockets%2F3f0d25d896ebcb795fbcac0f45d874b0 +0 -0
- data/test/dummy/tmp/cache/assets/DDB/8C0/sprockets%2F837f7b8e8f33dbae4de34ba908bd328f +0 -0
- data/test/dummy/tmp/cache/assets/DDB/DA0/sprockets%2F3f6a3c8e4688abce408f6caf5b8dd653 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DDD/1E0/sprockets%2F596348d03c6fbcd9ac02fb9dbde6c878 +0 -0
- data/test/dummy/tmp/cache/assets/DE5/B70/sprockets%2Fc77a5e9b5e4f9fd02af4c1ed88d69d73 +0 -0
- data/test/dummy/tmp/cache/assets/DF0/CF0/sprockets%2F644ea5f42501f70e1a3daffaa5b9d1fd +0 -0
- data/test/dummy/tmp/cache/assets/DF2/260/sprockets%2F35c0090f47903a5efee65ac30cddccaf +0 -0
- data/test/dummy/tmp/cache/assets/DF5/5F0/sprockets%2F7f6b1930adca83a531ddbaa53ad76ee9 +0 -0
- data/test/dummy/tmp/cache/assets/DF6/390/sprockets%2Fa1c2e7c32b51dbfb4e5cb62f9f43a7a9 +0 -0
- data/test/dummy/tmp/cache/assets/DF8/B40/sprockets%2F037ccfb8fa7231bfa7ffbc59d070c3d4 +0 -0
- data/test/dummy/tmp/cache/assets/DFB/F00/sprockets%2F010dfb576ac2abb5d9d8ee5a9f6d328a +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E05/460/sprockets%2Fefc998afbc280b66df981c0ea0ea29c4 +0 -0
- data/test/dummy/tmp/cache/assets/E13/660/sprockets%2F1307359c773fdc80cdee9cf87efdd6fa +0 -0
- data/test/dummy/tmp/cache/assets/E1B/2A0/sprockets%2F6a86e3ac6f50aadb84ef5a3600adbc1d +0 -0
- data/test/dummy/tmp/cache/assets/E1B/B40/sprockets%2Fff174762b8bfd6df1fd9ad6fed18896d +0 -0
- data/test/dummy/tmp/cache/assets/E1E/220/sprockets%2F2c2fccd808a30aff0b21fac944dc6c7c +0 -0
- data/test/dummy/tmp/cache/assets/E21/3B0/sprockets%2Fabaa5df24f3535acc9cdfd56b0e0b349 +0 -0
- data/test/dummy/tmp/cache/assets/E32/120/sprockets%2F13ebfca6482f8e2fec5eface39805b2d +0 -0
- data/test/dummy/tmp/cache/assets/E32/1B0/sprockets%2F8539ffcc451cffbed1e1c8f09fa5a1c5 +0 -0
- data/test/dummy/tmp/cache/assets/E34/E20/sprockets%2F1a542cad56953aff56cbfbf337fcf9af +0 -0
- data/test/dummy/tmp/cache/assets/E3B/040/sprockets%2Fb8f87d0eb5a059cec709bdff6f7bfc15 +0 -0
- data/test/dummy/tmp/cache/assets/E5B/6A0/sprockets%2Fe58ffacd2cad19c5f5bda5b91f4620bf +0 -0
- data/test/dummy/tmp/cache/assets/E5C/840/sprockets%2Fcbfdfc7aeac880cc161f9fa61af654c3 +0 -0
- data/test/dummy/tmp/cache/assets/E68/250/sprockets%2F88d5fa5be6cb9d7e540bad6e94bdd8aa +0 -0
- data/test/dummy/tmp/cache/assets/E6F/F60/sprockets%2Fcf91796bdc66abbcde70ce9fcf47a76d +0 -0
- data/test/dummy/tmp/cache/assets/E7D/DA0/sprockets%2F3a4ceceac3e02f2a7b82dcf3f25ea7ad +0 -0
- data/test/dummy/tmp/cache/assets/E81/0E0/sprockets%2Fcc36d9cdd3fc1c5a8d1b54ccfadad352 +0 -0
- data/test/dummy/tmp/cache/assets/EBE/170/sprockets%2Fa7a17e1d2fe6fb6d5e368cfeddfae1ca +0 -0
- data/test/dummy/tmp/cache/assets/EED/8B0/sprockets%2F2c35ce7baabe8d64cceace7cb95bfd9a +0 -0
- data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/document.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/forms.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/286d476815ae5a0d73c086d611d7e534638a4c9a/tables.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_accordion.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_alerts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_button-groups.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_carousel.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_close.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_code.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_component-animations.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_dropdowns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_forms.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_hero-unit.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_labels-badges.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_layouts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_media.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_mixins.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_modals.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_navs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_pager.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_popovers.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_progress-bars.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_reset.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-1200px-min.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-767px-max.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-768px-979px.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_responsive-utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_scaffolding.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_sprites.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_thumbnails.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_tooltip.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_type.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_variables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/_wells.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/bootstrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9c4049ac4ab21c80305c119b565d8ccee297f91e/responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/e3442098eb9df3b4438ecccd23acb9a9a8b7fa1f/bootstrap-responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/e3442098eb9df3b4438ecccd23acb9a9a8b7fa1f/bootstrap.scssc +0 -0
- data/test/factories/invoice_bar_account.rb +16 -0
- data/test/factories/invoice_bar_address.rb +10 -0
- data/test/factories/invoice_bar_contact.rb +7 -0
- data/test/factories/invoice_bar_currency.rb +7 -0
- data/test/factories/invoice_bar_invoice.rb +28 -0
- data/test/factories/invoice_bar_invoice_template.rb +22 -0
- data/test/factories/invoice_bar_item.rb +7 -0
- data/test/factories/invoice_bar_receipt.rb +27 -0
- data/test/factories/invoice_bar_receipt_template.rb +21 -0
- data/test/factories/invoice_bar_user.rb +9 -0
- data/test/functional/invoice_bar/accounts_controller_test.rb +65 -0
- data/test/functional/invoice_bar/contacts_controller_test.rb +67 -0
- data/test/functional/invoice_bar/currencies_controller_test.rb +59 -0
- data/test/functional/invoice_bar/invoice_templates_controller_test.rb +71 -0
- data/test/functional/invoice_bar/invoices_controller_test.rb +76 -0
- data/test/functional/invoice_bar/receipt_templates_controller_test.rb +67 -0
- data/test/functional/invoice_bar/receipts_controller_test.rb +68 -0
- data/test/functional/invoice_bar/users_controller_test.rb +83 -0
- data/test/invoice_bar_test.rb +7 -0
- data/test/performance/browsing_test.rb +14 -0
- data/test/test_helper.rb +40 -0
- data/test/unit/invoice_bar/account_test.rb +31 -0
- data/test/unit/invoice_bar/address_test.rb +31 -0
- data/test/unit/invoice_bar/contact_test.rb +17 -0
- data/test/unit/invoice_bar/currency_test.rb +13 -0
- data/test/unit/invoice_bar/helpers/invoice_bar_helper_test.rb +19 -0
- data/test/unit/invoice_bar/invoice_template_test.rb +36 -0
- data/test/unit/invoice_bar/invoice_test.rb +67 -0
- data/test/unit/invoice_bar/item_test.rb +48 -0
- data/test/unit/invoice_bar/receipt_template_test.rb +34 -0
- data/test/unit/invoice_bar/receipt_test.rb +48 -0
- data/test/unit/invoice_bar/user_test.rb +29 -0
- metadata +1030 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
<%= content_for :sub_navigation do %>
|
2
|
+
<ul class="nav nav-pills">
|
3
|
+
<div class="btn-group">
|
4
|
+
<a class="btn btn-success" href="<%= new_contact_path %>"><i class="icon-plus icon-white"></i> <%= t('titles.contacts.new') %></a>
|
5
|
+
</div>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<h1><%= t('titles.contacts.list') %></h1>
|
10
|
+
|
11
|
+
<table class="table table-striped table-bordered table-hover">
|
12
|
+
<thead>
|
13
|
+
<tr>
|
14
|
+
<th class="name"><%= t('attributes.contact.name') %></th>
|
15
|
+
<th><%= t('attributes.contact.ic') %></th>
|
16
|
+
<th class="hidden-phone"><%= t('attributes.contact.email') %></th>
|
17
|
+
</tr>
|
18
|
+
</thead>
|
19
|
+
<tbody>
|
20
|
+
<% @contacts.each do |contact| %>
|
21
|
+
<tr>
|
22
|
+
<td class="name">
|
23
|
+
<span><%= link_to contact do %><%= contact.name %><% end %></span>
|
24
|
+
</td>
|
25
|
+
<td>
|
26
|
+
<span><%= contact.ic %></span>
|
27
|
+
</td>
|
28
|
+
<td class="hidden-phone">
|
29
|
+
<span><%= contact.email %></span>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
|
36
|
+
<% if @contacts.size == 0 %>
|
37
|
+
<div class="no-data">
|
38
|
+
<%= t('invoice_bar.no_data') %>
|
39
|
+
</div>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
<%= paginate @contacts %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<div class="span12" style="padding-bottom:20px">
|
2
|
+
<%= link_to t('buttons.edit'), edit_contact_path(@contact), class: 'btn' %>
|
3
|
+
<%= link_to t('buttons.destroy'), contact_path(@contact), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="show span4">
|
7
|
+
<b><%= t('attributes.contact.name') %></b>
|
8
|
+
<%= @contact.name %>
|
9
|
+
<br>
|
10
|
+
<b><%= t('attributes.contact.email') %></b>
|
11
|
+
<%= @contact.email %>
|
12
|
+
<br>
|
13
|
+
<b><%= t('attributes.contact.phone') %></b>
|
14
|
+
<%= @contact.phone %>
|
15
|
+
<br>
|
16
|
+
<b><%= t('attributes.contact.web') %></b>
|
17
|
+
<%= @contact.web %>
|
18
|
+
<br>
|
19
|
+
<b><%= t('attributes.contact.bank_account') %></b>
|
20
|
+
<%= @contact.bank_account %>
|
21
|
+
<br>
|
22
|
+
<b><%= t('attributes.contact.ic') %></b>
|
23
|
+
<%= @contact.ic %>
|
24
|
+
<br>
|
25
|
+
<b><%= t('attributes.contact.dic') %></b>
|
26
|
+
<%= @contact.dic %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<% if @contact.address %>
|
30
|
+
<div class="show span4">
|
31
|
+
<b><%= t('attributes.address.street') %></b>
|
32
|
+
<%= @contact.address.street %> <%= @contact.address.street_number %>
|
33
|
+
<br>
|
34
|
+
<b><%= t('attributes.address.city') %></b>
|
35
|
+
<%= @contact.address.postcode %> <%= @contact.address.city %>
|
36
|
+
<br>
|
37
|
+
<b><%= t('attributes.address.city_part') %></b>
|
38
|
+
<%= @contact.address.city_part %>
|
39
|
+
<br>
|
40
|
+
<b><%= t('attributes.address.extra_address_line') %></b>
|
41
|
+
<%= @contact.address.extra_address_line %>
|
42
|
+
</div>
|
43
|
+
<% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= form_for(@currency) do |f| %>
|
2
|
+
<%= render 'invoice_bar/forms/errors', :model => @currency %>
|
3
|
+
<div class="control-group">
|
4
|
+
<%= f.label :name, t('attributes.currency.name') %>
|
5
|
+
<%= f.text_field :name, class: 'suggested', placeholder: t('attributes.currency.name') %>
|
6
|
+
</div>
|
7
|
+
<div class="control-group">
|
8
|
+
<%= f.label :symbol, t('attributes.currency.symbol') %>
|
9
|
+
<%= f.text_field :symbol, class: 'suggested', placeholder: t('attributes.currency.symbol') %>
|
10
|
+
</div>
|
11
|
+
<div class="control-group">
|
12
|
+
<%= f.label :priority, t('attributes.currency.priority') %>
|
13
|
+
<%= f.text_field :priority, placeholder: t('attributes.currency.priority') %>
|
14
|
+
</div>
|
15
|
+
<%= f.submit t('buttons.save'), class: 'btn btn-primary' %>
|
16
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%= content_for :sub_navigation do %>
|
2
|
+
<ul class="nav nav-pills">
|
3
|
+
<div class="btn-group">
|
4
|
+
<a class="btn btn-success" href="<%= new_currency_path %>"><i class="icon-plus icon-white"></i> <%= t('titles.currencies.new') %></a>
|
5
|
+
</div>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<h1><%= t('titles.currencies.list') %></h1>
|
10
|
+
|
11
|
+
<table class="table table-striped table-bordered table-hover">
|
12
|
+
<thead>
|
13
|
+
<tr>
|
14
|
+
<th><%= t('attributes.currency.name') %></th>
|
15
|
+
<th><%= t('attributes.currency.symbol') %></th>
|
16
|
+
<th><%= t('attributes.currency.priority') %></th>
|
17
|
+
</tr>
|
18
|
+
</thead>
|
19
|
+
<tbody>
|
20
|
+
<% @currencies.each do |currency| %>
|
21
|
+
<tr>
|
22
|
+
<td>
|
23
|
+
<span><%= link_to currency do %><%= currency.name %><% end %></span>
|
24
|
+
</td>
|
25
|
+
<td>
|
26
|
+
<span><%= currency.symbol %></span>
|
27
|
+
</td>
|
28
|
+
<td>
|
29
|
+
<span><%= currency.priority %></span>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
|
36
|
+
<% if @currencies.size == 0 %>
|
37
|
+
<div class="no-data">
|
38
|
+
<%= t('invoice_bar.no_data') %>
|
39
|
+
</div>
|
40
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="span12" style="padding-bottom:20px">
|
2
|
+
<%= link_to t('buttons.edit'), edit_currency_path(@currency), class: 'btn' %>
|
3
|
+
<%= link_to t('buttons.destroy'), currency_path(@currency), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="show span4">
|
7
|
+
<b><%= t('attributes.currency.name') %>:</b>
|
8
|
+
<%= @currency.name %>
|
9
|
+
<br>
|
10
|
+
<b><%= t('attributes.currency.symbol') %>:</b>
|
11
|
+
<%= @currency.symbol %>
|
12
|
+
</div>
|
@@ -0,0 +1,110 @@
|
|
1
|
+
<div style="margin-bottom: 15px">
|
2
|
+
<% if document.instance_of? InvoiceBar::Invoice %>
|
3
|
+
<%= link_to "Vytvořit doklad o zaplacení", create_receipt_for_invoice_path(document), class: 'btn' if @invoice.receipt_id.blank? %>
|
4
|
+
<%= link_to 'Označit za odeslanou', mark_invoice_as_sent_path(document), class: 'btn' unless document.sent %>
|
5
|
+
|
6
|
+
<%= link_to t('buttons.edit'), edit_invoice_path(document), class: 'btn' %>
|
7
|
+
<%= link_to t('buttons.destroy'), invoice_path(document), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
8
|
+
<%= link_to "Zobrazit v PDF", invoice_path(document, format: 'pdf'), class: 'btn' %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<% if document.instance_of? InvoiceBar::Receipt %>
|
12
|
+
<%= link_to t('buttons.edit'), edit_receipt_path(document), class: 'btn' %>
|
13
|
+
<%= link_to t('buttons.destroy'), receipt_path(document), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
14
|
+
<%= link_to "Zobrazit v PDF", receipt_path(document, format: 'pdf'), class: 'btn' %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<% if document.instance_of? InvoiceBar::InvoiceTemplate %>
|
18
|
+
<%= link_to t('buttons.edit'), edit_invoice_template_path(document), class: 'btn' %>
|
19
|
+
<%= link_to t('buttons.destroy'), invoice_template_path(document), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<% if document.instance_of? InvoiceBar::ReceiptTemplate %>
|
23
|
+
<%= link_to t('buttons.edit'), edit_receipt_template_path(document), class: 'btn' %>
|
24
|
+
<%= link_to t('buttons.destroy'), receipt_template_path(document), method: :delete, confirm: t('buttons.destroy_confirm'), class: 'btn' %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div class="row">
|
30
|
+
<div class="span4 fixmax4">
|
31
|
+
<fieldset class="user">
|
32
|
+
<div class="top">
|
33
|
+
<%= t('attributes.invoice.provider') %>
|
34
|
+
</div>
|
35
|
+
<div class="name">
|
36
|
+
<strong><%= document.user_name %></strong>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<%= render 'invoice_bar/forms/address', address: document.user_address %>
|
40
|
+
|
41
|
+
<% unless document.user_ic.blank? %>
|
42
|
+
<div class='ic-dic'>
|
43
|
+
<div class="ic">
|
44
|
+
<span><%= t('attributes.user.ic') %>:</span> <%= document.user_ic %>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<% end %>
|
48
|
+
</fieldset>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div class="span4 fixmax4">
|
52
|
+
<fieldset class="customer">
|
53
|
+
<div class="top">
|
54
|
+
<%= t('attributes.invoice.purchaser') %>
|
55
|
+
</div>
|
56
|
+
<div class="name">
|
57
|
+
<strong><%= document.contact_name %></strong>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<%= render 'invoice_bar/forms/address', address: document.address if document.address %>
|
61
|
+
|
62
|
+
<% unless document.contact_ic.blank? %>
|
63
|
+
<div class='ic-dic'>
|
64
|
+
|
65
|
+
<div class="ic">
|
66
|
+
<span><%= t('attributes.contact.ic') %>:</span> <%= document.contact_ic %>
|
67
|
+
</div>
|
68
|
+
<% unless document.contact_dic.blank? %>
|
69
|
+
<div class="dic">
|
70
|
+
<span><%= t('attributes.contact.dic') %>:</span> <%= document.contact_dic %>
|
71
|
+
</div>
|
72
|
+
<% end %>
|
73
|
+
</div>
|
74
|
+
<% end %>
|
75
|
+
</fieldset>
|
76
|
+
</div>
|
77
|
+
|
78
|
+
<div class="span5 fixmax5">
|
79
|
+
<fieldset class="account">
|
80
|
+
<div class="top">
|
81
|
+
<%= t('attributes.invoice.payment') %>
|
82
|
+
</div>
|
83
|
+
<span><%= t('attributes.user.account') %>: </span><strong><%= document.account_bank_account_number %></strong>
|
84
|
+
<% unless document.account_swift.blank? %>
|
85
|
+
<br>
|
86
|
+
<span><%= t('attributes.account.swift') %>:</span> <%= document.account_swift %>
|
87
|
+
<% end %>
|
88
|
+
<% unless document.account_iban.blank? %>
|
89
|
+
<br>
|
90
|
+
<span><%= t('attributes.account.iban') %>:</span> <%= document.account_iban %>
|
91
|
+
<% end %>
|
92
|
+
<br>
|
93
|
+
<span>Forma uhrady:</span> <% if document.account_bank_account_number.blank? %>Hotově<% else %>převodem na účet<% end %>
|
94
|
+
<br>
|
95
|
+
<span><%= t('attributes.invoice.issue_date') %>:</span> <%= l(document.issue_date, :format => :invoice) unless document.issue_date.blank? %><br>
|
96
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::InvoiceTemplate %>
|
97
|
+
<span><%= t('attributes.invoice.due_date') %>:</span> <strong><%= l(document.due_date, :format => :invoice) unless document.due_date.blank? %></strong>
|
98
|
+
<% end %>
|
99
|
+
</fieldset>
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
|
103
|
+
|
104
|
+
<div id="bill-items">
|
105
|
+
<%= render 'invoice_bar/forms/items', items: document.items %>
|
106
|
+
</div>
|
107
|
+
|
108
|
+
<div id="total">
|
109
|
+
Celkem <%= formatted_amount(document.amount, document.account.currency_symbol) %>
|
110
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%# Address fields for an party in invoices#show %>
|
2
|
+
|
3
|
+
<div class="address">
|
4
|
+
<div class="street-line">
|
5
|
+
<div class="street">
|
6
|
+
<%= address.street %> <%= address.street_number %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
<div class="city-line">
|
10
|
+
<div class="city">
|
11
|
+
<%= formatted_postcode(address.postcode) %>
|
12
|
+
<%= address.city %>
|
13
|
+
<% unless address.city_part.empty? %>
|
14
|
+
<br>
|
15
|
+
<%= address.city_part %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="extra-address-line">
|
20
|
+
<%= address.extra_address_line unless address.extra_address_line.empty? %>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%# Address fields %>
|
2
|
+
|
3
|
+
<div class="control-group">
|
4
|
+
<%= f.label :street, I18n.t('attributes.address.street_and_number') %>
|
5
|
+
<div class="controls controls-row">
|
6
|
+
<%= f.text_field :street, placeholder: I18n.t('attributes.address.street'), class: 'street suggested' %>
|
7
|
+
<%= f.text_field :street_number, placeholder: I18n.t('attributes.address.street_number'), class: 'street_number suggested' %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="control-group">
|
11
|
+
<%= f.label :city, I18n.t('attributes.address.city_and_postcode') %>
|
12
|
+
<div class="controls controls-row">
|
13
|
+
<%= f.text_field :postcode, placeholder: I18n.t('attributes.address.postcode'), class: 'postcode suggested' %>
|
14
|
+
<%= f.text_field :city, placeholder: I18n.t('attributes.address.city'), class: 'city suggested' %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<div class="control-group">
|
18
|
+
<%= f.text_field :city_part, placeholder: I18n.t('attributes.address.city_part'), class: 'optional' %>
|
19
|
+
</div>
|
20
|
+
<div class="control-group">
|
21
|
+
<%= f.text_field :extra_address_line, placeholder: I18n.t('attributes.address.extra_address_line'), class: 'optional' %>
|
22
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%# Contact main fields %>
|
2
|
+
|
3
|
+
<div class="control-group">
|
4
|
+
<%= f.label :contact_name, I18n.t('attributes.invoice.contact_name') %>
|
5
|
+
<%= f.text_field :contact_name, placeholder: I18n.t('attributes.invoice.contact_name'), class: 'suggested contact_name' %>
|
6
|
+
<% unless @contacts.size == 0 %>
|
7
|
+
<div class="input-append">
|
8
|
+
<%= select_tag :contact_id, options_from_collection_for_select(@contacts, :id, :name), class: 'contact_name-select' %>
|
9
|
+
<%= f.submit t('links.prefill'), name: 'fill_in_contact', class: 'btn btn-small load-contact-button' %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
<div class="control-group">
|
14
|
+
<%= f.label :contact_ic, I18n.t('attributes.invoice.contact_ic') %>
|
15
|
+
<div class="input-append">
|
16
|
+
<%= f.text_field :contact_ic, placeholder: I18n.t('attributes.invoice.contact_ic'), class: 'suggested contact_ic' %>
|
17
|
+
<%= f.submit 'Načíst', name: 'ic', class: 'btn btn-medium load-ic-button' %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<div class="control-group">
|
21
|
+
<%= f.label :contact_dic, I18n.t('attributes.invoice.contact_dic') %>
|
22
|
+
<%= f.text_field :contact_dic, placeholder: I18n.t('attributes.invoice.contact_dic'), class: 'optional contact_dic' %>
|
23
|
+
</div>
|
@@ -0,0 +1,131 @@
|
|
1
|
+
<%# Form for invoices, bills and receipts %>
|
2
|
+
|
3
|
+
<%= nested_form_for(document) do |f| %>
|
4
|
+
<%= render 'invoice_bar/forms/errors', :model => document %>
|
5
|
+
|
6
|
+
|
7
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::Receipt %>
|
8
|
+
<div id="prefill-form" class="row" style="display:none">
|
9
|
+
<div class="span4 fixmax4">
|
10
|
+
<div class="control-group">
|
11
|
+
<%= label_tag :template_ids, I18n.t('attributes.invoice_template.name')%>
|
12
|
+
<% if document.instance_of? InvoiceBar::Invoice %>
|
13
|
+
<%= select_tag :template_ids, options_from_collection_for_select(@invoice_templates, :id, :name), multiple: true %>
|
14
|
+
<% else document.instance_of? InvoiceBar::Receipt %>
|
15
|
+
<%= select_tag :template_ids, options_from_collection_for_select(@receipt_templates, :id, :name), multiple: true %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="span4 fixmax4">
|
20
|
+
<%= f.submit t('links.prefill'), name: 'fill_in', class: 'btn btn-small' %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<div class="row">
|
26
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::Receipt %>
|
27
|
+
<div class="span3">
|
28
|
+
<div class="control-group">
|
29
|
+
<% if document.instance_of? InvoiceBar::Invoice %>
|
30
|
+
<%= f.label :number, I18n.t('attributes.invoice.number') %>
|
31
|
+
<% else %>
|
32
|
+
<%= f.label :number, I18n.t('attributes.receipt.number') %>
|
33
|
+
<% end %>
|
34
|
+
<%= f.text_field :number, placeholder: I18n.t('attributes.invoice.number'), class: 'suggested' %>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
<% if document.instance_of? InvoiceBar::InvoiceTemplate or document.instance_of? InvoiceBar::ReceiptTemplate %>
|
39
|
+
<div class="span3">
|
40
|
+
<div class="control-group">
|
41
|
+
<%= f.label :name, I18n.t('attributes.invoice_template.name') %>
|
42
|
+
<%= f.text_field :name, placeholder: I18n.t('attributes.invoice_template.name'), class: 'suggested' %>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
<% end %>
|
46
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::Receipt %>
|
47
|
+
|
48
|
+
<% if (@invoice_templates && @invoice_templates.size != 0) || (@receipt_templates && @receipt_templates.size != 0) %>
|
49
|
+
<div class="span4 fixmax4">
|
50
|
+
<div class="btn-group">
|
51
|
+
<a class="btn prefill-toggle" href="#"><i class="icon-align-justify"></i> Vybrat šablonu</a>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
55
|
+
<% end %>
|
56
|
+
<% if document.instance_of? InvoiceBar::Invoice %>
|
57
|
+
<div class="span4 fixmax4">
|
58
|
+
<div class="control-group" style="margin-top:25px;margin-left:10px">
|
59
|
+
<label class="radio">
|
60
|
+
<%= f.radio_button("issuer", "true") %>
|
61
|
+
<% if @next_issued %>
|
62
|
+
<%= hidden_field_tag 'issuer_true_hidden', nil, value: @next_issued %>
|
63
|
+
<% end %>
|
64
|
+
Vydaná
|
65
|
+
</label>
|
66
|
+
<label class="radio">
|
67
|
+
<%= f.radio_button("issuer", "false") %>
|
68
|
+
<% if @next_received %>
|
69
|
+
<%= hidden_field_tag 'issuer_false_hidden', nil, value: @next_received %>
|
70
|
+
<% end %>
|
71
|
+
Přijatá
|
72
|
+
</label>
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
<% end %>
|
76
|
+
<% if document.instance_of? InvoiceBar::Receipt %>
|
77
|
+
<div class="span4 fixmax4">
|
78
|
+
<div class="control-group" style="margin-top:25px;margin-left:10px">
|
79
|
+
<label class="radio">
|
80
|
+
<%= f.radio_button("issuer", "true") %>
|
81
|
+
<% if @next_income %>
|
82
|
+
<%= hidden_field_tag 'issuer_true_hidden', nil, value: @next_income %>
|
83
|
+
<% end %>
|
84
|
+
Příjem
|
85
|
+
</label>
|
86
|
+
<label class="radio">
|
87
|
+
<%= f.radio_button("issuer", "false") %>
|
88
|
+
<% if @next_expense %>
|
89
|
+
<%= hidden_field_tag 'issuer_false_hidden', nil, value: @next_expense %>
|
90
|
+
<% end %>
|
91
|
+
Výdaj
|
92
|
+
</label>
|
93
|
+
</div>
|
94
|
+
</div>
|
95
|
+
<% end %>
|
96
|
+
</div>
|
97
|
+
|
98
|
+
<%# Common form fields %>
|
99
|
+
<div class="row">
|
100
|
+
<div class="span5 fixmax5">
|
101
|
+
<h4>Pro firmu</h4>
|
102
|
+
<%= render 'invoice_bar/forms/contact_main_fields', f: f %>
|
103
|
+
</div>
|
104
|
+
<div class="span4 fixmax4">
|
105
|
+
<h4>Na adresu</h4>
|
106
|
+
<%# Document's address %>
|
107
|
+
<% document.address = document.build_address unless document.address %>
|
108
|
+
<%= f.fields_for :address do |f|
|
109
|
+
render 'invoice_bar/forms/address_fields', f: f
|
110
|
+
end -%>
|
111
|
+
</div>
|
112
|
+
<div class="span4 fixmax4">
|
113
|
+
<h4>Platba</h4>
|
114
|
+
<%= render 'invoice_bar/forms/payment_fields', f: f, document: document %>
|
115
|
+
</div>
|
116
|
+
<%= f.hidden_field :user_id %>
|
117
|
+
</div>
|
118
|
+
|
119
|
+
<%# Document's items %>
|
120
|
+
<div class="items">
|
121
|
+
<%= f.fields_for :items do |f|
|
122
|
+
render 'invoice_bar/forms/item_fields', f: f
|
123
|
+
end -%>
|
124
|
+
</div>
|
125
|
+
|
126
|
+
<%# Links and buttons %>
|
127
|
+
<div style="row">
|
128
|
+
<%= f.link_to_add I18n.t('links.new_item'), :items %>
|
129
|
+
<%= f.submit I18n.t('buttons.save'), class: 'btn btn-primary' %>
|
130
|
+
</div>
|
131
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%# Partial for form errors on model %>
|
2
|
+
|
3
|
+
<% if model.errors.any? %>
|
4
|
+
<div class="alert alert-error error_explanation">
|
5
|
+
<button type="button" class="close" data-dismiss="alert">×</button>
|
6
|
+
<h2>
|
7
|
+
<%= t('errors.template.header', model: model.class.model_name.human, count: model.errors.count) %>
|
8
|
+
</h2>
|
9
|
+
<!--
|
10
|
+
<ol>
|
11
|
+
<% model.errors.full_messages.each do |message| %>
|
12
|
+
<li><%= message %></li>
|
13
|
+
<% end %>
|
14
|
+
</ol>
|
15
|
+
-->
|
16
|
+
</div>
|
17
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<div class="navbar">
|
2
|
+
<div class="navbar-inner" style="background:lightgrey">
|
3
|
+
<ul class="nav">
|
4
|
+
<li>
|
5
|
+
<% if @invoices %>
|
6
|
+
<% url = filter_invoices_url %>
|
7
|
+
<% else %>
|
8
|
+
<% url = filter_receipts_url %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<%= form_tag url, method: 'get', class: "navbar-form pull-left" do %>
|
12
|
+
<%= text_field_tag :number, params[:number], placeholder: t('form.bill_number'), class: 'span2' %>
|
13
|
+
<%= text_field_tag :contact, params[:contact], placeholder: t('form.contact'), class: 'span2' %>
|
14
|
+
<%= text_field_tag :from_date, params[:from_date], placeholder: t('form.from_date'), class: 'smaller' %>
|
15
|
+
<%= text_field_tag :to_date, params[:to_date], placeholder: t('form.to_date'), class: 'smaller' %>
|
16
|
+
<%
|
17
|
+
unless params[:from_amount].blank?
|
18
|
+
params[:from_amount] = formatted_money(params[:from_amount])
|
19
|
+
end
|
20
|
+
%>
|
21
|
+
<%= text_field_tag :from_amount, params[:from_amount], placeholder: t('form.from_amount'), class: 'span2' %>
|
22
|
+
<%
|
23
|
+
unless params[:to_amount].blank?
|
24
|
+
params[:to_amount] = formatted_money(params[:to_amount])
|
25
|
+
end
|
26
|
+
%>
|
27
|
+
<%= text_field_tag :to_amount, params[:to_amount], placeholder: t('form.to_amount'), class: 'span2' %>
|
28
|
+
<%= submit_tag t('buttons.filter'), class: 'btn' %>
|
29
|
+
<% end %>
|
30
|
+
</li>
|
31
|
+
</ul>
|
32
|
+
</div>
|
33
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<%# Item fields %>
|
2
|
+
|
3
|
+
<div class="nested-fields item">
|
4
|
+
<div class="item-input-box name">
|
5
|
+
<div class="input-prepend">
|
6
|
+
<span class="add-on"><%= I18n.t('attributes.item.name') %></span>
|
7
|
+
<%= f.text_field :name %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="item-input-box number">
|
11
|
+
<div class="input-prepend">
|
12
|
+
<span class="add-on"><%= I18n.t('attributes.item.number') %></span>
|
13
|
+
<%= f.text_field :number %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<div class="item-input-box unit">
|
17
|
+
<div class="input-prepend">
|
18
|
+
<span class="add-on"><%= I18n.t('attributes.item.unit') %></span>
|
19
|
+
<%= f.text_field :unit, placeholder: I18n.t('attributes.item.default_unit') %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div class="item-input-box price">
|
23
|
+
<div class="input-prepend">
|
24
|
+
<span class="add-on"><%= I18n.t('attributes.item.price') %></span>
|
25
|
+
<%= f.text_field :price, value: formatted_money(f.object.price), placeholder: '0,00' %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<%= f.hidden_field :id %>
|
29
|
+
<%= f.hidden_field :_destroy %>
|
30
|
+
<div class="item-input-box remove">
|
31
|
+
<%= f.link_to_remove I18n.t('links.delete_item') %>
|
32
|
+
</div>
|
33
|
+
<div style="clear:both;"> </div>
|
34
|
+
</div>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%# Invoice and receipt items for #show %>
|
2
|
+
|
3
|
+
<div class="item header">
|
4
|
+
<div class="name">
|
5
|
+
<%= t('attributes.item.name') %>
|
6
|
+
</div>
|
7
|
+
<div class="number">
|
8
|
+
<%= t('attributes.item.number') %>
|
9
|
+
</div>
|
10
|
+
<div class="unit">
|
11
|
+
<%= t('attributes.item.unit') %>
|
12
|
+
</div>
|
13
|
+
<div class="price">
|
14
|
+
<%= t('attributes.item.price') %>
|
15
|
+
</div>
|
16
|
+
<div class="amount">
|
17
|
+
<%= t('attributes.item.amount') %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<% items.each do |item| %>
|
22
|
+
<div class="item">
|
23
|
+
<div class="name">
|
24
|
+
<%= item.name %>
|
25
|
+
</div>
|
26
|
+
<div class="number">
|
27
|
+
<%= item.number unless item.number %>
|
28
|
+
</div>
|
29
|
+
<div class="unit">
|
30
|
+
<%= item.unit unless item.unit %>
|
31
|
+
</div>
|
32
|
+
<div class="price">
|
33
|
+
<%= formatted_amount(item.price) %>
|
34
|
+
</div>
|
35
|
+
<div class="amount">
|
36
|
+
<%= formatted_amount(item.amount) %>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
40
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%# Document payment fields %>
|
2
|
+
|
3
|
+
<div class="control-group">
|
4
|
+
<%= f.label :account_id, I18n.t('attributes.invoice.account_id')%>
|
5
|
+
<%= f.collection_select :account_id, @accounts, :id, :name %>
|
6
|
+
</div>
|
7
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::InvoiceTemplate %>
|
8
|
+
<div class="control-group">
|
9
|
+
<%= f.label :payment_identification_number, I18n.t('attributes.invoice.payment_identification_number') %>
|
10
|
+
<%= f.text_field :payment_identification_number, placeholder: I18n.t('attributes.invoice.payment_identification_number'), class: 'optional' %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
<div class="control-group">
|
14
|
+
<%= f.label :issue_date, I18n.t('attributes.invoice.issue_date') %>
|
15
|
+
<%= f.text_field :issue_date, placeholder: I18n.t('attributes.invoice.issue_date'), class: 'datepicker' %>
|
16
|
+
</div>
|
17
|
+
<% if document.instance_of? InvoiceBar::Invoice or document.instance_of? InvoiceBar::InvoiceTemplate %>
|
18
|
+
<div class="control-group">
|
19
|
+
<%= f.label :due_date, I18n.t('attributes.invoice.due_date') %>
|
20
|
+
<%= f.text_field :due_date, placeholder: I18n.t('attributes.invoice.due_date'), class: 'datepicker' %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|