Файл: RootPanel 1.7.0 FreeCode/RootPanel 1.7.0 FreeCode/_rootadmin/_currency.inc.php
Строк: 535
<?
if ($sub == "delete" and $id) {
checkAdminAccess('sCurrencyEdit',1);
$currency = GetCurrencyByCode($id);
if (GetSetting("currency") == $currency->code) { $error = "Нельзя удалить валюту, так как она является валютой сайта. Сначала измените валюту сайта."; }
else {
@mysql_query("delete from currency where id='$id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
writeAdminLog("Удалена валюта ID # $id, $currency->code");
}
}
if ($sub == "add") {
checkAdminAccess('sCurrencyEdit',1);
if (!$newcode) { $error = "Не указан трехсимвольный код валюты."; }
else if (!$newname) { $error = "Не указано название валюты."; }
else if (!$newsymbol) { $error = "Не указано сокращение валюты."; }
else if (!$newkoeficient and $newkoeficient != "0") { $error = "Не указан коэффициент валюты."; }
else if ($newkoeficient < 0) { $error = "Коэффициент валюты не может быть ниже нуля."; }
else if (GetCurrencyByCode($newcode)) { $error = "Валюта с кодом <B>$newcode</B> уже существует."; }
else {
@mysql_query("INSERT INTO currency (code,name,symbol,koeficient) VALUES('".strtoupper($newcode)."','$newname','$newsymbol','$newkoeficient')") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
$newcode = ""; $newname = ""; $newsymbol = ""; $newkoeficient = "";
writeAdminLog("Добавлена валюта $newcode");
}
}
if ($sub == "setcurrency") {
checkAdminAccess('sCurrencyEdit',1);
SetSetting("currency",$newcurrency);
SetSetting("usersChangeCurrency",$usersChangeCurrency);
writeAdminLog("Изменены настройки: Справочник валют / Валюта сайта");
}
if ($sub == "change") {
checkAdminAccess('sCurrencyEdit',1);
if (!is_array($code)) { $error = "Утерян массив кодов."; }
else if (!is_array($name)) { $error = "Утерян массив названий."; }
else if (!is_array($symbol)) { $error = "Утерян массив сокращений."; }
else if (!is_array($koeficient)) { $error = "Утерян массив коэффициентов."; }
else {
$onecnt = 0;
while (list($index,$value) = each($code)) {
if ($index == "") { $error = "Не указан ID валюты ($value)"; break;}
else if ($value == "") { $error = "Не указан код валюты (ID $index)"; break;}
else if ($name[$index] == "") { $error = "Не указано название валюты ($value)"; break;}
else if ($symbol[$index] == "") { $error = "Не указано сокращение валюты ($value)"; break;}
else if ($koeficient[$index] == "") { $error = "Не указан коэффициент валюты ($value)"; break;}
else if ($koeficient[$index] < 0 and $koeficient[$index] != "0") { $error = "Коэффициент валюты не может быть ниже нуля ($value)"; break;}
else {
if ($koeficient[$index] == "1") { $onecnt++; }
if ($onecnt > 1) { $error = "Только одна валюта может иметь коэффициент 1"; break;}
}
}
if ($onecnt == "0") { $error = "Как минимум одна валюта должна иметь коэфициент 1"; }
if (!$error) {
reset($code);
while (list($index,$value) = each($code)) {
if ($koeficient[$index] == "1" and $oldone != $value) { $warning = true; }
@mysql_query("update currency set name='".$name[$index]."', symbol='".$symbol[$index]."', koeficient='".$koeficient[$index]."' where id='".$index."'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
}
writeAdminLog("Изменены настройки: Справочник валют / Список валют");
}
}
}
if ($sub == "convert") {
checkAdminAccess('sCurrencyEdit',1);
if (!$koeficient) { $error = "Не указан коэффициент."; }
else if (!$convertbase and !$convertcost) { $error = "Не указано, что именно нужно преобразовать в новую валюту."; }
else {
if ($convertbase) {
@mysql_query("UPDATE bills set money=ROUND(money*$koeficient,2), money_host=ROUND(money_host*$koeficient,2), money_domain=ROUND(money_domain*$koeficient,2), money_addons=ROUND(money_addons*$koeficient,2), money_shop=ROUND(money_shop*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE users set money=ROUND(money*$koeficient,2), partnerMoney=ROUND(partnerMoney*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
writeAdminLog("Запущен конвертер базы в Справочнике валют");
print "Преобразование базы успешно завершено.<BR>";
}
if ($convertcost) {
@mysql_query("UPDATE addons set cost_start=ROUND(cost_start*$koeficient,2), cost_monthly=ROUND(cost_monthly*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE specialcosts set cost1=ROUND(cost1*$koeficient,2), cost2=ROUND(cost2*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE tarifs set cost=ROUND(cost*$koeficient,2), cost_setup=ROUND(cost_setup*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE tarifs_freedomains set ordersum=ROUND(ordersum*$koeficient,2) WHERE NOT(ordersum=0)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE zones set cost_if_host=ROUND(cost_if_host*$koeficient,2), cost_if_not_host=ROUND(cost_if_not_host*$koeficient,2), cost_if_reseller=ROUND(cost_if_reseller*$koeficient,2), cost_if_domainreseller=ROUND(cost_if_domainreseller*$koeficient,2), renew_if_host=ROUND(renew_if_host*$koeficient,2), renew_if_not_host=ROUND(renew_if_not_host*$koeficient,2), renew_if_reseller=ROUND(renew_if_reseller*$koeficient,2), renew_if_domainreseller=ROUND(renew_if_domainreseller*$koeficient,2)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
@mysql_query("UPDATE coupons set value=ROUND(value*$koeficient,2) WHERE type='coupon'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error);
writeAdminLog("Запущен конвертер цен в Справочнике валют");
print "Преобразование цен успешно завершено.<BR>";
}
print "<BR>";
}
}
if ($sub == "updatecoursessettings") {
checkAdminAccess('sCurrencyEdit',1);
SetSetting("coursesAutoUpdate", $coursesAutoUpdate);
SetSetting("coursesPrivat24Type", $coursesPrivat24Type);
SetSetting("coursesAddProcent", $coursesAddProcent);
writeAdminLog("Изменены настройки: Справочник валют / Автоматическое получение курсов валют");
print "<center>Настройки успешно сохранены</center><BR>";
}
if ($sub == "updatecourses") {
checkAdminAccess('sCurrencyEdit',1);
$result = updateCourses(0);
if ($result) {
writeAdminLog("Изменены настройки: Автоматически обновлены курсы валют");
print "<center>Курсы валют успешно обновлены</center><BR>";
} else {
$error = $GLOBALerror;
}
}
checkAdminAccess('sCurrencyRead',1);
if ($error) { print "<center><font color=red>Ошибка: $error</font></center><BR>"; }
if ($warning) { print "<font color=red>Внимание! Вы изменили валюту с коэффициентом 1. Вам необходимо выполнить следующие шаги:</font><BR><p align=left>
1. Если это не новая установка и у Вас в биллинге есть реальные счета или пользователи с внутренним балансом или партнерским счетом больше нуля, Вам необходимо воспользоваться Конвертером базы, чтобы преобразовать все старые суммы в новую валюту.<BR><BR>
2. Необходимо так же преобразовать все цены для Доменных зон, Тарифных планов и Дополнительных услуг, а так же специальные цены в новую валюту. Это можно сделать, как с помощью конвертера так и вручную.<BR><BR>"; }
print "<table cellpadding=3 width=98%>";
print "<tr><td align=center colspan=3 bgcolor=$font_head><B>Справочник валют</b></td></tr>";
print "<tr bgcolor=$font_head><td align=center><B>Список валют</b></td><td align=center><B>Валюта сайта</b></td><td align=center><B>Конвертер базы</B></td></tr>";
print "<tr bgcolor=$font_row><td align=center valign=top width=52% rowspan=3>";
$r = GetCurrencys(1);
if (mysql_num_rows($r) > 0) {
$coursesAutoUpdate = GetSetting("coursesAutoUpdate");
$coursesPrivat24Type = GetSetting("coursesPrivat24Type");
$coursesAddProcent = GetSetting("coursesAddProcent");
print "<form method=POST>";
print "<input type=hidden name=do value=$do>";
print "<input type=hidden name=sub value=change>";
print "<table width=100%><tr align=center bgcolor=#FFFFFF><td width=45>Код</td><td align=center width=150>Название</td><td width=80>Сокращение</td><td width=80>Коэффициент</td><td></td></tr>";
while ($rr = mysql_fetch_object($r)) {
if ($rr->code == "USD" or $rr->code == "EUR" or $rr->code == "RUB" or $rr->code == "UAH" or $rr->code == "BYR") { $readonly = "readonly"; } else { $readonly = ""; }
print "<tr align=center bgcolor=#FFFFFF><td><input type=text name=code[$rr->id] value='$rr->code' maxlength=3 size=2 readonly></td><Td><input type=text name=name[$rr->id] value='$rr->name' size=20></td><Td><input type=text name=symbol[$rr->id] value='$rr->symbol' size=5></td><Td><input type=text name=koeficient[$rr->id] value='$rr->koeficient' size=3></td><td>";
if (!($rr->code == "USD" or $rr->code == "EUR" or $rr->code == "RUB" or $rr->code == "UAH" or $rr->code == "BYR")) { print "<A href=?do=$do&sub=delete&id=$rr->id onclick="javascript: return confirm('Вы уверены, что хотите удалить валюту?');"><img src=./_rootimages/del.gif alt=Удалить title=Удалить border=0></a>"; }
if ($rr->koeficient == "1") { print "<input type=hidden name=oldone value='$rr->code'>"; }
print "</td></tr>";
}
print "<tr bgcolor=#FFFFFF><Td align=right colspan=5><input type=submit value=Изменить></form></td></tr>";
if ($coursesAutoUpdate) {print "<tr bgcolor=#FFFFFF><Td align=center colspan=5><form method=POST><input type=hidden name=do value=$do><input type=hidden name=sub value=updatecourses><input type=submit value='Автоматически получить курсы валют'></form></td></tr>";}
print "</table>";
print "<BR>";
print "<form method=POST>";
print "<input type=hidden name=do value=$do>";
print "<input type=hidden name=sub value=add>";
print "<table width=100%>";
print "<tr align=center bgcolor=#FFFFFF><td width=45><input type=text name=newcode value='$newcode' maxlength=3 size=2></td><Td width=150><input type=text name=newname value='$newname' size=20></td><Td width=80><input type=text name=newsymbol value='$newsymbol' size=5></td><Td width=80><input type=text name=newkoeficient value='$newkoeficient' size=2></td><td></td></tr>";
print "<tr bgcolor=#FFFFFF><Td align=right colspan=5><input type=submit value=Добавить></td></tr>";
print "</table>";
print "</form><BR>";
print "<table width=100%>";
print "<tr align=justify bgcolor=#FFFFFF><td style='$styleHelp'>";
print "<B>код</b> - международный код валюты (3 символа)<BR>";
print "<B>название</b> - полное название валюты (используется только в админке)<BR>";
print "<B>сокращение</b> - сокращенное название либо символ валюты (используется в клиентской части, в письмах и т.п.)<BR>";
print "<B>коэффициент</b> - коэффициент валюты по отношению к условной единице биллинга<BR><BR>";
print "<B>P.S.</b> Все цены и суммы в админке указываются в условной единице биллинга, которая может быть как долларом, так и любой другой валютой. Если вы указали цены в долларах, то ставим коэффициент 1 для доллара, если в гривне, то для гривны и т.п. Валюта с коэффициентом 1 может быть только одна. Для остальных валют ставим такой коэффициент, чтобы путем умножения цены на данный коэффициент получалась сумма в соответствующей валюте.<BR><BR>";
print "<B>Для отключения валюты</b> устанавливаем ей коэфициент равный нулю.";
print "</td></tr></table>";
}
print "</td><Td align=center valign=top width=24% height=100>";
$r = GetCurrencys();
if (mysql_num_rows($r) > 0) {
print "<form method=POST>";
print "<input type=hidden name=do value=$do>";
print "<input type=hidden name=sub value=setcurrency>";
print "<table width=100%><tr align=center bgcolor=#FFFFFF><td><select name=newcurrency>";
$currency = GetSetting("currency");
while ($rr = mysql_fetch_object($r)) {
if ($rr->code == $currency) { $selected = "selected"; } else { $selected = ""; }
print "<option value='$rr->code' $selected>$rr->name</option>";
}
print "</select><BR><BR>";
print "<input type=checkbox name=usersChangeCurrency value=1 "; if (GetSetting("usersChangeCurrency")) {print "checked";} print "> разрешить клиентам менять валюту сайта<BR>";
print "<BR><input type=submit value=Изменить></td></tr></table>";
print "</form><BR>";
print "<table width=100%>";
print "<tr align=justify bgcolor=#FFFFFF><td style='$styleHelp'>";
print "<B>Валюта сайта</b> - это валюта, в которой будут отображаться цены на страницах оформления заказов, в клиентской части биллинга, а так же в счетах приходящих на e-mail клиентов.";
print "</td></tr></table>";
}
print "</td><Td align=center valign=top width=24%>";
print "<form method=POST>";
print "<input type=hidden name=do value=$do>";
print "<input type=hidden name=sub value=convert>";
print "<table width=100%><tr align=center bgcolor=#FFFFFF><td>Коэффициент: <input type=text name=koeficient size=2><p align=left><input type=checkbox name=convertbase value=1>конв. счета и балансы<BR><input type=checkbox name=convertcost value=1>конв. все цены<center><input type=submit value=Конвертировать></td></tr></table>";
print "</form><BR>";
print "<table width=100%>";
print "<tr align=justify bgcolor=#FFFFFF><td style='$styleHelp'>";
print "<B>Коэффициент</b> - все суммы в базе будут преобразованы в новую валюту путем умножения суммы на данный коэффициент.";
print "</td></tr></table>";
print "</td></tr>";
print "<tr bgcolor=$font_row height=10><td colspan=2 align=center><B>Автоматическое получение курсов валют</b></td></tr>";
print "<tr bgcolor=$font_row><td colspan=2 valign=top>";
print "<form method=POST>";
print "<input type=hidden name=do value=$do>";
print "<input type=hidden name=sub value=updatecoursessettings>";
print "<table width=100%><tr bgcolor=#FFFFFF><td>";
print "<input type=radio name=coursesAutoUpdate onclick="hidediv('privat24div');" value='' "; if (!$coursesAutoUpdate) {print "checked";} print "> отключено<BR>";
print "<input type=radio name=coursesAutoUpdate onclick="showdiv('privat24div');" value='privat24' "; if ($coursesAutoUpdate == "privat24") {print "checked";} print "> получать через Приват24 API";
?>
<div id="privat24div" style="display: <? if ($coursesAutoUpdate == "privat24") { print "block;"; } else { print "none;"; } ?>">
<input type=radio name=coursesPrivat24Type value=buy <? if ($coursesPrivat24Type == "buy") { print "checked"; } ?>> использовать наличный курс покупки Приватбанка<BR>
<input type=radio name=coursesPrivat24Type value=sale <? if ($coursesPrivat24Type == "sale") { print "checked"; } ?>> использовать наличный курс продажи Приватбанка<BR>
<input type=radio name=coursesPrivat24Type value=nbu <? if ($coursesPrivat24Type == "nbu") { print "checked"; } ?>> использовать официальный курс НБУ<BR>
<input type=radio name=coursesPrivat24Type value=cbrf <? if ($coursesPrivat24Type == "cbrf") { print "checked"; } ?>> использовать официальный курс ЦБ РФ<BR>
<BR>
Увеличить полученные курсы на <input type=text name=coursesAddProcent value="<?=$coursesAddProcent?>" size=1> % процентов
</div>
<?
print "<BR><center><input type=submit value=Сохранить></center>";
print "</td></tr></table>";
print "</form><BR>";
print "</td></tr>";
print "</table><BR>";
?>