more tables for categories
[contractdashboard.git] / displaySON.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
<?php
include_once("./lib/common.inc.php");
if ($_REQUEST['SONID']) {
    $query = 'SELECT title FROM standingoffers WHERE "SONID" = :SONID';
    $query = $conn->prepare($query);
    $query->bindParam(":SONID", $_REQUEST['SONID']);
    $query->execute();
    databaseError($conn->errorInfo());
    $title = reset($query->fetchAll())['title'];
    include_header($title);
    echo "<center><h1>" . $_REQUEST['SONID'] . " - " . $title . "</h1></center>";
 
    $query = 'SELECT category, min("categoryUNSPSC")  AS "categoryUNSPSC", count(*) AS count, sum(value) AS value 
FROM contractnotice 
WHERE "SONID" = :SONID 
GROUP BY category';
    $query = $conn->prepare($query);
    $query->bindParam(":SONID", $_REQUEST['SONID']);
    $query->execute();
    databaseError($conn->errorInfo());
    echo "<h3>Categories</h3><table>  <thead>
    <tr>
      <th>Category</th>
      <th>Contracts Count</th>
      <th>Total Contract Value</th>
    </tr>
  </thead>";
    foreach ($query->fetchAll() as $row) {
        setlocale(LC_MONETARY, 'en_US');
        $value = number_format(doubleval($row['value']), 2);
        $category = urlencode($row['category']);
        echo("<tr>
    <td><B><a href='displayCategory.php?category=$category'>{$row['category']}</a></b></td>
    <td>{$row['count']}</td>
    <td>\$$value</td>
    </tr>");
    }
    echo "</table><br/>";
 
    $query = 'SELECT "supplierABN", text_mode("supplierName") AS "supplierName", count(*), sum(value) AS value FROM contractnotice
 WHERE ' . $yearQ . ' "childCN" IS NULL AND "SONID" = :SONID GROUP BY "supplierABN"
 UNION SELECT abn AS "supplierABN",name AS "supplierName",0 AS sum,0 AS value FROM standingoffer_suppliers 
 WHERE "SONID" = :SONID AND abn NOT IN (SELECT DISTINCT "supplierABN" AS abn FROM contractnotice WHERE "SONID" = :SONID)';
    $query = $conn->prepare($query);
    $query->bindParam(":SONID", $_REQUEST['SONID']);
    $query->execute();
    databaseError($conn->errorInfo());
    echo '<br><a href="https://www.tenders.gov.au/?event=public.advancedsearch.CNSONRedirect&type=sonSearchEvent&SONID=' . $_REQUEST['SONID'] . '"> View original record @ tenders.gov.au</a><br>';
 
    echo "<h3>Suppliers</h3><table>  <thead>
    <tr>
      <th>Supplier</th>
      <th>Contracts Count</th>
      <th>Total Contract Value</th>
    </tr>
  </thead>";
    foreach ($query->fetchAll() as $row) {
        setlocale(LC_MONETARY, 'en_US');
        $value = number_format(doubleval($row['value']), 2);
        $supplier = stripslashes($row['supplierABN'] . '-' . $row['supplierName']);
        echo("<tr>
    <td><b><a href=\"displaySupplier.php?supplier={$supplier}\">{$row['supplierName']}</a></b></td>
    <td>{$row['count']}</td>
    <td>\$$value</td>
    </tr>");
    }
    echo "</table><br/><h3>Contracts</h3><table>  <thead>
    <tr>
      <th>Contract Notice Number</th>
      <th>Contract Description</th>
      <th>Total Contract Value</th>
      <th>Agency</th>
      <th>Contract Start Date</th>
      <th>Supplier</th>
    </tr>
  </thead>";
    $query = 'SELECT "CNID", title, description, value, "agencyName", contractnotice."SONID", "contractStart", "supplierName"
    FROM contractnotice INNER JOIN standingoffers ON contractnotice."SONID" = standingoffers."SONID"
    WHERE ' . $yearQ . ' "childCN" IS NULL 
    AND contractnotice."SONID" = :SONID
    ORDER BY VALUE DESC';
    $query = $conn->prepare($query);
    $query->bindParam(":SONID", $_REQUEST['SONID']);
    $query->execute();
    databaseError($conn->errorInfo());
    foreach ($query->fetchAll() as $row) {
        setlocale(LC_MONETARY, 'en_US');
        $value = number_format(doubleval($row['value']), 2);
        echo("<tr>
    <td><a href=\"displayContract.php?CNID={$row['CNID']}\">{$row['CNID']}</a></td>
    <td><b>{$row['description']}</b></a></td>
    <td>\$$value</td><td>{$row['agencyName']}</td>
    <td>{$row['contractStart']}</td>
    <td>{$row['supplierName']}</td>
    </tr>");
    }
    echo "</table>";
} else {
    /*
     split by main categories
    */
    include_header("Standing Offers");
    $query = 'SELECT sum(value), count(*), contractnotice."SONID", min(title) AS title
FROM contractnotice INNER JOIN standingoffers ON contractnotice."SONID" = standingoffers."SONID"
WHERE ' . $yearQ . ' "childCN" IS NULL AND contractnotice."SONID" != \'\'
GROUP BY contractnotice."SONID" ORDER BY sum(VALUE) DESC ';
    $query = $conn->prepare($query);
    $query->execute();
    databaseError($conn->errorInfo());
    echo "<table>  <thead>
    <tr>
      <th>SONID</th>
      <th>Total Contracts Value</th>
      <th>Number of Contracts</th>
    </tr>
  </thead>";
    foreach ($query->fetchAll() as $row) {
        setlocale(LC_MONETARY, 'en_US');
        $value = number_format(doubleval($row['sum']), 2);
        echo("<tr><td><A href=\"displaySON.php?SONID={$row['SONID']}\"><b>{$row['title']}</b></a></td><td>\$$value</td><td>{$row['count']}</td></tr>");
    }
    echo "</table>";
}
include_footer();