NEW Can choose fields to show on project list

This commit is contained in:
Laurent Destailleur 2015-12-06 01:19:27 +01:00
parent 374480043e
commit 745875d21e
2 changed files with 274 additions and 161 deletions

View File

@ -33,6 +33,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
$langs->load('projects'); $langs->load('projects');
$langs->load('companies');
$langs->load('commercial');
$title = $langs->trans("Projects"); $title = $langs->trans("Projects");
@ -107,17 +109,17 @@ if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
$arrayfields=array( $arrayfields=array(
'p.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), 'p.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
'p.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1), 'p.title'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1), 's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
'commerical'=>array('label'=>$langs->trans("SaleRepresentative"), 'checked'=>1), 'commercial'=>array('label'=>$langs->trans("SalesRepresentative"), 'checked'=>1),
'p.date_start'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>100), 'p.dateo'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>100),
'p.date_end'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>101), 'p.datee'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>101),
'p.visibility'=>array('label'=>$langs->trans("Visibility"), 'checked'=>1, 'position'=>102), 'p.public'=>array('label'=>$langs->trans("Visibility"), 'checked'=>1, 'position'=>102),
'p.opportunity_amount'=>array('label'=>$langs->trans("OpportunityAmount"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>103), 'p.opp_amount'=>array('label'=>$langs->trans("OpportunityAmount"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>103),
'p.opportunity_status'=>array('label'=>$langs->trans("OpportunityStatus"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>104), 'p.fk_opp_status'=>array('label'=>$langs->trans("OpportunityStatus"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>104),
'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), 'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
'p.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), 'p.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
); );
// Extra fields // Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
@ -175,7 +177,7 @@ llxHeader("",$langs->trans("Projects"),"EN:Module_Projects|FR:Module_Projets|ES:
$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:($user->rights->projet->all->lire?2:0)),1,$socid); $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:($user->rights->projet->all->lire?2:0)),1,$socid);
$sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_statut, p.fk_opp_status, p.public, p.fk_user_creat"; $sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_statut, p.fk_opp_status, p.public, p.fk_user_creat";
$sql.= ", p.datec as date_create, p.dateo as date_start, p.datee as date_end, p.opp_amount"; $sql.= ", p.datec as date_creation, p.dateo as date_start, p.datee as date_end, p.opp_amount, p.tms as date_update";
$sql.= ", s.nom as name, s.rowid as socid"; $sql.= ", s.nom as name, s.rowid as socid";
$sql.= ", cls.code as opp_status_code"; $sql.= ", cls.code as opp_status_code";
// Add fields for extrafields // Add fields for extrafields
@ -260,7 +262,7 @@ if ($resql)
$i = 0; $i = 0;
$param=''; $param='';
if ($mine) $param.='&mode=mine'; //if ($mine) $param.='&mode=mine';
if ($month) $param.='&month='.$month; if ($month) $param.='&month='.$month;
if ($year) $param.='&year=' .$year; if ($year) $param.='&year=' .$year;
if ($socid) $param.='&socid='.$socid; if ($socid) $param.='&socid='.$socid;
@ -274,22 +276,29 @@ if ($resql)
if ($search_user > 0) $param.='&search_user='.$search_user; if ($search_user > 0) $param.='&search_user='.$search_user;
if ($search_sale > 0) $param.='&search_sale='.$search_sale; if ($search_sale > 0) $param.='&search_sale='.$search_sale;
if ($optioncss != '') $param.='&optioncss='.$optioncss; if ($optioncss != '') $param.='&optioncss='.$optioncss;
// Add $param from extra fields
foreach ($search_array_options as $key => $val)
{
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
}
$text=$langs->trans("Projects"); $text=$langs->trans("Projects");
if ($mine) $text=$langs->trans('MyProjects'); if ($search_user == $user->id) $text=$langs->trans('MyProjects');
print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num,'','title_project'); print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num,'','title_project');
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">'; print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">'; print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
print '<input type="hidden" name="type" value="'.$type.'">'; print '<input type="hidden" name="type" value="'.$type.'">';
// Show description of content // Show description of content
if ($mine) print $langs->trans("MyProjectsDesc").'<br><br>'; if ($search_user == $user->id) print $langs->trans("MyProjectsDesc").'<br><br>';
else else
{ {
if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").'<br><br>'; if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").'<br><br>';
@ -302,6 +311,7 @@ if ($resql)
print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall); print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
} }
$colspan=8; $colspan=8;
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) $colspan+=2; if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) $colspan+=2;
if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) $colspan++; if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) $colspan++;
@ -328,52 +338,76 @@ if ($resql)
if (! empty($moreforfilter)) if (! empty($moreforfilter))
{ {
print '<div class="liste_titre liste_titre_bydiv centpercent">'; print '<div class="liste_titre liste_titre_bydiv centpercent">';
//print '<tr class="liste_titre">';
//print '<td class="liste_titre" colspan="'.$colspan.'">';
print $moreforfilter; print $moreforfilter;
$parameters=array(); $parameters=array();
$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint; print $hookmanager->resPrint;
print '</div>'; print '</div>';
//print '</td></tr>';
} }
print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">'; $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['p.ref']['checked'])) print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['p.title']['checked'])) print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("SalesRepresentative"),$_SERVER["PHP_SELF"],"","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['commercial']['checked'])) print_liste_field_titre($langs->trans("SalesRepresentative"),$_SERVER["PHP_SELF"],"","",$param,"",$sortfield,$sortorder);
if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"p.dateo","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['p.dateo']['checked'])) print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"p.dateo","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"p.datee","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['p.datee']['checked'])) print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"p.datee","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['p.public']['checked'])) print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","",$param,"",$sortfield,$sortorder);
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) if (! empty($arrayfields['p.opp_amount']['checked'])) print_liste_field_titre($langs->trans("OpportunityAmountShort"),$_SERVER["PHP_SELF"],'p.opp_amount',"",$param,'align="right"',$sortfield,$sortorder);
{ if (! empty($arrayfields['p.fk_opp_status']['checked'])) print_liste_field_titre($langs->trans("OpportunityStatusShort"),$_SERVER["PHP_SELF"],'p.fk_opp_status',"",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("OpportunityAmountShort"),$_SERVER["PHP_SELF"],'p.opp_amount',"",$param,'align="right"',$sortfield,$sortorder); // Extra fields
print_liste_field_titre($langs->trans("OpportunityStatusShort"),$_SERVER["PHP_SELF"],'p.fk_opp_status',"",$param,'align="center"',$sortfield,$sortorder); if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
} {
$parameters=array(); foreach($extrafields->attribute_label as $key => $val)
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook {
print $hookmanager->resPrint; if (! empty($arrayfields["ef.".$key]['checked']))
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],'p.fk_statut',"",$param,'align="right"',$sortfield,$sortorder); {
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); $align=$extrafields->getAlignFlag($key);
print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
}
}
}
// Hook fields
$parameters=array('arrayfields'=>$arrayfields);
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['p.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
if (! empty($arrayfields['p.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.fk_statut","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
print "</tr>\n"; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre">'; if (! empty($arrayfields['p.ref']['checked']))
print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="6">'; {
print '</td>'; print '<td class="liste_titre">';
print '<td class="liste_titre">'; print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="6">';
print '<input type="text" class="flat" name="search_label" size="8" value="'.$search_label.'">'; print '</td>';
print '</td>'; }
print '<td class="liste_titre">'; if (! empty($arrayfields['p.title']['checked']))
print '<input type="text" class="flat" name="search_societe" size="8" value="'.$search_societe.'">'; {
print '</td>'; print '<td class="liste_titre">';
print '<input type="text" class="flat" name="search_label" size="8" value="'.$search_label.'">';
print '</td>';
}
if (! empty($arrayfields['s.nom']['checked']))
{
print '<td class="liste_titre">';
print '<input type="text" class="flat" name="search_societe" size="8" value="'.$search_societe.'">';
print '</td>';
}
// Sale representative // Sale representative
print '<td class="liste_titre">&nbsp;</td>'; if (! empty($arrayfields['commercial']['checked']))
{
print '<td class="liste_titre">&nbsp;</td>';
}
// Start date // Start date
if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) if (! empty($arrayfields['p.dateo']['checked']))
{ {
print '<td class="liste_titre center">'; print '<td class="liste_titre center">';
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="sday" value="'.$sday.'">'; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="sday" value="'.$sday.'">';
@ -382,48 +416,78 @@ if ($resql)
print '</td>'; print '</td>';
} }
// End date // End date
print '<td class="liste_titre center">'; if (! empty($arrayfields['p.datee']['checked']))
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">'; {
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">'; print '<td class="liste_titre center">';
$formother->select_year($year?$year:-1,'year',1, 20, 5); if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
print '</td>'; print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
$formother->select_year($year?$year:-1,'year',1, 20, 5);
print '<td class="liste_titre">'; print '</td>';
$array=array(''=>'',0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject")); }
print $form->selectarray('search_public',$array,$search_public); if (! empty($arrayfields['p.public']['checked']))
print '</td>'; {
print '<td class="liste_titre">';
$parameters=array(); $array=array(''=>'',0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject"));
$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook print $form->selectarray('search_public',$array,$search_public);
print $hookmanager->resPrint; print '</td>';
}
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) if (! empty($arrayfields['p.opp_amount']['checked']))
{ {
print '<td class="liste_titre nowrap">'; print '<td class="liste_titre nowrap">';
print '</td>'; print '</td>';
}
if (! empty($arrayfields['p.fk_opp_status']['checked']))
{
print '<td class="liste_titre nowrap center">'; print '<td class="liste_titre nowrap center">';
print $formproject->selectOpportunityStatus('search_opp_status',$search_opp_status,1,1,1); print $formproject->selectOpportunityStatus('search_opp_status',$search_opp_status,1,1,1);
print '</td>'; print '</td>';
} }
// Extra fields
print '<td class="liste_titre nowrap" align="right">'; if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('Draft'),'1'=>$langs->trans('Opened'),'2'=>$langs->trans('Closed')),$search_status); {
print '</td>'; foreach($extrafields->attribute_label as $key => $val)
print '<td>'; {
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; if (! empty($arrayfields["ef.".$key]['checked'])) print '<td class="liste_titre"></td>';
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("RemoveFilter"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; }
print '</td>'; }
// Fields from hook
$parameters=array('arrayfields'=>$arrayfields);
$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['p.datec']['checked']))
{
// Date creation
print '<td class="liste_titre">';
print '</td>';
}
if (! empty($arrayfields['p.tms']['checked']))
{
// Date modification
print '<td class="liste_titre">';
print '</td>';
}
if (! empty($arrayfields['p.statut']['checked']))
{
print '<td class="liste_titre nowrap" align="right">';
print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('Draft'),'1'=>$langs->trans('Opened'),'2'=>$langs->trans('Closed')),$search_status);
print '</td>';
}
// Action column
print '<td class="liste_titre" align="right">';
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
print '</td>';
print '</tr>'."\n"; print '</tr>'."\n";
while ($i < $num) while ($i < $num)
{ {
$objp = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$projectstatic->id = $objp->projectid; $projectstatic->id = $obj->projectid;
$projectstatic->user_author_id = $objp->fk_user_creat; $projectstatic->user_author_id = $obj->fk_user_creat;
$projectstatic->public = $objp->public; $projectstatic->public = $obj->public;
$userAccess = $projectstatic->restrictedProjectArea($user); $userAccess = $projectstatic->restrictedProjectArea($user);
@ -433,104 +497,151 @@ if ($resql)
print "<tr ".$bc[$var].">"; print "<tr ".$bc[$var].">";
// Project url // Project url
print '<td class="nowrap">'; if (! empty($arrayfields['p.ref']['checked']))
$projectstatic->ref = $objp->ref; {
print $projectstatic->getNomUrl(1); print '<td class="nowrap">';
print '</td>'; $projectstatic->ref = $obj->ref;
print $projectstatic->getNomUrl(1);
print '</td>';
}
// Title // Title
print '<td>'; if (! empty($arrayfields['p.title']['checked']))
print dol_trunc($objp->title,80); {
print '</td>'; print '<td>';
print dol_trunc($obj->title,80);
print '</td>';
}
// Company // Company
print '<td>'; if (! empty($arrayfields['s.nom']['checked']))
if ($objp->socid) {
{ print '<td>';
$socstatic->id=$objp->socid; if ($obj->socid)
$socstatic->name=$objp->name; {
print $socstatic->getNomUrl(1); $socstatic->id=$obj->socid;
} $socstatic->name=$obj->name;
else print $socstatic->getNomUrl(1);
{ }
print '&nbsp;'; else
} {
print '</td>'; print '&nbsp;';
}
print '</td>';
}
// Sales Rapresentatives // Sales Rapresentatives
print '<td>'; if (! empty($arrayfields['commercial']['checked']))
if($objp->socid) {
{ print '<td>';
$listsalesrepresentatives=$socstatic->getSalesRepresentatives($user); if ($obj->socid)
$nbofsalesrepresentative=count($listsalesrepresentatives); {
if ($nbofsalesrepresentative > 3) // We print only number $socstatic->id=$obj->socid;
{ $socstatic->name=$obj->name;
print '<a href="'.DOL_URL_ROOT.'/societe/commerciaux.php?socid='.$socstatic->id.'">'; $listsalesrepresentatives=$socstatic->getSalesRepresentatives($user);
print $nbofsalesrepresentative; $nbofsalesrepresentative=count($listsalesrepresentatives);
print '</a>'; if ($nbofsalesrepresentative > 3) // We print only number
} {
else if ($nbofsalesrepresentative > 0) print '<a href="'.DOL_URL_ROOT.'/societe/commerciaux.php?socid='.$socstatic->id.'">';
{ print $nbofsalesrepresentative;
$userstatic=new User($db); print '</a>';
$j=0; }
foreach($listsalesrepresentatives as $val) else if ($nbofsalesrepresentative > 0)
{ {
$userstatic->id=$val['id']; $userstatic=new User($db);
$userstatic->lastname=$val['lastname']; $j=0;
$userstatic->firstname=$val['firstname']; foreach($listsalesrepresentatives as $val)
$userstatic->email=$val['email']; {
print $userstatic->getNomUrl(1); $userstatic->id=$val['id'];
$j++; $userstatic->lastname=$val['lastname'];
if ($j < $nbofsalesrepresentative) print ', '; $userstatic->firstname=$val['firstname'];
} $userstatic->email=$val['email'];
} print $userstatic->getNomUrl(1);
//else print $langs->trans("NoSalesRepresentativeAffected"); $j++;
} if ($j < $nbofsalesrepresentative) print ', ';
else }
{ }
print '&nbsp'; //else print $langs->trans("NoSalesRepresentativeAffected");
} }
print '</td>'; else
{
print '&nbsp';
}
print '</td>';
}
// Date start // Date start
if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) if (! empty($arrayfields['p.dateo']['checked']))
{ {
print '<td class="center">'; print '<td class="center">';
print dol_print_date($db->jdate($objp->date_start),'day'); print dol_print_date($db->jdate($obj->date_start),'day');
print '</td>'; print '</td>';
} }
// Date end // Date end
print '<td class="center">'; if (! empty($arrayfields['p.datee']['checked']))
print dol_print_date($db->jdate($objp->date_end),'day'); {
print '</td>'; print '<td class="center">';
print dol_print_date($db->jdate($obj->date_end),'day');
print '</td>';
}
// Visibility // Visibility
print '<td align="left">'; if (! empty($arrayfields['p.public']['checked']))
if ($objp->public) print $langs->trans('SharedProject'); {
else print $langs->trans('PrivateProject'); print '<td align="left">';
print '</td>'; if ($obj->public) print $langs->trans('SharedProject');
else print $langs->trans('PrivateProject');
$parameters=array('obj' => $objp); print '</td>';
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook }
print $hookmanager->resPrint; if (! empty($arrayfields['p.opp_amount']['checked']))
{
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
{
print '<td align="right">'; print '<td align="right">';
if ($objp->opp_status_code) print price($objp->opp_amount, 1, '', 1, - 1, - 1, $conf->currency); if ($obj->opp_status_code) print price($obj->opp_amount, 1, '', 1, - 1, - 1, $conf->currency);
print '</td>'; print '</td>';
}
print '<td align="middle">'; if (! empty($arrayfields['p.fk_opp_status']['checked']))
if ($objp->opp_status_code) print $langs->trans("OppStatusShort".$objp->opp_status_code); {
print '<td align="middle">';
if ($obj->opp_status_code) print $langs->trans("OppStatusShort".$obj->opp_status_code);
print '</td>'; print '</td>';
} }
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
{
print '<td';
$align=$extrafields->getAlignFlag($key);
if ($align) print ' align="'.$align.'"';
print '>';
$tmpkey='options_'.$key;
print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1);
print '</td>';
}
}
}
// Fields from hook
$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
// Date creation
if (! empty($arrayfields['p.datec']['checked']))
{
print '<td align="center">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour');
print '</td>';
}
// Date modification
if (! empty($arrayfields['p.tms']['checked']))
{
print '<td align="center">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour');
print '</td>';
}
// Status // Status
$projectstatic->statut = $objp->fk_statut; if (! empty($arrayfields['p.statut']['checked']))
print '<td align="right">'.$projectstatic->getLibStatut(5).'</td>'; {
$projectstatic->statut = $obj->fk_statut;
print '<td align="right">'.$projectstatic->getLibStatut(5).'</td>';
}
// Action column
print '<td></td>'; print '<td></td>';
print "</tr>\n"; print "</tr>\n";

View File

@ -266,10 +266,12 @@ if ($result)
print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
} }
$moreforfilter='';
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
print '<table class="liste">'; print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
if (! empty($arrayfields['u.login']['checked'])) print_liste_field_titre($langs->trans("Login"),$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder); if (! empty($arrayfields['u.login']['checked'])) print_liste_field_titre($langs->trans("Login"),$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder);
if (! empty($arrayfields['u.lastname']['checked'])) print_liste_field_titre($langs->trans("Lastname"),$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder); if (! empty($arrayfields['u.lastname']['checked'])) print_liste_field_titre($langs->trans("Lastname"),$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder);