';
// Add measures into array
$count = 0;
-$arrayofmesures = fillArrayOfMeasures($object, 't', $langs->trans($newarrayoftype[$objecttype]['label']), $arrayofmesures, 0, $count);
//var_dump($arrayofmesures);
print '
';
// XAxis
$count = 0;
-$arrayofxaxis = fillArrayOfXAxis($object, 't', $langs->trans($newarrayoftype[$objecttype]['label']), $arrayofxaxis, 0, $count);
-$arrayofxaxis = dol_sort_array($arrayofxaxis, 'position', 'asc', 0, 0, 1);
print '
';
// Group by
$count = 0;
-$arrayofgroupby = fillArrayOfGroupBy($object, 't', $langs->trans($newarrayoftype[$objecttype]['label']), $arrayofgroupby, 0, $count);
-$arrayofgroupby = dol_sort_array($arrayofgroupby, 'position', 'asc', 0, 0, 1);
print '
';
print '
';
print $formother->selectGroupByField($object, $search_groupby, $arrayofgroupby, 'minwidth200 maxwidth250', $langs->trans("GroupBy")); // Fill the array $arrayofgroupby with possible fields
@@ -454,18 +484,38 @@ if ($mode == 'grid') {
continue;
}
if (in_array($val['type'], array('timestamp', 'date', 'datetime'))) {
- $arrayofyaxis['t.'.$key.'-year'] = array('label' => $langs->trans($val['label']).' ('.$YYYY.')', 'position' => $val['position']);
- $arrayofyaxis['t.'.$key.'-month'] = array('label' => $langs->trans($val['label']).' ('.$YYYY.'-'.$MM.')', 'position' => $val['position']);
- $arrayofyaxis['t.'.$key.'-day'] = array('label' => $langs->trans($val['label']).' ('.$YYYY.'-'.$MM.'-'.$DD.')', 'position' => $val['position']);
+ $arrayofyaxis['t.'.$key.'-year'] = array(
+ 'label' => $langs->trans($val['label']).' ('.$YYYY.')',
+ 'position' => $val['position'],
+ 'table' => $object->table_element
+ );
+ $arrayofyaxis['t.'.$key.'-month'] = array(
+ 'label' => $langs->trans($val['label']).' ('.$YYYY.'-'.$MM.')',
+ 'position' => $val['position'],
+ 'table' => $object->table_element
+ );
+ $arrayofyaxis['t.'.$key.'-day'] = array(
+ 'label' => $langs->trans($val['label']).' ('.$YYYY.'-'.$MM.'-'.$DD.')',
+ 'position' => $val['position'],
+ 'table' => $object->table_element
+ );
} else {
- $arrayofyaxis['t.'.$key] = array('label' => $val['label'], 'position' => (int) $val['position']);
+ $arrayofyaxis['t.'.$key] = array(
+ 'label' => $val['label'],
+ 'position' => (int) $val['position'],
+ 'table' => $object->table_element
+ );
}
}
// Add measure from extrafields
if ($object->isextrafieldmanaged) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
if (!empty($extrafields->attributes[$object->table_element]['totalizable'][$key]) && (!isset($extrafields->attributes[$object->table_element]['enabled'][$key]) || dol_eval($extrafields->attributes[$object->table_element]['enabled'][$key], 1, 1, '1'))) {
- $arrayofyaxis['te.'.$key] = array('label' => $extrafields->attributes[$object->table_element]['label'][$key], 'position' => (int) $extrafields->attributes[$object->table_element]['pos'][$key]);
+ $arrayofyaxis['te.'.$key] = array(
+ 'label' => $extrafields->attributes[$object->table_element]['label'][$key],
+ 'position' => (int) $extrafields->attributes[$object->table_element]['pos'][$key],
+ 'table' => $object->table_element
+ );
}
}
}
@@ -495,7 +545,7 @@ $sql = '';
if (!empty($search_measures) && !empty($search_xaxis)) {
$fieldid = 'rowid';
- $sql = 'SELECT ';
+ $sql = "SELECT ";
foreach ($search_xaxis as $key => $val) {
if (preg_match('/\-year$/', $val)) {
$tmpval = preg_replace('/\-year$/', '', $val);
@@ -542,40 +592,72 @@ if (!empty($search_measures) && !empty($search_xaxis)) {
}
}
$sql = preg_replace('/,\s*$/', '', $sql);
- $sql .= ' FROM '.MAIN_DB_PREFIX.$object->table_element.' as t';
+ $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
// Add measure from extrafields
if ($object->isextrafieldmanaged) {
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as te ON te.fk_object = t.".$fieldid;
}
- if ($object->ismultientitymanaged) {
+ // Add table for link for multientity
+ if ($object->ismultientitymanaged) { // 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table
if ($object->ismultientitymanaged == 1) {
- // Nothing here
+ // No table to add here
} else {
$tmparray = explode('@', $object->ismultientitymanaged);
- $sql .= " INNER JOIN ".MAIN_DB_PREFIX.$tmparray[1]." as parenttable ON t.".$tmparray[0]." = parenttable.rowid";
- $sql .= ' AND parenttable.entity IN ('.getEntity($tmparray[1]).')';
+ $sql .= " INNER JOIN ".MAIN_DB_PREFIX.$tmparray[1]." as parenttableforentity ON t.".$tmparray[0]." = parenttableforentity.rowid";
+ $sql .= " AND parenttableforentity.entity IN (".getEntity($tmparray[1]).")";
}
}
- // Add INNER JOIN for all parent tables
- //var_dump($arrayofxaxis); var_dump($search_xaxis);
$listoftablesalreadyadded = array($object->table_element => $object->table_element);
+
+ // Add LEFT JOIN for all parent tables mentionned into the Xaxis
+ //var_dump($arrayofxaxis); var_dump($search_xaxis);
foreach ($search_xaxis as $key => $val) {
if (!empty($arrayofxaxis[$val])) {
$tmpval = explode('.', $val);
//var_dump($arrayofxaxis[$val]['table']);
if (! in_array($arrayofxaxis[$val]['table'], $listoftablesalreadyadded)) { // We do not add join for main table already added
- $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.$arrayofxaxis[$val]['table'].' as '.$tmpval[0];
+ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$arrayofxaxis[$val]['table']." as ".$tmpval[0]." ON t.".str_replace('t__', '', $tmpval[0])." = ".$tmpval[0].".rowid";
$listoftablesalreadyadded[$arrayofxaxis[$val]['table']] = $arrayofxaxis[$val]['table'];
}
} else {
- dol_print_error($db, 'Found an key into search_xaxis not found into arrayofxaxis');
+ dol_print_error($db, 'Found a key into search_xaxis not found into arrayofxaxis');
}
}
- $sql .= ' WHERE 1 = 1';
- if ($object->ismultientitymanaged == 1) {
- $sql .= ' AND t.entity IN ('.getEntity($object->element).')';
+ // Add LEFT JOIN for all parent tables mentionned into the Group by
+ //var_dump($arrayofgroupby); var_dump($search_groupby);
+ foreach ($search_groupby as $key => $val) {
+ if (!empty($arrayofgroupby[$val])) {
+ $tmpval = explode('.', $val);
+ //var_dump($arrayofxaxis[$val]['table']);
+ if (! in_array($arrayofgroupby[$val]['table'], $listoftablesalreadyadded)) { // We do not add join for main table already added
+ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$arrayofgroupby[$val]['table']." as ".$tmpval[0]." ON t.".str_replace('t__', '', $tmpval[0])." = ".$tmpval[0].".rowid";
+ $listoftablesalreadyadded[$arrayofgroupby[$val]['table']] = $arrayofgroupby[$val]['table'];
+ }
+ } else {
+ dol_print_error($db, 'Found a key into search_groupby not found into arrayofgroupby');
+ }
+ }
+
+ // Add LEFT JOIN for all parent tables mentionned into the Yaxis
+ //var_dump($arrayofgroupby); var_dump($search_groupby);
+ foreach ($search_measures as $key => $val) {
+ if (!empty($arrayofmesures[$val])) {
+ $tmpval = explode('.', $val);
+ //var_dump($arrayofxaxis[$val]['table']);
+ if (! in_array($arrayofmesures[$val]['table'], $listoftablesalreadyadded)) { // We do not add join for main table already added
+ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$arrayofmesures[$val]['table']." as ".$tmpval[0]." ON t.".str_replace('t__', '', $tmpval[0])." = ".$tmpval[0].".rowid";
+ $listoftablesalreadyadded[$arrayofmesures[$val]['table']] = $arrayofmesures[$val]['table'];
+ }
+ } else {
+ dol_print_error($db, 'Found a key into search_measures not found into arrayofmesures');
+ }
+ }
+
+ $sql .= " WHERE 1 = 1";
+ if ($object->ismultientitymanaged == 1) { // 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table
+ $sql .= " AND t.entity IN (".getEntity($object->element).")";
}
// Add the where here
$sqlfilters = $search_component_params_hidden;
@@ -588,7 +670,7 @@ if (!empty($search_measures) && !empty($search_xaxis)) {
print $errormessage;
}
}
- $sql .= ' GROUP BY ';
+ $sql .= " GROUP BY ";
foreach ($search_xaxis as $key => $val) {
if (preg_match('/\-year$/', $val)) {
$tmpval = preg_replace('/\-year$/', '', $val);
@@ -653,7 +735,7 @@ if (!empty($search_measures) && !empty($search_xaxis)) {
$legend = array();
foreach ($search_measures as $key => $val) {
- $legend[] = $langs->trans($arrayofmesures[$val]);
+ $legend[] = $langs->trans($arrayofmesures[$val]['label']);
}
$useagroupby = (is_array($search_groupby) && count($search_groupby));
@@ -684,7 +766,7 @@ if ($sql) {
if (!empty($object->fields[$xvalwithoutprefix]['arrayofkeyval'])) {
$xlabel = $object->fields[$xvalwithoutprefix]['arrayofkeyval'][$obj->$fieldforxkey];
}
- $labeltouse = (($xlabel || $xlabel == '0') ? dol_trunc($xlabel, 20, 'middle') : ($xlabel === '' ? $langs->trans("Empty") : $langs->trans("NotDefined")));
+ $labeltouse = (($xlabel || $xlabel == '0') ? dol_trunc($xlabel, 20, 'middle') : ($xlabel === '' ? $langs->transnoentitiesnoconv("Empty") : $langs->transnoentitiesnoconv("NotDefined")));
if ($oldlabeltouse && ($labeltouse != $oldlabeltouse)) {
$xi++; // Increase $xi
@@ -878,26 +960,62 @@ function fillArrayOfMeasures($object, $tablealias, $labelofobject, &$arrayofmesu
if ($level == 0) {
// Add the count of record only for the main/first level object. Parents are necessarly unique for each record.
- $arrayofmesures[$tablealias.'.count'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': Count';
+ $arrayofmesures[$tablealias.'.count'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': Count',
+ 'position' => 0,
+ 'table' => $object->table_element
+ );
}
// Add main fields of object
foreach ($object->fields as $key => $val) {
if (!empty($val['isameasure']) && (!isset($val['enabled']) || dol_eval($val['enabled'], 1, 1, '1'))) {
- $arrayofmesures[$tablealias.'.'.$key.'-sum'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Sum").')';
- $arrayofmesures[$tablealias.'.'.$key.'-average'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Average").')';
- $arrayofmesures[$tablealias.'.'.$key.'-min'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Minimum").')';
- $arrayofmesures[$tablealias.'.'.$key.'-max'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Maximum").')';
+ $arrayofmesures[$tablealias.'.'.$key.'-sum'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Sum").')',
+ 'position' => ($val['position']+($count * 100000)).'.1',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'.'.$key.'-average'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Average").')',
+ 'position' => ($val['position']+($count * 100000)).'.2',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'.'.$key.'-min'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Minimum").')',
+ 'position' => ($val['position']+($count * 100000)).'.3',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'.'.$key.'-max'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$langs->trans("Maximum").')',
+ 'position' => ($val['position']+($count * 100000)).'.4',
+ 'table' => $object->table_element
+ );
}
}
// Add extrafields to Measures
if ($object->isextrafieldmanaged) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
if (!empty($extrafields->attributes[$object->table_element]['totalizable'][$key]) && (!isset($extrafields->attributes[$object->table_element]['enabled'][$key]) || dol_eval($extrafields->attributes[$object->table_element]['enabled'][$key], 1, 1, '1'))) {
- $arrayofmesures[$tablealias.'e.'.$key.'-sum'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Sum").')';
- $arrayofmesures[$tablealias.'e.'.$key.'-average'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Average").')';
- $arrayofmesures[$tablealias.'e.'.$key.'-min'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Minimum").')';
- $arrayofmesures[$tablealias.'e.'.$key.'-max'] = img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Maximum").')';
+ $arrayofmesures[$tablealias.'e.'.$key.'-sum'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Sum").')',
+ 'position' => ($val['position']+($count * 100000)).'.1',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'e.'.$key.'-average'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Average").')',
+ 'position' => ($val['position']+($count * 100000)).'.2',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'e.'.$key.'-min'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Minimum").')',
+ 'position' => ($val['position']+($count * 100000)).'.3',
+ 'table' => $object->table_element
+ );
+ $arrayofmesures[$tablealias.'e.'.$key.'-max'] = array(
+ 'label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]).'
('.$langs->trans("Maximum").')',
+ 'position' => ($val['position']+($count * 100000)).'.4',
+ 'table' => $object->table_element
+ );
}
}
}
@@ -905,19 +1023,16 @@ function fillArrayOfMeasures($object, $tablealias, $labelofobject, &$arrayofmesu
foreach ($object->fields as $key => $val) {
if (preg_match('/^[^:]+:[^:]+:/', $val['type'])) {
$tmptype = explode(':', $val['type'], 4);
- if ($tmptype[0] = 'integer' && $tmptype[1] && $tmptype[2]) {
+ if ($tmptype[0] == 'integer' && $tmptype[1] && $tmptype[2]) {
$newobject = $tmptype[1];
dol_include_once($tmptype[2]);
if (class_exists($newobject)) {
$tmpobject = new $newobject($db);
- /*var_dump($val['label']);
- var_dump($tmptype);
- var_dump($arrayofmesures);
- var_dump('t-'.$key);*/
+ //var_dump($key); var_dump($tmpobject->element); var_dump($val['label']); var_dump($tmptype); var_dump('t-'.$key);
$count++;
$arrayofmesures = fillArrayOfMeasures($tmpobject, $tablealias.'__'.$key, $langs->trans($val['label']), $arrayofmesures, $level + 1, $count);
} else {
- print 'Failed to find '.$newobject.' class for field '.$key.' of object '.$object->element."\n";
+ print 'For property '.$object->element.'->'.$key.', type="'.$val['type'].'": Failed to find class '.$newobject." in file ".$tmptype[2]."
\n";
}
}
}
@@ -1027,7 +1142,7 @@ function fillArrayOfXAxis($object, $tablealias, $labelofobject, &$arrayofxaxis,
foreach ($object->fields as $key => $val) {
if (preg_match('/^[^:]+:[^:]+:/', $val['type'])) {
$tmptype = explode(':', $val['type'], 4);
- if ($tmptype[0] = 'integer' && $tmptype[1] && $tmptype[2]) {
+ if ($tmptype[0] == 'integer' && $tmptype[1] && $tmptype[2]) {
$newobject = $tmptype[1];
dol_include_once($tmptype[2]);
if (class_exists($newobject)) {
@@ -1036,7 +1151,7 @@ function fillArrayOfXAxis($object, $tablealias, $labelofobject, &$arrayofxaxis,
$count++;
$arrayofxaxis = fillArrayOfXAxis($tmpobject, $tablealias.'__'.$key, $langs->trans($val['label']), $arrayofxaxis, $level + 1, $count);
} else {
- print 'Failed to find '.$newobject.' class for field '.$key.' of object '.$object->element."\n";
+ print 'For property '.$object->element.'->'.$key.', type="'.$val['type'].'": Failed to find class '.$newobject." in file ".$tmptype[2]."
\n";
}
}
}
@@ -1100,14 +1215,31 @@ function fillArrayOfGroupBy($object, $tablealias, $labelofobject, &$arrayofgroup
continue;
}
if (in_array($val['type'], array('timestamp', 'date', 'datetime'))) {
- $arrayofgroupby[$tablealias.'.'.$key.'-year'] = array('label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.')', 'position' => ($val['position']+($count * 100000)).'.1');
- $arrayofgroupby[$tablealias.'.'.$key.'-month'] = array('label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.'-'.$MM.')', 'position' => ($val['position']+($count * 100000)).'.2');
- $arrayofgroupby[$tablealias.'.'.$key.'-day'] = array('label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.'-'.$MM.'-'.$DD.')', 'position' => ($val['position']+($count * 100000)).'.3');
+ $arrayofgroupby[$tablealias.'.'.$key.'-year'] = array(
+ 'label' => img_picto('', $object->picto,
+ 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.')', 'position' => ($val['position']+($count * 100000)).'.1',
+ 'table' => $object->table_element
+ );
+ $arrayofgroupby[$tablealias.'.'.$key.'-month'] = array(
+ 'label' => img_picto('', $object->picto,
+ 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.'-'.$MM.')', 'position' => ($val['position']+($count * 100000)).'.2',
+ 'table' => $object->table_element
+ );
+ $arrayofgroupby[$tablealias.'.'.$key.'-day'] = array(
+ 'label' => img_picto('', $object->picto,
+ 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']).'
('.$YYYY.'-'.$MM.'-'.$DD.')', 'position' => ($val['position']+($count * 100000)).'.3',
+ 'table' => $object->table_element
+ );
} else {
- $arrayofgroupby[$tablealias.'.'.$key] = array('label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']), 'position' => ($val['position']+($count * 100000)));
+ $arrayofgroupby[$tablealias.'.'.$key] = array(
+ 'label' => img_picto('', $object->picto,
+ 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($val['label']), 'position' => ($val['position']+($count * 100000)),
+ 'table' => $object->table_element
+ );
}
}
}
+
// Add extrafields to Group by
if ($object->isextrafieldmanaged) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
@@ -1117,26 +1249,28 @@ function fillArrayOfGroupBy($object, $tablealias, $labelofobject, &$arrayofgroup
if (!empty($extrafields->attributes[$object->table_element]['totalizable'][$key])) {
continue;
}
- $arrayofgroupby[$tablealias.'e.'.$key] = array('label' => img_picto('', $object->picto, 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]), 'position' => 1000 + (int) $extrafields->attributes[$object->table_element]['pos'][$key] + ($count * 100000));
+ $arrayofgroupby[$tablealias.'e.'.$key] = array(
+ 'label' => img_picto('', $object->picto,
+ 'class="pictofixedwidth"').' '.$labelofobject.': '.$langs->trans($extrafields->attributes[$object->table_element]['label'][$key]), 'position' => 1000 + (int) $extrafields->attributes[$object->table_element]['pos'][$key] + ($count * 100000),
+ 'table' => $object->table_element
+ );
}
}
+
// Add fields for parent objects
foreach ($object->fields as $key => $val) {
if (preg_match('/^[^:]+:[^:]+:/', $val['type'])) {
$tmptype = explode(':', $val['type'], 4);
- if ($tmptype[0] = 'integer' && $tmptype[1] && $tmptype[2]) {
+ if ($tmptype[0] == 'integer' && $tmptype[1] && $tmptype[2]) {
$newobject = $tmptype[1];
dol_include_once($tmptype[2]);
if (class_exists($newobject)) {
$tmpobject = new $newobject($db);
- /*var_dump($val['label']);
- var_dump($tmptype);
- var_dump($arrayofmesures);
- var_dump('t-'.$key);*/
+ //var_dump($key); var_dump($tmpobject->element); var_dump($val['label']); var_dump($tmptype); var_dump('t-'.$key);
$count++;
$arrayofgroupby = fillArrayOfGroupBy($tmpobject, $tablealias.'__'.$key, $langs->trans($val['label']), $arrayofgroupby, $level + 1, $count);
} else {
- print 'Failed to find '.$newobject.' class for field '.$key.' of object '.$object->element."\n";
+ print 'For property '.$object->element.'->'.$key.', type="'.$val['type'].'": Failed to find class '.$newobject." in file ".$tmptype[2]."
\n";
}
}
}
diff --git a/htdocs/core/tpl/objectline_title.tpl.php b/htdocs/core/tpl/objectline_title.tpl.php
index c40f07716f2..e8dbec2ac77 100644
--- a/htdocs/core/tpl/objectline_title.tpl.php
+++ b/htdocs/core/tpl/objectline_title.tpl.php
@@ -71,7 +71,9 @@ if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || !empty($conf->global->FA
if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) {
global $mysoc;
- print '
id.'">'.img_edit($langs->trans("UpdateForAllLines"), 0, 'class="clickvatforalllines opacitymedium paddingleft cursorpointer"').'';
+ if (empty($disableedit)) {
+ print '
id.'">'.img_edit($langs->trans("UpdateForAllLines"), 0, 'class="clickvatforalllines opacitymedium paddingleft cursorpointer"').'';
+ }
//print '';
if (GETPOST('mode', 'aZ09') == 'vatforalllines') {
print '
';
diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php
index e8316392043..c2d81b81eb5 100644
--- a/htdocs/core/tpl/objectline_view.tpl.php
+++ b/htdocs/core/tpl/objectline_view.tpl.php
@@ -172,13 +172,13 @@ if (($line->info_bits & 2) == 2) {
print '
';
}
if ($line->date_start_fill) {
- print ''.$langs->trans('AutoFillDateFromShort').': '.yn($line->date_start_fill);
+ print ''.$langs->trans('AutoFillDateFromShort').': '.yn($line->date_start_fill);
}
if ($line->date_start_fill && $line->date_end_fill) {
print ' - ';
}
if ($line->date_end_fill) {
- print ''.$langs->trans('AutoFillDateToShort').': '.yn($line->date_end_fill);
+ print ''.$langs->trans('AutoFillDateToShort').': '.yn($line->date_end_fill);
}
if ($line->date_start_fill || $line->date_end_fill) {
print '
';
@@ -200,7 +200,16 @@ if (($line->info_bits & 2) == 2) {
}
}
- //print get_date_range($line->date_start, $line->date_end, $format);
+ // If we show the lines in a context to create a recurring sale invoice
+ if (basename($_SERVER["PHP_SELF"]) == 'card-rec.php') {
+ $default_start_fill = getDolGlobalInt('INVOICEREC_SET_AUTOFILL_DATE_START');
+ $default_end_fill = getDolGlobalInt('INVOICEREC_SET_AUTOFILL_DATE_END');
+ print '
';
+ print ''.$langs->trans('AutoFillDateFromShort').': '.yn($default_start_fill);
+ print ' - ';
+ print ''.$langs->trans('AutoFillDateToShort').': '.yn($default_end_fill);
+ print '
';
+ }
}
// Add description in form