More complete support for activity flag in list_options table. (#274)
[openemr.git] / interface / patient_file / front_payment.php
blob40025b8a9446aed3148c265e09b3d5e05fd13be6
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 $fake_register_globals=false;
10 $sanitize_all_escapes=true;
12 require_once("../globals.php");
13 require_once("$srcdir/acl.inc");
14 require_once("$srcdir/patient.inc");
15 require_once("$srcdir/billing.inc");
16 require_once("$srcdir/payment.inc.php");
17 require_once("$srcdir/forms.inc");
18 require_once("$srcdir/sl_eob.inc.php");
19 require_once("$srcdir/invoice_summary.inc.php");
20 require_once("../../custom/code_types.inc.php");
21 require_once("$srcdir/formatting.inc.php");
22 require_once("$srcdir/options.inc.php");
23 require_once("$srcdir/encounter_events.inc.php");
24 $pid = $_REQUEST['hidden_patient_code'] > 0 ? $_REQUEST['hidden_patient_code'] : $pid;
27 <html>
28 <head>
29 <?php html_header_show();?>
30 <script type="text/javascript" src="<?php echo $webroot ?>/interface/main/tabs/js/include_opener.js"></script>
31 <link rel='stylesheet' href='<?php echo $css_header ?>' type='text/css'>
32 <?php
33 // Format dollars for display.
35 function bucks($amount) {
36 if ($amount) {
37 $amount = oeFormatMoney($amount);
38 return $amount;
40 return '';
43 function rawbucks($amount) {
44 if ($amount) {
45 $amount = sprintf("%.2f", $amount);
46 return $amount;
48 return '';
51 // Display a row of data for an encounter.
53 $var_index=0;
54 function echoLine($iname, $date, $charges, $ptpaid, $inspaid, $duept,$encounter=0,$copay=0,$patcopay=0) {
55 global $var_index;
56 $var_index++;
57 $balance = bucks($charges - $ptpaid - $inspaid);
58 $balance = (round($duept,2) != 0) ? 0 : $balance;//if balance is due from patient, then insurance balance is displayed as zero
59 $encounter = $encounter ? $encounter : '';
60 echo " <tr id='tr_".attr($var_index)."' >\n";
61 echo " <td class='detail'>" . text(oeFormatShortDate($date)) . "</td>\n";
62 echo " <td class='detail' id='".attr($date)."' align='center'>" . htmlspecialchars($encounter, ENT_QUOTES) . "</td>\n";
63 echo " <td class='detail' align='center' id='td_charges_$var_index' >" . htmlspecialchars(bucks($charges), ENT_QUOTES) . "</td>\n";
64 echo " <td class='detail' align='center' id='td_inspaid_$var_index' >" . htmlspecialchars(bucks($inspaid*-1), ENT_QUOTES) . "</td>\n";
65 echo " <td class='detail' align='center' id='td_ptpaid_$var_index' >" . htmlspecialchars(bucks($ptpaid*-1), ENT_QUOTES) . "</td>\n";
66 echo " <td class='detail' align='center' id='td_patient_copay_$var_index' >" . htmlspecialchars(bucks($patcopay), ENT_QUOTES) . "</td>\n";
67 echo " <td class='detail' align='center' id='td_copay_$var_index' >" . htmlspecialchars(bucks($copay), ENT_QUOTES) . "</td>\n";
68 echo " <td class='detail' align='center' id='balance_$var_index'>" . htmlspecialchars(bucks($balance), ENT_QUOTES) . "</td>\n";
69 echo " <td class='detail' align='center' id='duept_$var_index'>" . htmlspecialchars(bucks(round($duept,2)*1), ENT_QUOTES) . "</td>\n";
70 echo " <td class='detail' align='right'><input type='text' name='".attr($iname)."' id='paying_".attr($var_index)."' " .
71 " value='" . '' . "' onchange='coloring();calctotal()' autocomplete='off' " .
72 "onkeyup='calctotal()' style='width:50px'/></td>\n";
73 echo " </tr>\n";
76 // We use this to put dashes, colons, etc. back into a timestamp.
78 function decorateString($fmt, $str) {
79 $res = '';
80 while ($fmt) {
81 $fc = substr($fmt, 0, 1);
82 $fmt = substr($fmt, 1);
83 if ($fc == '.') {
84 $res .= substr($str, 0, 1);
85 $str = substr($str, 1);
86 } else {
87 $res .= $fc;
90 return $res;
93 // Compute taxes from a tax rate string and a possibly taxable amount.
95 function calcTaxes($row, $amount) {
96 $total = 0;
97 if (empty($row['taxrates'])) return $total;
98 $arates = explode(':', $row['taxrates']);
99 if (empty($arates)) return $total;
100 foreach ($arates as $value) {
101 if (empty($value)) continue;
102 $trow = sqlQuery("SELECT option_value FROM list_options WHERE " .
103 "list_id = 'taxrate' AND option_id = ? AND activity = 1 LIMIT 1", array($value) );
104 if (empty($trow['option_value'])) {
105 echo "<!-- Missing tax rate '".text($value)."'! -->\n";
106 continue;
108 $tax = sprintf("%01.2f", $amount * $trow['option_value']);
109 // echo "<!-- Rate = '$value', amount = '$amount', tax = '$tax' -->\n";
110 $total += $tax;
112 return $total;
115 $now = time();
116 $today = date('Y-m-d', $now);
117 $timestamp = date('Y-m-d H:i:s', $now);
120 // $patdata = getPatientData($pid, 'fname,lname,pubpid');
122 $patdata = sqlQuery("SELECT " .
123 "p.fname, p.mname, p.lname, p.pubpid,p.pid, i.copay " .
124 "FROM patient_data AS p " .
125 "LEFT OUTER JOIN insurance_data AS i ON " .
126 "i.pid = p.pid AND i.type = 'primary' " .
127 "WHERE p.pid = ? ORDER BY i.date DESC LIMIT 1", array($pid) );
129 $alertmsg = ''; // anything here pops up in an alert box
131 // If the Save button was clicked...
132 if ($_POST['form_save']) {
133 $form_pid = $_POST['form_pid'];
134 $form_method = trim($_POST['form_method']);
135 $form_source = trim($_POST['form_source']);
136 $patdata = getPatientData($form_pid, 'fname,mname,lname,pubpid');
137 $NameNew=$patdata['fname'] . " " .$patdata['lname']. " " .$patdata['mname'];
139 if($_REQUEST['radio_type_of_payment']=='pre_payment')
141 $payment_id = idSqlStatement("insert into ar_session set " .
142 "payer_id = ?" .
143 ", patient_id = ?" .
144 ", user_id = ?" .
145 ", closed = ?" .
146 ", reference = ?" .
147 ", check_date = now() , deposit_date = now() " .
148 ", pay_total = ?" .
149 ", payment_type = 'patient'" .
150 ", description = ?" .
151 ", adjustment_code = 'pre_payment'" .
152 ", post_to_date = now() " .
153 ", payment_method = ?",
154 array(0,$form_pid,$_SESSION['authUserID'],0,$form_source,$_REQUEST['form_prepayment'],$NameNew,$form_method));
156 frontPayment($form_pid, 0, $form_method, $form_source, $_REQUEST['form_prepayment'], 0, $timestamp);//insertion to 'payments' table.
159 if ($_POST['form_upay'] && $_REQUEST['radio_type_of_payment']!='pre_payment') {
160 foreach ($_POST['form_upay'] as $enc => $payment) {
161 if ($amount = 0 + $payment) {
162 $zero_enc=$enc;
163 if($_REQUEST['radio_type_of_payment']=='invoice_balance')
167 else
169 if (!$enc)
171 $enc = calendar_arrived($form_pid);
174 //----------------------------------------------------------------------------------------------------
175 //Fetching the existing code and modifier
176 $ResultSearchNew = sqlStatement("SELECT * FROM billing LEFT JOIN code_types ON billing.code_type=code_types.ct_key ".
177 "WHERE code_types.ct_fee=1 AND billing.activity!=0 AND billing.pid =? AND encounter=? ORDER BY billing.code,billing.modifier",
178 array($form_pid,$enc));
179 if($RowSearch = sqlFetchArray($ResultSearchNew))
181 $Codetype=$RowSearch['code_type'];
182 $Code=$RowSearch['code'];
183 $Modifier=$RowSearch['modifier'];
185 else
187 $Codetype='';
188 $Code='';
189 $Modifier='';
191 //----------------------------------------------------------------------------------------------------
192 if($_REQUEST['radio_type_of_payment']=='copay')//copay saving to ar_session and ar_activity tables
194 $session_id=sqlInsert("INSERT INTO ar_session (payer_id,user_id,reference,check_date,deposit_date,pay_total,".
195 " global_amount,payment_type,description,patient_id,payment_method,adjustment_code,post_to_date) ".
196 " VALUES ('0',?,?,now(),now(),?,'','patient','COPAY',?,?,'patient_payment',now())",
197 array($_SESSION['authId'],$form_source,$amount,$form_pid,$form_method));
199 sqlBeginTrans();
200 $sequence_no = sqlQuery( "SELECT IFNULL(MAX(sequence_no),0) + 1 AS increment FROM ar_activity WHERE pid = ? AND encounter = ?", array($form_pid, $enc));
201 $insrt_id=sqlInsert("INSERT INTO ar_activity (pid,encounter,sequence_no,code_type,code,modifier,payer_type,post_time,post_user,session_id,pay_amount,account_code)".
202 " VALUES (?,?,?,?,?,?,0,now(),?,?,?,'PCP')",
203 array($form_pid,$enc,$sequence_no['increment'],$Codetype,$Code,$Modifier,$_SESSION['authId'],$session_id,$amount));
204 sqlCommitTrans();
206 frontPayment($form_pid, $enc, $form_method, $form_source, $amount, 0, $timestamp);//insertion to 'payments' table.
208 if($_REQUEST['radio_type_of_payment']=='invoice_balance' || $_REQUEST['radio_type_of_payment']=='cash')
209 { //Payment by patient after insurance paid, cash patients similar to do not bill insurance in feesheet.
210 if($_REQUEST['radio_type_of_payment']=='cash')
212 sqlStatement("update form_encounter set last_level_closed=? where encounter=? and pid=? ",
213 array(4,$enc,$form_pid));
214 sqlStatement("update billing set billed=? where encounter=? and pid=?",
215 array(1,$enc,$form_pid));
217 $adjustment_code='patient_payment';
218 $payment_id = idSqlStatement("insert into ar_session set " .
219 "payer_id = ?" .
220 ", patient_id = ?" .
221 ", user_id = ?" .
222 ", closed = ?" .
223 ", reference = ?" .
224 ", check_date = now() , deposit_date = now() " .
225 ", pay_total = ?" .
226 ", payment_type = 'patient'" .
227 ", description = ?" .
228 ", adjustment_code = ?" .
229 ", post_to_date = now() " .
230 ", payment_method = ?",
231 array(0,$form_pid,$_SESSION['authUserID'],0,$form_source,$amount,$NameNew,$adjustment_code,$form_method));
233 //--------------------------------------------------------------------------------------------------------------------
235 frontPayment($form_pid, $enc, $form_method, $form_source, 0, $amount, $timestamp);//insertion to 'payments' table.
237 //--------------------------------------------------------------------------------------------------------------------
239 $resMoneyGot = sqlStatement("SELECT sum(pay_amount) as PatientPay FROM ar_activity where pid =? and ".
240 "encounter =? and payer_type=0 and account_code='PCP'",
241 array($form_pid,$enc));//new fees screen copay gives account_code='PCP'
242 $rowMoneyGot = sqlFetchArray($resMoneyGot);
243 $Copay=$rowMoneyGot['PatientPay'];
245 //--------------------------------------------------------------------------------------------------------------------
247 //Looping the existing code and modifier
248 $ResultSearchNew = sqlStatement("SELECT * FROM billing LEFT JOIN code_types ON billing.code_type=code_types.ct_key WHERE code_types.ct_fee=1 ".
249 "AND billing.activity!=0 AND billing.pid =? AND encounter=? ORDER BY billing.code,billing.modifier",
250 array($form_pid,$enc));
251 while($RowSearch = sqlFetchArray($ResultSearchNew))
253 $Codetype=$RowSearch['code_type'];
254 $Code=$RowSearch['code'];
255 $Modifier =$RowSearch['modifier'];
256 $Fee =$RowSearch['fee'];
258 $resMoneyGot = sqlStatement("SELECT sum(pay_amount) as MoneyGot FROM ar_activity where pid =? ".
259 "and code_type=? and code=? and modifier=? and encounter =? and !(payer_type=0 and account_code='PCP')",
260 array($form_pid,$Codetype,$Code,$Modifier,$enc));
261 //new fees screen copay gives account_code='PCP'
262 $rowMoneyGot = sqlFetchArray($resMoneyGot);
263 $MoneyGot=$rowMoneyGot['MoneyGot'];
265 $resMoneyAdjusted = sqlStatement("SELECT sum(adj_amount) as MoneyAdjusted FROM ar_activity where ".
266 "pid =? and code_type=? and code=? and modifier=? and encounter =?",
267 array($form_pid,$Codetype,$Code,$Modifier,$enc));
268 $rowMoneyAdjusted = sqlFetchArray($resMoneyAdjusted);
269 $MoneyAdjusted=$rowMoneyAdjusted['MoneyAdjusted'];
271 $Remainder=$Fee-$Copay-$MoneyGot-$MoneyAdjusted;
272 $Copay=0;
273 if(round($Remainder,2)!=0 && $amount!=0)
275 if($amount-$Remainder >= 0)
277 $insert_value=$Remainder;
278 $amount=$amount-$Remainder;
280 else
282 $insert_value=$amount;
283 $amount=0;
285 sqlBeginTrans();
286 $sequence_no = sqlQuery( "SELECT IFNULL(MAX(sequence_no),0) + 1 AS increment FROM ar_activity WHERE pid = ? AND encounter = ?", array($form_pid, $enc));
287 sqlStatement("insert into ar_activity set " .
288 "pid = ?" .
289 ", encounter = ?" .
290 ", sequence_no = ?" .
291 ", code_type = ?" .
292 ", code = ?" .
293 ", modifier = ?" .
294 ", payer_type = ?" .
295 ", post_time = now() " .
296 ", post_user = ?" .
297 ", session_id = ?" .
298 ", pay_amount = ?" .
299 ", adj_amount = ?" .
300 ", account_code = 'PP'",
301 array($form_pid,$enc,$sequence_no['increment'],$Codetype,$Code,$Modifier,0,$_SESSION['authUserID'],$payment_id,$insert_value,0));
302 sqlCommitTrans();
303 }//if
304 }//while
305 if($amount!=0)//if any excess is there.
307 sqlBeginTrans();
308 $sequence_no = sqlQuery( "SELECT IFNULL(MAX(sequence_no),0) + 1 AS increment FROM ar_activity WHERE pid = ? AND encounter = ?", array($form_pid, $enc));
309 sqlStatement("insert into ar_activity set " .
310 "pid = ?" .
311 ", encounter = ?" .
312 ", sequence_no = ?" .
313 ", code_type = ?" .
314 ", code = ?" .
315 ", modifier = ?" .
316 ", payer_type = ?" .
317 ", post_time = now() " .
318 ", post_user = ?" .
319 ", session_id = ?" .
320 ", pay_amount = ?" .
321 ", adj_amount = ?" .
322 ", account_code = 'PP'",
323 array($form_pid,$enc,$sequence_no['increment'],$Codetype,$Code,$Modifier,0,$_SESSION['authUserID'],$payment_id,$amount,0));
324 sqlCommitTrans();
327 //--------------------------------------------------------------------------------------------------------------------
328 }//invoice_balance
329 }//if ($amount = 0 + $payment)
330 }//foreach
331 }//if ($_POST['form_upay'])
332 }//if ($_POST['form_save'])
334 if ($_POST['form_save'] || $_REQUEST['receipt']) {
336 if ($_REQUEST['receipt']) {
337 $form_pid = $_GET['patient'];
338 $timestamp = decorateString('....-..-.. ..:..:..', $_GET['time']);
341 // Get details for what we guess is the primary facility.
342 $frow = sqlQuery("SELECT * FROM facility " .
343 "ORDER BY billing_location DESC, accepts_assignment DESC, id LIMIT 1");
345 // Get the patient's name and chart number.
346 $patdata = getPatientData($form_pid, 'fname,mname,lname,pubpid');
348 // Re-fetch payment info.
349 $payrow = sqlQuery("SELECT " .
350 "SUM(amount1) AS amount1, " .
351 "SUM(amount2) AS amount2, " .
352 "MAX(method) AS method, " .
353 "MAX(source) AS source, " .
354 "MAX(dtime) AS dtime, " .
355 // "MAX(user) AS user " .
356 "MAX(user) AS user, " .
357 "MAX(encounter) as encounter ".
358 "FROM payments WHERE " .
359 "pid = ? AND dtime = ?", array($form_pid,$timestamp) );
361 // Create key for deleting, just in case.
362 $ref_id = ($_REQUEST['radio_type_of_payment']=='copay') ? $session_id : $payment_id ;
363 $payment_key = $form_pid . '.' . preg_replace('/[^0-9]/', '', $timestamp).'.'.$ref_id;
365 // get facility from encounter
366 $tmprow = sqlQuery("
367 SELECT facility_id
368 FROM form_encounter
369 WHERE encounter = ?", array($payrow['encounter']) );
370 $frow = sqlQuery("SELECT * FROM facility " .
371 " WHERE id = ?", array($tmprow['facility_id']) );
373 // Now proceed with printing the receipt.
376 <title><?php echo xlt('Receipt for Payment'); ?></title>
377 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-2-1/index.js"></script>
378 <script type="text/javascript" src="../../library/dialog.js"></script>
379 <script language="JavaScript">
381 <?php require($GLOBALS['srcdir'] . "/restoreSession.php"); ?>
383 $(document).ready(function() {
384 var win = top.printLogSetup ? top : opener.top;
385 win.printLogSetup(document.getElementById('printbutton'));
388 // This is action to take before printing and is called from restoreSession.php.
389 function printlog_before_print() {
390 var divstyle = document.getElementById('hideonprint').style;
391 divstyle.display = 'none';
394 // Process click on Delete button.
395 function deleteme() {
396 dlgopen('deleter.php?payment=<?php echo $payment_key ?>', '_blank', 500, 450);
397 return false;
399 // Called by the deleteme.php window on a successful delete.
400 function imdeleted() {
401 window.close();
404 // Called to switch to the specified encounter having the specified DOS.
405 // This also closes the popup window.
406 function toencounter(enc, datestr, topframe) {
407 topframe.restoreSession();
408 // Hard-coding of RBot for this purpose is awkward, but since this is a
409 // pop-up and our openemr is left_nav, we have no good clue as to whether
410 // the top frame is more appropriate.
411 topframe.left_nav.forceDual();
412 topframe.left_nav.setEncounter(datestr, enc, '');
413 topframe.left_nav.loadFrame('enc2', 'RBot', 'patient_file/encounter/encounter_top.php?set_encounter=' + enc);
414 window.close();
417 </script>
418 </head>
419 <body bgcolor='#ffffff'>
420 <center>
422 <p><h2><?php echo xlt('Receipt for Payment'); ?></h2>
424 <p><?php echo text($frow['name']) ?>
425 <br><?php echo text($frow['street']) ?>
426 <br><?php echo text($frow['city'] . ', ' . $frow['state']) . ' ' .
427 text($frow['postal_code']) ?>
428 <br><?php echo htmlentities($frow['phone']) ?>
431 <table border='0' cellspacing='8'>
432 <tr>
433 <td><?php echo xlt('Date'); ?>:</td>
434 <td><?php echo text(oeFormatSDFT(strtotime($payrow['dtime']))) ?></td>
435 </tr>
436 <tr>
437 <td><?php echo xlt('Patient'); ?>:</td>
438 <td><?php echo text($patdata['fname']) . " " . text($patdata['mname']) . " " .
439 text($patdata['lname']) . " (" . text($patdata['pubpid']) . ")" ?></td>
440 </tr>
441 <tr>
442 <td><?php echo xlt('Paid Via'); ?>:</td>
443 <td><?php echo generate_display_field(array('data_type'=>'1','list_id'=>'payment_method'),$payrow['method']); ?></td>
444 </tr>
445 <tr>
446 <td><?php echo xlt('Check/Ref Number'); ?>:</td>
447 <td><?php echo text($payrow['source']) ?></td>
448 </tr>
449 <tr>
450 <td><?php echo xlt('Amount for This Visit'); ?>:</td>
451 <td><?php echo text(oeFormatMoney($payrow['amount1'])) ?></td>
452 </tr>
453 <tr>
454 <td><?php echo xlt('Amount for Past Balance'); ?>:</td>
455 <td><?php echo text(oeFormatMoney($payrow['amount2'])) ?></td>
456 </tr>
457 <tr>
458 <td><?php echo xlt('Received By'); ?>:</td>
459 <td><?php echo text($payrow['user']) ?></td>
460 </tr>
461 </table>
463 <div id='hideonprint'>
465 <input type='button' value='<?php echo xla('Print'); ?>' id='printbutton' />
467 <?php
468 $todaysenc = todaysEncounterIf($pid);
469 if ($todaysenc && $todaysenc != $encounter) {
470 echo "&nbsp;<input type='button' " .
471 "value='" . xla('Open Today`s Visit') . "' " .
472 "onclick='toencounter($todaysenc,\"$today\",opener.top)' />\n";
476 <?php if (acl_check('admin', 'super')) { ?>
477 &nbsp;
478 <input type='button' value='<?php xl('Delete','e'); ?>' style='color:red' onclick='deleteme()' />
479 <?php } ?>
481 </div>
482 </center>
483 </body>
485 <?php
487 // End of receipt printing logic.
489 } else {
491 // Here we display the form for data entry.
494 <title><?php echo xlt('Record Payment'); ?></title>
496 <style type="text/css">
497 body { font-family:sans-serif; font-size:10pt; font-weight:normal }
498 .dehead { color:#000000; font-family:sans-serif; font-size:10pt; font-weight:bold }
499 .detail { color:#000000; font-family:sans-serif; font-size:10pt; font-weight:normal }
500 #ajax_div_patient {
501 position: absolute;
502 z-index:10;
503 background-color: #FBFDD0;
504 border: 1px solid #ccc;
505 padding: 10px;
507 </style>
509 <link rel="stylesheet" href="<?php echo $css_header;?>" type="text/css">
511 <!-- supporting javascript code -->
512 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-2-1/index.js"></script>
514 <script type="text/javascript" src="<?php echo $GLOBALS['webroot'] ?>/library/dialog.js"></script>
518 <link rel="stylesheet" href="<?php echo $css_header;?>" type="text/css">
519 <link rel="stylesheet" type="text/css" href="../../library/js/fancybox/jquery.fancybox-1.2.6.css" media="screen" />
520 <style type="text/css">@import url(../../library/dynarch_calendar.css);</style>
521 <script type="text/javascript" src="../../library/textformat.js"></script>
522 <script type="text/javascript" src="../../library/dynarch_calendar.js"></script>
523 <?php include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?>
524 <script type="text/javascript" src="../../library/dynarch_calendar_setup.js"></script>
525 <script type="text/javascript" src="../../library/dialog.js"></script>
526 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-3-2/index.js"></script>
527 <script type="text/javascript" src="../../library/js/common.js"></script>
528 <script type="text/javascript" src="../../library/js/fancybox/jquery.fancybox-1.2.6.js"></script>
529 <script type="text/javascript" src="../../library/js/jquery.easydrag.handler.beta2.js"></script>
530 <script language='JavaScript'>
531 var mypcc = '1';
532 </script>
533 <?php include_once("{$GLOBALS['srcdir']}/ajax/payment_ajax_jav.inc.php"); ?>
534 <script language="javascript" type="text/javascript">
535 document.onclick=HideTheAjaxDivs;
536 </script>
538 <script type="text/javascript" src="../../library/topdialog.js"></script>
540 <script language="JavaScript">
541 <?php require($GLOBALS['srcdir'] . "/restoreSession.php"); ?>
543 function calctotal() {
544 var f = document.forms[0];
545 var total = 0;
546 for (var i = 0; i < f.elements.length; ++i) {
547 var elem = f.elements[i];
548 var ename = elem.name;
549 if (ename.indexOf('form_upay[') == 0 || ename.indexOf('form_bpay[') == 0) {
550 if (elem.value.length > 0) total += Number(elem.value);
553 f.form_paytotal.value = Number(total).toFixed(2);
554 return true;
556 function coloring()
558 for (var i = 1; ; ++i)
560 if(document.getElementById('paying_'+i))
562 paying=document.getElementById('paying_'+i).value*1;
563 patient_balance=document.getElementById('duept_'+i).innerHTML*1;
564 //balance=document.getElementById('balance_'+i).innerHTML*1;
565 if(patient_balance>0 && paying>0)
567 if(paying>patient_balance)
569 document.getElementById('paying_'+i).style.background='#FF0000';
571 else if(paying<patient_balance)
573 document.getElementById('paying_'+i).style.background='#99CC00';
575 else if(paying==patient_balance)
577 document.getElementById('paying_'+i).style.background='#ffffff';
580 else
582 document.getElementById('paying_'+i).style.background='#ffffff';
585 else
587 break;
591 function CheckVisible(MakeBlank)
592 {//Displays and hides the check number text box.
593 if(document.getElementById('form_method').options[document.getElementById('form_method').selectedIndex].value=='check_payment' ||
594 document.getElementById('form_method').options[document.getElementById('form_method').selectedIndex].value=='bank_draft' )
596 document.getElementById('check_number').disabled=false;
598 else
600 document.getElementById('check_number').disabled=true;
603 function validate()
605 var f = document.forms[0];
606 ok=-1;
607 top.restoreSession();
608 issue='no';
609 if(((document.getElementById('form_method').options[document.getElementById('form_method').selectedIndex].value=='check_payment' ||
610 document.getElementById('form_method').options[document.getElementById('form_method').selectedIndex].value=='bank_draft') &&
611 document.getElementById('check_number').value=='' ))
613 alert("<?php echo addslashes( xl('Please Fill the Check/Ref Number')) ?>");
614 document.getElementById('check_number').focus();
615 return false;
618 if(document.getElementById('radio_type_of_payment_self1').checked==false && document.getElementById('radio_type_of_payment_self2').checked==false && document.getElementById('radio_type_of_payment1').checked==false && document.getElementById('radio_type_of_payment2').checked==false && document.getElementById('radio_type_of_payment5').checked==false && document.getElementById('radio_type_of_payment4').checked==false)
620 alert("<?php echo addslashes( xl('Please Select Type Of Payment.')) ?>");
621 return false;
623 if(document.getElementById('radio_type_of_payment_self1').checked==true || document.getElementById('radio_type_of_payment_self2').checked==true || document.getElementById('radio_type_of_payment1').checked==true || document.getElementById('radio_type_of_payment5').checked==true)
625 for (var i = 0; i < f.elements.length; ++i)
627 var elem = f.elements[i];
628 var ename = elem.name;
629 if (ename.indexOf('form_upay[0') == 0) //Today is this text box.
631 if(elem.value*1>0)
632 {//A warning message, if the amount is posted with out encounter.
633 if(confirm("<?php echo addslashes( xl('Are you sure to post for today?')) ?>"))
635 ok=1;
637 else
639 elem.focus();
640 return false;
643 break;
648 if(document.getElementById('radio_type_of_payment1').checked==true)//CO-PAY
650 var total = 0;
651 for (var i = 0; i < f.elements.length; ++i)
653 var elem = f.elements[i];
654 var ename = elem.name;
655 if (ename.indexOf('form_upay[') == 0) //Today is this text box.
657 if(f.form_paytotal.value*1!=elem.value*1)//Total CO-PAY is not posted against today
658 {//A warning message, if the amount is posted against an old encounter.
659 if(confirm("<?php echo addslashes( xl('You are posting against an old encounter?')) ?>"))
661 ok=1;
663 else
665 elem.focus();
666 return false;
669 break;
672 }//Co Pay
673 else if(document.getElementById('radio_type_of_payment2').checked==true)//Invoice Balance
675 if(document.getElementById('Today').innerHTML=='')
677 for (var i = 0; i < f.elements.length; ++i)
679 var elem = f.elements[i];
680 var ename = elem.name;
681 if (ename.indexOf('form_upay[') == 0)
683 if (elem.value*1 > 0)
685 alert("<?php echo addslashes( xl('Invoice Balance cannot be posted. No Encounter is created.')) ?>");
686 return false;
688 break;
693 if(ok==-1)
695 if(confirm("<?php echo addslashes( xl('Would you like to save?')) ?>"))
697 return true;
699 else
701 return false;
705 function cursor_pointer()
706 {//Point the cursor to the latest encounter(Today)
707 var f = document.forms[0];
708 var total = 0;
709 for (var i = 0; i < f.elements.length; ++i)
711 var elem = f.elements[i];
712 var ename = elem.name;
713 if (ename.indexOf('form_upay[') == 0)
715 elem.focus();
716 break;
720 //=====================================================
721 function make_it_hide_enc_pay()
723 document.getElementById('td_head_insurance_payment').style.display="none";
724 document.getElementById('td_head_patient_co_pay').style.display="none";
725 document.getElementById('td_head_co_pay').style.display="none";
726 document.getElementById('td_head_insurance_balance').style.display="none";
727 for (var i = 1; ; ++i)
729 var td_inspaid_elem = document.getElementById('td_inspaid_'+i)
730 var td_patient_copay_elem = document.getElementById('td_patient_copay_'+i)
731 var td_copay_elem = document.getElementById('td_copay_'+i)
732 var balance_elem = document.getElementById('balance_'+i)
733 if (td_inspaid_elem)
735 td_inspaid_elem.style.display="none";
736 td_patient_copay_elem.style.display="none";
737 td_copay_elem.style.display="none";
738 balance_elem.style.display="none";
740 else
742 break;
745 document.getElementById('td_total_4').style.display="none";
746 document.getElementById('td_total_7').style.display="none";
747 document.getElementById('td_total_8').style.display="none";
748 document.getElementById('td_total_6').style.display="none";
750 document.getElementById('table_display').width="420px";
753 //=====================================================
754 function make_visible()
756 document.getElementById('td_head_rep_doc').style.display="";
757 document.getElementById('td_head_description').style.display="";
758 document.getElementById('td_head_total_charge').style.display="none";
759 document.getElementById('td_head_insurance_payment').style.display="none";
760 document.getElementById('td_head_patient_payment').style.display="none";
761 document.getElementById('td_head_patient_co_pay').style.display="none";
762 document.getElementById('td_head_co_pay').style.display="none";
763 document.getElementById('td_head_insurance_balance').style.display="none";
764 document.getElementById('td_head_patient_balance').style.display="none";
765 for (var i = 1; ; ++i)
767 var td_charges_elem = document.getElementById('td_charges_'+i)
768 var td_inspaid_elem = document.getElementById('td_inspaid_'+i)
769 var td_ptpaid_elem = document.getElementById('td_ptpaid_'+i)
770 var td_patient_copay_elem = document.getElementById('td_patient_copay_'+i)
771 var td_copay_elem = document.getElementById('td_copay_'+i)
772 var balance_elem = document.getElementById('balance_'+i)
773 var duept_elem = document.getElementById('duept_'+i)
774 if (td_charges_elem)
776 td_charges_elem.style.display="none";
777 td_inspaid_elem.style.display="none";
778 td_ptpaid_elem.style.display="none";
779 td_patient_copay_elem.style.display="none";
780 td_copay_elem.style.display="none";
781 balance_elem.style.display="none";
782 duept_elem.style.display="none";
784 else
786 break;
789 document.getElementById('td_total_7').style.display="";
790 document.getElementById('td_total_8').style.display="";
791 document.getElementById('td_total_1').style.display="none";
792 document.getElementById('td_total_2').style.display="none";
793 document.getElementById('td_total_3').style.display="none";
794 document.getElementById('td_total_4').style.display="none";
795 document.getElementById('td_total_5').style.display="none";
796 document.getElementById('td_total_6').style.display="none";
798 document.getElementById('table_display').width="505px";
800 function make_it_hide()
802 document.getElementById('td_head_rep_doc').style.display="none";
803 document.getElementById('td_head_description').style.display="none";
804 document.getElementById('td_head_total_charge').style.display="";
805 document.getElementById('td_head_insurance_payment').style.display="";
806 document.getElementById('td_head_patient_payment').style.display="";
807 document.getElementById('td_head_patient_co_pay').style.display="";
808 document.getElementById('td_head_co_pay').style.display="";
809 document.getElementById('td_head_insurance_balance').style.display="";
810 document.getElementById('td_head_patient_balance').style.display="";
811 for (var i = 1; ; ++i)
813 var td_charges_elem = document.getElementById('td_charges_'+i)
814 var td_inspaid_elem = document.getElementById('td_inspaid_'+i)
815 var td_ptpaid_elem = document.getElementById('td_ptpaid_'+i)
816 var td_patient_copay_elem = document.getElementById('td_patient_copay_'+i)
817 var td_copay_elem = document.getElementById('td_copay_'+i)
818 var balance_elem = document.getElementById('balance_'+i)
819 var duept_elem = document.getElementById('duept_'+i)
820 if (td_charges_elem)
822 td_charges_elem.style.display="";
823 td_inspaid_elem.style.display="";
824 td_ptpaid_elem.style.display="";
825 td_patient_copay_elem.style.display="";
826 td_copay_elem.style.display="";
827 balance_elem.style.display="";
828 duept_elem.style.display="";
830 else
832 break;
835 document.getElementById('td_total_1').style.display="";
836 document.getElementById('td_total_2').style.display="";
837 document.getElementById('td_total_3').style.display="";
838 document.getElementById('td_total_4').style.display="";
839 document.getElementById('td_total_5').style.display="";
840 document.getElementById('td_total_6').style.display="";
841 document.getElementById('td_total_7').style.display="";
842 document.getElementById('td_total_8').style.display="";
844 document.getElementById('table_display').width="635px";
846 function make_visible_radio()
848 document.getElementById('tr_radio1').style.display="";
849 document.getElementById('tr_radio2').style.display="none";
851 function make_hide_radio()
853 document.getElementById('tr_radio1').style.display="none";
854 document.getElementById('tr_radio2').style.display="";
856 function make_visible_row()
858 document.getElementById('table_display').style.display="";
859 document.getElementById('table_display_prepayment').style.display="none";
861 function make_hide_row()
863 document.getElementById('table_display').style.display="none";
864 document.getElementById('table_display_prepayment').style.display="";
866 function make_self()
868 make_visible_row();
869 make_it_hide();
870 make_it_hide_enc_pay();
871 document.getElementById('radio_type_of_payment_self1').checked=true;
872 cursor_pointer();
874 function make_insurance()
876 make_visible_row();
877 make_it_hide();
878 cursor_pointer();
879 document.getElementById('radio_type_of_payment1').checked=true;
881 </script>
883 </head>
885 <body class="body_top" onunload='imclosing()' onLoad="cursor_pointer();">
886 <center>
888 <form method='post' action='front_payment.php<?php if ($payid) echo "?payid=$payid"; ?>'
889 onsubmit='return validate();'>
890 <input type='hidden' name='form_pid' value='<?php echo attr($pid) ?>' />
893 <table border='0' cellspacing='0' cellpadding="0">
895 <tr height="10">
896 <td colspan="3">&nbsp;</td>
897 </tr>
899 <tr>
900 <td colspan='3' align='center' class='text' >
901 <b><?php echo htmlspecialchars(xl('Accept Payment for'), ENT_QUOTES); ?>&nbsp;:&nbsp;&nbsp;<?php echo htmlspecialchars($patdata['fname'], ENT_QUOTES) . " " .
902 htmlspecialchars($patdata['lname'], ENT_QUOTES) . " " .htmlspecialchars($patdata['mname'], ENT_QUOTES). " (" . htmlspecialchars($patdata['pid'], ENT_QUOTES) . ")" ?></b>
903 <?php $NameNew=$patdata['fname'] . " " .$patdata['lname']. " " .$patdata['mname'];?>
904 </td>
905 </tr>
907 <tr height="15"><td colspan='3'></td></tr>
910 <tr>
911 <td class='text' >
912 <?php echo xlt('Payment Method'); ?>:
913 </td>
914 <td colspan='2' >
915 <select name="form_method" id="form_method" class="text" onChange='CheckVisible("yes")'>
916 <?php
917 $query1112 = "SELECT * FROM list_options where list_id=? ORDER BY seq, title ";
918 $bres1112 = sqlStatement($query1112,array('payment_method'));
919 while ($brow1112 = sqlFetchArray($bres1112))
921 if($brow1112['option_id']=='electronic' || $brow1112['option_id']=='bank_draft')
922 continue;
923 echo "<option value='".htmlspecialchars($brow1112['option_id'], ENT_QUOTES)."'>".htmlspecialchars(xl_list_label($brow1112['title']), ENT_QUOTES)."</option>";
926 </select>
927 </td>
928 </tr>
930 <tr height="5"><td colspan='3'></td></tr>
932 <tr>
933 <td class='text' >
934 <?php echo xla('Check/Ref Number'); ?>:
935 </td>
936 <td colspan='2' ><div id="ajax_div_patient" style="display:none;"></div>
937 <input type='text' id="check_number" name='form_source' style="width:120px" value='<?php echo htmlspecialchars($payrow['source'], ENT_QUOTES); ?>'>
938 </td>
939 </tr>
940 <tr height="5"><td colspan='3'></td></tr>
942 <tr>
943 <td class='text' valign="middle" >
944 <?php echo htmlspecialchars(xl('Patient Coverage'), ENT_QUOTES); ?>:
945 </td>
946 <td class='text' colspan="2" ><input type="radio" name="radio_type_of_coverage" id="radio_type_of_coverage1" value="self" onClick="make_visible_radio();make_self();"/><?php echo htmlspecialchars(xl('Self'), ENT_QUOTES); ?><input type="radio" name="radio_type_of_coverage" id="radio_type_of_coverag2" value="insurance" checked="checked" onClick="make_hide_radio();make_insurance();"/><?php echo htmlspecialchars(xl('Insurance'), ENT_QUOTES); ?> </td>
947 </tr>
949 <tr height="5"><td colspan='3'></td></tr>
951 <tr id="tr_radio1" style="display:none"><!-- For radio Insurance -->
952 <td class='text' valign="top" >
953 <?php echo htmlspecialchars(xl('Payment against'), ENT_QUOTES); ?>:
954 </td>
955 <td class='text' colspan="2" ><input type="radio" name="radio_type_of_payment" id="radio_type_of_payment_self1" value="cash" onClick="make_visible_row();make_it_hide_enc_pay();cursor_pointer();"/><?php echo htmlspecialchars(xl('Encounter Payment'), ENT_QUOTES); ?></td>
956 </tr>
957 <tr id="tr_radio2"><!-- For radio self -->
958 <td class='text' valign="top" >
959 <?php echo htmlspecialchars(xl('Payment against'), ENT_QUOTES); ?>:
960 </td>
961 <td class='text' colspan="2" ><input type="radio" name="radio_type_of_payment" id="radio_type_of_payment1" value="copay" checked="checked" onClick="make_visible_row();cursor_pointer();"/><?php echo htmlspecialchars(xl('Co Pay'), ENT_QUOTES); ?><input type="radio" name="radio_type_of_payment" id="radio_type_of_payment2" value="invoice_balance" onClick="make_visible_row();"/><?php echo htmlspecialchars(xl('Invoice Balance'), ENT_QUOTES); ?><br/><input type="radio" name="radio_type_of_payment" id="radio_type_of_payment4" value="pre_payment" onClick="make_hide_row();"/><?php echo htmlspecialchars(xl('Pre Pay'), ENT_QUOTES); ?></td>
962 </tr>
964 <tr height="15"><td colspan='3'></td></tr>
966 </table>
967 <table width="200" border="0" cellspacing="0" cellpadding="0" id="table_display_prepayment" style="display:none">
968 <tr>
969 <td class='detail'><?php echo htmlspecialchars(xl('Pre Payment'), ENT_QUOTES); ?></td>
970 <td><input type='text' name='form_prepayment' style='width:100px' /></td>
971 </tr>
972 </table>
974 <table border='0' id="table_display" cellpadding='0' cellspacing='0' width='635'>
975 <tr bgcolor="#cccccc" id="tr_head">
976 <td class="dehead" width="70">
977 <?php echo htmlspecialchars( xl('DOS'), ENT_QUOTES) ?>
978 </td>
979 <td class="dehead" width="65">
980 <?php echo htmlspecialchars( xl('Encounter'), ENT_QUOTES) ?>
981 </td>
982 <td class="dehead" align="center" width="80" id="td_head_total_charge" >
983 <?php echo htmlspecialchars( xl('Total Charge'), ENT_QUOTES) ?>
984 </td>
985 <td class="dehead" align="center" width="70" id="td_head_rep_doc" style='display:none'>
986 <?php echo htmlspecialchars( xl('Report/ Form'), ENT_QUOTES) ?>
987 </td>
988 <td class="dehead" align="center" width="200" id="td_head_description" style='display:none'>
989 <?php echo htmlspecialchars( xl('Description'), ENT_QUOTES) ?>
990 </td>
991 <td class="dehead" align="center" width="80" id="td_head_insurance_payment" >
992 <?php echo htmlspecialchars( xl('Insurance Payment'), ENT_QUOTES) ?>
993 </td>
994 <td class="dehead" align="center" width="80" id="td_head_patient_payment" >
995 <?php echo htmlspecialchars( xl('Patient Payment'), ENT_QUOTES) ?>
996 </td>
997 <td class="dehead" align="center" width="55" id="td_head_patient_co_pay" >
998 <?php echo htmlspecialchars( xl('Co Pay Paid'), ENT_QUOTES) ?>
999 </td>
1000 <td class="dehead" align="center" width="55" id="td_head_co_pay" >
1001 <?php echo htmlspecialchars( xl('Required Co Pay'), ENT_QUOTES) ?>
1002 </td>
1003 <td class="dehead" align="center" width="80" id="td_head_insurance_balance" >
1004 <?php echo htmlspecialchars( xl('Insurance Balance'), ENT_QUOTES) ?>
1005 </td>
1006 <td class="dehead" align="center" width="80" id="td_head_patient_balance" >
1007 <?php echo htmlspecialchars( xl('Patient Balance'), ENT_QUOTES) ?>
1008 </td>
1009 <td class="dehead" align="center" width="50">
1010 <?php echo htmlspecialchars( xl('Paying'), ENT_QUOTES) ?>
1011 </td>
1012 </tr>
1014 <?php
1015 $encs = array();
1017 // Get the unbilled service charges and payments by encounter for this patient.
1019 $query = "SELECT fe.encounter, b.code_type, b.code, b.modifier, b.fee, " .
1020 "LEFT(fe.date, 10) AS encdate ,fe.last_level_closed " .
1021 "FROM form_encounter AS fe left join billing AS b on " .
1022 "b.pid = ? AND b.activity = 1 AND " .//AND b.billed = 0
1023 "b.code_type != 'TAX' AND b.fee != 0 " .
1024 "AND fe.pid = b.pid AND fe.encounter = b.encounter " .
1025 "where fe.pid = ? " .
1026 "ORDER BY b.encounter";
1027 $bres = sqlStatement($query,array($pid,$pid));
1029 while ($brow = sqlFetchArray($bres)) {
1030 $key = 0 - $brow['encounter'];
1031 if (empty($encs[$key])) {
1032 $encs[$key] = array(
1033 'encounter' => $brow['encounter'],
1034 'date' => $brow['encdate'],
1035 'last_level_closed' => $brow['last_level_closed'],
1036 'charges' => 0,
1037 'payments' => 0);
1039 if ($brow['code_type'] === 'COPAY') {
1040 //$encs[$key]['payments'] -= $brow['fee'];
1041 } else {
1042 $encs[$key]['charges'] += $brow['fee'];
1043 // Add taxes.
1044 $sql_array=array();
1045 $query = "SELECT taxrates FROM codes WHERE " .
1046 "code_type = ? AND " .
1047 "code = ? AND ";
1048 array_push($sql_array,$code_types[$brow['code_type']]['id'],$brow['code']);
1049 if ($brow['modifier']) {
1050 $query .= "modifier = ?";
1051 array_push($sql_array,$brow['modifier']);
1052 } else {
1053 $query .= "(modifier IS NULL OR modifier = '')";
1055 $query .= " LIMIT 1";
1056 $trow = sqlQuery($query,$sql_array);
1057 $encs[$key]['charges'] += calcTaxes($trow, $brow['fee']);
1061 // Do the same for unbilled product sales.
1063 $query = "SELECT fe.encounter, s.drug_id, s.fee, " .
1064 "LEFT(fe.date, 10) AS encdate,fe.last_level_closed " .
1065 "FROM form_encounter AS fe left join drug_sales AS s " .
1066 "on s.pid = ? AND s.fee != 0 " .//AND s.billed = 0
1067 "AND fe.pid = s.pid AND fe.encounter = s.encounter " .
1068 "where fe.pid = ? " .
1069 "ORDER BY s.encounter";
1071 $dres = sqlStatement($query,array($pid,$pid));
1073 while ($drow = sqlFetchArray($dres)) {
1074 $key = 0 - $drow['encounter'];
1075 if (empty($encs[$key])) {
1076 $encs[$key] = array(
1077 'encounter' => $drow['encounter'],
1078 'date' => $drow['encdate'],
1079 'last_level_closed' => $drow['last_level_closed'],
1080 'charges' => 0,
1081 'payments' => 0);
1083 $encs[$key]['charges'] += $drow['fee'];
1084 // Add taxes.
1085 $trow = sqlQuery("SELECT taxrates FROM drug_templates WHERE drug_id = ? " .
1086 "ORDER BY selector LIMIT 1", array($drow['drug_id']) );
1087 $encs[$key]['charges'] += calcTaxes($trow, $drow['fee']);
1090 ksort($encs, SORT_NUMERIC);
1091 $gottoday = false;
1092 //Bringing on top the Today always
1093 foreach ($encs as $key => $value) {
1094 $dispdate = $value['date'];
1095 if (strcmp($dispdate, $today) == 0 && !$gottoday) {
1096 $gottoday = true;
1097 break;
1101 // If no billing was entered yet for today, then generate a line for
1102 // entering today's co-pay.
1104 if (! $gottoday) {
1105 echoLine("form_upay[0]", date("Y-m-d"), 0, 0, 0, 0 /*$duept*/);//No encounter yet defined.
1108 $gottoday = false;
1109 foreach ($encs as $key => $value) {
1110 $enc = $value['encounter'];
1111 $dispdate = $value['date'];
1112 if (strcmp($dispdate, $today) == 0 && !$gottoday) {
1113 $dispdate = date("Y-m-d");
1114 $gottoday = true;
1116 //------------------------------------------------------------------------------------
1117 $inscopay = getCopay($pid, $dispdate);
1118 $patcopay = getPatientCopay($pid, $enc);
1119 //Insurance Payment
1120 //-----------------
1121 $drow = sqlQuery("SELECT SUM(pay_amount) AS payments, " .
1122 "SUM(adj_amount) AS adjustments FROM ar_activity WHERE " .
1123 "pid = ? and encounter = ? and " .
1124 "payer_type != 0 and account_code!='PCP' ",
1125 array($pid,$enc));
1126 $dpayment=$drow['payments'];
1127 $dadjustment=$drow['adjustments'];
1128 //Patient Payment
1129 //---------------
1130 $drow = sqlQuery("SELECT SUM(pay_amount) AS payments, " .
1131 "SUM(adj_amount) AS adjustments FROM ar_activity WHERE " .
1132 "pid = ? and encounter = ? and " .
1133 "payer_type = 0 and account_code!='PCP' ",
1134 array($pid,$enc));
1135 $dpayment_pat=$drow['payments'];
1137 //------------------------------------------------------------------------------------
1138 //NumberOfInsurance
1139 $ResultNumberOfInsurance = sqlStatement("SELECT COUNT( DISTINCT TYPE ) NumberOfInsurance FROM insurance_data
1140 where pid = ? and provider>0 ",array($pid));
1141 $RowNumberOfInsurance = sqlFetchArray($ResultNumberOfInsurance);
1142 $NumberOfInsurance=$RowNumberOfInsurance['NumberOfInsurance']*1;
1143 //------------------------------------------------------------------------------------
1144 $duept=0;
1145 if((($NumberOfInsurance==0 || $value['last_level_closed']==4 || $NumberOfInsurance== $value['last_level_closed'])))
1146 {//Patient balance
1147 $brow = sqlQuery("SELECT SUM(fee) AS amount FROM billing WHERE " .
1148 "pid = ? and encounter = ? AND activity = 1",array($pid,$enc));
1149 $srow = sqlQuery("SELECT SUM(fee) AS amount FROM drug_sales WHERE " .
1150 "pid = ? and encounter = ? ",array($pid,$enc));
1151 $drow = sqlQuery("SELECT SUM(pay_amount) AS payments, " .
1152 "SUM(adj_amount) AS adjustments FROM ar_activity WHERE " .
1153 "pid = ? and encounter = ? ",array($pid,$enc));
1154 $duept= $brow['amount'] + $srow['amount'] - $drow['payments'] - $drow['adjustments'];
1156 echoLine("form_upay[$enc]", $dispdate, $value['charges'],
1157 $dpayment_pat, ($dpayment + $dadjustment), $duept,$enc,$inscopay,$patcopay);
1162 // Continue with display of the data entry form.
1165 <tr bgcolor="#cccccc">
1166 <td class="dehead" id='td_total_1'></td>
1167 <td class="dehead" id='td_total_2'></td>
1168 <td class="dehead" id='td_total_3'></td>
1169 <td class="dehead" id='td_total_4'></td>
1170 <td class="dehead" id='td_total_5'></td>
1171 <td class="dehead" id='td_total_6'></td>
1172 <td class="dehead" id='td_total_7'></td>
1173 <td class="dehead" id='td_total_8'></td>
1174 <td class="dehead" align="right">
1175 <?php echo htmlspecialchars( xl('Total'), ENT_QUOTES);?>
1176 </td>
1177 <td class="dehead" align="right">
1178 <input type='text' name='form_paytotal' value=''
1179 style='color:#00aa00;width:50px' readonly />
1180 </td>
1181 </tr>
1183 </table>
1186 <input type='submit' name='form_save' value='<?php echo htmlspecialchars( xl('Generate Invoice'), ENT_QUOTES);?>' /> &nbsp;
1187 <input type='button' value='<?php echo xla('Cancel'); ?>' onclick='window.close()' />
1189 <input type="hidden" name="hidden_patient_code" id="hidden_patient_code" value="<?php echo attr($pid);?>"/>
1190 <input type='hidden' name='ajax_mode' id='ajax_mode' value='' />
1191 <input type='hidden' name='mode' id='mode' value='' />
1192 </form>
1193 <script language="JavaScript">
1194 calctotal();
1195 </script>
1196 </center>
1197 </body>
1199 <?php
1202 </html>