diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 33c00579b36..d4a031a6148 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -142,17 +142,7 @@ elseif ($action == 'update_currency') } elseif ($action == 'synchronize') { - $response = GETPOST('response'); - $response = json_decode($response); - - if ($response->success) - { - MultiCurrency::syncRates($response); - } - else - { - setEventMessages($langs->trans('multicurrency_syncronize_error', $response->error->info), null, 'errors'); - } + MultiCurrency::syncRates($conf->global->MULTICURRENCY_APP_ID); } diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index 4cd13d37c89..fbbc7a36eef 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -841,9 +841,13 @@ if (! empty($conf->accounting->enabled) && ($modecompta == 'BOOKKEEPING')) $obj = $db->fetch_object($result); if (! isset($encaiss[$obj->dm])) $encaiss[$obj->dm]=0; - $encaiss[$obj->dm] += $obj->debit; + if (! isset($decaiss[$obj->dm])) $decaiss[$obj->dm]=0; + $encaiss[$obj->dm] += $obj->credit; + $decaiss[$obj->dm] += $obj->debit; if (! isset($encaiss_ttc[$obj->dm])) $encaiss_ttc[$obj->dm]=0; + if (! isset($decaiss_ttc[$obj->dm])) $decaiss_ttc[$obj->dm]=0; $encaiss_ttc[$obj->dm] += 0; + $decaiss_ttc[$obj->dm] += 0; $i++; } diff --git a/htdocs/multicurrency/class/multicurrency.class.php b/htdocs/multicurrency/class/multicurrency.class.php index 67725bad586..2881e23a21b 100644 --- a/htdocs/multicurrency/class/multicurrency.class.php +++ b/htdocs/multicurrency/class/multicurrency.class.php @@ -626,24 +626,38 @@ class MultiCurrency extends CommonObject { global $db,$conf; - $TRate = $response->quotes; - $timestamp = $response->timestamp; + $ch = curl_init('http://apilayer.net/api/live?access_key='.$key.''); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $response = curl_exec($ch); + curl_close($ch); + $response = json_decode($response); + + if ($response->success) + { - if (self::recalculRates($TRate) >= 0) - { - foreach ($TRate as $currency_code => $rate) + $TRate = $response->quotes; + $timestamp = $response->timestamp; + + if (self::recalculRates($TRate) >= 0) { - $code = substr($currency_code, 3, 3); - $obj = new MultiCurrency($db); - if ($obj->fetch(null, $code) > 0) + foreach ($TRate as $currency_code => $rate) { - $obj->updateRate($rate); - } - else - { - self::addRateFromDolibarr($code, $rate); - } - } + $code = substr($currency_code, 3, 3); + $obj = new MultiCurrency($db); + if ($obj->fetch(null, $code) > 0) + { + $obj->updateRate($rate); + } + else + { + self::addRateFromDolibarr($code, $rate); + } + } + } + } + else + { + setEventMessages($langs->trans('multicurrency_syncronize_error', $response->error->info), null, 'errors'); } }