Fix clean multicurrency admin

This commit is contained in:
phf 2016-06-04 00:42:01 +02:00
parent 923952fb25
commit e3a5af6ad4
2 changed files with 94 additions and 62 deletions

View File

@ -77,20 +77,20 @@ if (preg_match('/del_(.*)/',$action,$reg))
if ($action == 'add_currency') if ($action == 'add_currency')
{ {
$code = GETPOST('code', 'alpha'); $langs->loadCacheCurrencies('');
$name = GETPOST('name', 'alpha');
$rate = GETPOST('rate', 'alpha');
$code = GETPOST('code', 'alpha');
$rate = GETPOST('rate', 'alpha');
$currency = new MultiCurrency($db); $currency = new MultiCurrency($db);
$currency->code = $code; $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->create($user) > 0)
{ {
if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array()); if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array());
else setEventMessages($langs->trans('ErrorAddRateFail'), array(), 'errors'); 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') elseif ($action == 'update_currency')
{ {
@ -182,6 +182,7 @@ print '<td>'.$langs->trans("Parameters").'</td>'."\n";
print '<td align="center" width="20">&nbsp;</td>'; print '<td align="center" width="20">&nbsp;</td>';
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n"; print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
/* TODO uncomment when the functionality will integrated
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").'</td>'; print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").'</td>';
@ -194,6 +195,7 @@ print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_INVOICE_DATE",$conf->global-
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
*/
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
@ -208,6 +210,7 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
/* TODO uncomment when the functionality will integrated
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").'</td>'; print '<td>'.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").'</td>';
@ -220,7 +223,9 @@ print $form->selectyesno("MULTICURRENCY_BUY_PRICE_IN_CURRENCY",$conf->global->MU
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
*/
/* TODO uncomment when the functionality will integrated
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'</td>'; print '<td>'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'</td>';
@ -236,63 +241,67 @@ print '</td></tr>';
print '</table>'; print '</table>';
print '<br />'; print '<br />';
*/
$var=false; if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION))
print '<table class="noborder" width="100%">'; {
print '<tr class="liste_titre">'; $var=false;
print '<td>'.$langs->trans("CurrencyLayerAccount").'</td>'."\n"; print '<table class="noborder" width="100%">';
print '<td align="center" width="20">&nbsp;</td>'; print '<tr class="liste_titre">';
print '<td align="right" width="100">'; print '<td>'.$langs->trans("CurrencyLayerAccount").'</td>'."\n";
print '<form id="form_sync" action="" method="POST">'; print '<td align="center" width="20">&nbsp;</td>';
print '<input type="hidden" name="action" value="synchronize" />'; print '<td align="right" width="100">';
print '<textarea id="response" class="hideobject" name="response"></textarea>'; print '<form id="form_sync" action="" method="POST">';
print $langs->trans("Value").'&nbsp;<input type="button" id="bt_sync" class="button" onclick="javascript:getRates();" value="'.$langs->trans('Synchronize').'" />'; print '<input type="hidden" name="action" value="synchronize" />';
print '</form>'; print '<textarea id="response" class="hideobject" name="response"></textarea>';
print '</td></tr>'; print $langs->trans("Value").'&nbsp;<input type="button" id="bt_sync" class="button" onclick="javascript:getRates();" value="'.$langs->trans('Synchronize').'" />';
print '</form>';
print '</td></tr>';
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td><a target="_blank" href="https://currencylayer.com">'.$langs->transnoentitiesnoconv("multicurrency_appId").'</a></td>'; print '<td><a target="_blank" href="https://currencylayer.com">'.$langs->transnoentitiesnoconv("multicurrency_appId").'</a></td>';
print '<td align="center" width="20">&nbsp;</td>'; print '<td align="center" width="20">&nbsp;</td>';
print '<td align="right" width="400">'; print '<td align="right" width="400">';
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'; print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_ID">'; print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_ID">';
print '<input type="text" name="MULTICURRENCY_APP_ID" value="'.$conf->global->MULTICURRENCY_APP_ID.'" size="28" />&nbsp;'; print '<input type="text" name="MULTICURRENCY_APP_ID" value="'.$conf->global->MULTICURRENCY_APP_ID.'" size="28" />&nbsp;';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").'</td>'; print '<td>'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").'</td>';
print '<td align="center" width="20">&nbsp;</td>'; print '<td align="center" width="20">&nbsp;</td>';
print '<td align="right" width="400">'; print '<td align="right" width="400">';
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'; print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_SOURCE">'; print '<input type="hidden" name="action" value="set_MULTICURRENCY_APP_SOURCE">';
print '<input type="text" name="MULTICURRENCY_APP_SOURCE" value="'.$conf->global->MULTICURRENCY_APP_SOURCE.'" size="10" placeholder="USD" />&nbsp;'; // Default: USD print '<input type="text" name="MULTICURRENCY_APP_SOURCE" value="'.$conf->global->MULTICURRENCY_APP_SOURCE.'" size="10" placeholder="USD" />&nbsp;'; // Default: USD
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").'</td>'; print '<td>'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").'</td>';
print '<td align="center" width="20">&nbsp;</td>'; print '<td align="center" width="20">&nbsp;</td>';
print '<td align="right" width="400">'; print '<td align="right" width="400">';
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'; print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="set_MULTICURRENCY_ALTERNATE_SOURCE">'; print '<input type="hidden" name="action" value="set_MULTICURRENCY_ALTERNATE_SOURCE">';
print '<input type="text" name="MULTICURRENCY_ALTERNATE_SOURCE" value="'.$conf->global->MULTICURRENCY_ALTERNATE_SOURCE.'" size="10" placeholder="EUR" />&nbsp;'; // Example: EUR print '<input type="text" name="MULTICURRENCY_ALTERNATE_SOURCE" value="'.$conf->global->MULTICURRENCY_ALTERNATE_SOURCE.'" size="10" placeholder="EUR" />&nbsp;'; // Example: EUR
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print '</form>'; print '</form>';
print '</td></tr>'; print '</td></tr>';
print '</table>';
print '<br />';
}
print '</table>';
print '<br />';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
@ -306,7 +315,8 @@ print '<tr '.$bc[$var].'>';
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'; print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add_currency">'; print '<input type="hidden" name="action" value="add_currency">';
print '<td><input type="text" name="code" value="" size="5" placeholder="'.$langs->trans('code').'" /> - <input type="text" name="name" value="" size="35" placeholder="'.$langs->trans('name').'" /></td>'; //print '<td><input type="text" name="code" value="" size="5" placeholder="'.$langs->trans('code').'" /> - <input type="text" name="name" value="" size="35" placeholder="'.$langs->trans('name').'" /></td>';
print '<td>'.$form->selectCurrency('', 'code').'</td>';
print '<td align="center" width="20">&nbsp;</td>'; print '<td align="center" width="20">&nbsp;</td>';
print '<td align="right" width="300">'; print '<td align="right" width="300">';
print '<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans('rate').'" />&nbsp;'; print '<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans('rate').'" />&nbsp;';

View File

@ -107,12 +107,19 @@ class MultiCurrency extends CommonObject
*/ */
public function create(User $user, $trigger = true) public function create(User $user, $trigger = true)
{ {
global $conf; global $conf,$langs;
dol_syslog('Currency::create', LOG_DEBUG); dol_syslog('Currency::create', LOG_DEBUG);
$error = 0; $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; if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity;
$now=date('Y-m-d H:i:s'); $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;
}
} }
/** /**