Merge pull request #8904 from Mavyre/develop

FIX Errors on synchronize rates when accessing Dolibarr from HTTPS
This commit is contained in:
Laurent Destailleur 2018-06-04 13:46:03 +02:00 committed by GitHub
commit 40ab046bd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 27 deletions

View File

@ -142,17 +142,7 @@ elseif ($action == 'update_currency')
} }
elseif ($action == 'synchronize') elseif ($action == 'synchronize')
{ {
$response = GETPOST('response'); MultiCurrency::syncRates($conf->global->MULTICURRENCY_APP_ID);
$response = json_decode($response);
if ($response->success)
{
MultiCurrency::syncRates($response);
}
else
{
setEventMessages($langs->trans('multicurrency_syncronize_error', $response->error->info), null, 'errors');
}
} }

View File

@ -841,9 +841,13 @@ if (! empty($conf->accounting->enabled) && ($modecompta == 'BOOKKEEPING'))
$obj = $db->fetch_object($result); $obj = $db->fetch_object($result);
if (! isset($encaiss[$obj->dm])) $encaiss[$obj->dm]=0; 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($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; $encaiss_ttc[$obj->dm] += 0;
$decaiss_ttc[$obj->dm] += 0;
$i++; $i++;
} }

View File

@ -626,24 +626,38 @@ class MultiCurrency extends CommonObject
{ {
global $db,$conf; global $db,$conf;
$TRate = $response->quotes; $ch = curl_init('http://apilayer.net/api/live?access_key='.$key.'');
$timestamp = $response->timestamp; 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) $TRate = $response->quotes;
{ $timestamp = $response->timestamp;
foreach ($TRate as $currency_code => $rate)
if (self::recalculRates($TRate) >= 0)
{ {
$code = substr($currency_code, 3, 3); foreach ($TRate as $currency_code => $rate)
$obj = new MultiCurrency($db);
if ($obj->fetch(null, $code) > 0)
{ {
$obj->updateRate($rate); $code = substr($currency_code, 3, 3);
} $obj = new MultiCurrency($db);
else if ($obj->fetch(null, $code) > 0)
{ {
self::addRateFromDolibarr($code, $rate); $obj->updateRate($rate);
} }
} else
{
self::addRateFromDolibarr($code, $rate);
}
}
}
}
else
{
setEventMessages($langs->trans('multicurrency_syncronize_error', $response->error->info), null, 'errors');
} }
} }