bookyt 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/16x16/add.png +0 -0
- data/app/assets/images/16x16/alert.png +0 -0
- data/app/assets/images/16x16/combolink.png +0 -0
- data/app/assets/images/16x16/copy.png +0 -0
- data/app/assets/images/16x16/delete.png +0 -0
- data/app/assets/images/16x16/edit.png +0 -0
- data/app/assets/images/16x16/filter.png +0 -0
- data/app/assets/images/16x16/index.png +0 -0
- data/app/assets/images/16x16/notice.png +0 -0
- data/app/assets/images/16x16/pdf.png +0 -0
- data/app/assets/images/16x16/print.png +0 -0
- data/app/assets/images/16x16/show.png +0 -0
- data/app/assets/images/22x22/arrow-right.png +0 -0
- data/app/assets/images/22x22/edit.png +0 -0
- data/app/assets/images/22x22/insert_booking.png +0 -0
- data/app/assets/images/22x22/remove.png +0 -0
- data/app/assets/images/32x32/edit.png +0 -0
- data/app/assets/images/32x32/remove.png +0 -0
- data/app/assets/images/48x48/accounting.png +0 -0
- data/app/assets/images/48x48/basic_claims_data.png +0 -0
- data/app/assets/images/48x48/contacts.png +0 -0
- data/app/assets/images/48x48/invoicing.png +0 -0
- data/app/assets/images/48x48/nav_users.png +0 -0
- data/app/assets/images/48x48/settings.png +0 -0
- data/app/assets/images/48x48/store.png +0 -0
- data/app/assets/images/button_bg.png +0 -0
- data/app/assets/images/crystal-icons/16x16/filter.png +0 -0
- data/app/assets/images/down.png +0 -0
- data/app/assets/images/favicon.ico +0 -0
- data/app/assets/images/flavour-extended/48x48/invoice.png +0 -0
- data/app/assets/images/free-business-desktop-icons/48x48/business.png +0 -0
- data/app/assets/images/gnome-web-icons/48x48/Gnome-X-Office-Address-Book-48.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_759fcf_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_85_aeb9cf_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_aeb9cf_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_759fcf_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_217bc0_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_469bdd_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_6da8d5_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_d8e7f3_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f9bd01_256x240.png +0 -0
- data/app/assets/images/jquery/tooltip/black_arrow.png +0 -0
- data/app/assets/images/letter-logo.alpha.png +0 -0
- data/app/assets/images/letter-logo.big.png +0 -0
- data/app/assets/images/letter-logo.orig.png +0 -0
- data/app/assets/images/letter-logo.png +0 -0
- data/app/assets/images/loading.gif +0 -0
- data/app/assets/images/logo.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/application-pdf.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/document-preview.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/document-print.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/edit-copy.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/go-next.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/mail-mark-notjunk.png +0 -0
- data/app/assets/images/oxygen-icons/16x16/status_unknown.png +0 -0
- data/app/assets/images/oxygen-icons/48x48/system-users.png +0 -0
- data/app/assets/images/rails.png +0 -0
- data/app/assets/images/up.png +0 -0
- data/app/assets/javascripts/application.js +49 -0
- data/app/assets/javascripts/cyt.js +86 -0
- data/app/assets/javascripts/jquery-ui.js +11437 -0
- data/app/assets/javascripts/jquery.dirtyform.js +242 -0
- data/app/assets/javascripts/jquery.form.js +785 -0
- data/app/assets/javascripts/jquery.js +8936 -0
- data/app/assets/javascripts/jquery.meio.mask.js +683 -0
- data/app/assets/javascripts/jquery.remotipart.js +46 -0
- data/app/assets/javascripts/jquery.ui.combobox.js +77 -0
- data/app/assets/javascripts/jquery_ujs.js +316 -0
- data/app/assets/javascripts/nested_form.js +51 -0
- data/app/assets/javascripts/tooltip.js +343 -0
- data/app/assets/stylesheets/.gitkeep +0 -0
- data/app/assets/stylesheets/ie.scss +16 -0
- data/app/assets/stylesheets/ie6.scss +4 -0
- data/app/assets/stylesheets/partials/_base.sass +39 -0
- data/app/assets/stylesheets/partials/_content.sass +60 -0
- data/app/assets/stylesheets/partials/_jquery.sass +2 -0
- data/app/assets/stylesheets/partials/_layout.sass +21 -0
- data/app/assets/stylesheets/partials/_sidebar.sass +5 -0
- data/app/assets/stylesheets/partials/content/_accounting.sass +41 -0
- data/app/assets/stylesheets/partials/content/_ajax_indicator.sass +28 -0
- data/app/assets/stylesheets/partials/content/_app.sass +43 -0
- data/app/assets/stylesheets/partials/content/_combobox.sass +8 -0
- data/app/assets/stylesheets/partials/content/_cyt.sass +200 -0
- data/app/assets/stylesheets/partials/content/_fancy_buttons.sass +10 -0
- data/app/assets/stylesheets/partials/content/_flash_errors.sass +46 -0
- data/app/assets/stylesheets/partials/content/_form_view.sass +20 -0
- data/app/assets/stylesheets/partials/content/_icons.sass +35 -0
- data/app/assets/stylesheets/partials/content/_invoice.sass +6 -0
- data/app/assets/stylesheets/partials/content/_overview.sass +40 -0
- data/app/assets/stylesheets/partials/content/_pagination.sass +61 -0
- data/app/assets/stylesheets/partials/content/_person.sass +5 -0
- data/app/assets/stylesheets/partials/content/_scaffold.sass +67 -0
- data/app/assets/stylesheets/partials/content/_table_list.sass +26 -0
- data/app/assets/stylesheets/partials/content/formtastic/_formtastic.sass +201 -0
- data/app/assets/stylesheets/partials/content/formtastic/_formtastic_cyt.sass +90 -0
- data/app/assets/stylesheets/partials/formtastic/_custom_fields.sass +2 -0
- data/app/assets/stylesheets/partials/formtastic/_formtastic_base.sass +652 -0
- data/app/assets/stylesheets/partials/jquery/_jquery_ui.sass +1461 -0
- data/app/assets/stylesheets/partials/jquery/_tooltip.sass +21 -0
- data/app/assets/stylesheets/partials/layout/_header.sass +29 -0
- data/app/assets/stylesheets/partials/layout/_navigation.sass +2 -0
- data/app/assets/stylesheets/partials/layout/navigation/_main.sass +34 -0
- data/app/assets/stylesheets/partials/layout/navigation/_sidebar.sass +18 -0
- data/app/assets/stylesheets/partials/print/_app.sass +21 -0
- data/app/assets/stylesheets/partials/print/_layout.sass +24 -0
- data/app/assets/stylesheets/print.scss +5 -0
- data/app/assets/stylesheets/screen.scss +12 -0
- data/app/controllers/account_types_controller.rb +2 -0
- data/app/controllers/accounts_controller.rb +30 -0
- data/app/controllers/application_controller.rb +12 -0
- data/app/controllers/attachments_controller.rb +15 -0
- data/app/controllers/authorized_controller.rb +24 -0
- data/app/controllers/bank_accounts_controller.rb +2 -0
- data/app/controllers/booking_imports_controller.rb +2 -0
- data/app/controllers/booking_templates_controller.rb +8 -0
- data/app/controllers/bookings_controller.rb +64 -0
- data/app/controllers/charge_booking_templates_controller.rb +2 -0
- data/app/controllers/charge_rates_controller.rb +2 -0
- data/app/controllers/companies_controller.rb +8 -0
- data/app/controllers/credit_invoices_controller.rb +29 -0
- data/app/controllers/customers_controller.rb +12 -0
- data/app/controllers/debit_invoices_controller.rb +43 -0
- data/app/controllers/direct_bookings_controller.rb +17 -0
- data/app/controllers/employees_controller.rb +3 -0
- data/app/controllers/employments_controller.rb +2 -0
- data/app/controllers/invoices_controller.rb +21 -0
- data/app/controllers/notes_controller.rb +34 -0
- data/app/controllers/overview_controller.rb +6 -0
- data/app/controllers/people_controller.rb +13 -0
- data/app/controllers/salaries_controller.rb +46 -0
- data/app/controllers/tenants_controller.rb +39 -0
- data/app/controllers/users_controller.rb +26 -0
- data/app/helpers/application_helper.rb +52 -0
- data/app/helpers/booking_helper.rb +10 -0
- data/app/helpers/booking_template_helper.rb +17 -0
- data/app/helpers/charge_rate_helper.rb +5 -0
- data/app/helpers/invoice_helper.rb +9 -0
- data/app/helpers/vat_rate_helper.rb +10 -0
- data/app/inputs/combobox_input.rb +23 -0
- data/app/inputs/date_field_input.rb +5 -0
- data/app/inputs/hour_field_input.rb +5 -0
- data/app/models/ability.rb +34 -0
- data/app/models/attachment.rb +13 -0
- data/app/models/booking_import.rb +8 -0
- data/app/models/booking_import_observer.rb +7 -0
- data/app/models/booking_reference.rb +4 -0
- data/app/models/booking_template.rb +92 -0
- data/app/models/charge_booking_template.rb +57 -0
- data/app/models/charge_rate.rb +30 -0
- data/app/models/civil_status.rb +5 -0
- data/app/models/company.rb +5 -0
- data/app/models/credit_invoice.rb +32 -0
- data/app/models/customer.rb +4 -0
- data/app/models/debit_invoice.rb +24 -0
- data/app/models/employee.rb +6 -0
- data/app/models/employment.rb +28 -0
- data/app/models/invoice.rb +145 -0
- data/app/models/line_item.rb +22 -0
- data/app/models/note.rb +8 -0
- data/app/models/person.rb +65 -0
- data/app/models/product.rb +2 -0
- data/app/models/profit.rb +9 -0
- data/app/models/religion.rb +5 -0
- data/app/models/role.rb +9 -0
- data/app/models/salary.rb +93 -0
- data/app/models/tenant.rb +43 -0
- data/app/models/user.rb +44 -0
- data/app/models/vat_rate.rb +11 -0
- data/app/uploaders/attachment_uploader.rb +12 -0
- data/app/views/account_types/_account_type.html.haml +6 -0
- data/app/views/account_types/_form.html.haml +7 -0
- data/app/views/account_types/_list.html.haml +7 -0
- data/app/views/account_types/index.html.haml +6 -0
- data/app/views/account_types/show.html.haml +6 -0
- data/app/views/accounts/_account.html.haml +12 -0
- data/app/views/accounts/_booking_item.html.haml +15 -0
- data/app/views/accounts/_booking_list.html.haml +19 -0
- data/app/views/accounts/_booking_list_footer.html.haml +2 -0
- data/app/views/accounts/_booking_list_header.html.haml +8 -0
- data/app/views/accounts/_booking_list_paginate.html.haml +5 -0
- data/app/views/accounts/_booking_list_saldo.html.haml +8 -0
- data/app/views/accounts/_booking_list_turnover.html.haml +9 -0
- data/app/views/accounts/_carry_booking.html.haml +9 -0
- data/app/views/accounts/_form.html.haml +10 -0
- data/app/views/accounts/_list_footer.html.haml +2 -0
- data/app/views/accounts/_list_header.html.haml +5 -0
- data/app/views/accounts/index.html.haml +8 -0
- data/app/views/accounts/show.html.haml +10 -0
- data/app/views/application/_form.html.haml +7 -0
- data/app/views/application/_list.html.haml +15 -0
- data/app/views/application/_search_form.html.haml +5 -0
- data/app/views/application/_show.html.haml +2 -0
- data/app/views/application/create.js.erb +3 -0
- data/app/views/application/destroy.js.erb +2 -0
- data/app/views/application/edit.html.haml +5 -0
- data/app/views/application/edit.js.erb +3 -0
- data/app/views/application/index.html.haml +7 -0
- data/app/views/application/new.html.haml +5 -0
- data/app/views/application/new.js.erb +3 -0
- data/app/views/application/show.html.haml +5 -0
- data/app/views/application/update.js.erb +3 -0
- data/app/views/attachments/_attachment.html.haml +5 -0
- data/app/views/attachments/_form.html.haml +15 -0
- data/app/views/attachments/_list.html.haml +6 -0
- data/app/views/bank_accounts/_bank_account.html.haml +1 -0
- data/app/views/booking_imports/_booking_import.html.haml +5 -0
- data/app/views/booking_imports/_form.html.haml +6 -0
- data/app/views/booking_imports/_list.html.haml +7 -0
- data/app/views/booking_imports/create.js.erb +4 -0
- data/app/views/booking_imports/index.html.haml +6 -0
- data/app/views/booking_imports/show.html.haml +6 -0
- data/app/views/booking_templates/_booking_template.html.haml +16 -0
- data/app/views/booking_templates/_form.html.haml +12 -0
- data/app/views/booking_templates/_list.html.haml +10 -0
- data/app/views/booking_templates/index.html.haml +6 -0
- data/app/views/bookings/_booking.html.haml +17 -0
- data/app/views/bookings/_form.html.haml +14 -0
- data/app/views/bookings/_list.html.haml +11 -0
- data/app/views/bookings/_new_form.html.haml +8 -0
- data/app/views/bookings/_sidebar.html.haml +7 -0
- data/app/views/bookings/_simple_form.html.haml +12 -0
- data/app/views/bookings/index.html.haml +9 -0
- data/app/views/bookings/new.html.haml +8 -0
- data/app/views/bookings/select.html.haml +11 -0
- data/app/views/bookings/show.html.haml +27 -0
- data/app/views/bookings/simple_edit.html.haml +4 -0
- data/app/views/charge_booking_templates/_charge_booking_template.html.haml +15 -0
- data/app/views/charge_booking_templates/_form.html.haml +12 -0
- data/app/views/charge_booking_templates/_list.html.haml +10 -0
- data/app/views/charge_rates/_form.html.haml +14 -0
- data/app/views/companies/_company.html.haml +5 -0
- data/app/views/companies/_form.html.haml +8 -0
- data/app/views/companies/_list.html.haml +6 -0
- data/app/views/companies/index.html.haml +6 -0
- data/app/views/companies/show.html.haml +27 -0
- data/app/views/credit_invoices/_credit_invoice.html.haml +9 -0
- data/app/views/credit_invoices/_form.html.haml +41 -0
- data/app/views/credit_invoices/_list.html.haml +20 -0
- data/app/views/credit_invoices/index.html.haml +7 -0
- data/app/views/credit_invoices/show.html.haml +56 -0
- data/app/views/customers/_customer.html.haml +5 -0
- data/app/views/customers/_form.html.haml +8 -0
- data/app/views/customers/_list.html.haml +6 -0
- data/app/views/customers/index.html.haml +6 -0
- data/app/views/customers/show.html.haml +22 -0
- data/app/views/debit_invoices/_debit_invoice.html.haml +9 -0
- data/app/views/debit_invoices/_form.html.haml +38 -0
- data/app/views/debit_invoices/_invoice_body.html.haml +8 -0
- data/app/views/debit_invoices/_invoice_info.html.haml +10 -0
- data/app/views/debit_invoices/_invoice_parties.html.haml +9 -0
- data/app/views/debit_invoices/_list.html.haml +21 -0
- data/app/views/debit_invoices/index.html.haml +7 -0
- data/app/views/debit_invoices/letter.html.haml +9 -0
- data/app/views/debit_invoices/letter.pdf.prawn +57 -0
- data/app/views/debit_invoices/show.html.haml +56 -0
- data/app/views/devise/confirmations/new.html.haml +10 -0
- data/app/views/devise/mailer/confirmation_instructions.html.haml +6 -0
- data/app/views/devise/mailer/reset_password_instructions.html.haml +10 -0
- data/app/views/devise/mailer/unlock_instructions.html.haml +8 -0
- data/app/views/devise/passwords/edit.html.haml +15 -0
- data/app/views/devise/passwords/new.html.haml +11 -0
- data/app/views/devise/sessions/new.html.haml +13 -0
- data/app/views/devise/shared/_links.haml +15 -0
- data/app/views/devise/unlocks/new.html.haml +11 -0
- data/app/views/direct_bookings/_form.html.haml +12 -0
- data/app/views/direct_bookings/_item.html.haml +17 -0
- data/app/views/direct_bookings/_list.html.haml +10 -0
- data/app/views/direct_bookings/_list_footer.html.haml +6 -0
- data/app/views/direct_bookings/_show.html.haml +3 -0
- data/app/views/direct_bookings/_show_all.html.haml +8 -0
- data/app/views/direct_bookings/list.js.erb +2 -0
- data/app/views/direct_bookings/new.js.erb +2 -0
- data/app/views/employees/_employee.html.haml +5 -0
- data/app/views/employees/_form.html.haml +19 -0
- data/app/views/employees/_list.html.haml +6 -0
- data/app/views/employees/index.html.haml +6 -0
- data/app/views/employees/show.html.haml +31 -0
- data/app/views/employments/_employment.html.haml +10 -0
- data/app/views/employments/_form.html.haml +24 -0
- data/app/views/employments/_list.html.haml +11 -0
- data/app/views/employments/_show.html.haml +9 -0
- data/app/views/employments/index.html.haml +5 -0
- data/app/views/invoices/_form.html.haml +13 -0
- data/app/views/invoices/_invoice.html.haml +7 -0
- data/app/views/invoices/_list.html.haml +20 -0
- data/app/views/invoices/_sidebar.html.haml +11 -0
- data/app/views/invoices/index.html.haml +17 -0
- data/app/views/invoices/show.html.haml +56 -0
- data/app/views/layouts/_flash_new.html.haml +1 -0
- data/app/views/layouts/_list_item_actions_for.html.haml +3 -0
- data/app/views/layouts/application.html.haml +46 -0
- data/app/views/line_items/_form.html.haml +6 -0
- data/app/views/line_items/_line_item.html.haml +7 -0
- data/app/views/line_items/_list_footer.html.haml +7 -0
- data/app/views/notes/_form.html.haml +10 -0
- data/app/views/notes/_list.html.haml +15 -0
- data/app/views/notes/index.html.haml +9 -0
- data/app/views/notes/show.html.haml +12 -0
- data/app/views/overview/index.html.haml +14 -0
- data/app/views/people/_form.html.haml +8 -0
- data/app/views/people/_list.html.haml +7 -0
- data/app/views/people/_person.html.haml +6 -0
- data/app/views/people/_show.html.haml +6 -0
- data/app/views/people/show.html.haml +21 -0
- data/app/views/persons/_civil.html.haml +5 -0
- data/app/views/persons/_show.html.haml +6 -0
- data/app/views/salaries/_form.html.haml +14 -0
- data/app/views/salaries/_list.html.haml +12 -0
- data/app/views/salaries/_salary.html.haml +10 -0
- data/app/views/salaries/_salary_certificate.html.haml +25 -0
- data/app/views/salaries/payslip.html.haml +40 -0
- data/app/views/salaries/show.html.haml +30 -0
- data/app/views/salaries/statistics.html.haml +6 -0
- data/app/views/tenants/_account.html.haml +7 -0
- data/app/views/tenants/_account_group_sheet.html.haml +8 -0
- data/app/views/tenants/_form.html.haml +17 -0
- data/app/views/tenants/_list.html.haml +7 -0
- data/app/views/tenants/_tenant.html.haml +7 -0
- data/app/views/tenants/balance_sheet.html.haml +43 -0
- data/app/views/tenants/index.html.haml +6 -0
- data/app/views/tenants/new.js.erb +1 -0
- data/app/views/tenants/profit_sheet.html.haml +26 -0
- data/app/views/tenants/show.html.haml +18 -0
- data/app/views/users/_demo.de-CH.html.haml +7 -0
- data/app/views/users/_demo.de.html.haml +7 -0
- data/app/views/users/_demo.html.haml +7 -0
- data/app/views/users/_form.html.haml +17 -0
- data/app/views/users/_list.html.haml +9 -0
- data/app/views/users/_show.html.haml +13 -0
- data/app/views/users/_user.html.haml +7 -0
- data/app/views/users/index.html.haml +6 -0
- data/app/views/users/new.js.erb +1 -0
- data/app/views/users/show.html.haml +14 -0
- data/lib/acts_as_csv.rb +113 -0
- data/lib/bookyt/engine.rb +18 -0
- data/lib/bookyt/version.rb +3 -0
- data/lib/float.rb +17 -0
- data/lib/pagination_list_link_renderer.rb +63 -0
- data/lib/parse_date.rb +27 -0
- data/lib/prawn/letter_document.rb +136 -0
- data/lib/raiffeisen_importer.rb +15 -0
- data/lib/recipes/bookyt.rb +15 -0
- data/lib/simple_navigation/renderer/list.rb +20 -0
- data/lib/simple_navigation/renderer/overview.rb +46 -0
- data/lib/sqlite3_extensions.rb +45 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/bookyt.rake +15 -0
- data/lib/tasks/cucumber.rake +53 -0
- data/lib/tasks/environment_seeds.rake +7 -0
- data/lib/tasks/users.rake +46 -0
- metadata +423 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
%tr[account]
|
2
|
+
%td= account.code
|
3
|
+
%td= account.title
|
4
|
+
|
5
|
+
- for @date in @dates
|
6
|
+
%td{:style => "text-align: right"}
|
7
|
+
= link_to currency_fmt(account.saldo(@date)), account_path(account, :by_value_period => @date.respond_to?(:first) ? {:from => @date.first.to_s(:db), :to => @date.last.to_s(:db)} : {:to => @date.to_s(:db)})
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= semantic_form_for @tenant do |f|
|
2
|
+
= f.semantic_errors
|
3
|
+
= f.inputs do
|
4
|
+
= f.input :users
|
5
|
+
|
6
|
+
- f.object.build_company unless f.object.company
|
7
|
+
= f.inputs t('form.company.address') do
|
8
|
+
= f.semantic_fields_for :company do |p|
|
9
|
+
= render 'vcards/form', :f => p
|
10
|
+
|
11
|
+
= f.inputs t('form.company.book_keeping') do
|
12
|
+
= f.input :incorporated_on, :as => :date_field
|
13
|
+
= f.input :fiscal_year_ends_on, :as => :date_field
|
14
|
+
= f.input :vat_number
|
15
|
+
|
16
|
+
= f.buttons do
|
17
|
+
= f.commit_button
|
@@ -0,0 +1,43 @@
|
|
1
|
+
.contextual
|
2
|
+
= icon_link_to :pdf, :format => :pdf
|
3
|
+
= icon_link_to :profit_sheet, :action => :profit_sheet, :by_value_period => params[:by_value_period]
|
4
|
+
= contextual_links_for
|
5
|
+
|
6
|
+
%h1= t('bookyt.balance_report_for', :company => @company)
|
7
|
+
|
8
|
+
%table{:width => "100%"}
|
9
|
+
%tr
|
10
|
+
%th{:colspan => "2"}
|
11
|
+
-for @date in @dates
|
12
|
+
%th{:style => "text-align: right"}
|
13
|
+
%h2= @date.year
|
14
|
+
|
15
|
+
%tr
|
16
|
+
%th{:colspan => "2"}
|
17
|
+
%h2= t('bookyt.assets')
|
18
|
+
-for @date in @dates
|
19
|
+
%th{:style => "text-align: right"}
|
20
|
+
%h2= currency_fmt(Account.by_type('current_assets').saldo(@date) + Account.by_type('capital_assets').saldo(@date))
|
21
|
+
|
22
|
+
= render 'account_group_sheet', :group => 'current_assets'
|
23
|
+
= render 'account_group_sheet', :group => 'capital_assets'
|
24
|
+
|
25
|
+
%tr
|
26
|
+
%th{:colspan => "2"}
|
27
|
+
%h2= t('bookyt.capital')
|
28
|
+
-for @date in @dates
|
29
|
+
%th{:style => "text-align: right"}
|
30
|
+
%h2= currency_fmt(Account.by_type('outside_capital').saldo(@date) + Account.by_type('equity_capital').saldo(@date))
|
31
|
+
|
32
|
+
= render 'account_group_sheet', :group => 'outside_capital'
|
33
|
+
= render 'account_group_sheet', :group => 'equity_capital'
|
34
|
+
|
35
|
+
%tr
|
36
|
+
%th{:colspan => "2"}
|
37
|
+
%h3= t('bookyt.difference')
|
38
|
+
|
39
|
+
- for @date in @dates
|
40
|
+
%th{:style => "text-align: right"}
|
41
|
+
%h3= currency_fmt(Account.by_type('current_assets').saldo(@date) + Account.by_type('capital_assets').saldo(@date) - Account.by_type('outside_capital').saldo(@date) - Account.by_type('equity_capital').saldo(@date))
|
42
|
+
|
43
|
+
= render 'bookings/sidebar'
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= show_new_form(Tenant) %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.contextual
|
2
|
+
= icon_link_to :pdf, :format => :pdf
|
3
|
+
= icon_link_to :balance_sheet, :action => :balance_sheet, :by_value_period => params[:by_value_period]
|
4
|
+
= contextual_links_for
|
5
|
+
|
6
|
+
%h1= t('bookyt.profit_report_for', :company => @company, :per => @end_date)
|
7
|
+
|
8
|
+
%table{:width => "100%"}
|
9
|
+
%tr
|
10
|
+
%th{:colspan => "2"}
|
11
|
+
-for @date in @dates
|
12
|
+
%th{:style => "text-align: right"}
|
13
|
+
%h2= @date.last.year
|
14
|
+
|
15
|
+
= render 'account_group_sheet', :group => 'costs'
|
16
|
+
= render 'account_group_sheet', :group => 'earnings'
|
17
|
+
|
18
|
+
%tr
|
19
|
+
%th{:colspan => "2"}
|
20
|
+
%h3= t('title.profit')
|
21
|
+
|
22
|
+
- for @date in @dates
|
23
|
+
%th{:style => "text-align: right"}
|
24
|
+
%h3= currency_fmt(Account.by_type('earnings').saldo(@date) - Account.by_type('costs').saldo(@date))
|
25
|
+
|
26
|
+
= render 'bookings/sidebar'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.contextual
|
2
|
+
= icon_link_to :profit_sheet
|
3
|
+
= icon_link_to :balance_sheet
|
4
|
+
= contextual_links_for
|
5
|
+
|
6
|
+
%h1= link_to @tenant.company, @tenant.company
|
7
|
+
|
8
|
+
= render 'persons/show', :vcard => @tenant.company.vcard
|
9
|
+
%br
|
10
|
+
= t_attr(:vat_number) + ": " + @tenant.vat_number
|
11
|
+
|
12
|
+
.contextual
|
13
|
+
= icon_link_to :new, new_tenant_attachment_path(resource), :remote => true
|
14
|
+
%h3= t('title.attachments')
|
15
|
+
|
16
|
+
- @attachments = resource.attachments
|
17
|
+
#attachments_list
|
18
|
+
= render 'attachments/list' unless @attachments.empty?
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= semantic_form_for @user do |f|
|
2
|
+
= f.semantic_errors
|
3
|
+
= f.inputs do
|
4
|
+
= f.input :email
|
5
|
+
= f.input :password, :hint => !f.object.new_record?, :input_html => {:autocomplete => "off"}
|
6
|
+
= f.input :password_confirmation
|
7
|
+
= f.input :current_password, :required => true unless can?(:manage, User)
|
8
|
+
= f.input :role_texts, :as => :select, :collection => Ability.roles_for_collection, :include_blank => false, :input_html => {:multiple => 'multiple'}, :required => true if can?(:manage, Role)
|
9
|
+
= f.input :locale, :as => :radio, :collection => [['Deutsch Schweiz', 'de-CH'], ['English', 'en']]
|
10
|
+
|
11
|
+
- f.object.build_person unless f.object.person
|
12
|
+
= f.inputs t('form.person.address') do
|
13
|
+
= f.semantic_fields_for :person do |p|
|
14
|
+
= render 'vcards/form', :f => p
|
15
|
+
|
16
|
+
= f.buttons do
|
17
|
+
= f.commit_button
|
@@ -0,0 +1,13 @@
|
|
1
|
+
%table
|
2
|
+
%tr
|
3
|
+
%th= t_attr :street_address
|
4
|
+
%td= @user.person.vcard.street_address
|
5
|
+
%tr
|
6
|
+
%th= t_attr :locality
|
7
|
+
%td= @user.person.vcard.locality
|
8
|
+
%tr
|
9
|
+
%th= t_attr :postal_code
|
10
|
+
%td= @user.person.vcard.postal_code
|
11
|
+
%tr
|
12
|
+
%th= t_attr :country_name
|
13
|
+
%td= @user.person.vcard.country_name
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= show_new_form(User) %>
|
data/lib/acts_as_csv.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
require "fastercsv"
|
2
|
+
require "iconv"
|
3
|
+
|
4
|
+
# Excel info from: http://blog.plataformatec.com.br/2009/09/exporting-data-to-csv-and-excel-in-your-rails-app/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+PlataformaBlog+(Plataforma+Blog)
|
5
|
+
# Original post: http://www.brynary.com/2007/4/28/export-activerecords-to-csv
|
6
|
+
|
7
|
+
# Usage:
|
8
|
+
# Given User is an ActiveRecord model
|
9
|
+
#
|
10
|
+
# Options for Model.to_csv, Array.to_csv, and ActionController::Base#send_csv
|
11
|
+
#
|
12
|
+
# :only - Array, trumps :exclude. Only these attributes will be included instead of all attributes (things listed in :methods will still be sent)
|
13
|
+
# :only => [ :id, :name, :created_at ]
|
14
|
+
# :methods - Array, additional methods to evaluate and add to the CSV response. Note: you can send nested method calls
|
15
|
+
# :methods => [ :to_s, :complex_method, "my.method.on.a.related.object"]
|
16
|
+
# :exclude - Array, attributes to exclude from CSV result
|
17
|
+
#
|
18
|
+
# From ActionController
|
19
|
+
# send_csv User, :only => [:first_name, :email, :created_at] #This will do all records
|
20
|
+
# send_csv User.all(:conditions => ["created_at > ?", some_date]), :only => [:first_name, :email, :created_at]
|
21
|
+
#
|
22
|
+
# From ActiveRecord Model
|
23
|
+
# User.to_csv :only => [ :username, :email, :created_at ], :methods => [ :age, "account.id"] # All users additionally get their related Account#id number
|
24
|
+
# User.all(:limit => 10).to_csv :exclude => [:password, :birthdate]
|
25
|
+
#
|
26
|
+
class ActiveRecord::Base
|
27
|
+
|
28
|
+
# Shortcut for CSV of whole table
|
29
|
+
def self.to_csv(*args)
|
30
|
+
find(:all).to_csv(*args)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Get the column headers
|
34
|
+
def self.csv_columns(options={})
|
35
|
+
tmp_columns = if options[:only]
|
36
|
+
options[:only] #only trumps exclude
|
37
|
+
else
|
38
|
+
self.content_columns.map{|curr_col| curr_col.name } - options[:exclude].map{|curr_col| curr_col.to_s }
|
39
|
+
end
|
40
|
+
|
41
|
+
tmp_columns + options[:methods].map{|curr_col| curr_col.to_s }
|
42
|
+
end
|
43
|
+
|
44
|
+
# Record to a row level csv array
|
45
|
+
def to_csv(options={})
|
46
|
+
self.class.csv_columns(options).map { |curr_col|
|
47
|
+
curr_col = curr_col.to_s
|
48
|
+
|
49
|
+
#Its a chain of method calls, on intermediary nil, just return nil
|
50
|
+
if !curr_col.index(".")
|
51
|
+
col_val = self.send(curr_col)
|
52
|
+
else
|
53
|
+
col_val = self
|
54
|
+
curr_col.split(".").each {|curr_method| col_val = col_val.send(curr_method) unless col_val.nil?}
|
55
|
+
end
|
56
|
+
|
57
|
+
col_val.gsub!("\n", " ") if col_val.is_a?(String) # Strip newlines, Appease Excel Gods
|
58
|
+
col_val
|
59
|
+
}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
class Array
|
65
|
+
|
66
|
+
# Convert an array of objects into a CSV String.
|
67
|
+
def to_csv(options = {})
|
68
|
+
column_options = {
|
69
|
+
:only => options.delete(:only),
|
70
|
+
:exclude => options.delete(:exclude) || [],
|
71
|
+
:methods => options.delete(:methods) || []
|
72
|
+
}
|
73
|
+
|
74
|
+
options = {
|
75
|
+
:col_sep => "\t" # Appease Excel Gods
|
76
|
+
}.merge(options)
|
77
|
+
|
78
|
+
if all? { |e| e.respond_to?(:to_csv) }
|
79
|
+
header_row = first.class.csv_columns(column_options).to_csv
|
80
|
+
|
81
|
+
content_rows = map { |e|
|
82
|
+
# Get all the values of non-excluded rows
|
83
|
+
e.to_csv(column_options)
|
84
|
+
}.map{|r|
|
85
|
+
# Call to_csv on the array of row-level values, this will join them into a CSV row
|
86
|
+
r.to_csv(column_options)
|
87
|
+
}
|
88
|
+
|
89
|
+
([header_row] + content_rows).join
|
90
|
+
else
|
91
|
+
FasterCSV.generate_line(self, options)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
# module for extending ActionController
|
99
|
+
module ExcelCSVExporter
|
100
|
+
BOM = "\377\376" #Byte Order Mark, Appease Excel Gods
|
101
|
+
|
102
|
+
def send_csv(kollection, options={})
|
103
|
+
filename = options.delete(:filename) || I18n.l(Time.now, :format => :short) + ".csv"
|
104
|
+
|
105
|
+
content = kollection.to_csv(options)
|
106
|
+
|
107
|
+
# Appease Excel Gods
|
108
|
+
content = BOM + Iconv.conv("utf-16le", "utf-8", content)
|
109
|
+
send_data content, :filename => filename
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
ActionController::Base.send :include, ExcelCSVExporter
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Bookyt
|
2
|
+
class Engine
|
3
|
+
def self.engines
|
4
|
+
Bookyt::Application.config.bookyt.engines
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.setup_navigation(navigation, item)
|
8
|
+
self.engines.map do |engine|
|
9
|
+
self.setup_navigation_engine(navigation, item, engine)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.setup_navigation_engine(navigation, item, name)
|
14
|
+
navigation.class.send :include, name.camelize.constantize::Navigation
|
15
|
+
navigation.send("setup_#{name}", item)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/float.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
class PaginationListLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
|
2
|
+
|
3
|
+
def html_container(html)
|
4
|
+
@search_key = :search
|
5
|
+
@params = @template.params[@search_key] || {}
|
6
|
+
|
7
|
+
html = [per_page_link(25), per_page_link(50), per_page_link(200)].join('') + "<span>|</span>" + html
|
8
|
+
html += "</div><div style='clear: both; padding-top: 0.5em;'>" + alphabetic_pagination
|
9
|
+
html = "<div style='clear: both'>" + html + "</div>"
|
10
|
+
tag(:div, html, container_attributes)
|
11
|
+
end
|
12
|
+
|
13
|
+
def alphabetic_pagination
|
14
|
+
paginated_scope = @template.instance_variable_get(:@paginated_scope)
|
15
|
+
return "" unless paginated_scope
|
16
|
+
|
17
|
+
characters = paginated_scope.character_list
|
18
|
+
page_links = characters.map{|character| alphabetic_page_link(character)}
|
19
|
+
all_links = Array.new
|
20
|
+
all_links << alphabetic_page_link(I18n.t('katalog.show_all'), :link_keyword => '')
|
21
|
+
all_links.concat(page_links)
|
22
|
+
|
23
|
+
all_links.join('')
|
24
|
+
end
|
25
|
+
|
26
|
+
def alphabetic_page_link(character, options = {})
|
27
|
+
if character == @params[:by_character]
|
28
|
+
link = "<em>%s</em>" % character.upcase
|
29
|
+
else
|
30
|
+
link = "<a class='per_page' href='%s'>%s</a>" % [alphabetic_page_href((options[:link_keyword] ? options[:link_keyword] : character)), character.upcase]
|
31
|
+
end
|
32
|
+
|
33
|
+
link
|
34
|
+
end
|
35
|
+
|
36
|
+
def alphabetic_page_href(character)
|
37
|
+
# Add character to query
|
38
|
+
search_params = @params.merge(:by_character => character)
|
39
|
+
params = @template.params.merge(@search_key => search_params)
|
40
|
+
# Drop page index
|
41
|
+
params.delete(:page)
|
42
|
+
|
43
|
+
@template.url_for(params)
|
44
|
+
end
|
45
|
+
|
46
|
+
def per_page_link(count)
|
47
|
+
if count == @template.params[:per_page].to_i
|
48
|
+
link = "<em>%s</em>" % count
|
49
|
+
else
|
50
|
+
link = "<a class='per_page' href='%s'>%s</a>" % [per_page_href(count), count]
|
51
|
+
end
|
52
|
+
|
53
|
+
link
|
54
|
+
end
|
55
|
+
|
56
|
+
def per_page_href(count)
|
57
|
+
params = @template.params.merge({:per_page => count})
|
58
|
+
# Drop page index
|
59
|
+
params.delete(:page)
|
60
|
+
|
61
|
+
@template.url_for(params)
|
62
|
+
end
|
63
|
+
end
|