FIX generating substitution array was corrupting the array_option
This commit is contained in:
parent
d64c51e860
commit
9552346a47
2 changed files with 45 additions and 40 deletions
|
|
@ -448,6 +448,7 @@ abstract class CommonDocGenerator
|
|||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Define array with couple substitution key => substitution value
|
||||
* Note that vars into substitutions array are formatted.
|
||||
*
|
||||
* @param Object $object Main object to use as data source
|
||||
* @param Translate $outputlangs Lang object to use for output
|
||||
|
|
@ -498,14 +499,15 @@ abstract class CommonDocGenerator
|
|||
$array_key.'_hour'=>dol_print_date($date, 'hour'),
|
||||
$array_key.'_date'=>dol_print_date($date, 'day'),
|
||||
$array_key.'_date_rfc'=>dol_print_date($date, 'dayrfc'),
|
||||
$array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ?dol_print_date($object->date_lim_reglement, 'day') : ''),
|
||||
$array_key.'_date_end'=>(!empty($object->fin_validite) ?dol_print_date($object->fin_validite, 'day') : ''),
|
||||
$array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ? dol_print_date($object->date_lim_reglement, 'day') : ''),
|
||||
$array_key.'_date_limit_rfc'=>(!empty($object->date_lim_reglement) ? dol_print_date($object->date_lim_reglement, 'dayrfc') : ''),
|
||||
$array_key.'_date_end'=>(!empty($object->fin_validite) ? dol_print_date($object->fin_validite, 'day') : ''),
|
||||
$array_key.'_date_creation'=>dol_print_date($object->date_creation, 'day'),
|
||||
$array_key.'_date_modification'=>(!empty($object->date_modification) ?dol_print_date($object->date_modification, 'day') : ''),
|
||||
$array_key.'_date_validation'=>(!empty($object->date_validation) ?dol_print_date($object->date_validation, 'dayhour') : ''),
|
||||
$array_key.'_date_approve'=>(!empty($object->date_approve) ?dol_print_date($object->date_approve, 'day') : ''),
|
||||
$array_key.'_date_delivery_planed'=>(!empty($object->delivery_date) ?dol_print_date($object->delivery_date, 'day') : ''),
|
||||
$array_key.'_date_close'=>(!empty($object->date_cloture) ?dol_print_date($object->date_cloture, 'dayhour') : ''),
|
||||
$array_key.'_date_modification'=>(!empty($object->date_modification) ? dol_print_date($object->date_modification, 'day') : ''),
|
||||
$array_key.'_date_validation'=>(!empty($object->date_validation) ? dol_print_date($object->date_validation, 'dayhour') : ''),
|
||||
$array_key.'_date_approve'=>(!empty($object->date_approve) ? dol_print_date($object->date_approve, 'day') : ''),
|
||||
$array_key.'_date_delivery_planed'=>(!empty($object->delivery_date) ? dol_print_date($object->delivery_date, 'day') : ''),
|
||||
$array_key.'_date_close'=>(!empty($object->date_cloture) ? dol_print_date($object->date_cloture, 'dayhour') : ''),
|
||||
|
||||
$array_key.'_payment_mode_code'=>$object->mode_reglement_code,
|
||||
$array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) != 'PaymentType'.$object->mode_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) : $object->mode_reglement),
|
||||
|
|
@ -641,6 +643,7 @@ abstract class CommonDocGenerator
|
|||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Define array with couple substitution key => substitution value
|
||||
* Note that vars into substitutions array are formatted.
|
||||
*
|
||||
* @param Object $line Object line
|
||||
* @param Translate $outputlangs Lang object to use for output
|
||||
|
|
@ -650,8 +653,6 @@ abstract class CommonDocGenerator
|
|||
public function get_substitutionarray_lines($line, $outputlangs, $linenumber = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
|
||||
$resarray = array(
|
||||
'line_pos' => $linenumber,
|
||||
'line_fulldesc'=>doc_getlinedesc($line, $outputlangs),
|
||||
|
|
@ -765,6 +766,7 @@ abstract class CommonDocGenerator
|
|||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Define array with couple substitution key => substitution value
|
||||
* Note that vars into substitutions array are formatted.
|
||||
*
|
||||
* @param Expedition $object Main object to use as data source
|
||||
* @param Translate $outputlangs Lang object to use for output
|
||||
|
|
@ -831,6 +833,7 @@ abstract class CommonDocGenerator
|
|||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Define array with couple substitution key => substitution value
|
||||
* Note that vars into substitutions array are formatted.
|
||||
*
|
||||
* @param ExpeditionLigne $line Object line
|
||||
* @param Translate $outputlangs Lang object to use for output
|
||||
|
|
@ -839,7 +842,6 @@ abstract class CommonDocGenerator
|
|||
public function get_substitutionarray_shipment_lines($line, $outputlangs)
|
||||
{
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
dol_include_once('/core/lib/product.lib.php');
|
||||
|
||||
$resarray = array(
|
||||
|
|
@ -930,6 +932,7 @@ abstract class CommonDocGenerator
|
|||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Fill array with couple extrafield key => extrafield value
|
||||
* Note that vars into substitutions array are formatted.
|
||||
*
|
||||
* @param Object $object Object with extrafields (must have $object->array_options filled)
|
||||
* @param array $array_to_fill Substitution array
|
||||
|
|
@ -945,49 +948,51 @@ abstract class CommonDocGenerator
|
|||
|
||||
if (is_array($extrafields->attributes[$object->table_element]['label'])) {
|
||||
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $label) {
|
||||
$formatedarrayoption = $object->array_options;
|
||||
|
||||
if ($extrafields->attributes[$object->table_element]['type'][$key] == 'price') {
|
||||
$object->array_options['options_'.$key] = price2num($object->array_options['options_'.$key]);
|
||||
$object->array_options['options_'.$key.'_currency'] = price($object->array_options['options_'.$key], 0, $outputlangs, 0, 0, -1, $conf->currency);
|
||||
$formatedarrayoption['options_'.$key] = price2num($formatedarrayoption['options_'.$key]);
|
||||
$formatedarrayoption['options_'.$key.'_currency'] = price($formatedarrayoption['options_'.$key], 0, $outputlangs, 0, 0, -1, $conf->currency);
|
||||
//Add value to store price with currency
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_currency' => $object->array_options['options_'.$key.'_currency']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_currency' => $formatedarrayoption['options_'.$key.'_currency']));
|
||||
} elseif ($extrafields->attributes[$object->table_element]['type'][$key] == 'select') {
|
||||
$valueofselectkey = $object->array_options['options_'.$key];
|
||||
$valueofselectkey = $formatedarrayoption['options_'.$key];
|
||||
if (array_key_exists($valueofselectkey, $extrafields->attributes[$object->table_element]['param'][$key]['options'])) {
|
||||
$object->array_options['options_'.$key] = $extrafields->attributes[$object->table_element]['param'][$key]['options'][$valueofselectkey];
|
||||
$formatedarrayoption['options_'.$key] = $extrafields->attributes[$object->table_element]['param'][$key]['options'][$valueofselectkey];
|
||||
} else {
|
||||
$object->array_options['options_'.$key] = '';
|
||||
$formatedarrayoption['options_'.$key] = '';
|
||||
}
|
||||
} elseif ($extrafields->attributes[$object->table_element]['type'][$key] == 'checkbox') {
|
||||
$valArray = explode(',', $object->array_options['options_'.$key]);
|
||||
$valArray = explode(',', $formatedarrayoption['options_'.$key]);
|
||||
$output = array();
|
||||
foreach ($extrafields->attributes[$object->table_element]['param'][$key]['options'] as $keyopt => $valopt) {
|
||||
if (in_array($keyopt, $valArray)) {
|
||||
$output[] = $valopt;
|
||||
}
|
||||
}
|
||||
$object->array_options['options_'.$key] = implode(', ', $output);
|
||||
$formatedarrayoption['options_'.$key] = implode(', ', $output);
|
||||
} elseif ($extrafields->attributes[$object->table_element]['type'][$key] == 'date') {
|
||||
if (strlen($object->array_options['options_'.$key]) > 0) {
|
||||
$date = $object->array_options['options_'.$key];
|
||||
$object->array_options['options_'.$key] = dol_print_date($date, 'day'); // using company output language
|
||||
$object->array_options['options_'.$key.'_locale'] = dol_print_date($date, 'day', 'tzserver', $outputlangs); // using output language format
|
||||
$object->array_options['options_'.$key.'_rfc'] = dol_print_date($date, 'dayrfc'); // international format
|
||||
if (strlen($formatedarrayoption['options_'.$key]) > 0) {
|
||||
$date = $formatedarrayoption['options_'.$key];
|
||||
$formatedarrayoption['options_'.$key] = dol_print_date($date, 'day'); // using company output language
|
||||
$formatedarrayoption['options_'.$key.'_locale'] = dol_print_date($date, 'day', 'tzserver', $outputlangs); // using output language format
|
||||
$formatedarrayoption['options_'.$key.'_rfc'] = dol_print_date($date, 'dayrfc'); // international format
|
||||
} else {
|
||||
$object->array_options['options_'.$key] = '';
|
||||
$object->array_options['options_'.$key.'_locale'] = '';
|
||||
$object->array_options['options_'.$key.'_rfc'] = '';
|
||||
$formatedarrayoption['options_'.$key] = '';
|
||||
$formatedarrayoption['options_'.$key.'_locale'] = '';
|
||||
$formatedarrayoption['options_'.$key.'_rfc'] = '';
|
||||
}
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_locale' => $object->array_options['options_'.$key.'_locale']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_rfc' => $object->array_options['options_'.$key.'_rfc']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_locale' => $formatedarrayoption['options_'.$key.'_locale']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_rfc' => $formatedarrayoption['options_'.$key.'_rfc']));
|
||||
} elseif ($extrafields->attributes[$object->table_element]['type'][$key] == 'datetime') {
|
||||
$datetime = $object->array_options['options_'.$key];
|
||||
$object->array_options['options_'.$key] = ($datetime != "0000-00-00 00:00:00" ?dol_print_date($object->array_options['options_'.$key], 'dayhour') : ''); // using company output language
|
||||
$object->array_options['options_'.$key.'_locale'] = ($datetime != "0000-00-00 00:00:00" ?dol_print_date($object->array_options['options_'.$key], 'dayhour', 'tzserver', $outputlangs) : ''); // using output language format
|
||||
$object->array_options['options_'.$key.'_rfc'] = ($datetime != "0000-00-00 00:00:00" ?dol_print_date($object->array_options['options_'.$key], 'dayhourrfc') : ''); // international format
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_locale' => $object->array_options['options_'.$key.'_locale']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_rfc' => $object->array_options['options_'.$key.'_rfc']));
|
||||
$datetime = $formatedarrayoption['options_'.$key];
|
||||
$formatedarrayoption['options_'.$key] = ($datetime != "0000-00-00 00:00:00" ? dol_print_date($formatedarrayoption['options_'.$key], 'dayhour') : ''); // using company output language
|
||||
$formatedarrayoption['options_'.$key.'_locale'] = ($datetime != "0000-00-00 00:00:00" ? dol_print_date($formatedarrayoption['options_'.$key], 'dayhour', 'tzserver', $outputlangs) : ''); // using output language format
|
||||
$formatedarrayoption['options_'.$key.'_rfc'] = ($datetime != "0000-00-00 00:00:00" ? dol_print_date($formatedarrayoption['options_'.$key], 'dayhourrfc') : ''); // international format
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_locale' => $formatedarrayoption['options_'.$key.'_locale']));
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key.'_rfc' => $formatedarrayoption['options_'.$key.'_rfc']));
|
||||
} elseif ($extrafields->attributes[$object->table_element]['type'][$key] == 'link') {
|
||||
$id = $object->array_options['options_'.$key];
|
||||
$id = $formatedarrayoption['options_'.$key];
|
||||
if ($id != "") {
|
||||
$param = $extrafields->attributes[$object->table_element]['param'][$key];
|
||||
$param_list = array_keys($param['options']); // $param_list='ObjectName:classPath'
|
||||
|
|
@ -1000,14 +1005,14 @@ abstract class CommonDocGenerator
|
|||
$tmpobject = new $classname($this->db);
|
||||
$tmpobject->fetch($id);
|
||||
// completely replace the id with the linked object name
|
||||
$object->array_options['options_'.$key] = $tmpobject->name;
|
||||
$formatedarrayoption['options_'.$key] = $tmpobject->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists('options_'.$key, $object->array_options)) {
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key => $object->array_options['options_'.$key]));
|
||||
if (array_key_exists('options_'.$key, $formatedarrayoption)) {
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key => $formatedarrayoption['options_'.$key]));
|
||||
} else {
|
||||
$array_to_fill = array_merge($array_to_fill, array($array_key.'_options_'.$key => ''));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
|
|||
*/
|
||||
public function __construct($db)
|
||||
{
|
||||
global $conf, $langs, $mysoc;
|
||||
global $langs, $mysoc;
|
||||
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("main", "companies"));
|
||||
|
|
@ -203,6 +203,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
|
|||
{
|
||||
// phpcs:enable
|
||||
global $user, $langs, $conf, $mysoc, $hookmanager;
|
||||
global $action;
|
||||
|
||||
if (empty($srctemplatepath)) {
|
||||
dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING);
|
||||
|
|
@ -215,7 +216,6 @@ class doc_generic_odt extends ModeleThirdPartyDoc
|
|||
$hookmanager = new HookManager($this->db);
|
||||
}
|
||||
$hookmanager->initHooks(array('odtgeneration'));
|
||||
global $action;
|
||||
|
||||
if (!is_object($outputlangs)) {
|
||||
$outputlangs = $langs;
|
||||
|
|
|
|||
Loading…
Reference in a new issue