Table of Contents

Time/Resource Control

This module adds time control to coreBOS. The idea is that you will be able to register in the system time slots spent on the majority of the entities in the application. So a sales person can register time spent on a lead, a technician can register time spent on a trouble ticket or administration can register time spent on an invoice.

Name:
tsolucio/Timecontrol
Type:
corebos-module
Description:
This module adds time control to coreBOS. The idea is that you will be able to register in the system time slots spent on the majority of the entities in the application. So a sales person can register time spent on a lead, a technician can register time spent on a trouble ticket or administration can register time spent on an invoice.
Keywords:
event, time, incident, invoice, log
Version:
1.0
Home Page:
http://corebos.org/documentation/doku.php?id=en:extensions:extensions:timecontrol
Release Date:
2007-09-07
License:
Vizsage
Distribution:
Free
Author Name:
JPL TSolucio, S.L.
Author EMail:
info(at)tsolucio(dot)com
Support EMail:
info(at)tsolucio(dot)com
Support Issues:
https://github.com/tsolucio/Timecontrol/issues
Source:
https://github.com/tsolucio/Timecontrol


Time/Resource Control

Project Demo : Time/Resource Control
Project Forge:Time/Resource Control module.

Some of the goals of this module are:

Please consider donating, every little bit helps to keep up the ongoing effort.

I need to thank many people for their interest and support. You know who you are, and the others know who they are too :-)

Timecontrol is a module we've created to follow our previous Timesheets and Timecards modules. Everything that could be done with the older modules should be easier to do with the Timecontrol module, besides, we've solved some issues and constraints.

The goal is to keep track of time associated to entities in coreBOS. A running stopwatch will show the time currently spent for current tasks. It should be easy to use and reliable.

Here's a short guide to start using it.

How to use it

Creating a Timecontrol can be done by going to the Timecontrol module and using the create button. Also, when viewing entities from other modules that can be associated to a Timecontrol, a create button will be shown in the toolbar, which will auto-fill the related entity field.

Most fields are optional, but filling the start date and time is always required. Leaving the end time empty leaves the Timecontrol in the running state. In this state, a running stopwatch is shown in the detail view, by pressing the stop button the end time is set. The run/stop state of the stopwatch depends on the end time being empty or not. This way, the stopwatch doesn't ever get lost once created and it doesn't stop counting either. Browsing, closing the window, quitting the browser or even rebooting the machine won't reset the stopwatch.

When the stopwatch is stopped, a restart or resume button will be shown in the detail view. Restarting a Timecontrol will duplicate it with the start date and time set to now. This is useful when you want to restart a past activity but there's a time gap in between. In case you need to restart a Timecontrol as if it never was stopped you should edit it and erase the end time, this way the stopwatch will start counting again from the start time to now. There is another option, in the main module you can find a variable:

var $now_on_resume=true;

If this variable is set to false, the dates of the new timecontrol will not be set to “now” on resume. This can be useful when you have many timecards to create that are in the past, so you avoid having to change the dates on all duplicates. Not very useful, but it is there in case anybody needs it.

The related concept picklist is just a way of classifying timecontrol records, it wasn't intended for invoicing purposes, but to permit easy filtering of records in custom views and reports if necessary. If you are trying to register non-invoiceable time, that would be done by leaving out the product/service. This is the main reason the product/service is not mandatory. You can register time spent on anything this way. Since it doesn't have a product it won't be invoiceable and won't even show up in the list if you tick the “show invoiceable” checkbox, and even if it does come up you won't be able to select it for invoicing.

The module is directly related to all entities by default, so you will be able to see the time spent on each entity in their more information tab.

Reporting is correctly supported.

Press stopwatch in account detail view
Stopwatch

Create new time/resource record
New TRControl


Stopwatch counting. Time running
counting

Stopwwatch stopped. Save record
Finished


Resume Stopwatch
counting

Convert from Trouble Ticket

Thanks to Ted Janzen of Janzen & Janzen ICT Services for this interesting enhancement.

We have a new action on the right panel of your tickets (and most other modules) that will open a new timecontrol record ready for creation.

Explanation on forum

Here is a forum thread where I try to explain the functionality with an example.

And here an extract of that thread:

The idea behind timecontrol is that you or anybody else working on the TT registers the time and material used when he uses it with a description of what has been done. For example, we have a TT for a client who has called in because his computer doesn't start.

This example could be done for a lawyer, having meetings with his client and using certain materials or paperwork in his name and many other situations.

So in the end we have a complete set of all the time and material used to solve the TT. You can report on this total time and even convert it directly into an invoice with the timecontrol invoicing extension.

Another person asking a similar question, and my answer

Question:

After looking at the demo I'm not quite sure how to use the module correctly.

