#!/usr/bin/perl
#############################################################
##            ExchangeVisits    Version  3.00              ##
##            February 2003  Ust-Nera  Russia              ##
##            All rights  ScriptZaWM&RuScript              ##
##            Web  http://www.script.zawm.biz              ##
##            Support scripts script@zawm.biz              ##
#############################################################
require "config.pl";
require "allhtml.pl";
print "Content-Type: text/html\n\n";
if($ENV{'REQUEST_METHOD'} eq 'GET'){$query=$ENV{'QUERY_STRING'}}
elsif($ENV{'REQUEST_METHOD'} eq 'POST'){sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'})}
@formfields=split(/&/,$query);
sub urldecode{local($val)=@_;
$val=~s/\+/ /g;$val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
return $val;}
foreach (@formfields){chomp($_);
($f_n,$f_v)=split(/=/,$_);
$f_n=&urldecode($f_n);
$f_v=&urldecode($f_v);
if($f_n=~/^d/ && $f_v ne '1'){$f_v = 0}
if($f_n eq 'move'){push(@td,$f_v)}else{$in{$f_n}=$f_v}}
@month = ("01", "02", "03", "04", "05", "06", "07","08", "09", "10", "11", "12");
($Seconds, $Minutes, $Hours, $DayInMonth, $Month, $ShortYear, $DayOfWeek,
$DayOfYear, $IsDST) = localtime(time);
$Year = $ShortYear + 1900;$Year=~s/^..//;
$Date = "$DayInMonth.$month[$Month].$Year";
$today = "$DayInMonth.$month[$Month].$Year";
open(ROT,"./system/config.pl");
if ($flock eq "1")
{flock(ROT, 2);}
@rotation = <ROT>;
close(ROT);chomp(@rotation);
open(PWD,"userdat.pl");
if ($flock eq "1")
{flock(PWD, 2);}
@users = <PWD>;
close(PWD);chomp(@users);
foreach (@users){($login,$pwd,$id,$status,$dr,$dc) = split(/\|/,$_);
if($in{'user'} eq $login){$userid=$id;$password{$login}=$pwd;$exist='da';$ST=$status;}}
$u = $in{'user'};
$error="<br><br><p align=center><font size=4>Пользователя $in{'user'} не существует.</font></p>";
if($exist eq 'da'){$error = '<br><p align=center><font size=4>Неправильный пароль.<br></font></p>'}
if($ST eq 'B'){$error = '<br><p align=center><font size=4>Вами нарушены правила работы в системе.<br>Ваш аккаунт заблокирован администратором.<br>
</font>Для разблокировки Вашего аккаунта свяжитесь с администратором.<p>&nbsp;</p><p>&nbsp;</p>'}
if($password{$u} eq $in{'pwd'} && $exist eq 'da' && $ST eq 'A'){
########## Стартовая страница ##########
if($in{'action'} eq 'start'){
#### Выводим лоты пользователей ####
open H,"birjpur.lot";
if ($flock eq "1")
{flock(H, 2);}
while(defined($line=<H>)){
close(H);chomp($line);
($numlot,$id,$date,$kolvo,$cena,$summ) = split(/\|/,$line);}
&html_start;
print qq~
<table border="1" cellpadding="0" cellspacing="0" width="100%" bordercolorlight="#CCCCFF" bgcolor="#F0F0F0">
<tr><td width="100%" align="center"><b><font size="2">Б и р ж а&nbsp;&nbsp;
к р е д и т о в</font></b><b><font size="2">&nbsp;</font></b></td></tr></table>
<font color="#008080">Все цены указаны за 1000 кредитов</font><br><center>
<table border="1" cellpadding="0" cellspacing="0" width="95%" bordercolorlight="#CCCCFF">
<tr><td width="100%" align="center" bgcolor="#C0C0C0" colspan="6"><p align=center>
<font size="2">Лоты пользователей выставленные на покупку</font></p></td></tr><tr><td width="16%" align="center">
&nbsp;№ лота&nbsp;</td><td align="center">&nbsp;Покупатель&nbsp;</td><td align="center">
&nbsp;Кол-во&nbsp;</td><td align="center">&nbsp;Цена&nbsp;</td><td align="center">
&nbsp;На сумму&nbsp;</td><td align="center">&nbsp;Действие&nbsp;</td></tr><tr>
~;
open H,"birjpur.lot";
if ($flock eq "1")
{flock(H, 2);}
while(defined($line=<H>)){
chomp($line);
($numlot,$id,$date,$kolvo,$cena,$summ) = split(/\|/,$line);
open(PWD,"userdat.pl");
if ($flock eq "1")
{flock(PWD, 2);}
@users = <PWD>;
close(PWD);chomp(@users);
foreach (@users){($login,$pwd,$ids,$status,$dr,$dc) = split(/\|/,$_);
if($id eq $ids){$prod=$login;}}
print qq~
<td align="center">&nbsp;$numlot&nbsp;</td><td align="center">&nbsp; $prod&nbsp;
</td><td align="center">&nbsp;$kolvo&nbsp;</td><td align="center">&nbsp;$cena&nbsp;
</td><td align="center">&nbsp;$summ&nbsp;</td><td align="center">&nbsp;
<a HREF="javascript:" onclick="SB1 = window.open('birjpur.cgi?action=zapr&numlot=$numlot&kolvo=$kolvo&summ=$summ&user=$in{'user'}&pwd=$in{'pwd'}','SB1','width=290,height=100');">
<b><font color="#8E7CCD">Продать</a>&nbsp;</a></td></tr></font></center>
~;
}close(H);
print qq~</table>~;
&html_end;
}# Конец стартовой страницы
########## Покупка лота ##########
### Шаг 1 - Запрос подтверждения ###
if($in{'action'} eq 'zapr'){
open(STAT,"./users/$userid/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
@stat = <STAT>;
close(STAT);chomp(@stat);
$komis=($in{'kolvo'}/100)*$rotation[7];
$kolvoskom=$in{'kolvo'}+$komis;
if ($stat[1] < $kolvoskom){
print qq~
<title>Результат</title><body bgcolor="#E8E8E8"><p align="center">
С учетом комиссии биржи $rotation[7] % <br>($komis кредитов) у Вас на основном счету должно быть $kolvoskom кредитов.<br>
<a href="javascript:window.close();"><font size="2" color="#008080">закрыть окно</font></a>
~;
exit;
}
print qq~
<title>Лот № $in{'numlot'}</title><body bgcolor="#E8E8E8"><p align="center">
Вы действительно хотите продать<br> $in{'kolvo'} кредитов на сумму $in{'summ'} WM?</p>
<center><table border="0" cellpadding="0" cellspacing="0"><tr><td align="right">
<form method="POST"><INPUT TYPE=HIDDEN NAME="action" VALUE="yes">
<INPUT TYPE=HIDDEN NAME="numlot" VALUE="$in{'numlot'}">
<INPUT TYPE=HIDDEN NAME="summ" VALUE="$in{'summ'}">
<INPUT TYPE=HIDDEN NAME="kolvo" VALUE="$in{'kolvo'}">
<INPUT TYPE=HIDDEN NAME="pwd" VALUE="$in{pwd}">
<INPUT TYPE=HIDDEN NAME="user" VALUE="$in{user}">
<p align="center"><input type="submit" value="    Да   " name="yes"></p>
</form></td><td width="3"></td><td align="left"><form method="POST">
<INPUT TYPE=HIDDEN NAME="action" VALUE="no">
<INPUT TYPE=HIDDEN NAME="pwd" VALUE="$in{pwd}">
<INPUT TYPE=HIDDEN NAME="user" VALUE="$in{user}">
<p><input type="submit" value="  Нет  " name="no"></p></form></td></tr></table></center>
~;}
### ШАГ 2 - Подтверждение ###
if($in{'action'} eq 'yes'){
open(STAT,"./users/$userid/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
@stat = <STAT>;
close(STAT);chomp(@stat);
$komis=($in{'kolvo'}/100)*$rotation[7];
$kolvoskom=$in{'kolvo'}+$komis;
if ($stat[1] < $kolvoskom){
print qq~
<title>Результат</title><body bgcolor="#E8E8E8"><p align="center">
С учетом комиссии биржи $rotation[7] % <br>($komis кредитов) у Вас на основном счету должно быть $kolvoskom кредитов.<br>
<a href="javascript:window.close();"><font size="2" color="#008080">закрыть окно</font></a>
~;
exit;
}
open(BSALEL,"birjpur.lot");
if ($flock eq "1")
{flock(BSALEL, 2);}
@bsalel = <BSALEL>;
close(BSALEL);chomp(@bsalel);
foreach (@bsalel){($lotid,$usid,$date,$kolvo,$cena,$summ) = split(/\|/,$_);
if ($in{'numlot'} eq $lotid){
$idus=$usid;$klv=$kolvo;$cenalot=$cena;$summlot=$summ;$dtsale=$date;
### Удаляем лог из лога биржи ###
open(BSALEL,">birjpur.lot");
if ($flock eq "1")
{flock(BSALEL, 2);}
foreach (@bsalel){($lotid,$usid,$date,$kolvo,$cena,$summ) = split(/\|/,$_);
if($in{'numlot'} ne $lotid){
print BSALEL "$_\n"}}
close(BSALEL);
### Удаляем лот из лога покупателя ###
open(BSALE,"./users/$idus/birja.pur");
if ($flock eq "1")
{flock(BSALE, 2);}
@bsale = <BSALE>;
close(BSALE);chomp(@bsale);
foreach (@bsale){($lotidu,$date,$kolvo,$cena,$summ) = split(/\|/,$_);
if($in{'numlot'} eq $lotidu){$kolv=$kolvo;}}
open(BSALE,">./users/$idus/birja.pur");
if ($flock eq "1")
{flock(BSALE, 2);}
foreach (@bsale){($lotid,$date,$kolvo,$cena,$summ) = split(/\|/,$_);
if($in{'numlot'} ne $lotid){
print BSALE "$_\n"}}
close(BSALE);
### Запись в статистику покупателя ###
open(STAT,"./users/$idus/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
@stat = <STAT>;
close(STAT);chomp(@stat);
$stat[1]=$stat[1]+$klv;
$stat[23]=$stat[23]+$klv;
open(STAT,">./users/$idus/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
foreach (@stat){
print STAT "$_\n"}
close(STAT);
open(BSALE,">>./users/$idus/birjpur.stat");
if ($flock eq "1")
{flock(BSALE, 2);}
print BSALE "$in{'numlot'}|$dtsale|$klv|$cenalot|$summlot|$Date\n";
close(BSALE);
### Запись в статистику продавца ###
open(STAT,"./users/$userid/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
@stat = <STAT>;
close(STAT);chomp(@stat);
open(WMUSER,"./users/$userid/wm.user");
if ($flock eq "1")
{flock(WMUSER, 2);}
@wmuser = <WMUSER>;
close(WMUSER);chomp(@wmuser);
$stat[1]=$stat[1]-$kolvoskom;
$stat[20]=$stat[20]+$klv;
$wmuser[0]=$wmuser[0]+$summlot;
open(STAT,">./users/$userid/stat.user");
if ($flock eq "1")
{flock(STAT, 2);}
foreach (@stat){
print STAT "$_\n"}
close(STAT);
open(WMUSER,">./users/$userid/wm.user");
if ($flock eq "1")
{flock(WMUSER, 2);}
foreach (@wmuser){
print WMUSER "$_\n"}
close(WMUSER);
open(BPUR,">>./users/$userid/birjsale.stat");
if ($flock eq "1")
{flock(BPUR, 2);}
print BPUR "$in{'numlot'}|$dtsale|$klv|$cenalot|$summlot|$Date\n";
close(BPUR);
print qq~
<title>Результат</title><body bgcolor="#E8E8E8"><p align="center">
Поздравляем!<br>Кредиты успешно проданы.<br>На Ваш счет переведено $summlot WM.<br>
<a href="javascript:window.close();"><font size="2" color="#008080">закрыть окно</font></a>
~;
exit;
}}
if ($in{'numlot'} ne $lotid){
print qq~
<title>Результат</title><body bgcolor="#E8E8E8"><p align="center">
Такого лота не существует!<br>
Возможно кто-то уже продал кредиты по этому лоту или покупатель снял его с торгов.<br>
<a href="javascript:window.close();"><font size="2" color="#008080">закрыть окно</font></a>
~;
}}
### ШАГ 2 - Отказ ###
if($in{'action'} eq 'no'){
print qq~
<SCRIPT language=JavaScript>
window.close();
</SCRIPT>
~;
}
#### Если ошибка ####
}else{
print qq~<center>$error<br></center></b>~;
if($exist ne 'da'){print "<center>$exist</center></b>"}
}


