Hello ,
I have a question about creating overtime hours in ]po[. I've done some looking around on the ]po[ Website, and in the user forum, I found what appears to be an overtime module available to add to ]po[. However, that overtime module does not appear to handle overtime hours on a daily basis. Is there anything like that available? If not, would it be a big job to go into every module and add that ability to ]po[?
To give you an idea of what I am doing, I've attached a .jpg file showing the progress that I have made creating a weekly timesheet for salaried employees. To accomplish this in ]po[, I wrote a .tcl file (borrowing heavily from online resources) to do a query and create a report, and I made some modifications to a .css file to control the look of the report. (The reporting tool uses the current user and current date to create the timesheet. Other dates can be input; currently other users cannot be input.) Since I am not a professional programmer, I am not going to brag about my programming prowess; I am just happy that I got it to work, and include a copy of the .tcl file for your amusement. Before starting, I did have some programming courses in college (FORTRAN, VB, prolog, SQL), and a wee bit of programming for personal computing. I did have some exposure to SQL, but PostgreSQL was different. And learning TCL coding syntax was quite challenging and interesting. I am an amateur programmer, so please bear with me.
Please find the screenshot of the current output is shown below.
What I would like to do is add a column so each day-of-the-week has one column for regular hours, and a second column for overtime hours. I've done a little exploring into the tables of the PostgreDB and believe this goal will require several modifications beginning all the way back to the original hourly time input forms, the tables, and the reports. I am willing to do the work, if it is reasonably quantifiable, so I am looking for some insight into the depths and breadths I am about to undertake.
That's my favourite programming language! That's why I like parts of the OpenACS libraries, which work in a declarative style. How can we hire you? :-) :-)
second column for overtime hours
Do you refer to the issue that ]po[ doesn't log "from - to" times in the im_hours table? Or do you just need something like <8 hours is normal working time, everything >8 hours is overtime? That should be an easy extension to your report...
However, I don't believe you need extra tables for your report (looking at your TCL). Checkout:
/intranet-resource-management/resources-planning.tcl
That's a very complex report because it includes departments on the user side, but it should be somehow similar in structure to what you where trying... Also, you would have to include vacations eventually, don't you? But I'm not sure it's a good starting point for customizations, it may be too complex...
Cheers
Frank
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
On Feb 26, 2019, at 3:33 PM, Frank Bergmann fraber@users.sourceforge.net wrote:
~Hi Steven,
~prolog
~That's my favourite programming language! That's why I like parts of
~the OpenACS libraries, which work in a declarative style.
~How can we hire you? :-) :-)
Lol. Thanks for that. I've considered leaving engineering for computer programming and IT management many times. I will likely retire as an engineer with programming abilities. I'm a graduate of that period when higher education thought that computer programming would be a necessary skill for engineers. Lol
~second column for overtime hours
~Do you refer to the issue that ]po[ doesn't log "from - to" times in the
~im_hours table? Or do you just need something like <8 hours is normal
~working time, everything >8 hours is overtime? That should be an easy
~extension to your report...
I refer to the definition that “<8 hours is normal working time.” However, the issue is more complicated than that: US Law defines employees as either "non-exempt" or "exempt" to the Fair Labor Standards Act (FLSA). Under FLSA, employees work up to 40 hours under a standard pay rate (either hourly or salary), but >40 hours per week requires paying them for the overtime at 1.5 times the standard rate, and working on holidays requires paying that overtime at 2x. BTW, the workweek must be defined, but can start on any day and at any time of the week; most US employers define the week starting on at 12:00AM Saturday or Sunday or Monday. Pay can be made weekly, bi-weekly, semi-monthly, or monthly. Employees classified as "exempt" must be salaried and do not get overtime pay rates. Here is a nice Web site with a summary:
~However, I don't believe you need extra tables for your report (looking
~at your TCL).
~Checkout: /intranet-resource-management/resources-planning.tcl
~That's a very complex report because it includes departments on
~the user side, but it should be somehow similar in structure to what
~you where trying...
I did consider adding the functionality without adding and changing tables, and was nearly convinced to follow your suggestion. However, because of the complications of US Law, discussed above, I'm now thinking that there is a need for a bit more tracking of an employee’s overtime hours throughout the ]po[ Data-Model.
As I begin to reconsider (adding functionality without changing tables), I went to the ]po[ Web pages to look further into the full Data-Model. I especially looked more deeply into the Finance Packages and the Financial Data-Model. What I am thinking now is that because the complexity of US Law requires overtime to be calculated on a weekly basis, that requirement does not lend itself so easily to a Monthly costing system, i.e. because beginnings and ends of weeks do not to conform to beginnings and ends of months.
It would be relatively simple to set up the tables and to write the code just for our company, because we stipulate that employee report overtime on a daily basis only. We can do this because our company policy is that hourly (non-exempt) employees must work a minimum of both 8 hours/day and 40 hours/week; so overtime they earn in a day will usually be overtime. However, there is still the exception, as you note below, of taking time-off (vacation, sick time, or holiday) during that week; in this case, OT can still occur but is must be recalculated when time-off/holiday occurs during the week, which can impact the monthly calculations.
~Also, you would have to include vacations eventually, don't you? But I'm not
~sure it's a good starting point for customizations, it may be too complex...
Yes, as discussed it cannot be completely ignored without creating problems.
[end of responses to your email]
So as I go through the Modules, Packages, and Data-Model, it appears that the following will need to be modified, at a minimum:
1. Databases: im_employees, im_timesheets, im_hours, maybe databases in the financials?.
2. Packages: Finance, Project Management, Human Resources.
3. Modules: Business Intelligence, others?
4. Base Modules: GUI?, eventually documentation?
That is it so far. I will spend some more time on it this weekend.
Thoughts?
Ciao,
Steven McCrary
-"ciao," derives from the Venetian phrase meaning "I am your slave." Ciao!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
for two different intervals (week, month) depending on exempt/non-exempt. Is that more or less correct?
I can offer you a 2 hour GoToMeeting in order to write the report without extra tables (if my assumptions are correct...). A third or any additional hour required is "on the house", if we can include the package later as part of the product. I'm USD 1300/day = USD 162/hour. Just send the money to sales@project-open.com.
Cheers
Frank
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello ,
I have a question about creating overtime hours in ]po[. I've done some looking around on the ]po[ Website, and in the user forum, I found what appears to be an overtime module available to add to ]po[. However, that overtime module does not appear to handle overtime hours on a daily basis. Is there anything like that available? If not, would it be a big job to go into every module and add that ability to ]po[?
To give you an idea of what I am doing, I've attached a .jpg file showing the progress that I have made creating a weekly timesheet for salaried employees. To accomplish this in ]po[, I wrote a .tcl file (borrowing heavily from online resources) to do a query and create a report, and I made some modifications to a .css file to control the look of the report. (The reporting tool uses the current user and current date to create the timesheet. Other dates can be input; currently other users cannot be input.) Since I am not a professional programmer, I am not going to brag about my programming prowess; I am just happy that I got it to work, and include a copy of the .tcl file for your amusement. Before starting, I did have some programming courses in college (FORTRAN, VB, prolog, SQL), and a wee bit of programming for personal computing. I did have some exposure to SQL, but PostgreSQL was different. And learning TCL coding syntax was quite challenging and interesting. I am an amateur programmer, so please bear with me.
Please find the screenshot of the current output is shown below.
What I would like to do is add a column so each day-of-the-week has one column for regular hours, and a second column for overtime hours. I've done a little exploring into the tables of the PostgreDB and believe this goal will require several modifications beginning all the way back to the original hourly time input forms, the tables, and the reports. I am willing to do the work, if it is reasonably quantifiable, so I am looking for some insight into the depths and breadths I am about to undertake.
Your input is welcomed.
Thank you,
Steven McCrary
Last edit: Steven McCrary 2019-02-19
Hi Steven,
That's my favourite programming language! That's why I like parts of the OpenACS libraries, which work in a declarative style. How can we hire you? :-) :-)
Do you refer to the issue that ]po[ doesn't log "from - to" times in the im_hours table? Or do you just need something like <8 hours is normal working time, everything >8 hours is overtime? That should be an easy extension to your report...
However, I don't believe you need extra tables for your report (looking at your TCL). Checkout:
/intranet-resource-management/resources-planning.tcl
That's a very complex report because it includes departments on the user side, but it should be somehow similar in structure to what you where trying... Also, you would have to include vacations eventually, don't you? But I'm not sure it's a good starting point for customizations, it may be too complex...
Cheers
Frank
Frank.
Thank you for the reply.
My responses are threaded below
On Feb 26, 2019, at 3:33 PM, Frank Bergmann fraber@users.sourceforge.net wrote:
~Hi Steven,
~prolog
~That's my favourite programming language! That's why I like parts of
~the OpenACS libraries, which work in a declarative style.
~How can we hire you? :-) :-)
Lol. Thanks for that. I've considered leaving engineering for computer programming and IT management many times. I will likely retire as an engineer with programming abilities. I'm a graduate of that period when higher education thought that computer programming would be a necessary skill for engineers. Lol
~second column for overtime hours
~Do you refer to the issue that ]po[ doesn't log "from - to" times in the
~im_hours table? Or do you just need something like <8 hours is normal
~working time, everything >8 hours is overtime? That should be an easy
~extension to your report...
I refer to the definition that “<8 hours is normal working time.” However, the issue is more complicated than that: US Law defines employees as either "non-exempt" or "exempt" to the Fair Labor Standards Act (FLSA). Under FLSA, employees work up to 40 hours under a standard pay rate (either hourly or salary), but >40 hours per week requires paying them for the overtime at 1.5 times the standard rate, and working on holidays requires paying that overtime at 2x. BTW, the workweek must be defined, but can start on any day and at any time of the week; most US employers define the week starting on at 12:00AM Saturday or Sunday or Monday. Pay can be made weekly, bi-weekly, semi-monthly, or monthly. Employees classified as "exempt" must be salaried and do not get overtime pay rates. Here is a nice Web site with a summary:
https://www.thebalancecareers.com/exempt-and-a-non-exempt-employee-2061988
I think without saying too much more the problems will become obvious, especially continuing by addressing the issues below…
~However, I don't believe you need extra tables for your report (looking
~at your TCL).
~Checkout: /intranet-resource-management/resources-planning.tcl
~That's a very complex report because it includes departments on
~the user side, but it should be somehow similar in structure to what
~you where trying...
I did consider adding the functionality without adding and changing tables, and was nearly convinced to follow your suggestion. However, because of the complications of US Law, discussed above, I'm now thinking that there is a need for a bit more tracking of an employee’s overtime hours throughout the ]po[ Data-Model.
As I begin to reconsider (adding functionality without changing tables), I went to the ]po[ Web pages to look further into the full Data-Model. I especially looked more deeply into the Finance Packages and the Financial Data-Model. What I am thinking now is that because the complexity of US Law requires overtime to be calculated on a weekly basis, that requirement does not lend itself so easily to a Monthly costing system, i.e. because beginnings and ends of weeks do not to conform to beginnings and ends of months.
It would be relatively simple to set up the tables and to write the code just for our company, because we stipulate that employee report overtime on a daily basis only. We can do this because our company policy is that hourly (non-exempt) employees must work a minimum of both 8 hours/day and 40 hours/week; so overtime they earn in a day will usually be overtime. However, there is still the exception, as you note below, of taking time-off (vacation, sick time, or holiday) during that week; in this case, OT can still occur but is must be recalculated when time-off/holiday occurs during the week, which can impact the monthly calculations.
~Also, you would have to include vacations eventually, don't you? But I'm not
~sure it's a good starting point for customizations, it may be too complex...
Yes, as discussed it cannot be completely ignored without creating problems.
[end of responses to your email]
So as I go through the Modules, Packages, and Data-Model, it appears that the following will need to be modified, at a minimum:
1. Databases: im_employees, im_timesheets, im_hours, maybe databases in the financials?.
2. Packages: Finance, Project Management, Human Resources.
3. Modules: Business Intelligence, others?
4. Base Modules: GUI?, eventually documentation?
That is it so far. I will spend some more time on it this weekend.
Thoughts?
Ciao,
Steven McCrary
-"ciao," derives from the Venetian phrase meaning "I am your slave." Ciao!
Ciao Steven,
I see a function
for two different intervals (week, month) depending on exempt/non-exempt. Is that more or less correct?
I can offer you a 2 hour GoToMeeting in order to write the report without extra tables (if my assumptions are correct...). A third or any additional hour required is "on the house", if we can include the package later as part of the product. I'm USD 1300/day = USD 162/hour. Just send the money to sales@project-open.com.
Cheers
Frank