View ProjeQtOr On SourceForge.net
ProjeQtOr - Project Management Tool
Support us on Capterra
OIN - Open Invention Network
ProjeQtOr free project management software - Reports - problem with baseline parameter - ProjeQtOr
 

Reports - problem with baseline parameter

More
08 Feb 2021 13:01 - 08 Feb 2021 13:24 #1 by mkavurcic
When baseline parameter is included in report there is discrepancy after a project is selected – refresh of “project baseline” parameter displays baselines of all visible projects;  Problem exists in ..tool\jsonList.php (line 408…):
else if  ($dataType=='idBaselineSelect') {   
$list=array();   
$critWhere=  'idProject in ' . getVisibleProjectsList() ;   
$bl=new Baseline();   
$lstBaseline=$bl->getSqlElementsFromCriteria(null,null,$critWhere);   
foreach ($lstBaseline as $bl) {      $list[$bl->id]=$bl->name;    }  } 

Workaround to display only baselines of selected project (should be done far more systematically):
Replace above code with:
else if ($dataType=='idBaselineSelect') {   
$list=array();   
$critWhere=  'idProject = '. RequestHandler::getValue ( 'critValue' );   
$bl=new Baseline();   
$lstBaseline=$bl->getSqlElementsFromCriteria(null,null,$critWhere);       
if ($lstBaseline[0]) {       
foreach ($lstBaseline as $bl) {       
$list[$bl->id]=$bl->name;        }    } 
else {   
$list[0]=''; 
       }   } 
Last edit: 08 Feb 2021 13:24 by mkavurcic.

Please Log in or Create an account to join the conversation.

More
10 Feb 2021 11:30 #2 by babynus
Hi,

Thanks for reporting and for fix proposale
Issue will be fixed on V9.0.5
Fix is in jsonList (line 408)

  } else if ($dataType=='idBaselineSelect') {
    $list=array();
    $critProj=(RequestHandler::getValue ('critField')=='idProject')?RequestHandler::getValue('critValue'):null;
    if ($critProj) {$critWhere='idProject = '.$critProj;}
    else {$critWhere='idProject in '.getVisibleProjectsList(); }
    $bl=new Baseline;
    $lstBaseline=$bl->getSqlElementsFromCriteria(null,null,$critWhere);
    foreach ($lstBaseline as $bl) {
      $list[$bl->id]=$bl->name." (".htmlFormatDate($bl->baselineDate).") - ".SqlList::getNameFromId('Project', $bl->idProject);
    }

and on planningListFunctions.php, line 389

          <?php htmlDrawOptionForReference('idBaselineSelect', getSessionValue("planningBaselineTop"), null,false,null,null);?>


Babynus
Administrator of ProjeQtOr web site

Please Log in or Create an account to join the conversation.

More
10 Feb 2021 12:46 #3 by mkavurcic
Superb, but, still, there is one tiny issue - when global selector is set to "All projects" and when user, after selecting one of visible projects, select all projects (blank) error is generated in log file:2021-02-10 12:40:39.364 ***** ERROR ***** [V9.0.4] Exception-[42000] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

2021-02-10 12:40:39.364 ***** ERROR ***** [V9.0.4] For query : select * from baseline where idProject =

2021-02-10 12:40:39.364 ***** ERROR ***** [V9.0.4] Strack trace :

2021-02-10 12:40:39.364 ***** ERROR ***** [V9.0.4] #0 Sql->query called at [/var/www/html/projeqtor/model/persistence/SqlElement.php:2680]

2021-02-10 12:40:39.365 ***** ERROR ***** [V9.0.4] #1 SqlElement->getSqlElementsFromCriteria called at [/var/www/html/projeqtor/tool/jsonList.php:446]

I suggest the followin amendment (marked red):

else if ($dataType=='idBaselineSelect') {

    $list=array();

    $critProj=(RequestHandler::getValue ('critField')=='idProject')?RequestHandler::getValue('critValue'):null;

    if ($critProj != ' ') {$critWhere='idProject = '.$critProj;}

    else {$critWhere='idProject in '.getVisibleProjectsList(); }

    $bl=new Baseline;

    $lstBaseline=$bl->getSqlElementsFromCriteria(null,null,$critWhere);

    foreach ($lstBaseline as $bl) {

      $list[$bl->id]=$bl->name." (".htmlFormatDate($bl->baselineDate).") - ".SqlList::getNameFromId('Project', $bl->idProject);

    }
   }

Please Log in or Create an account to join the conversation.

More
10 Feb 2021 14:14 #4 by babynus
Hi,
Yep, but fix will be deffirent : idProject may contain an empty string , or '*' or ' ' (single space)
So correct fix is to replace

$critProj=(RequestHandler::getValue ('critField')=='idProject')?RequestHandler::getValue('critValue'):null;

with

$critProj=(RequestHandler::getValue ('critField')=='idProject')?intval(RequestHandler::getValue('critValue')):null;


Babynus
Administrator of ProjeQtOr web site

Please Log in or Create an account to join the conversation.

More
10 Feb 2021 14:36 #5 by mkavurcic
Chateau d'Yquem - Foie Gras

Please Log in or Create an account to join the conversation.

Moderators: babynusprotion
Time to create page: 0.038 seconds

Cookies settings

×

Functional Cookies

Ce site utilise des cookies pour assurer son bon fonctionnement et ne peuvent pas être désactivés de nos systèmes. Nous ne les utilisons pas à des fins publicitaires. Si ces cookies sont bloqués, certaines parties du site ne pourront pas fonctionner.

Session

Please login to see yours activities!

Other cookies

Ce site web utilise un certain nombre de cookies pour gérer, par exemple, les sessions utilisateurs.