Commit Graph

242 Commits

Author SHA1 Message Date
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
70c0ad4a54 Fix fixed cost tasks being grouped under random projects in customer view 2014-02-07 20:30:38 +01:00
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
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
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
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