2 // Copyright (C) 2009-2010 Rod Roark <rod@sunsetsystems.com>
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/patient.inc");
11 require_once("$srcdir/acl.inc");
13 function formatcyp($amount)
16 return sprintf("%.2f", $amount);
22 function display_desc($desc)
24 if (preg_match('/^\S*?:(.+)$/', $desc, $matches)) {
31 function thisLineItem($patient_id, $encounter_id, $description, $transdate, $qty, $cypfactor, $irnumber = '')
33 global $product, $productcyp, $producttotal, $productqty, $grandtotal, $grandqty;
35 $invnumber = empty($irnumber) ?
"$patient_id.$encounter_id" : $irnumber;
36 $rowcyp = sprintf('%01.2f', $cypfactor);
37 $rowresult = sprintf('%01.2f', $rowcyp * $qty);
39 $rowproduct = $description;
41 $rowproduct = 'Unknown';
44 if ($product != $rowproduct) {
46 // Print product total.
47 if ($_POST['form_csvexport']) {
48 if (! $_POST['form_details']) {
49 echo '"' . display_desc($product) . '",';
50 echo '"' . $productqty . '",';
51 echo '"' . formatcyp($productcyp) . '",';
52 echo '"' . formatcyp($producttotal) . '"' . "\n";
57 <tr bgcolor
="#ddddff">
58 <td
class="detail" colspan
="<?php echo $_POST['form_details'] ? 3 : 1; ?>">
59 <?php
if ($_POST['form_details']) {
60 echo xl('Total for ');
61 } echo display_desc($product) ?
>
63 <td
class="dehead" align
="right">
64 <?php
echo $productqty; ?
>
66 <td
class="dehead" align
="right">
67 <?php
echo formatcyp($productcyp); ?
>
69 <td
class="dehead" align
="right">
70 <?php
echo formatcyp($producttotal); ?
>
74 } // End not csv export
79 $product = $rowproduct;
80 $productleft = $product;
81 $productcyp = $rowcyp;
84 if ($_POST['form_details']) {
85 if ($_POST['form_csvexport']) {
86 echo '"' . display_desc($product) . '",';
87 echo '"' . oeFormatShortDate(display_desc($transdate)) . '",';
88 echo '"' . display_desc($invnumber) . '",';
89 echo '"' . display_desc($qty) . '",';
90 echo '"' . formatcyp($rowcyp) . '",';
91 echo '"' . formatcyp($rowresult) . '"' . "\n";
97 <?php
echo display_desc($productleft);
98 $productleft = " "; ?
>
101 <?php
echo oeFormatShortDate($transdate); ?
>
104 <?php
echo $invnumber; ?
>
106 <td
class="dehead" align
="right">
109 <td
class="dehead" align
="right">
110 <?php
echo formatcyp($rowcyp); ?
>
112 <td
class="dehead" align
="right">
113 <?php
echo formatcyp($rowresult); ?
>
117 } // End not csv export
119 $producttotal +
= $rowresult;
120 $grandtotal +
= $rowresult;
125 if (! acl_check('acct', 'rep')) {
126 die(xl("Unauthorized access."));
129 $form_from_date = fixDate($_POST['form_from_date'], date('Y-m-d'));
130 $form_to_date = fixDate($_POST['form_to_date'], date('Y-m-d'));
131 $form_facility = $_POST['form_facility'];
133 if ($_POST['form_csvexport']) {
134 header("Pragma: public");
135 header("Expires: 0");
136 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
137 header("Content-Type: application/force-download");
138 header("Content-Disposition: attachment; filename=ippf_cyp_report.csv");
139 header("Content-Description: File Transfer");
141 if ($_POST['form_details']) {
147 echo '"Result"' . "\n";
152 echo '"Result"' . "\n";
154 } else { // not export
158 <?php
html_header_show();?
>
159 <title
><?php
xl('CYP Report', 'e') ?
></title
>
161 <script type
="text/javascript" src
="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-9-1/index.js"></script
>
162 <script language
="JavaScript">
163 $
(document
).ready(function() {
164 var win
= top
.printLogSetup ? top
: opener
.top
;
165 win
.printLogSetup(document
.getElementById('printbutton'));
171 <body leftmargin
='0' topmargin
='0' marginwidth
='0' marginheight
='0'>
174 <h2
><?php
xl('CYP Report', 'e')?
></h2
>
176 <form method
='post' action
='ippf_cyp_report.php'>
178 <table border
='0' cellpadding
='3'>
183 // Build a drop-down list of facilities.
185 $query = "SELECT id, name FROM facility ORDER BY name";
186 $fres = sqlStatement($query);
187 echo " <select name='form_facility'>\n";
188 echo " <option value=''>-- All Facilities --\n";
189 while ($frow = sqlFetchArray($fres)) {
190 $facid = $frow['id'];
191 echo " <option value='$facid'";
192 if ($facid == $form_facility) {
196 echo ">" . $frow['name'] . "\n";
201  
;<?
xl('From:','e')?
>
202 <input type
='text' name
='form_from_date' id
="form_from_date" size
='10' value
='<?php echo $form_from_date ?>'
203 onkeyup
='datekeyup(this,mypcc)' onblur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'>
204 <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22'
205 id
='img_from_date' border
='0' alt
='[?]' style
='cursor:pointer'
206 title
='<?php xl('Click here to choose a date
', 'e
'); ?>'>
208 <input type
='text' name
='form_to_date' id
="form_to_date" size
='10' value
='<?php echo $form_to_date ?>'
209 onkeyup
='datekeyup(this,mypcc)' onblur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'>
210 <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22'
211 id
='img_to_date' border
='0' alt
='[?]' style
='cursor:pointer'
212 title
='<?php xl('Click here to choose a date
', 'e
'); ?>'>
214 <input type
='checkbox' name
='form_details' value
='1'<?php
if ($_POST['form_details']) {
216 } ?
>><?php
xl('Details', 'e') ?
>
218 <input type
='submit' name
='form_refresh' value
="<?php xl('Refresh', 'e') ?>">
220 <input type
='submit' name
='form_csvexport' value
="<?php xl('Export to CSV', 'e') ?>">
222 <input type
='button' value
='<?php echo xla('Print'); ?>' id
='printbutton' />
233 <table border
='0' cellpadding
='1' cellspacing
='2' width
='98%'>
235 <tr bgcolor
="#dddddd">
237 <?php
xl('Item', 'e') ?
>
239 <?php
if ($_POST['form_details']) { ?
>
241 <?php
xl('Date', 'e') ?
>
244 <?php
xl('Invoice', 'e') ?
>
247 <td
class="dehead" align
="right">
248 <?php
xl('Qty', 'e') ?
>
250 <td
class="dehead" align
="right">
251 <?php
xl('CYP', 'e') ?
>
253 <td
class="dehead" align
="right">
254 <?php
xl('Result', 'e') ?
>
260 // If generating a report.
262 if ($_POST['form_refresh'] ||
$_POST['form_csvexport']) {
263 $from_date = $form_from_date;
264 $to_date = $form_to_date;
269 $producttotal = 0; // total of results for product
270 $grandtotal = 0; // grand total of results
274 $query = "SELECT b.pid, b.encounter, b.code_type, b.code, b.units, " .
275 "b.code_text, c.cyp_factor, fe.date, fe.facility_id, fe.invoice_refno " .
276 "FROM billing AS b " .
277 "JOIN codes AS c ON c.code_type = '12' AND c.code = b.code AND c.modifier = b.modifier AND c.cyp_factor > 0 " .
278 "JOIN form_encounter AS fe ON fe.pid = b.pid AND fe.encounter = b.encounter " .
279 "WHERE b.code_type = 'MA' AND b.activity = 1 AND " .
280 "fe.date >= '$from_date 00:00:00' AND fe.date <= '$to_date 23:59:59'";
281 // If a facility was specified.
282 if ($form_facility) {
283 $query .= " AND fe.facility_id = '$form_facility'";
286 $query .= " ORDER BY b.code, fe.date, fe.id";
288 $res = sqlStatement($query);
289 while ($row = sqlFetchArray($res)) {
293 $row['code'] . ' ' . $row['code_text'],
294 substr($row['date'], 0, 10),
297 $row['invoice_refno']
302 $query = "SELECT s.sale_date, s.quantity, s.pid, s.encounter, " .
303 "d.name, d.cyp_factor, fe.date, fe.facility_id, fe.invoice_refno " .
304 "FROM drug_sales AS s " .
305 "JOIN drugs AS d ON d.drug_id = s.drug_id AND d.cyp_factor > 0 " .
306 "JOIN form_encounter AS fe ON " .
307 "fe.pid = s.pid AND fe.encounter = s.encounter AND " .
308 "fe.date >= '$from_date 00:00:00' AND fe.date <= '$to_date 23:59:59' " .
310 // If a facility was specified.
311 if ($form_facility) {
312 $query .= " AND fe.facility_id = '$form_facility'";
315 $query .= " ORDER BY d.name, fe.date, fe.id";
317 $res = sqlStatement($query);
318 while ($row = sqlFetchArray($res)) {
323 substr($row['date'], 0, 10),
326 $row['invoice_refno']
330 if ($_POST['form_csvexport']) {
331 if (! $_POST['form_details']) {
332 echo '"' . display_desc($product) . '",';
333 echo '"' . $productqty . '",';
334 echo '"' . formatcyp($productcyp) . '",';
335 echo '"' . formatcyp($producttotal) . '"' . "\n";
340 <tr bgcolor
="#ddddff">
341 <td
class="detail" colspan
="<?php echo $_POST['form_details'] ? 3 : 1; ?>">
342 <?php
if ($_POST['form_details']) {
343 echo xl('Total for ');
344 } echo display_desc($product) ?
>
346 <td
class="dehead" align
="right">
347 <?php
echo $productqty; ?
>
349 <td
class="dehead" align
="right">
350 <?php
echo formatcyp($productcyp); ?
>
352 <td
class="dehead" align
="right">
353 <?php
echo formatcyp($producttotal); ?
>
357 <tr bgcolor
="#ffdddd">
358 <td
class="detail" colspan
="<?php echo $_POST['form_details'] ? 3 : 1; ?>">
359 <?php
xl('Grand Total', 'e'); ?
>
361 <td
class="dehead" align
="right">
362 <?php
echo $grandqty; ?
>
364 <td
class="dehead" align
="right">
367 <td
class="dehead" align
="right">
368 <?php
echo formatcyp($grandtotal); ?
>
373 } // End not csv export
374 } // end report generation
376 if (! $_POST['form_csvexport']) {
384 <!-- stuff
for the popup calendar
-->
385 <style type
="text/css">@import
url(../../library
/dynarch_calendar
.css
);</style
>
386 <script type
="text/javascript" src
="../../library/dynarch_calendar.js"></script
>
387 <?php
include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?
>
388 <script type
="text/javascript" src
="../../library/dynarch_calendar_setup.js"></script
>
389 <script language
="Javascript">
390 Calendar
.setup({inputField
:"form_from_date", ifFormat
:"%Y-%m-%d", button
:"img_from_date"});
391 Calendar
.setup({inputField
:"form_to_date", ifFormat
:"%Y-%m-%d", button
:"img_to_date"});
396 } // End not csv export