Commit Graph

306 Commits

Author SHA1 Message Date
Paul van Tilburg 4eaf0cb58a Bump version to 1.12.1 2015-06-06 12:26:36 +02:00
Paul van Tilburg 656867e044 Add a footer (with version) 2015-06-06 12:26:16 +02:00
Paul van Tilburg 9928fc6f2a Bump version to 1.12 2015-06-05 22:36:00 +02:00
Paul van Tilburg ac551fcf7a Add helper method for LaTeX-escaping strings in ERB 2015-06-05 22:26:59 +02:00
Paul van Tilburg 4cf1517b43 Show message if there are tasks but no active tasks
Show links to the task form of each of these tasks so that time can be
registered there.
2014-11-08 12:06:34 +01:00
Paul van Tilburg 2e5985b32b Discern customer tasks and active tasks 2014-11-08 12:06:19 +01:00
Paul van Tilburg 730736a84a Bump version to 1.10 2014-11-01 22:10:45 +01:00
Paul van Tilburg 38c8d7dd17 Only select time entries that are not in the current month 2014-11-01 22:09:44 +01:00
Paul van Tilburg d613a095e1 Add in_current_month? method to the TimeEntry model 2014-11-01 22:09:21 +01:00
Paul van Tilburg 68c6a337a1 Show only active tasks in the invoice select form
If there are tasks with an hourly rate that have no time entries,
then it's not worth showing them.
2014-11-01 22:08:16 +01:00
Paul van Tilburg 58f5e4bbe6 Rework all documentation in YARD format 2014-11-01 21:37:41 +01:00
Paul van Tilburg 49eb58ff51 Build a span per customer so that they flow and use two columns in the overview 2014-11-01 17:47:52 +01:00
Paul van Tilburg 35462ed0dd Show a total of unbilled time and earned money (excl. VAT) per customer 2014-11-01 17:47:13 +01:00
Paul van Tilburg d1ac6ff979 Show only active tasks in the overview view
Active tasks are unbilled tasks that are tasks that are either fixed cost
or that have time entries that should be billed.
2014-11-01 17:45:16 +01:00
Paul van Tilburg 03ca8b6d47 Bump version to 1.8 2014-10-31 22:06:41 +01:00
Paul van Tilburg 46409502fb Merge branch 'feature/4235ef-force-invoice-regeneration' into development (closes: #4235ef) 2014-10-31 21:59:34 +01:00
Paul van Tilburg 371ec2c81a Handle delete requests for invoices 2014-10-31 21:59:17 +01:00
Paul van Tilburg 236729be6c Check and show a delete button if an invoice file is present 2014-10-31 21:55:04 +01:00
Paul van Tilburg b94d5ccff2 Fix invoice period calculation
Currently, the end time of the period was always the creation time of
the invoice (due to the initialisation), as it is generally by definition
later than any of the task periods.
2014-10-28 10:02:13 +01:00
Paul van Tilburg 8d8eba1e18 Documentation fix 2014-10-25 22:33:05 +02:00
Paul van Tilburg 60230c5854 Fixed bug preventing updates tasks 2014-10-25 22:32:57 +02:00
Paul van Tilburg b12d78bdb2 Round start and end time before validation (and thus saving)
I've chosen to connect the callback to before_validation because
at a later point we want to check for overlap between time entries
and this should be done using the corrected versions.
2014-10-25 21:55:23 +02:00
Paul van Tilburg 26862ed2ef Add private method for the TimeEntry model to round time
The method uses the configuration to determine the resolution and is
inspired by the following StackOverflow answer:
https://stackoverflow.com/a/4182700.
2014-10-25 21:53:33 +02:00
Paul van Tilburg b182711f39 Add configuration for time resolution rounding 2014-10-25 21:35:53 +02:00
Paul van Tilburg 423916232f Show time specification of projects/task the invoice_form
They are inserted in the titles of the time entry links so they are
shown when hovering over them.

Also fixed "None" not being displayed when there was no time entry
comment.
2014-10-25 18:31:50 +02:00
Paul van Tilburg 6cfdd4c7e1 Spacing and label fixes 2014-10-25 18:31:08 +02:00
Paul van Tilburg 4bb47f7504 Add jump buttons for customer and project/task in time_entry view 2014-10-25 18:30:50 +02:00
Paul van Tilburg a50c4e330f Add a "Create a new invoice" button per customer
This is done similarly as in the customer_form view.
2014-10-25 18:04:18 +02:00
Paul van Tilburg da8db07e94 Make key of customer/invoice mapping a customer
The key was the customer name before, but then it's not possible
to use any other information of the customer model anymore.
2014-10-25 18:02:37 +02:00
Paul van Tilburg f32c6da1d4 Add a VERSION constant and print it on start 2014-10-19 21:37:20 +02:00
Paul van Tilburg e5e879df03 Style the no customer/invoices/projects alerts the same way 2014-10-18 21:28:18 +02:00
Paul van Tilburg 70588df53f Fix missing doctype in main layout 2014-10-18 21:27:46 +02:00
Paul van Tilburg d5b5e0e4e0 Fix column cache being out-of-sync after migration 2014-10-18 21:27:26 +02:00
Paul van Tilburg 507010172f Fix payed→payed column rename migration 2014-10-18 21:26:55 +02:00
Paul van Tilburg b7de738866 Fix broken migration that cannot access config 2014-10-18 21:26:14 +02:00
Paul van Tilburg 21091e914e Fix broken period calculation initialisation 2014-10-18 21:25:51 +02:00
Paul van Tilburg 3e1ed8af58 Make ActiveRecord query calls compatible with AR4 2014-10-18 21:25:26 +02:00
Paul van Tilburg 97b6098bcd Round total time of tasks to two decimals
This fixes misrepresentation errors.  This occus for example when a task
has a length that would be represented using a floating point number that
has more than 2 decimals.

For example:  a task of length 59 minutes (i.e. 0.9833333333333333... hour)
is shown on the invoice as having a length of 0.98 hours while in
calculations still the unrounded task length is used.  When a hourly rate
of €100 pe rhour is defined, the invoice will show:

  0.98h x €100/h = €98.33.

which is confusing and although correct given maximal accurancy, it will
obviously not be accepted by book keeping programs.
2014-10-12 17:04:18 +02:00
Paul van Tilburg acd2ab46e4 Reorder the invoices when retrieving the last invoice 2014-02-09 14:40:28 +01:00
Paul van Tilburg fd6b853154 Move the 'Create a new invoice' button to a more consistent location 2014-02-07 21:36:09 +01:00
Paul van Tilburg cb14b99f89 Sort invoices in descending order by number by default 2014-02-07 21:22:20 +01:00
Paul van Tilburg 25b052e864 Support alternative invoice template configuration 2014-02-07 21:04:08 +01:00
Paul van Tilburg 70c0ad4a54 Fix fixed cost tasks being grouped under random projects in customer view 2014-02-07 20:30:38 +01:00
Paul van Tilburg 30fd5ec599 Show a billed fixed-task under itself in the customer_form view
As billed fixed-cost tasks cannot have an active task, the task itself
still is the one that is billed.  Show the task under itself to expose
the fact that it is billed and in which invoice.
2013-07-14 14:37:40 +02:00
Paul van Tilburg 19d4efaca3 Indentation fixes 2013-07-14 14:33:12 +02:00
Paul van Tilburg 47fca9df2a Handle billed fixed-cost tasks correctly in the customer_form view
Billed fixed-cost tasks will have no active task once they are billed,
because invoicing a fixed-cost will not split off a task but manipulate the
active one into being billed.
2013-07-14 14:32:02 +02:00
Paul van Tilburg 368592356c Add also links to time entries in the invoice_form view 2013-07-13 22:49:56 +02:00
Paul van Tilburg 9e5ade6eb9 Small refactoring 2013-07-13 22:49:41 +02:00
Paul van Tilburg afd037b95e Add the time specification to the invoice_form view; update it
Generation of a time specification appendix can be enabled for each invoice
indepently on whether it is or is not enabled for the customer.  However,
whether it is enabled by default when an invoice is created, that does
follow the setting for the customer.
2013-07-13 22:36:38 +02:00
Paul van Tilburg 7a58ae9331 Add the time specification to the customer_form view; update it
If time specifications are enabled for a customer this is considered to be
a global setting for invoices related to this customer.

Note that it will note change any of the existing voices, it will only
affect newly created ones!
2013-07-13 22:35:25 +02:00
Paul van Tilburg 17278fac98 Add specification related attributes to the Customer and Invoice model 2013-07-13 22:31:41 +02:00
Paul van Tilburg 33e5d047a0 Make the time_entry_form view also use a nested customer/task selector 2013-06-26 20:47:09 +02:00
Paul van Tilburg 62dfd04776 Replace the label hack in grouped select forms by a decent optgroup 2013-06-26 20:46:27 +02:00
Paul van Tilburg 073bf11bef Rework the project/task list in the customer_form view (closes: #9a33e4) 2013-06-26 20:23:56 +02:00
Paul van Tilburg 06c25d66c9 Move add customer button to the header 2013-06-26 20:23:03 +02:00
Paul van Tilburg 2e86eb8b27 Show "None" for absent time entry comments in the time_entries view
There needs to be some kind of placeholder the comment is the thing
to click on when clicking through to the time_entry view.
2013-06-23 22:34:57 +02:00
Paul van Tilburg 2b8d4c9111 Include jQuery 1.10.0 directly from public/
This solves all kinds of issues when deploying via HTTPS and jQuery
being retrieved via HTTP.
2013-06-23 22:34:57 +02:00
Paul van Tilburg 60e1889072 Fix missing root prefix calls for views
Because we override mab_done in StopTime::Mab, we override the functionality
in Camping::Mab that applies 'self /' on :href, :src and :action attributes
of tags.  Thus, all kinds of links don't get a root/mount prefix.
2013-06-23 22:30:05 +02:00
Paul van Tilburg 167c8d1b99 Also order unbilled tasks descending by date in the time_entries view 2013-06-22 12:58:23 +02:00
Paul van Tilburg abc35b774d Show unbilled items in timeline by default; add dropdown
This reduces the need for pagination in the timeline (refs: #a9faa0).
2013-06-20 23:07:24 +02:00
Paul van Tilburg 2278b41d97 Redirect back to referer after creating/updating time entries (closes: #f08f36) 2013-06-20 22:39:00 +02:00
Paul van Tilburg b6d3c628a1 Change default VAT rate to 21% (still overridable in the config) 2013-06-20 22:12:39 +02:00
Paul van Tilburg c982ba5925 Move task information link from date to comment in the time_entries view 2013-06-20 22:08:01 +02:00
Paul van Tilburg 7a7a4471e1 Also bill new entries by default in the task_form view 2013-06-20 22:07:20 +02:00
Paul van Tilburg 07b655c8db Set default content type to include charset=utf-8 2013-06-20 22:06:52 +02:00
Paul van Tilburg 6634eeae55 Change view headers; add useful contextual information 2013-06-20 22:06:28 +02:00
Paul van Tilburg 2dca39e38d Move container divs to the a single container div in the layout view 2013-06-20 21:15:52 +02:00
Paul van Tilburg b19a0dfee3 Enable responsive Bootstrap CSS 2013-06-20 21:15:06 +02:00
Paul van Tilburg 42b771ba16 Use a condensed form in the company_form view 2013-06-16 23:42:54 +02:00
Paul van Tilburg b5cfa7606a Remove already solved FIXME 2013-06-16 23:38:35 +02:00
Paul van Tilburg ba5fd086b5 Also color customer names based on invoice status in the overview view 2013-06-16 23:38:22 +02:00
Paul van Tilburg d359b76209 Color invoice list rows based on due status (refs: #b4b365)
What remains is to remove the hardcoding of 30 days.  This should be moved
to the config and Customer model (and then also be used in the template).
2013-06-16 23:29:33 +02:00
Paul van Tilburg dfd189d341 Add past_due methods to the Invoice model 2013-06-16 23:29:01 +02:00
Paul van Tilburg f7c0ffff15 Add a day if the end time is before the start time (closes: #d96685) 2013-06-16 22:58:15 +02:00
Paul van Tilburg 10218e6fe5 Check task and time entry checkboxes by default in #invoice_select_form (closes: #4fdf84) 2013-06-16 22:48:38 +02:00
Paul van Tilburg 05b2fff118 Change #clone into #dup, needed for AR >= 3.1! 2013-06-16 22:48:38 +02:00
Paul van Tilburg f034196469 Show OK icon for billing status in time_entries view 2013-06-16 22:48:38 +02:00
Paul van Tilburg 1d8842ad36 Small Ruby1.8-compatibility fix 2013-06-16 21:30:24 +02:00
Paul van Tilburg 7244e2be64 Transform all views to use Bootstrap 2013-06-16 20:27:11 +02:00
Paul van Tilburg b7b660ffc5 Modify StopTime#Mab#mab_done to transform underscores to dashes in classes 2013-06-16 20:25:12 +02:00
Paul van Tilburg 800dd3106f Adapt StopTime::Mab#mab_done to follow Mab 0.0.3 API changes 2013-06-16 15:17:13 +02:00
Paul van Tilburg aa79757af4 Tweak column definitions so that they work with HTML5 and Mab 0.0.3 2013-06-16 15:11:25 +02:00
Paul van Tilburg 5301819105 Fix the way the DATE_FORMATS are set to suit AR3.2 (closes: #9dfc93) 2013-06-16 15:00:05 +02:00
Paul van Tilburg 8b943d788c Make the VAT rate of a task editable via the form, default to global VAT rate
This is the last commit needed to support VAT rates per tasks (closes: #e7b5a7).
2012-09-28 16:19:35 +02:00
Paul van Tilburg b45bb356ef Add VAT rate specific summaries to the template and invoice_form view 2012-09-28 12:00:42 +02:00
Paul van Tilburg 537b0d47ea Modify Invoice#total_amount to take different VAT rates into account 2012-09-28 11:59:59 +02:00
Paul van Tilburg cd29a51680 Add Invoice#vat_summary to return a VAT summary grouped by VAT rate 2012-09-28 11:59:59 +02:00
Paul van Tilburg b7f74e23ec Extend Task#summary to also return the VAT 2012-09-28 11:59:59 +02:00
Paul van Tilburg 808b09f91f Add vat_rate field to the Task model 2012-09-28 11:59:49 +02:00
Paul van Tilburg 52e23a927a Merge branch 'support/ruby1.9' into development 2012-06-06 11:43:21 +02:00
Paul van Tilburg 3b54b93504 Added support for Ruby 1.9 2012-06-06 11:28:59 +02:00
Paul van Tilburg 9df0a55e4b Small Mab compatibility fix 2012-05-21 17:45:29 +02:00
Paul van Tilburg 8ce00648f3 Remove the double doctype, fix indentation 2012-05-21 17:45:29 +02:00
Paul van Tilburg b25226ac7e Port the Markaby method override support to Mab 2012-05-21 17:45:29 +02:00
Paul van Tilburg aa9f0e9dc0 Leave the form method override stuff for now 2012-05-21 17:44:40 +02:00
Paul van Tilburg 968ec1ab99 More Mab compability: different doctype and text escaping 2012-05-21 17:42:28 +02:00
Paul van Tilburg b47f837613 Fix up some hacks that generate errors when used with Mab 2012-05-21 17:41:53 +02:00
Paul van Tilburg 482e7eabeb Actively load active record 2012-05-21 17:41:15 +02:00
Paul van Tilburg 5c364e1d10 Small cleanup for the block override that works with recent Mab 2012-05-21 17:40:52 +02:00
Paul van Tilburg 29ad270f0f Remove the double doctype, fix indentation 2012-05-21 17:40:52 +02:00