Fix feature to break by email

This commit is contained in:
Laurent Destailleur 2015-02-02 21:12:43 +01:00
parent 7fbf76ee2a
commit b36e40ee4c
2 changed files with 42 additions and 31 deletions

View File

@ -398,7 +398,7 @@ class Project extends CommonObject
* @param string $datefieldname name of table associated of the type
* @param string $dates Start date (at 00:00:00)
* @param string $datee End date (at 23:00:00)
* @return mixed List of orders linked to project, < 0 or string if error
* @return mixed Array list of object ids linked to project, < 0 or string if error
*/
function get_element_list($type, $tablename, $datefieldname='', $dates='', $datee='')
{

View File

@ -272,6 +272,8 @@ foreach ($listofreferent as $key => $value)
if ($qualified)
{
$element = new $classname($db);
if (! $showdatefilter)
{
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$projectid.'" method="post">';
@ -336,6 +338,9 @@ foreach ($listofreferent as $key => $value)
$total_ht_by_third = 0;
$total_ttc_by_third = 0;
$saved_third_id = 0;
$breakline = '';
if (canApplySubtotalOn($tablename)) {
// Appel du mon code de tri :
$elementarray = sortElementsByClientName($elementarray);
@ -344,11 +349,22 @@ foreach ($listofreferent as $key => $value)
$num=count($elementarray);
for ($i = 0; $i < $num; $i++)
{
$element = new $classname($db);
$element->fetch($elementarray[$i]);
$element->fetch_thirdparty();
//print $classname;
if ($breakline && $saved_third_id != $element->thirdparty->id)
{
print $breakline;
$var = true;
$saved_third_id = $element->thirdparty->id;
$breakline = '';
$total_ht_by_third=0;
$total_ttc_by_third=0;
}
$qualifiedfortotal=true;
if ($key == 'invoice')
{
@ -417,34 +433,26 @@ foreach ($listofreferent as $key => $value)
$total_ttc_by_third += $element->total_ttc;
}
// Autre partie de mon code :
if (canApplySubtotalOn($tablename))
{
$next_third_id = (isset($elementarray[$i+1])) ? $elementarray[$i+1] : '';
$third_id = $element->thirdparty->id;
if ($third_id != $next_third_id)
{
print '<tr class="liste_total">';
print '<td colspan="2">';
print '</td>';
print '<td>';
print '</td>';
print '<td class="right">';
print $langs->trans('SubTotal').' : ';
if (is_object($element->thirdparty)) print $element->thirdparty->getNomUrl(0,'',48);
print '</td>';
print '<td align="right">'.price($total_ht).'</td>';
print '<td align="right">'.price($total_ttc).'</td>';
print '<td></td>';
print '</tr>';
$total_ht_by_third = 0;
$total_ttc_by_third = 0;
$var=true;
}
$breakline='<tr class="liste_total">';
$breakline.='<td colspan="2">';
$breakline.='</td>';
$breakline.='<td>';
$breakline.='</td>';
$breakline.='<td class="right">';
$breakline.=$langs->trans('SubTotal').' : ';
if (is_object($element->thirdparty)) $breakline.=$element->thirdparty->getNomUrl(0,'',48);
$breakline.='</td>';
$breakline.='<td align="right">'.price($total_ht_by_third).'</td>';
$breakline.='<td align="right">'.price($total_ttc_by_third).'</td>';
$breakline.='<td></td>';
$breakline.='</tr>';
}
}
if ($breakline) print $breakline;
print '<tr class="liste_total"><td colspan="4">'.$langs->trans("Number").': '.$i.'</td>';
if (empty($value['disableamount'])) print '<td align="right" width="100">'.$langs->trans("TotalHT").' : '.price($total_ht).'</td>';
else print '<td></td>';
@ -524,6 +532,8 @@ foreach ($listofreferent as $key => $value)
$margin = $value['margin'];
if (isset($margin))
{
$element = new $classname($db);
$elementarray = $project->get_element_list($key, $tablename);
if (count($elementarray)>0 && is_array($elementarray))
{
@ -533,7 +543,6 @@ foreach ($listofreferent as $key => $value)
$num=count($elementarray);
for ($i = 0; $i < $num; $i++)
{
$element = new $classname($db);
$element->fetch($elementarray[$i]);
$element->fetch_thirdparty();
//print $classname;
@ -607,23 +616,25 @@ function sortElementsByClientName($elementarray)
$element = new $classname($db);
$clientname = array();
foreach ($elementarray as $key => $id)
foreach ($elementarray as $key => $id) // id = id of object
{
if (empty($clientname[$id]))
{
$element->id = $id;
$element->fetch($id);
$element->fetch_thirdparty();
$clientname[$id] = $element->thirdparty->name;
}
}
asort($clientname);
//var_dump($clientname);
asort($clientname); // sort on name
$elementarray = array();
foreach ($clientname as $id => $name) {
foreach ($clientname as $id => $name)
{
$elementarray[] = $id;
}
return $elementarray;
}