Here's our use case. Someone brings in a laptop with a problem. We work on the laptop for an hour to determine what the problem is. We want to record the amount of time spent on the laptop but we do not bill based on time. We would add a a service item “PC repair” with a price of $80 and during this time we determine it needs a new hard drive. We then want to add the hard drive product to the ticket. Later when the hard drive arrives we would want to add more time to keep track of our costs. The final ticket should be invoiced showing the service item “PC Repair” and the hard drive, but no time. How would I accomplish that?

Also I'm not seeing how to create the invoice in the demo.

Answer:

Another option would be to create the TC that represent only time with a product or service but 0 units. This way you could put the time and comments on the invoice without charging it.

Reporting: Totals

Thanks to THORSMANN Co, Norway, we have created a new module that permits to easily report on time spent by our users. Although the time control extension modifies the reporting system to support reporting on time elements it is still difficult to obtain reports that totalize time by users and dates. With this new extension the system will automatically sum the time control records of each user on each date. There is absolutely no additional work to be done, the extension will detect when a time control record is being created, modified or deleted and automatically do whatever is needed to keep the total sum of time invested by each user.

This new module, benefits from all of coreBOS functionality, so we can easily create filters or use the reporting system on the module to retrieve total time of users during a week.

In the detail view of the module we can see a related list of all the timecontrol records that represent the total.

The new extension is installed in the demo.

List View
Detail View

Future enhancements

Going forward it would be interesting to permit the reporting system to filter on fields in the related timecontrol records. If anyone is interested in taking this up contact me.

Invoicing

The invoicing extension is installed separately from the time/resource control module. This extension is being sold at 60 euros. You can make payment on our paypal account: paypal at tsolucio dot com and send me proof of purchase to info at tsolucio dot com and I will send it to you. It is totally vtlib compatible and installed through the module manager.

A time/resource record must have an account AND a product/service to get invoiced. The account will be the company the invoice gets created against and each time/resource record will be converted into a product line on the invoice which is why we need them to have a product/service. We have created the extension intelligent enough to be able to quote time spent on those entities that have an account associated. For example, you can pick time spent on a quote, a salesorder or a trouble ticket and we will use the associated account on these entities as the invoicing account. This also applies to entities that have the account not directly associated. You can also invoice time spent on a contact and even on a trouble ticket or potential related to a contact (not an account).

Basically you can invoice almost any time introduced in the system.

If you are trying to register non-invoiceable time, that would be done by leaving out the product/service. This is the main reason the product/service is not mandatory. You can register time spent on anything this way. Since it doesn't have a product it won't be invoiceable and won't even show up in the list if you tick the “show invoiceable” checkbox, and even if it does come up you won't be able to select it for invoicing.

NOTE: Since having each timecontrol record associated with a product/service is mandatory to get it invoiced. We have created a vtiger CRM modification with which you can assign a default product/service to each user in their Preferences screen. Once established, when a user creates a new timecontrol record this default product/service will be automatically selected. Contact me if you are interested.

This is the invoicing page where Timecontrols can be searched and invoiced.
TRControl Invoicing

Timecontrol Parameters

This first block of fields will permit us to select the timecontrol records we have available for invoicing. We can select by date, assigned user, account/contact and invoiced or not. The “show invoiceable” check box will filter the timecontrol records that cannot be invoiced.

Invoicing Parameters

The invoicing parameters block contains fields that will define how the invoice will be created.

<note warning>We haven't gotten around to implementing Currency of the new invoice</note>

<note important>The invoicing options are saved in the database each time the search is executed. The idea is that you define the way your company invoices, save it and forget about it as it will always be the way you have configured it. That is why the invoice parameter block comes up closed by default. In the vast majority of cases you will not need to validate these values.</note>

Creating from Email

This is a very good idea we have been proposed by a client. It hasn't been created yet but if anybody is interested I leave the details here so that you can know that it is possible and defined.

We would like to modify the mail converter to accept the creation of timecontrol records associated to the ticket. The idea is that once you have the converter setup to accept ticket creation from your clients and follow through with the whole conversation we would like to extend that so the user working on the ticket can easily send an email to vtiger CRM and have a timecontrol record created.

The process would be like this:

The logic would be:

Enhancements: Looking at other time control services (toggl)

Todo:

FAQ

This is what TimeControl is for. The official name of this extension is: Time and Material Control. Note that with a TC record you can also associate a product or service to the TT, so with TC you can register all the time and material used to solve a ticket. Then you can invoice both as needed.

Please read the section on Invoicing Parameters which details your options:

If I understand you correctly, you are looking to modify the “Timecontrol Grouping” (=none) and “Product Description” (=Timecontrol). Play with those a little and let us know how it turns out.

Pending