-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Comments
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:
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 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. |
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. |
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.
The text was updated successfully, but these errors were encountered: