Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Mark time entries as not billable #1486

Closed
dlundgren opened this issue May 11, 2017 · 2 comments
Closed

[Feature Request] Mark time entries as not billable #1486

dlundgren opened this issue May 11, 2017 · 2 comments
Labels

Comments

@dlundgren
Copy link

It would be nice to have the ability to mark time entries in a task as billable or not billable. Sometimes not all the time tracked is billable to a client.

While we can currently work around this by using a separate task for tracking non-billable time to a client, it seems like something that should be kept in a single task instead of multiple tasks.

@MegaphoneJon
Copy link

As a veteran of several time-tracking/invoicing tools, IMO the one that handles this best is Freshbooks. On the task timer, you can specify a "type" of task - e.g. coding, client meeting, translation, etc. Separate tables allow you to store whether a task is billable or not - and also store the rate for that type of work (on a per-client basis). This significantly cuts down on the time needed to generate an invoice based on tasks.

Here's a rough sketch of how you'd change the Invoice Ninja data schema:
In addition to tasks and projects tables, you'd add:
task_types
task_types_projects

task_types would define the following fields:
id
name
is_billable

tasks_types_projects is a many-to-many lookup table, and would be defined as:
id
project_id
task_type_id
cost

Note that Freshbooks has a more complicated schema for their equivalent tables, because they allow you to choose whether a task's rate is hourly by type of work, hourly by which employee, or flat. This schema only accounts for "hourly by type of work". Changing is_billable from a boolean to a billing_type would allow future growth in that direction.

From a UI perspective, you'd add a widget to edit a list of allowable task types on the "Create/Edit a Project" view, then add a "Task Type" select box to the "Create/Edit a Task" view.

In addition to simplifying invoice generation, this also allows for reporting on questions like, "How much time do we spend on email vs. coding?" or "billable vs. non-billble" generally.

@hillelcoren
Copy link
Member

I would have thought to add the billable setting to that task as a whole (similar to the expense 'Mark billable' setting) rather than the individual times.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants