Merge pull request #1154 for user interface improvements of left nav and main title
[openemr.git] / interface / drugs / drug_inventory.php
blobe9c64865b283ed76a301ef8f40a53c13b0d7a122
1 <?php
2 // Copyright (C) 2006-2016 Rod Roark <rod@sunsetsystems.com>
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 require_once("../globals.php");
10 require_once("$srcdir/acl.inc");
11 require_once("drugs.inc.php");
12 require_once("$srcdir/options.inc.php");
14 // Check authorization.
15 $thisauth = acl_check('admin', 'drugs');
16 if (!$thisauth) {
17 die(xlt('Not authorized'));
20 // For each sorting option, specify the ORDER BY argument.
22 $ORDERHASH = array(
23 'prod' => 'd.name, d.drug_id, di.expiration, di.lot_number',
24 'ndc' => 'd.ndc_number, d.name, d.drug_id, di.expiration, di.lot_number',
25 'form' => 'lof.title, d.name, d.drug_id, di.expiration, di.lot_number',
26 'lot' => 'di.lot_number, d.name, d.drug_id, di.expiration',
27 'wh' => 'lo.title, d.name, d.drug_id, di.expiration, di.lot_number',
28 'qoh' => 'di.on_hand, d.name, d.drug_id, di.expiration, di.lot_number',
29 'exp' => 'di.expiration, d.name, d.drug_id, di.lot_number',
32 // Get the order hash array value and key for this request.
33 $form_orderby = $ORDERHASH[$_REQUEST['form_orderby']] ? $_REQUEST['form_orderby'] : 'prod';
34 $orderby = $ORDERHASH[$form_orderby];
36 // get drugs
37 $res = sqlStatement("SELECT d.*, " .
38 "di.inventory_id, di.lot_number, di.expiration, di.manufacturer, " .
39 "di.on_hand, lo.title " .
40 "FROM drugs AS d " .
41 "LEFT JOIN drug_inventory AS di ON di.drug_id = d.drug_id " .
42 "AND di.destroy_date IS NULL " .
43 "LEFT JOIN list_options AS lo ON lo.list_id = 'warehouse' AND " .
44 "lo.option_id = di.warehouse_id AND lo.activity = 1 " .
45 "LEFT JOIN list_options AS lof ON lof.list_id = 'drug_form' AND " .
46 "lof.option_id = d.form AND lof.activity = 1 " .
47 "ORDER BY $orderby");
49 <html>
51 <head>
52 <?php html_header_show();?>
54 <link rel="stylesheet" href='<?php echo $css_header ?>' type='text/css'>
55 <title><?php echo xlt('Drug Inventory'); ?></title>
57 <style>
58 tr.head { font-size:10pt; background-color:#cccccc; text-align:center; }
59 tr.detail { font-size:10pt; }
60 a, a:visited, a:hover { color:#0000cc; }
62 table.mymaintable, table.mymaintable td {
63 border: 1px solid #aaaaaa;
64 border-collapse: collapse;
66 table.mymaintable td {
67 padding: 1pt 4pt 1pt 4pt;
69 </style>
71 <script type="text/javascript" src="../../library/dialog.js?v=<?php echo $v_js_includes; ?>"></script>
72 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-9-1/index.js"></script>
73 <script type="text/javascript" src="../../library/js/report_helper.js?v=<?php echo $v_js_includes; ?>"></script>
75 <script language="JavaScript">
77 // callback from add_edit_drug.php or add_edit_drug_inventory.php:
78 function refreshme() {
79 location.reload();
82 // Process click on drug title.
83 function dodclick(id) {
84 dlgopen('add_edit_drug.php?drug=' + id, '_blank', 725, 475);
87 // Process click on drug QOO or lot.
88 function doiclick(id, lot) {
89 dlgopen('add_edit_lot.php?drug=' + id + '&lot=' + lot, '_blank', 600, 475);
92 // Process click on a column header for sorting.
93 function dosort(orderby) {
94 var f = document.forms[0];
95 f.form_orderby.value = orderby;
96 top.restoreSession();
97 f.submit();
98 return false;
101 $(document).ready(function() {
102 oeFixedHeaderSetup(document.getElementById('mymaintable'));
105 </script>
107 </head>
109 <body class="body_top">
110 <form method='post' action='drug_inventory.php'>
112 <table width='100%' id='mymaintable' class='mymaintable'>
113 <thead>
114 <tr class='head'>
115 <td title='<?php echo xla('Click to edit'); ?>'>
116 <a href="#" onclick="return dosort('prod')"
117 <?php if ($form_orderby == "prod") {
118 echo " style=\"color:#00cc00\"";
119 } ?>>
120 <?php echo xlt('Name'); ?> </a>
121 </td>
122 <td>
123 <?php echo xlt('Act'); ?>
124 </td>
125 <td>
126 <a href="#" onclick="return dosort('ndc')"
127 <?php if ($form_orderby == "ndc") {
128 echo " style=\"color:#00cc00\"";
129 } ?>>
130 <?php echo xlt('NDC'); ?> </a>
131 </td>
132 <td>
133 <a href="#" onclick="return dosort('form')"
134 <?php if ($form_orderby == "form") {
135 echo " style=\"color:#00cc00\"";
136 } ?>>
137 <?php echo xlt('Form'); ?> </a>
138 </td>
139 <td>
140 <?php echo xlt('Size'); ?>
141 </td>
142 <td>
143 <?php echo xlt('Unit'); ?>
144 </td>
145 <td title='<?php echo xla('Click to receive (add) new lot'); ?>'>
146 <?php echo xlt('New'); ?>
147 </td>
148 <td title='<?php echo xla('Click to edit'); ?>'>
149 <a href="#" onclick="return dosort('lot')"
150 <?php if ($form_orderby == "lot") {
151 echo " style=\"color:#00cc00\"";
152 } ?>>
153 <?php echo xlt('Lot'); ?> </a>
154 </td>
155 <td>
156 <a href="#" onclick="return dosort('wh')"
157 <?php if ($form_orderby == "wh") {
158 echo " style=\"color:#00cc00\"";
159 } ?>>
160 <?php echo xlt('Warehouse'); ?> </a>
161 </td>
162 <td>
163 <a href="#" onclick="return dosort('qoh')"
164 <?php if ($form_orderby == "qoh") {
165 echo " style=\"color:#00cc00\"";
166 } ?>>
167 <?php echo xlt('QOH'); ?> </a>
168 </td>
169 <td>
170 <a href="#" onclick="return dosort('exp')"
171 <?php if ($form_orderby == "exp") {
172 echo " style=\"color:#00cc00\"";
173 } ?>>
174 <?php echo xlt('Expires'); ?> </a>
175 </td>
176 </tr>
177 </thead>
178 <tbody>
179 <?php
180 $lastid = "";
181 $encount = 0;
182 while ($row = sqlFetchArray($res)) {
183 if ($lastid != $row['drug_id']) {
184 ++$encount;
185 $bgcolor = "#" . (($encount & 1) ? "ddddff" : "ffdddd");
186 $lastid = $row['drug_id'];
187 echo " <tr class='detail' bgcolor='$bgcolor'>\n";
188 echo " <td onclick='dodclick(".attr($lastid).")'>" .
189 "<a href='' onclick='return false'>" .
190 text($row['name']) . "</a></td>\n";
191 echo " <td>" . ($row['active'] ? xlt('Yes') : xlt('No')) . "</td>\n";
192 echo " <td>" . text($row['ndc_number']) . "</td>\n";
193 echo " <td>" .
194 generate_display_field(array('data_type'=>'1','list_id'=>'drug_form'), $row['form']) .
195 "</td>\n";
196 echo " <td>" . text($row['size']) . "</td>\n";
197 echo " <td>" .
198 generate_display_field(array('data_type'=>'1','list_id'=>'drug_units'), $row['unit']) .
199 "</td>\n";
200 echo " <td onclick='doiclick(".attr($lastid).",0)' title='" . xla('Add new lot and transaction') . "'>" .
201 "<a href='' onclick='return false'>" . xlt('New') . "</a></td>\n";
202 } else {
203 echo " <tr class='detail' bgcolor='$bgcolor'>\n";
204 echo " <td colspan='7'>&nbsp;</td>\n";
207 if (!empty($row['inventory_id'])) {
208 echo " <td onclick='doiclick(" . attr($lastid) . "," . attr($row['inventory_id']) . ")'>" .
209 "<a href='' onclick='return false'>" . text($row['lot_number']) . "</a></td>\n";
210 echo " <td>" . text($row['title']) . "</td>\n";
211 echo " <td>" . text($row['on_hand']) . "</td>\n";
212 echo " <td>" . text(oeFormatShortDate($row['expiration'])) . "</td>\n";
213 } else {
214 echo " <td colspan='4'>&nbsp;</td>\n";
217 echo " </tr>\n";
218 } // end while
220 </tbody>
221 </table>
223 <center><p>
224 <input type='button' value='<?php echo xla('Add Drug'); ?>' onclick='dodclick(0)' />
225 </p></center>
227 <input type="hidden" name="form_orderby" value="<?php echo attr($form_orderby) ?>" />
229 </form>
230 </body>
231 </html>