]> ruin.nu Git - ndwebbie.git/blobdiff - NDWeb/Pages/Raids.pm
Parse factory usage
[ndwebbie.git] / NDWeb / Pages / Raids.pm
index 766d5a390e589e69202caded65c6527de2688ab1..2382a8fed360ac0503ca26f7da1123f6433afc2f 100644 (file)
@@ -119,13 +119,18 @@ sub render_body {
                my $target = param('target');
                my $wave = param('wave');
 
-               my $findtarget = $DBH->prepare("SELECT rt.id FROM raid_targets rt NATURAL JOIN raid_access ra NATURAL JOIN groupmembers where uid = ? AND id = ?");
+               $DBH->begin_work;
+               my $findtarget = $DBH->prepare(q{SELECT rt.id FROM raid_targets rt 
+                       NATURAL JOIN raid_access ra NATURAL JOIN groupmembers 
+                       WHERE uid = ? AND id = ?
+                       FOR UPDATE
+               });
                my $result = $DBH->selectrow_array($findtarget,undef,$ND::UID,$target);
                if ($result != $target){
+                       $DBH->rollback;
                        return $self->noAccess; 
                }
 
-               $DBH->begin_work;
                if (param('cmd') eq 'Claim'){
                        my $claims = $DBH->prepare(qq{SELECT username FROM raid_claims NATURAL JOIN users WHERE target = ? AND wave = ?});
                        $claims->execute($target,$wave);
@@ -222,9 +227,9 @@ sub render_body {
                        $target{Id} = $target->{id};
                        $target{Race} = $target->{race};
                        my $num = pow(10,length($target->{score})-2);
-                       $target{Score} = ceil($target->{score}/$num)*$num;
+                       $target{Score} = "Hidden"; #ceil($target->{score}/$num)*$num;
                        $num = pow(10,length($target->{value})-2);
-                       $target{Value} = ceil($target->{value}/$num)*$num;
+                       $target{Value} = "Hidden"; #ceil($target->{value}/$num)*$num;
                        $num = pow(10,length($target->{size})-2);
                        $target{Size} = floor($target->{size}/$num)*$num;
                        $num = pow(10,length($target->{fleetvalue})-2);
@@ -236,30 +241,29 @@ sub render_body {
                        $target{comment} = parseMarkup($target->{comment}) if ($target->{comment});
 
                        my $unitscans = $DBH->prepare(q{ 
-                               SELECT i.id,i.name, i.tick, i.amount 
+                               SELECT DISTINCT ON (name) i.id,i.name, i.tick, i.amount 
                                FROM fleets i
                                WHERE  i.uid = -1
                                        AND i.sender = ?
                                        AND i.mission = 'Full fleet'
                                GROUP BY i.id,i.tick,i.name,i.amount
-                               ORDER BY i.tick,name
+                               ORDER BY name,i.tick DESC
                        });
                        $unitscans->execute($target->{planet}) or warn $DBH->errstr;
-                       my $ships = $DBH->prepare(q{SELECT ship,amount FROM fleet_ships WHERE id = ?});
+                       my $ships = $DBH->prepare(q{SELECT ship,amount FROM fleet_ships
+                               WHERE id = ? ORDER BY num
+                       });
                        my @missions;
-                       my $i = 0;
                        while (my $mission = $unitscans->fetchrow_hashref){
-                               $mission->{ODD} = $i++ % 2;
                                my @ships;
                                $ships->execute($mission->{id});
-                               my $j = 0;
                                while (my $ship = $ships->fetchrow_hashref){
-                                       $ship->{ODD} = $j++ % 2;
                                        push @ships,$ship;
                                }
                                push @ships, {ship => 'No', amount => 'ships'} if @ships == 0;
                                $mission->{ships} = \@ships;
                                $mission->{amount} =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; #Add comma for ever 3 digits, i.e. 1000 => 1,000
+                               delete $mission->{id};
                                push @missions,$mission;
                        }
                        $target{missions} = \@missions;
@@ -283,7 +287,7 @@ sub render_body {
                                $size -= $roids;
                                my $xp = 0;
                                if ($planet){
-                                       $xp = pa_xp($roids,$planet->{score},$planet->{value},$target{Score},$target{Value});
+                                       $xp = pa_xp($roids,$planet->{score},$planet->{value},$target->{score},$target->{value});
                                }
                                push @roids,{Wave => $i, Roids => $roids, XP => $xp};
                                if ($self->{AJAX}){