Centralized formatting.inc.php include
[openemr.git] / interface / billing / era_payments.php
blob2f37d597433e17fe1f2615131e06b399caa4f07c
1 <?php
2 // +-----------------------------------------------------------------------------+
3 // Copyright (C) 2010 Z&H Consultancy Services Private Limited <sam@zhservices.com>
4 //
5 //
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
18 // A copy of the GNU General Public License is included along with this program:
19 // openemr/interface/login/GnuGPL.html
20 // For more information write to the Free Software
21 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 // Author: Eldho Chacko <eldho@zhservices.com>
24 // Paul Simon K <paul@zhservices.com>
26 // +------------------------------------------------------------------------------+
27 //===============================================================================
28 //Electronic posting is handled here.
29 //===============================================================================
30 require_once("../globals.php");
31 require_once("$srcdir/patient.inc");
32 require_once("$srcdir/invoice_summary.inc.php");
33 require_once($GLOBALS['OE_SITE_DIR'] . "/statement.inc.php");
34 require_once("$srcdir/parse_era.inc.php");
35 require_once("$srcdir/sl_eob.inc.php");
36 //===============================================================================
37 // This is called back by parse_era() if we are processing X12 835's.
38 $alertmsg = '';
39 $where = '';
40 $eraname = '';
41 $eracount = 0;
42 $Processed=0;
43 function era_callback(&$out) {
44 global $where, $eracount, $eraname;
45 ++$eracount;
46 $eraname = $out['gs_date'] . '_' . ltrim($out['isa_control_number'], '0') .
47 '_' . ltrim($out['payer_id'], '0');
48 list($pid, $encounter, $invnumber) = slInvoiceNumber($out);
49 if ($pid && $encounter) {
50 if ($where) $where .= ' OR ';
51 $where .= "( f.pid = '$pid' AND f.encounter = '$encounter' )";
54 //===============================================================================
55 // Handle X12 835 file upload.
56 if ($_FILES['form_erafile']['size']) {
57 $tmp_name = $_FILES['form_erafile']['tmp_name'];
58 // Handle .zip extension if present. Probably won't work on Windows.
59 if (strtolower(substr($_FILES['form_erafile']['name'], -4)) == '.zip') {
60 rename($tmp_name, "$tmp_name.zip");
61 exec("unzip -p $tmp_name.zip > $tmp_name");
62 unlink("$tmp_name.zip");
64 $alertmsg .= parse_era($tmp_name, 'era_callback');
65 $erafullname = $GLOBALS['OE_SITE_DIR'] . "/era/$eraname.edi";
66 if (is_file($erafullname)) {
67 $alertmsg .= xl("Warning").': '. xl("Set").' '.$eraname.' '. xl("was already uploaded").' ';
68 if (is_file($GLOBALS['OE_SITE_DIR'] . "/era/$eraname.html"))
70 $Processed=1;
71 $alertmsg .= xl("and processed.").' ';
73 else
74 $alertmsg .= xl("but not yet processed.").' ';;
76 rename($tmp_name, $erafullname);
77 } // End 835 upload
78 //===============================================================================
79 $DateFormat=DateFormatRead();
80 //===============================================================================
82 <html>
83 <head>
84 <?php if (function_exists('html_header_show')) html_header_show(); ?>
86 <link rel="stylesheet" href="<?php echo $css_header;?>" type="text/css">
87 <script type="text/javascript" src="<?php echo $GLOBALS['webroot'] ?>/library/dialog.js?v=<?php echo $v_js_includes; ?>"></script>
89 <link rel="stylesheet" href="<?php echo $css_header;?>" type="text/css">
90 <link rel="stylesheet" type="text/css" href="../../library/js/fancybox/jquery.fancybox-1.2.6.css" media="screen" />
91 <style type="text/css">@import url(../../library/dynarch_calendar.css);</style>
92 <script type="text/javascript" src="../../library/textformat.js"></script>
93 <script type="text/javascript" src="../../library/dynarch_calendar.js"></script>
94 <?php include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?>
95 <script type="text/javascript" src="../../library/dynarch_calendar_setup.js"></script>
96 <script type="text/javascript" src="../../library/dialog.js?v=<?php echo $v_js_includes; ?>"></script>
97 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-3-2/index.js"></script>
98 <?php include_once("{$GLOBALS['srcdir']}/ajax/payment_ajax_jav.inc.php"); ?>
99 <script type="text/javascript" src="../../library/js/common.js"></script>
100 <script type="text/javascript" src="../../library/js/fancybox/jquery.fancybox-1.2.6.js"></script>
101 <script language='JavaScript'>
102 var mypcc = '1';
103 </script>
104 <script type="text/javascript" language="javascript" >
105 function Validate()
107 if(document.getElementById('uploadedfile').value=='')
109 alert("<?php echo htmlspecialchars( xl('Please Choose a file'), ENT_QUOTES) ?>");
110 return false;
112 if(document.getElementById('hidden_type_code').value=='')
114 alert("<?php echo htmlspecialchars( xl('Select Insurance, by typing'), ENT_QUOTES) ?>");
115 document.getElementById('type_code').focus();
116 return false;
118 if(document.getElementById('hidden_type_code').value!=document.getElementById('div_insurance_or_patient').innerHTML)
120 alert("<?php echo htmlspecialchars( xl('Take Insurance, from Drop Down'), ENT_QUOTES) ?>");
121 document.getElementById('type_code').focus();
122 return false;
124 top.restoreSession();
125 document.forms[0].submit();
127 function OnloadAction()
128 {//Displays message after upload action,and popups the details.
129 after_value=document.getElementById('after_value').value;
130 if(after_value!='')
132 alert(after_value);
134 <?php
135 if ($_FILES['form_erafile']['size']) {
137 var f = document.forms[0];
138 var debug = <?php echo htmlspecialchars($_REQUEST['form_without']*1);?> ;
139 var paydate = f.check_date.value;
140 var post_to_date = f.post_to_date.value;
141 var deposit_date = f.deposit_date.value;
142 window.open('sl_eob_process.php?eraname=<?php echo htmlspecialchars($eraname); ?>&debug=' + debug + '&paydate=' + paydate + '&post_to_date=' + post_to_date + '&deposit_date=' + deposit_date + '&original=original' + '&InsId=<?php echo htmlspecialchars(formData('hidden_type_code')); ?>' , '_blank');
143 return false;
144 <?php
148 </script>
149 <script language="javascript" type="text/javascript">
150 document.onclick=HideTheAjaxDivs;
151 </script>
152 <style>
153 #ajax_div_insurance {
154 position: absolute;
155 z-index:10;
156 background-color: #FBFDD0;
157 border: 1px solid #ccc;
158 padding: 10px;
160 .bottom{border-bottom:1px solid black;}
161 .top{border-top:1px solid black;}
162 .left{border-left:1px solid black;}
163 .right{border-right:1px solid black;}
164 </style>
165 </head>
166 <body class="body_top" onLoad="OnloadAction()">
167 <form enctype="multipart/form-data" method='post' action='era_payments.php' style="display:inline" >
168 <table width="455" border="0" cellspacing="0" cellpadding="0">
169 <tr>
170 <td colspan="3" align="left"><b><?php echo htmlspecialchars( xl('Payments'), ENT_QUOTES) ?></b></td>
171 </tr>
172 <tr height="15">
173 <td colspan="3" align="left" ></td>
174 </tr>
175 <tr>
176 <td colspan="3" align="left">
177 <ul class="tabNav">
178 <li><a href='new_payment.php'><?php echo htmlspecialchars( xl('New Payment'), ENT_QUOTES) ?></a></li>
179 <li><a href='search_payments.php'><?php echo htmlspecialchars( xl('Search Payment'), ENT_QUOTES) ?></a></li>
180 <li class='current'><a href='era_payments.php'><?php echo htmlspecialchars( xl('ERA Posting'), ENT_QUOTES) ?></a></li>
181 </ul> </td>
182 </tr>
183 <tr>
184 <td colspan="3" align="left" >
185 <table width="455" border="0" cellspacing="0" cellpadding="10" bgcolor="#DEDEDE"><tr><td>
186 <table width="435" border="0" style="border:1px solid black" cellspacing="0" cellpadding="0">
187 <tr height="5">
188 <td width="5" align="left" ></td>
189 <td width="85" align="left" ></td>
190 <td width="105" align="left" ></td>
191 <td width="240" align="left" ></td>
192 </tr>
193 <tr>
194 <td align="left"></td>
195 <td colspan="3" align="left"><font class='title'><?php echo htmlspecialchars( xl('ERA'), ENT_QUOTES) ?></font></td>
196 </tr>
197 <tr height="5">
198 <td align="left" ></td>
199 <td colspan="3" align="left" ></td>
200 </tr>
201 <tr>
202 <td align="left" class="text"></td>
203 <td align="left" class="text"><?php echo htmlspecialchars( xl('Date'), ENT_QUOTES).':' ?></td>
204 <td align="left" class="text"><input type='text' size='6' name='check_date' id='check_date' value="<?php echo formData('check_date') ?>" class="class1 text " onKeyDown="PreventIt(event)" />
205 <img src='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align='texttop'
206 id='img_checkdate' border='0' alt='[?]' style='cursor:pointer'
207 title='<?php echo htmlspecialchars( xl('Click here to choose a date'), ENT_QUOTES); ?>' />
208 <script>
209 Calendar.setup({inputField:"check_date", ifFormat:"<?php echo $DateFormat; ?>", button:"img_checkdate"});
210 </script></td>
211 <td align="left" class="text"><input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
212 <input name="form_erafile" id="uploadedfile" type="file" class="text" size="10" style="display:inline" /></td>
213 </tr>
214 <tr>
215 <td align="left" class="text"></td>
216 <td align="left" class="text"><?php echo htmlspecialchars( xl('Post To Date'), ENT_QUOTES).':' ?></td>
217 <td align="left" class="text"><input type='text' size='6' name='post_to_date' id='post_to_date' value="<?php echo formData('post_to_date') ?>" class="class1 text " onKeyDown="PreventIt(event)" />
218 <img src='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align='texttop'
219 id='img_post_to_date' border='0' alt='[?]' style='cursor:pointer'
220 title='<?php echo htmlspecialchars( xl('Click here to choose a date'), ENT_QUOTES); ?>' />
221 <script>
222 Calendar.setup({inputField:"post_to_date", ifFormat:"<?php echo $DateFormat; ?>", button:"img_post_to_date"});
223 </script></td>
224 <td align="left" class="text"><input type='checkbox' name='form_without' value='1' <?php echo $_REQUEST['form_without']*1==1 || ($_REQUEST['form_without']*1==0 && !isset($_FILES['form_erafile'])) ? "checked" : '' ?>/> <?php echo htmlspecialchars( xl('Without Update'), ENT_QUOTES); ?></td>
225 </tr>
226 <tr>
227 <td align="left" class="text"></td>
228 <td align="left" class="text"><?php echo htmlspecialchars( xl('Deposit Date'), ENT_QUOTES).':' ?></td>
229 <td align="left" class="text"><input type='text' size='6' name='deposit_date' id='deposit_date' onKeyDown="PreventIt(event)" class="text " value="<?php echo formData('deposit_date') ?>" />
230 <img src='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align='texttop'
231 id='img_depositdate' border='0' alt='[?]' style='cursor:pointer'
232 title='<?php echo htmlspecialchars( xl('Click here to choose a date'), ENT_QUOTES); ?>' />
233 <script>
234 Calendar.setup({inputField:"deposit_date", ifFormat:"<?php echo $DateFormat; ?>", button:"img_depositdate"});
235 </script></td>
236 <td align="left" class="text"></td>
237 </tr>
238 <tr>
239 <td align="left" class="text"></td>
240 <td align="left" class="text"><?php echo htmlspecialchars( xl('Insurance'), ENT_QUOTES).':' ?></td>
241 <td colspan="2" align="left" class="text">
244 <table width="335" border="0" cellspacing="0" cellpadding="0">
245 <tr>
246 <td width="280">
247 <input type="hidden" id="hidden_ajax_close_value" value="<?php echo formData('type_code') ?>" /><input name='type_code' id='type_code' class="text "
248 style=" width:280px;" onKeyDown="PreventIt(event)" value="<?php echo formData('type_code') ?>" autocomplete="off" /><br>
249 <!--onKeyUp="ajaxFunction(event,'non','search_payments.php');"-->
250 <div id='ajax_div_insurance_section'>
251 <div id='ajax_div_insurance_error'>
252 </div>
253 <div id="ajax_div_insurance" style="display:none;"></div>
254 </div>
255 </div>
257 </td>
258 <td width="50" style="padding-left:5px;"><div name="div_insurance_or_patient" id="div_insurance_or_patient" class="text" style="border:1px solid black; padding-left:5px; width:50px; height:17px;"><?php echo formData('hidden_type_code') ?></div><input type="hidden" name="description" id="description" /></td>
259 </tr>
260 </table>
265 </td>
266 </tr>
268 <tr height="5">
269 <td colspan="4" align="center" ><table border="0" cellspacing="0" cellpadding="0">
270 <tr>
271 <td><a href="#" onClick="javascript:return Validate();" class="css_button"><span><?php echo htmlspecialchars( xl('Process ERA File'), ENT_QUOTES);?></span></a></td>
272 </tr>
273 </table></td>
274 </tr>
275 <tr height="5">
276 <td align="left" ></td>
277 <td colspan="3" align="left" ></td>
278 </tr>
279 </table>
280 </td></tr>
281 </table>
282 </td>
283 </tr>
284 </table>
285 <input type="hidden" name="after_value" id="after_value" value="<?php echo htmlspecialchars($alertmsg, ENT_QUOTES);?>"/>
286 <input type="hidden" name="hidden_type_code" id="hidden_type_code" value="<?php echo formData('hidden_type_code') ?>"/>
287 <input type='hidden' name='ajax_mode' id='ajax_mode' value='' />
288 </form>
289 </body>
290 </html>