FIX escape values and find indexed columns by key
This commit is contained in:
parent
254ae943e1
commit
566bced9dc
@ -67,10 +67,12 @@ class AccountancyImport
|
||||
* @param int $record_key Record key
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function cleanAmount(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $record_key)
|
||||
public function cleanAmount(&$arrayrecord, $fieldname, $listfields, $listvalues, $record_key)
|
||||
{
|
||||
$value_trim = trim($arrayrecord[$record_key]['val']);
|
||||
$arrayrecord[$record_key]['val'] = floatval($value_trim);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -83,9 +85,11 @@ class AccountancyImport
|
||||
* @param int $record_key Record key
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function cleanValue(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $record_key)
|
||||
public function cleanValue(&$arrayrecord, $fieldname, $listfields, $listvalues, $record_key)
|
||||
{
|
||||
$arrayrecord[$record_key]['val'] = trim($arrayrecord[$record_key]['val']);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,22 +108,23 @@ class AccountancyImport
|
||||
$fieldname = $fieldArr[1];
|
||||
}
|
||||
|
||||
$debit_index = 11;
|
||||
$credit_index = 12;
|
||||
$debit_val = trim($arrayrecord[$debit_index]['val']);
|
||||
$credit_val = trim($arrayrecord[$credit_index]['val']);
|
||||
$debit = floatval($debit_val);
|
||||
$credit = floatval($credit_val);
|
||||
if (!empty($debit)) {
|
||||
$amount = $debit;
|
||||
} else {
|
||||
$amount = $credit;
|
||||
}
|
||||
$listvalues[$debit_index] = "'" . $debit . "'";
|
||||
$listvalues[$credit_index] = "'" . $credit . "'";
|
||||
// get fields indexes
|
||||
$field_index_list = array_flip($listfields);
|
||||
if (isset($field_index_list['debit']) && isset($field_index_list['credit'])) {
|
||||
$debit_index = $field_index_list['debit'];
|
||||
$credit_index = $field_index_list['credit'];
|
||||
|
||||
$listfields[] = $fieldname;
|
||||
$listvalues[] = "'" . abs($amount) . "'";
|
||||
$debit = floatval($arrayrecord[$debit_index]['val']);
|
||||
$credit = floatval($arrayrecord[$credit_index]['val']);
|
||||
if (!empty($debit)) {
|
||||
$amount = $debit;
|
||||
} else {
|
||||
$amount = $credit;
|
||||
}
|
||||
|
||||
$listfields[] = $fieldname;
|
||||
$listvalues[] = "'" . $this->db->escape(abs($amount)) . "'";
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -141,15 +146,20 @@ class AccountancyImport
|
||||
$fieldname = $fieldArr[1];
|
||||
}
|
||||
|
||||
$debit = floatval(trim($arrayrecord[11]['val']));
|
||||
if (!empty($debit)) {
|
||||
$sens = 'D';
|
||||
} else {
|
||||
$sens = 'C';
|
||||
}
|
||||
$field_index_list = array_flip($listfields);
|
||||
if (isset($field_index_list['debit'])) {
|
||||
$debit_index = $field_index_list['debit'];
|
||||
|
||||
$listfields[] = $fieldname;
|
||||
$listvalues[] = "'" . $sens . "'";
|
||||
$debit = floatval($arrayrecord[$debit_index]['val']);
|
||||
if (!empty($debit)) {
|
||||
$sens = 'D';
|
||||
} else {
|
||||
$sens = 'C';
|
||||
}
|
||||
|
||||
$listfields[] = $fieldname;
|
||||
$listvalues[] = "'" . $this->db->escape($sens) . "'";
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -612,7 +612,7 @@ class ImportCsv extends ModeleImports
|
||||
break;
|
||||
}
|
||||
$classinstance = new $class($this->db);
|
||||
$res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $key - 1));
|
||||
$res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $fieldname, $listfields, $listvalues, $key - 1));
|
||||
if ($res < 0) {
|
||||
if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) {
|
||||
$this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict']));
|
||||
|
||||
@ -653,7 +653,7 @@ class ImportXlsx extends ModeleImports
|
||||
break;
|
||||
}
|
||||
$classinstance = new $class($this->db);
|
||||
$res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $key - 1));
|
||||
$res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $fieldname, $listfields, $listvalues, $key - 1));
|
||||
if ($res < 0) {
|
||||
if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) {
|
||||
$this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict']));
|
||||
|
||||
@ -357,6 +357,8 @@ class modAccounting extends DolibarrModules
|
||||
'b.piece_num' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'cleanValue', 'element' => 'Accountancy'),
|
||||
'b.numero_compte'=>array('rule'=>'accountingaccount'),
|
||||
'b.subledger_account'=>array('rule'=>'accountingaccount'),
|
||||
'b.debit' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'cleanAmount', 'element' => 'Accountancy'),
|
||||
'b.credit' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'cleanAmount', 'element' => 'Accountancy'),
|
||||
'b.multicurrency_amount' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'cleanAmount', 'element' => 'Accountancy'),
|
||||
'b.montant' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'computeAmount', 'element' => 'Accountancy'),
|
||||
'b.sens' => array('rule' => 'compute', 'classfile' => '/accountancy/class/accountancyimport.class.php', 'class' => 'AccountancyImport', 'method' => 'computeDirection', 'element' => 'Accountancy'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user