26 require
'../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/lib/multicurrency.lib.php';
29 require_once DOL_DOCUMENT_ROOT.
'/multicurrency/class/multicurrency.class.php';
33 $langs->loadLangs(array(
'admin',
'multicurrency'));
41 $action =
GETPOST(
'action',
'aZ09');
49 if (preg_match(
'/set_([a-z0-9_\-]+)/i', $action, $reg))
52 $value =
GETPOST($code,
'alpha');
61 if (preg_match(
'/del_([a-z0-9_\-]+)/i', $action, $reg))
72 if ($action ==
'add_currency')
76 $langs->loadCacheCurrencies(
'');
78 $code =
GETPOST(
'code',
'alpha');
81 $currency->code = $code;
82 $currency->name = !empty($langs->cache_currencies[$code][
'label']) ? $langs->cache_currencies[$code][
'label'].
' ('.$langs->getCurrencySymbol($code).
')' : $code;
86 setEventMessages($langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
"Rate")), null,
'errors');
91 if ($currency->create($user) > 0)
93 if ($currency->addRate($rate))
setEventMessages($langs->trans(
'RecordSaved'), array());
95 }
else setEventMessages($langs->trans(
'ErrorAddCurrencyFail'), $currency->errors,
'errors');
97 } elseif ($action ==
'update_currency')
101 if (
GETPOST(
'updatecurrency',
'alpha'))
103 $fk_multicurrency =
GETPOST(
'fk_multicurrency',
'int');
109 setEventMessages($langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
"Rate")), null,
'errors');
114 if ($currency->fetch($fk_multicurrency) > 0)
116 $result = $currency->updateRate($rate);
122 } elseif (
GETPOST(
'deletecurrency',
'alpha'))
124 $fk_multicurrency =
GETPOST(
'fk_multicurrency',
'int');
127 if ($currency->fetch($fk_multicurrency) > 0)
129 if ($currency->delete() > 0)
setEventMessages($langs->trans(
'RecordDeleted'), array());
130 else setEventMessages($langs->trans(
'ErrorDeleteCurrencyFail'), array(),
'errors');
133 } elseif ($action ==
'setapilayer')
149 $TCurrency = array();
150 $sql =
'SELECT rowid FROM '.MAIN_DB_PREFIX.
'multicurrency WHERE entity = '.$conf->entity;
151 $resql = $db->query($sql);
154 while ($obj = $db->fetch_object(
$resql))
157 $currency->fetch($obj->rowid);
158 $TCurrency[] = $currency;
167 $form =
new Form($db);
169 $page_name =
"MultiCurrencySetup";
171 llxHeader(
'', $langs->trans($page_name));
174 $linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
182 print '<table class="noborder centpercent">';
183 print
'<tr class="liste_titre">';
184 print
'<td>'.$langs->trans(
"Parameters").
'</td>'.
"\n";
185 print
'<td class="center">'.$langs->trans(
"Status").
'</td>'.
"\n";
188 print
'<tr class="oddeven">';
189 print
'<td>'.$langs->transnoentitiesnoconv(
"MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE").
'</td>';
190 print
'<td class="center">';
191 if ($conf->use_javascript_ajax) {
194 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
195 print $form->selectarray(
"MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE", $arrval, $conf->global->MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE);
200 print
'<tr class="oddeven">';
201 print
'<td>'.$langs->transnoentitiesnoconv(
"multicurrency_useOriginTx").
'</td>';
202 print
'<td class="center">';
203 if ($conf->use_javascript_ajax) {
206 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
207 print $form->selectarray(
"MULTICURRENCY_USE_ORIGIN_TX", $arrval, $conf->global->MULTICURRENCY_USE_ORIGIN_TX);
212 if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
214 print
'<tr class="oddeven">';
215 print
'<td>'.$langs->transnoentitiesnoconv(
"MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT").
'</td>';
216 print
'<td class="center">';
217 if ($conf->use_javascript_ajax) {
220 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
221 print $form->selectarray(
"MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT", $arrval, $conf->global->MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT);
259 if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION))
261 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'" id="form_sync">';
262 print
'<input type="hidden" name="token" value="'.newToken().
'">';
263 print
'<input type="hidden" name="action" value="setapilayer">';
265 print
'<div class="div-table-responsive-no-min">';
266 print
'<table class="noborder centpercent">';
268 $urlforapilayer =
'https://currencylayer.com';
270 print
'<tr class="liste_titre">';
271 print
'<td>'.$form->textwithpicto($langs->trans(
"CurrencyLayerAccount"), $langs->trans(
"CurrencyLayerAccount_help_to_synchronize", $urlforapilayer)).
'</td>'.
"\n";
272 print
'<td class="right">';
273 print
'<textarea id="response" class="hideobject" name="response"></textarea>';
274 print
'<input type="submit" name="modify_apilayer" class="button buttongen" value="'.$langs->trans(
"Modify").
'">';
275 print
'<input type="submit" id="bt_sync" name="bt_sync_apilayer" class="button buttongen" value="'.$langs->trans(
'Synchronize').
'" />';
278 print
'<tr class="oddeven">';
279 print
'<td class="fieldrequired"><a target="_blank" href="'.$urlforapilayer.
'">'.$langs->transnoentitiesnoconv(
"multicurrency_appId").
'</a></td>';
280 print
'<td class="right">';
281 print
'<input type="text" name="MULTICURRENCY_APP_ID" value="'.$conf->global->MULTICURRENCY_APP_ID.
'" size="28" /> ';
284 print
'<tr class="oddeven">';
285 print
'<td>'.$langs->transnoentitiesnoconv(
"multicurrency_appCurrencySource").
'</td>';
286 print
'<td class="right">';
287 print
'<input type="text" name="MULTICURRENCY_APP_SOURCE" value="'.$conf->global->MULTICURRENCY_APP_SOURCE.
'" size="10" placeholder="USD" /> ';
304 print
'<div class="div-table-responsive-no-min">';
305 print
'<table class="noborder centpercent">';
307 print
'<tr class="liste_titre">';
308 print
'<td>'.$form->textwithpicto($langs->trans(
"CurrenciesUsed"), $langs->transnoentitiesnoconv(
"CurrenciesUsed_help_to_add")).
'</td>'.
"\n";
309 print
'<td class="center">'.$langs->trans(
"Rate").
'</td>'.
"\n";
312 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'">';
313 print
'<input type="hidden" name="token" value="'.newToken().
'">';
314 print
'<input type="hidden" name="action" value="add_currency">';
316 print
'<tr class="oddeven">';
317 print
'<td>'.$form->selectCurrency(
'',
'code', 1).
'</td>';
318 print
'<td class="right">';
319 print
'<input type="text" name="rate" value="" size="13" placeholder="'.$langs->trans(
'Rate').
'" /> ';
320 print
'<input type="submit" class="button" value="'.$langs->trans(
"Add").
'">';
326 print
'<tr class="oddeven">';
327 print
'<td>'.$conf->currency.$form->textwithpicto(
' ', $langs->trans(
"BaseCurrency")).
'</td>';
328 print
'<td class="right">1</td>';
331 foreach ($TCurrency as &$currency)
333 if ($currency->code == $conf->currency)
continue;
335 print
'<tr class="oddeven">';
336 print
'<td>'.$currency->code.
' - '.$currency->name.
'</td>';
337 print
'<td class="right">';
338 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'">';
339 print
'<input type="hidden" name="token" value="'.newToken().
'">';
340 print
'<input type="hidden" name="action" value="update_currency">';
341 print
'<input type="hidden" name="fk_multicurrency" value="'.$currency->id.
'">';
342 print
'1 '.$conf->currency.
' = ';
343 print
'<input type="text" name="rate" value="'.($currency->rate->rate ? $currency->rate->rate :
'').
'" size="13" /> '.$currency->code.
' ';
344 print
'<input type="submit" name="updatecurrency" class="button" value="'.$langs->trans(
"Modify").
'"> ';
345 print
'<input type="submit" name="deletecurrency" class="button" value="'.$langs->trans(
"Delete").
'">';
354 <script type="text/javascript">
357 $("#bt_sync").attr("disabled", true);
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dolibarr_set_const($db, $name, $value, $type= 'chaine', $visible=0, $note= '', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname.
static syncRates($key, $addifnotfound=0)
Sync rates from API.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
price2num($amount, $rounding= '', $option=0)
Function that return a number with universal decimal format (decimal separator is '...
dolibarr_del_const($db, $name, $entity=1)
Effacement d'une constante dans la base de donnees.
ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0, $strict=0, $forcereload=0, $marginleftonlyshort=2, $forcenoajax=0)
On/off button for constant.
accessforbidden($message= '', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program Calling this function terminate execution ...
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
print
Draft customers invoices.
multicurrencyAdminPrepareHead()
Prepare array with list of tabs.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.