|
@@ -293,7 +293,188 @@ if ($action=="addelement")
|
|
|
|
|
|
$elementuser = new User($db);
|
|
|
|
|
|
+
|
|
|
+
|
|
|
$showdatefilter=0;
|
|
|
+// Show the filter on date on top of element list
|
|
|
+if (! $showdatefilter)
|
|
|
+{
|
|
|
+ print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$projectid.'" method="post">';
|
|
|
+ print '<input type="hidden" name="tablename" value="'.$tablename.'">';
|
|
|
+ print '<input type="hidden" name="action" value="view">';
|
|
|
+ print '<table><tr>';
|
|
|
+ print '<td>'.$langs->trans("From").' ';
|
|
|
+ print $form->select_date($dates,'dates',0,0,1);
|
|
|
+ print '</td>';
|
|
|
+ print '<td>'.$langs->trans("to").' ';
|
|
|
+ print $form->select_date($datee,'datee',0,0,1);
|
|
|
+ print '</td>';
|
|
|
+ print '<td>';
|
|
|
+ print '<input type="submit" name="refresh" value="'.$langs->trans("Refresh").'" class="button">';
|
|
|
+ print '</td>';
|
|
|
+ print '</tr></table>';
|
|
|
+ print '</form>';
|
|
|
+
|
|
|
+ $showdatefilter++;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Show balance for whole project
|
|
|
+
|
|
|
+$langs->load("suppliers");
|
|
|
+$langs->load("bills");
|
|
|
+$langs->load("orders");
|
|
|
+$langs->load("proposals");
|
|
|
+$langs->load("margins");
|
|
|
+
|
|
|
+//print load_fiche_titre($langs->trans("Profit"),'','title_accountancy');
|
|
|
+print '<div class="center">'.img_picto("", "title_accountancy").' '.$langs->trans("Profit").'</div><br>';
|
|
|
+
|
|
|
+print '<table class="noborder">';
|
|
|
+print '<tr class="liste_titre">';
|
|
|
+print '<td align="left" width="200">'.$langs->trans("Element").'</td>';
|
|
|
+print '<td align="right" width="100">'.$langs->trans("Number").'</td>';
|
|
|
+print '<td align="right" width="100">'.$langs->trans("AmountHT").'</td>';
|
|
|
+print '<td align="right" width="100">'.$langs->trans("AmountTTC").'</td>';
|
|
|
+print '</tr>';
|
|
|
+
|
|
|
+$var = false;
|
|
|
+
|
|
|
+foreach ($listofreferent as $key => $value)
|
|
|
+{
|
|
|
+ $name=$langs->trans($value['name']);
|
|
|
+ $title=$value['title'];
|
|
|
+ $classname=$value['class'];
|
|
|
+ $tablename=$value['table'];
|
|
|
+ $datefieldname=$value['datefieldname'];
|
|
|
+ $qualified=$value['test'];
|
|
|
+ $margin = $value['margin'];
|
|
|
+ if ($qualified && isset($margin)) // If this element must be included into profit calculation ($margin is 'minus' or 'plus')
|
|
|
+ {
|
|
|
+ $element = new $classname($db);
|
|
|
+
|
|
|
+ $elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee);
|
|
|
+ if (count($elementarray)>0 && is_array($elementarray))
|
|
|
+ {
|
|
|
+ $var=true;
|
|
|
+ $total_ht = 0;
|
|
|
+ $total_ttc = 0;
|
|
|
+
|
|
|
+ $num=count($elementarray);
|
|
|
+ for ($i = 0; $i < $num; $i++)
|
|
|
+ {
|
|
|
+ $tmp=explode('_',$elementarray[$i]);
|
|
|
+ $idofelement=$tmp[0];
|
|
|
+ $idofelementuser=$tmp[1];
|
|
|
+
|
|
|
+ $element->fetch($idofelement);
|
|
|
+ if ($idofelementuser) $elementuser->fetch($idofelementuser);
|
|
|
+
|
|
|
+ if ($tablename != 'expensereport_det') $element->fetch_thirdparty();
|
|
|
+
|
|
|
+ if ($tablename == 'don') $total_ht_by_line=$element->amount;
|
|
|
+ elseif ($tablename == 'projet_task')
|
|
|
+ {
|
|
|
+ if ($idofelementuser)
|
|
|
+ {
|
|
|
+ $tmp = $element->getSumOfAmount($elementuser, $dates, $datee);
|
|
|
+ $total_ht_by_line = price2num($tmp['amount'],'MT');
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $tmp = $element->getSumOfAmount('', $dates, $datee);
|
|
|
+ $total_ht_by_line = price2num($tmp['amount'],'MT');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else $total_ht_by_line=$element->total_ht;
|
|
|
+
|
|
|
+ $total_ht = $total_ht + $total_ht_by_line;
|
|
|
+
|
|
|
+ if ($tablename == 'don') $total_ttc_by_line=$element->amount;
|
|
|
+ elseif ($tablename == 'projet_task')
|
|
|
+ {
|
|
|
+ $defaultvat = get_default_tva($mysoc, $mysoc);
|
|
|
+ $total_ttc_by_line = price2num($total_ht_by_line * (1 + ($defaultvat / 100)),'MT');
|
|
|
+ }
|
|
|
+ else $total_ttc_by_line=$element->total_ttc;
|
|
|
+
|
|
|
+ $total_ttc = $total_ttc + $total_ttc_by_line;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Calculate margin
|
|
|
+ if ($margin=="add")
|
|
|
+ {
|
|
|
+ $balance_ht+= $total_ht;
|
|
|
+ $balance_ttc+= $total_ttc;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $balance_ht-= $total_ht;
|
|
|
+ $balance_ttc-= $total_ttc;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Show $total_ht & $total_ttc -- add a minus when necessary
|
|
|
+ if ($margin!="add")
|
|
|
+ {
|
|
|
+ $total_ht = -$total_ht;
|
|
|
+ $total_ttc = -$total_ttc;
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ($classname) {
|
|
|
+ case 'FactureFournisseur':
|
|
|
+ $newclassname = 'SupplierInvoice';
|
|
|
+ break;
|
|
|
+ case 'Facture':
|
|
|
+ $newclassname = 'Bill';
|
|
|
+ break;
|
|
|
+ case 'Propal':
|
|
|
+ $newclassname = 'CommercialProposal';
|
|
|
+ break;
|
|
|
+ case 'Commande':
|
|
|
+ $newclassname = 'Order';
|
|
|
+ break;
|
|
|
+ case 'Expedition':
|
|
|
+ $newclassname = 'Sending';
|
|
|
+ break;
|
|
|
+ case 'Contrat':
|
|
|
+ $newclassname = 'Contract';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $newclassname = $classname;
|
|
|
+ }
|
|
|
+
|
|
|
+ $var = ! $var;
|
|
|
+ print '<tr '.$bc[$var].'>';
|
|
|
+ // Module
|
|
|
+ print '<td align="left">'.$langs->trans($newclassname).'</td>';
|
|
|
+ // Nb
|
|
|
+ print '<td align="right">'.$i.'</td>';
|
|
|
+ // Amount HT
|
|
|
+ print '<td align="right">'.price($total_ht).'</td>';
|
|
|
+ // Amount TTC
|
|
|
+ print '<td align="right">'.price($total_ttc).'</td>';
|
|
|
+ print '</tr>';
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+// and the final balance
|
|
|
+print '<tr class="liste_total">';
|
|
|
+print '<td align="right" colspan=2 >'.$langs->trans("Total").'</td>';
|
|
|
+print '<td align="right" >'.price($balance_ht).'</td>';
|
|
|
+print '<td align="right" >'.price($balance_ttc).'</td>';
|
|
|
+print '</tr>';
|
|
|
+
|
|
|
+print "</table>";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+print '<br><br>';
|
|
|
+print '<br>';
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Detail
|
|
|
foreach ($listofreferent as $key => $value)
|
|
|
{
|
|
|
$title=$value['title'];
|
|
@@ -310,32 +491,7 @@ foreach ($listofreferent as $key => $value)
|
|
|
|
|
|
$element = new $classname($db);
|
|
|
|
|
|
- // Show the filter on date on top of element list
|
|
|
- if (! $showdatefilter)
|
|
|
- {
|
|
|
- print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$projectid.'" method="post">';
|
|
|
- print '<input type="hidden" name="tablename" value="'.$tablename.'">';
|
|
|
- print '<input type="hidden" name="action" value="view">';
|
|
|
- print '<table><tr>';
|
|
|
- print '<td>'.$langs->trans("From").' ';
|
|
|
- print $form->select_date($dates,'dates',0,0,1);
|
|
|
- print '</td>';
|
|
|
- print '<td>'.$langs->trans("to").' ';
|
|
|
- print $form->select_date($datee,'datee',0,0,1);
|
|
|
- print '</td>';
|
|
|
- print '<td>';
|
|
|
- print '<input type="submit" name="refresh" value="'.$langs->trans("Refresh").'" class="button">';
|
|
|
- print '</td>';
|
|
|
- print '</tr></table>';
|
|
|
- print '</form><br>';
|
|
|
-
|
|
|
- $showdatefilter++;
|
|
|
- }
|
|
|
-
|
|
|
- print '<br>';
|
|
|
-
|
|
|
- print_titre($langs->trans($title));
|
|
|
-
|
|
|
+ $addform='';
|
|
|
$selectList=$formproject->select_element($tablename,$object->thirdparty->id);
|
|
|
if (! $selectList || ($selectList<0))
|
|
|
{
|
|
@@ -343,17 +499,20 @@ foreach ($listofreferent as $key => $value)
|
|
|
}
|
|
|
elseif($selectList)
|
|
|
{
|
|
|
- print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$projectid.'" method="post">';
|
|
|
- print '<input type="hidden" name="tablename" value="'.$tablename.'">';
|
|
|
- print '<input type="hidden" name="action" value="addelement">';
|
|
|
- print '<input type="hidden" name="datesrfc" value="'.dol_print_date($dates,'dayhourrfc').'">';
|
|
|
- print '<input type="hidden" name="dateerfc" value="'.dol_print_date($datee,'dayhourrfc').'">';
|
|
|
- print '<table><tr><td>'.$langs->trans("SelectElement").'</td>';
|
|
|
- print '<td>'.$selectList.'</td>';
|
|
|
- print '<td><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("AddElement")).'"></td>';
|
|
|
- print '</tr></table>';
|
|
|
- print '</form>';
|
|
|
+ $addform.='<form action="'.$_SERVER["PHP_SELF"].'?id='.$projectid.'" method="post">';
|
|
|
+ $addform.='<input type="hidden" name="tablename" value="'.$tablename.'">';
|
|
|
+ $addform.='<input type="hidden" name="action" value="addelement">';
|
|
|
+ $addform.='<input type="hidden" name="datesrfc" value="'.dol_print_date($dates,'dayhourrfc').'">';
|
|
|
+ $addform.='<input type="hidden" name="dateerfc" value="'.dol_print_date($datee,'dayhourrfc').'">';
|
|
|
+ $addform.='<table><tr><td>'.$langs->trans("SelectElement").'</td>';
|
|
|
+ $addform.='<td>'.$selectList.'</td>';
|
|
|
+ $addform.='<td><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("AddElement")).'"></td>';
|
|
|
+ $addform.='</tr></table>';
|
|
|
+ $addform.='</form>';
|
|
|
}
|
|
|
+
|
|
|
+ print_fiche_titre($langs->trans($title), $addform, '');
|
|
|
+
|
|
|
print '<table class="noborder" width="100%">';
|
|
|
|
|
|
print '<tr class="liste_titre">';
|
|
@@ -675,151 +834,6 @@ foreach ($listofreferent as $key => $value)
|
|
|
}
|
|
|
|
|
|
|
|
|
-// Show profit summary for whole project
|
|
|
-
|
|
|
-$langs->load("suppliers");
|
|
|
-$langs->load("bills");
|
|
|
-$langs->load("orders");
|
|
|
-$langs->load("proposals");
|
|
|
-$langs->load("margins");
|
|
|
-
|
|
|
-//print load_fiche_titre($langs->trans("Profit"),'','title_accountancy');
|
|
|
-print '<br><div class="center">'.img_picto("", "title_accountancy").' '.$langs->trans("Profit").'</div><br>';
|
|
|
-
|
|
|
-print '<table class="noborder">';
|
|
|
-print '<tr class="liste_titre">';
|
|
|
-print '<td align="left" width="200">'.$langs->trans("Element").'</td>';
|
|
|
-print '<td align="right" width="100">'.$langs->trans("Number").'</td>';
|
|
|
-print '<td align="right" width="100">'.$langs->trans("AmountHT").'</td>';
|
|
|
-print '<td align="right" width="100">'.$langs->trans("AmountTTC").'</td>';
|
|
|
-print '</tr>';
|
|
|
-
|
|
|
-foreach ($listofreferent as $key => $value)
|
|
|
-{
|
|
|
- $name=$langs->trans($value['name']);
|
|
|
- $title=$value['title'];
|
|
|
- $classname=$value['class'];
|
|
|
- $tablename=$value['table'];
|
|
|
- $datefieldname=$value['datefieldname'];
|
|
|
- $qualified=$value['test'];
|
|
|
- $margin = $value['margin'];
|
|
|
- if ($qualified && isset($margin)) // If this element must be included into profit calculation ($margin is 'minus' or 'plus')
|
|
|
- {
|
|
|
- $element = new $classname($db);
|
|
|
-
|
|
|
- $elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee);
|
|
|
- if (count($elementarray)>0 && is_array($elementarray))
|
|
|
- {
|
|
|
- $var=true;
|
|
|
- $total_ht = 0;
|
|
|
- $total_ttc = 0;
|
|
|
-
|
|
|
- $num=count($elementarray);
|
|
|
- for ($i = 0; $i < $num; $i++)
|
|
|
- {
|
|
|
- $tmp=explode('_',$elementarray[$i]);
|
|
|
- $idofelement=$tmp[0];
|
|
|
- $idofelementuser=$tmp[1];
|
|
|
-
|
|
|
- $element->fetch($idofelement);
|
|
|
- if ($idofelementuser) $elementuser->fetch($idofelementuser);
|
|
|
-
|
|
|
- if ($tablename != 'expensereport_det') $element->fetch_thirdparty();
|
|
|
-
|
|
|
- if ($tablename == 'don') $total_ht_by_line=$element->amount;
|
|
|
- elseif ($tablename == 'projet_task')
|
|
|
- {
|
|
|
- if ($idofelementuser)
|
|
|
- {
|
|
|
- $tmp = $element->getSumOfAmount($elementuser, $dates, $datee);
|
|
|
- $total_ht_by_line = price2num($tmp['amount'],'MT');
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $tmp = $element->getSumOfAmount('', $dates, $datee);
|
|
|
- $total_ht_by_line = price2num($tmp['amount'],'MT');
|
|
|
- }
|
|
|
- }
|
|
|
- else $total_ht_by_line=$element->total_ht;
|
|
|
-
|
|
|
- $total_ht = $total_ht + $total_ht_by_line;
|
|
|
-
|
|
|
- if ($tablename == 'don') $total_ttc_by_line=$element->amount;
|
|
|
- elseif ($tablename == 'projet_task')
|
|
|
- {
|
|
|
- $defaultvat = get_default_tva($mysoc, $mysoc);
|
|
|
- $total_ttc_by_line = price2num($total_ht_by_line * (1 + ($defaultvat / 100)),'MT');
|
|
|
- }
|
|
|
- else $total_ttc_by_line=$element->total_ttc;
|
|
|
-
|
|
|
- $total_ttc = $total_ttc + $total_ttc_by_line;
|
|
|
- }
|
|
|
-
|
|
|
- // Calculate margin
|
|
|
- if ($margin=="add")
|
|
|
- {
|
|
|
- $margin_ht+= $total_ht;
|
|
|
- $margin_ttc+= $total_ttc;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $margin_ht-= $total_ht;
|
|
|
- $margin_ttc-= $total_ttc;
|
|
|
- }
|
|
|
-
|
|
|
- // Show $total_ht & $total_ttc -- add a minus when necessary
|
|
|
- if ($margin!="add")
|
|
|
- {
|
|
|
- $total_ht = -$total_ht;
|
|
|
- $total_ttc = -$total_ttc;
|
|
|
- }
|
|
|
-
|
|
|
- switch ($classname) {
|
|
|
- case 'FactureFournisseur':
|
|
|
- $newclassname = 'SupplierInvoice';
|
|
|
- break;
|
|
|
- case 'Facture':
|
|
|
- $newclassname = 'Bill';
|
|
|
- break;
|
|
|
- case 'Propal':
|
|
|
- $newclassname = 'CommercialProposal';
|
|
|
- break;
|
|
|
- case 'Commande':
|
|
|
- $newclassname = 'Order';
|
|
|
- break;
|
|
|
- case 'Expedition':
|
|
|
- $newclassname = 'Sending';
|
|
|
- break;
|
|
|
- case 'Contrat':
|
|
|
- $newclassname = 'Contract';
|
|
|
- break;
|
|
|
- default:
|
|
|
- $newclassname = $classname;
|
|
|
- }
|
|
|
-
|
|
|
- print '<tr>';
|
|
|
- // Module
|
|
|
- print '<td align="left">'.$langs->trans($newclassname).'</td>';
|
|
|
- // Nb
|
|
|
- print '<td align="right">'.$i.'</td>';
|
|
|
- // Amount HT
|
|
|
- print '<td align="right">'.price($total_ht).'</td>';
|
|
|
- // Amount TTC
|
|
|
- print '<td align="right">'.price($total_ttc).'</td>';
|
|
|
- print '</tr>';
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-// and the margin amount total
|
|
|
-print '<tr class="liste_total">';
|
|
|
-print '<td align="right" colspan=2 >'.$langs->trans("Total").'</td>';
|
|
|
-print '<td align="right" >'.price($margin_ht).'</td>';
|
|
|
-print '<td align="right" >'.price($margin_ttc).'</td>';
|
|
|
-print '</tr>';
|
|
|
-
|
|
|
-print "</table>";
|
|
|
-
|
|
|
-
|
|
|
llxFooter();
|
|
|
|
|
|
$db->close();
|