ProjeQtOr free project management software - MODULE OF MANAGEMENT OF REGULATED ABSENCES - Page 2 - ProjeQtOr

Formations en Amérique du Nord

Une formation est organisée par un de nos partenaires à Montréal.

Pour de plus amples informations, ou pour vous inscrire, rendez-vous sur notre planning de formations.

 

MODULE OF MANAGEMENT OF REGULATED ABSENCES

More
03 Jan 2019 15:12 #7 by babynus
Hi,

Thanks for taking into account my remarks.
I'll have a llok to new patch.

* isLeaveMngWorkflow on workflow
Why not just select a workflow (on global parameters or else)
The workflow can not be changed.
Indeed, it can only have 3 statuses:
* Recorded = Absence requested
* Validated = Absence accepted
* Canceled = Absence denied

This is bad design as it expects the status have not been deleted or hidden by admin.
As list of statuses may be completely modified, we cannot rely on fix list.
You must rely on "isDone" and "isCancelled" on each status to give move freedom of configuration.
Possibily someone could need a 2 phases validation or another workflow (for instance ass a status "submit for validation" after "recorded"), requiring more steps that only the 3 you defined.

* Issue with PHPExcel.php
If I leave line 38 in projeqtor.php
require_once '../external/PHPExcel/Classes/PHPExcel.php';
I get an error.
It seems the Autoload in PHPExcel.php sets a mess with projeqtor
Is the directory 'PHPExcel' created in 'external'.
For me, everything is ok.
Maybe the 'external' patch did not integrate everything.
When in doubt, the PHPExcel zip is attached.

With patch, same issue.
After unzipping the zip file to get full content of library, issue disepears.

I am still facing small issues with patch as some line breaks are missing (I don't know why).
In most cases, it is not an issue, but it may by on when the missing line break is at end of comment followed by some code.
For instance in login.php, line 44, I had :
// MTY - MULTI CALENDAR         if (getSessionValue('setup', null, true) or version_compare(ltrim(Sql::getDbVersion(),'V'), '5.0.0',"<") ) {
that I had to change to
// MTY - MULTI CALENDAR      
   if (getSessionValue('setup', null, true) or version_compare(ltrim(Sql::getDbVersion(),'V'), '5.0.0',"<") ) {
to have code work.
I don't know if you have a clue to avoid this issue in the patch...

Babynus
Administrator of ProjeQtOr web site

Please Connexion or Create an account to join the conversation.

More
17 Jan 2019 23:29 #8 by tabary
Hello

First of all: my best wishes for this new year.

Here is a V2 of the module 'Absences Regulaires'.

From now on, it is possible to associate any workflow with any type of regulated absence.
This makes the use of the module more flexible and avoids bad design.

It is now possible to have as many validation processes for a regulated absence as you want.

However, regulated absences only have 4 transitions (new concept: see the new documentation):
  • Submitted: Absence is submitted and waiting for validation.
  • Accepted: The submitted absence was accepted
  • Rejected: The submitted absence was rejected
  • Neutral: none of the previous 3 The absence has been created but the submission for validation is not yet done.
In the first 3 cases, only the absence status can be modified by either the manager of the employee for whom the absence is made or the administrator of the 'Regulated Absence' module.

For lines without CR, I added a plugin to netBeans that should normally fix the problem.

Hope this will suit you.

Best regards

Please Connexion or Create an account to join the conversation.

More
20 Jan 2019 14:18 - 20 Jan 2019 14:20 #9 by babynus
Many Thanks.

I'll have a look to include it in V7.5 (that will possibly become V8.0)

Babynus
Administrator of ProjeQtOr web site
Last edit: 20 Jan 2019 14:20 by babynus.

Please Connexion or Create an account to join the conversation.

More
09 Avr 2019 18:20 #10 by babynus
Hi,

I integrated your contribution in V8.0.0.
It was not easy as there were many conflicts with our own devs, but now it's done on branck V8.0.

I changed few things, mainly about activation, as V8.0 introduces Modules Management.
So Regular absences are in a dedicated module, that is enabled through Module Management, not through parameter any more.

I also retreived and fixed some translations, and I think some are still missing, but this may be complete on patches

Most important, I have issues with Workflow.
I saw that now your code is done to manage workflows in the standard way; but I think something is missing.
For instance, in tool/projeqtor-hr.php, there is reference to var $theWorkFlowId that is never initialized.
I replaced if with 1, but of course this is sure not correct.
I think that initialisation of a default workflow (using for instance standard status) is missing.
Can you please have a look at that ?

I also have issue with calendar.
It is always empty.
I have some information about aquired absences on right part, but left part is always empty (except for legends)
No issue on browser Console, no error recorded on log file.
Possibly it is linked with WorkflowId issue.
Do you have any idea of possible source of the issue ?
Can you please have a look at that from code commited on branch V8.0 ?

I also tried and replace PHPExcel which is obsolete with PHPSpreadsheet.
I succeeded in generating the file, but all color formating are lost.
So things are not complete yet, and I preserve (for next version) use of PHPExcel.
My try is in tool/exportLeaveCalendarOfDashboardEmployeeManager.php.new
Note that I changed the include of PHPExcel excel to avoid loading it on every request as it is needed only for one Export...
Possibly it will be able to switch to PHPSpreadsheet on a next version.

I also have idea to find a way to load projeqtor-hr.php only if module is enabled, but I think it is not so trivial as some functions are called without testing if module is enabled.

Thanks again for your contribution.
Hope you'll be able to help finalize highlighted point so that the module can be enabled in V8.0.

Babynus
Administrator of ProjeQtOr web site

Please Connexion or Create an account to join the conversation.

More
09 Avr 2019 19:59 #11 by babynus
Hi,

In addition to my previous remark, I noticed a big performance issue.
When saving a simple Timesheet, saving time was more than 3 seconds, where it took only 1 second for same thing on V7.4.
I just traved DB access and found 8263 calls to "select * from calendardefinition where id=1" for a single Timesheet save
(of course this was not present in V7.4).

I will spend some time to analyse this (cannot deploy V8.0 with such a big issue), but if you have a clue where it can come, as it was possibly introduced by new absence manageùent or (more likely) with the new bank off days on calendar definition.
Any clue will help.
Thanks.

Babynus
Administrator of ProjeQtOr web site

Please Connexion or Create an account to join the conversation.

More
12 Avr 2019 15:17 #12 by babynus
Hi Marc,

I found and fixed performance issue that called over 8000 times access to calendarDefinition.
If was is function isOpenDay().
I use some cache, so saving Timesheet now takes 1 second instead of 3 seconds, and planning that took 6 seconds now takes 0,5 second

Babynus
Administrator of ProjeQtOr web site

Please Connexion or Create an account to join the conversation.

Moderators: babynusprotion
Time to create page: 0.134 seconds