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 $datefieldname name of table associated of the type
* @param string $dates Start date (at 00:00:00) * @param string $dates Start date (at 00:00:00)
* @param string $datee End date (at 23: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='') function get_element_list($type, $tablename, $datefieldname='', $dates='', $datee='')
{ {

View File

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