-
Notifications
You must be signed in to change notification settings - Fork 2
/
add_pin.php
133 lines (109 loc) · 4.6 KB
/
add_pin.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json; charset=utf-8');
require_once 'authorisation.php';
function get_region_centre($comPk)
{
$sql = "SELECT RW.* FROM tblCompetition C, tblRegion R, tblRegionWaypoint RW WHERE C.comPk=$comPk and C.regPk=R.regPk and R.regCentre=RW.rwpPk";
$result = mysql_query($sql, $link) or json_die('Region centre query failed: ' . mysql_error());
return mysql_fetch_array($result, MYSQL_ASSOC);
}
function submit_pin($link)
{
$hgfa = reqsval('hgfanum');
$name = strtolower(reqsval('lastname'));
$lat = reqsval("lat");
$lon = reqsval("lon");
$query = "select pilPk, pilHGFA from tblPilot where pilLastName='$name'";
$result = mysql_query($query, $link) or json_die('Pilot query failed: ' . mysql_error());
$member = 0;
while ($row=mysql_fetch_array($result, MYSQL_ASSOC))
{
if ($hgfa == $row['pilHGFA'])
{
$pilPk = $row['pilPk'];
$member = 1;
}
}
# if ($restrict == 'registered')
# {
# $query = "select * from tblRegistration where comPk=$comid and pilPk=$pilPk";
# $result = mysql_query($query) or die('Registration query failed: ' . mysql_error());
# if (mysql_num_rows($result) == 0)
## {
# $member = 0;
# }
# }
##
# $gmtimenow = time() - (int)substr(date('O'),0,3)*60*60;
# if ($gmtimenow > ($until + 7*24*3600))
# {
# echo "<b>The submission period for tracks has closed ($until).</b><br>\n";
# echo "Contact $contact if you're having an access problem.<br>\n";
# echo "</div></body></html>\n";
# exit(0);
# }
if ($member == 0)
{
json_die("Only registered pilots may submit tracks\n");
}
// add two point track (start+end).
$task = reqsval('tasPk');
$query = "select tasDate from tblTask where tasPk=$task";
$result = mysql_query($query, $link) or json_die('Task date failed: ' . mysql_error());
if (mysql_num_rows($result) == 0)
{
json_die("Unable to submit pin to unknown task<br>\n");
}
$tasDate=mysql_result($result,0,0);
$glider = reqsval('glider');
$dhv = reqsval('dhv');
$query = "insert into tblTrack (pilPk,traGlider,traDHV,traDate,traStart,traLength) values ($pilPk,'$glider','$dhv','$tasDate','$tasDate',0)";
$result = mysql_query($query, $link) or json_die('Track Insert result failed: ' . mysql_error());
$maxPk = mysql_insert_id();
$safety = reqsval('pilotsafety');
$quality = reqival('pilotquality');
if ($safety == "none" && $quality > 0)
{
$query = "update tblTrack set traConditions='$quality' where traPk=$maxPk";
}
elseif ($safety != "none" && $quality > 0)
{
$query = "update tblTrack set traSafety='$safety', traConditions='$quality' where traPk=$maxPk";
}
$result = mysql_query($query, $link) or json_die('Update tblTrack failed: ' . mysql_error());
$t1 = 43200;
$t2 = 46800;
$comPk = reqival("comPk");
$centre = get_region_centre($comPk);
$xlat = $centre['rwpLatDecimal'];
$xlon = $centre['rwpLongDecimal'];
$query = "insert into tblTrackLog (traPk, trlLatDecimal, trlLongDecimal, trlTime) VALUES ($maxPk,$xlat,$xlon,$t1),($maxPk,$lat,$lon,$t2)";
$result = mysql_query($query, $link) or json_die('Tracklog insert failed: ' . mysql_error());
$query = "insert into tblWaypoint (traPk, wptLatDecimal, wptLongDecimal, wptTime, wptPosition) VALUES ($maxPk,$xlat,$xlon,$t1,1),($maxPk,$lat,$lon,$t2,2)";
$result = mysql_query($query, $link) or json_die('Waypoint insert failed: ' . mysql_error());
$query = "insert into tblComTaskTrack (comPk,tasPk,traPk) values ($comPk,$task,$maxPk)";
$result = mysql_query($query, $link) or json_die('ComTaskTrack failed: ' . mysql_error());
$out = '';
$retv = 0;
exec(BINDIR . "optimise_flight.pl $maxPk $comPk $task 0", $out, $retv);
#$query = "select * from tblTrack where traPk=$maxPk";
#$result = mysql_query($query) or json_die('Select length failed: ' . mysql_error());
#$row=mysql_fetch_array($result);
#$flown = $row['traLength'];
#$query = "insert into tblTaskResult (tasPk,traPk,tarDistance,tarPenalty,tarResultType) values ($tasPk,$maxPk,$flown,0,'lo')";
#$result = mysql_query($query) or die('Result insert failed: ' . mysql_error());
$res = [];
$res['result'] = 'ok';
$res['comPk'] = $comPk;
$res['traPk'] = $maxPk;
if ($task > 0)
{
$res['tasPk'] = $task;
}
print json_encode($res);
}
$link = db_connect();
submit_pin($link);
?>