diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index e47b2c9068e..74804b01344 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -77,20 +77,20 @@ if (preg_match('/del_(.*)/',$action,$reg)) if ($action == 'add_currency') { - $code = GETPOST('code', 'alpha'); - $name = GETPOST('name', 'alpha'); - $rate = GETPOST('rate', 'alpha'); + $langs->loadCacheCurrencies(''); + $code = GETPOST('code', 'alpha'); + $rate = GETPOST('rate', 'alpha'); $currency = new MultiCurrency($db); $currency->code = $code; - $currency->name = $name; + $currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code; if ($currency->create($user) > 0) { if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array()); else setEventMessages($langs->trans('ErrorAddRateFail'), array(), 'errors'); } - else setEventMessages($langs->trans('ErrorAddCurrencyFail'), array()); + else setEventMessages($langs->trans('ErrorAddCurrencyFail'), $currency->errors, 'errors'); } elseif ($action == 'update_currency') { @@ -182,6 +182,7 @@ print ''.$langs->trans("Parameters").''."\n"; print ' '; print ''.$langs->trans("Value").''."\n"; +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").''; @@ -194,6 +195,7 @@ print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_INVOICE_DATE",$conf->global- print ''; print ''; print ''; +*/ $var=!$var; print ''; @@ -208,6 +210,7 @@ print '' print ''; print ''; +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").''; @@ -220,7 +223,9 @@ print $form->selectyesno("MULTICURRENCY_BUY_PRICE_IN_CURRENCY",$conf->global->MU print ''; print ''; print ''; +*/ +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").''; @@ -236,64 +241,68 @@ print ''; print ''; print '
'; +*/ -$var=false; -print ''; -print ''; -print ''."\n"; -print ''; -print ''; +if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) +{ + $var=false; + print '
'.$langs->trans("CurrencyLayerAccount").' '; -print '
'; -print ''; -print ''; -print $langs->trans("Value").' '; -print '
'; -print '
'; + print ''; + print ''."\n"; + print ''; + print ''; + + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + print '
'.$langs->trans("CurrencyLayerAccount").' '; + print '
'; + print ''; + print ''; + print $langs->trans("Value").' '; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_appId").' '; + print '
'; + print ''; + print ''; + print ' '; + print ''; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").' '; + print '
'; + print ''; + print ''; + print ' '; // Default: USD + print ''; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").' '; + print '
'; + print ''; + print ''; + print ' '; // Example: EUR + print ''; + print '
'; + print '
'; + print '
'; +} -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_appId").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; -print ''; -print '
'; -print ''; - -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; // Default: USD -print ''; -print '
'; -print ''; - -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; // Example: EUR -print ''; -print '
'; -print ''; - - -print ''; -print '
'; - print ''; print ''; @@ -306,7 +315,8 @@ print ''; print ''; print ''; print ''; -print ''; +//print ''; +print ''; print ''; print '
- - '.$form->selectCurrency('', 'code').' '; print ' '; diff --git a/htdocs/multicurrency/class/multicurrency.class.php b/htdocs/multicurrency/class/multicurrency.class.php index b4baa550ce7..76238e31906 100644 --- a/htdocs/multicurrency/class/multicurrency.class.php +++ b/htdocs/multicurrency/class/multicurrency.class.php @@ -107,12 +107,19 @@ class MultiCurrency extends CommonObject */ public function create(User $user, $trigger = true) { - global $conf; + global $conf,$langs; dol_syslog('Currency::create', LOG_DEBUG); $error = 0; + if (self::checkCodeAlreadyExists($this->code)) + { + $error++; + $this->errors[] = $langs->trans('multicurrency_code_already_added'); + return -1; + } + if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity; $now=date('Y-m-d H:i:s'); @@ -616,6 +623,21 @@ class MultiCurrency extends CommonObject } } } + + /** + * Check in database if the current code already exists + * + * @param string $code current code to search + * @return true if exists, false if not exists + */ + public static function checkCodeAlreadyExists($code) + { + global $db; + + $currency = new MultiCurrency($db); + if ($currency->fetch('', $code) > 0) return true; + else return false; + } } /**