NEW clean values and amount in FEC import
This commit is contained in:
parent
92f82c7474
commit
6d6e6ff70c
@ -39,6 +39,35 @@
|
||||
*/
|
||||
class AccountancyImport
|
||||
{
|
||||
/**
|
||||
* Clean amount
|
||||
*
|
||||
* @param array $arrayrecord Array of read values: [fieldpos] => (['val']=>val, ['type']=>-1=null,0=blank,1=string), [fieldpos+1]...
|
||||
* @param string $fieldname Field name with alias
|
||||
* @param array $listfields Fields list to add
|
||||
* @param array $listvalues Values list to add
|
||||
* @param int $record_key Record key
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function cleanAmount(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $record_key) {
|
||||
$value_trim = trim($arrayrecord[$record_key]['val']);
|
||||
$arrayrecord[$record_key]['val'] = floatval($value_trim);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean value with trim
|
||||
*
|
||||
* @param array $arrayrecord Array of read values: [fieldpos] => (['val']=>val, ['type']=>-1=null,0=blank,1=string), [fieldpos+1]...
|
||||
* @param string $fieldname Field name with alias
|
||||
* @param array $listfields Fields list to add
|
||||
* @param array $listvalues Values list to add
|
||||
* @param int $record_key Record key
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function cleanValue(&$arrayrecord, $fieldname, &$listfields, &$listvalues, $record_key) {
|
||||
$arrayrecord[$record_key]['val'] = trim($arrayrecord[$record_key]['val']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute amount
|
||||
*
|
||||
@ -55,13 +84,19 @@ class AccountancyImport
|
||||
$fieldname = $fieldArr[1];
|
||||
}
|
||||
|
||||
$debit = floatval(trim($arrayrecord[11]['val']));
|
||||
$credit = floatval(trim($arrayrecord[12]['val']));
|
||||
$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 . "'";
|
||||
|
||||
$listfields[] = $fieldname;
|
||||
$listvalues[] = "'" . abs($amount) . "'";
|
||||
@ -69,7 +104,6 @@ class AccountancyImport
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compute sens
|
||||
*
|
||||
|
||||
@ -612,7 +612,7 @@ class ImportCsv extends ModeleImports
|
||||
break;
|
||||
}
|
||||
$classinstance = new $class($this->db);
|
||||
$res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord));
|
||||
$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));
|
||||
$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']));
|
||||
|
||||
@ -354,8 +354,10 @@ class modAccounting extends DolibarrModules
|
||||
'b.sens'=>'rule-computeDirection'
|
||||
); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
|
||||
$this->import_convertvalue_array[$r]=array(
|
||||
'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.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