2 // Copyright (C) 2006-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.
10 $sanitize_all_escapes=true;
13 //STOP FAKE REGISTER GLOBALS
14 $fake_register_globals=false;
17 include_once("../globals.php");
18 include_once("$srcdir/acl.inc");
19 require_once("$srcdir/options.inc.php");
20 require_once("$srcdir/formdata.inc.php");
21 require_once("$srcdir/htmlspecialchars.inc.php");
23 // Collect user id if editing entry
24 $userid = $_REQUEST['userid'];
26 // Collect type if creating a new entry
27 $type = $_REQUEST['type'];
31 function invalue($name) {
32 $fld = add_escape_custom(trim($_POST[$name]));
39 <title
><?php
echo $userid ?
xlt('Edit') : xlt('Add New') ?
> <?php
echo xlt('Person'); ?
></title
>
40 <link rel
="stylesheet" href
='<?php echo $css_header ?>' type
='text/css'>
41 <script type
="text/javascript" src
="../../library/js/jquery.1.3.2.js"></script
>
44 td
{ font
-size
:10pt
; }
52 font
-family
:sans
-serif
;
58 <script language
="JavaScript">
60 var type_options_js
= Array();
62 // Collect the type options. Possible values are:
63 // 1 = Unassigned (default to person centric)
65 // 3 = Company Centric
66 $sql = sqlStatement("SELECT option_id, option_value FROM list_options WHERE " .
67 "list_id = 'abook_type'");
68 while ($row_query = sqlFetchArray($sql)) {
69 echo "type_options_js"."['" . attr($row_query['option_id']) . "']=" . attr($row_query['option_value']) . ";\n";
73 // Process to customize the form by type
74 function typeSelect(a
) {
75 if (type_options_js
[a
] == 3) {
77 // 1) Hide the person Name entries
78 // 2) Hide the Specialty entry
79 // 3) Show the director Name entries
80 document
.getElementById("nameRow").style
.display
= "none";
81 document
.getElementById("specialtyRow").style
.display
= "none";
82 document
.getElementById("nameDirectorRow").style
.display
= "";
86 // 1) Hide the director Name entries
87 // 2) Show the person Name entries
88 // 3) Show the Specialty entry
89 document
.getElementById("nameDirectorRow").style
.display
= "none";
90 document
.getElementById("nameRow").style
.display
= "";
91 document
.getElementById("specialtyRow").style
.display
= "";
98 <body
class="body_top">
100 // If we are saving, then save and close the window.
102 if ($_POST['form_save']) {
104 // Collect the form_abook_type option value
105 // (ie. patient vs company centric)
106 $type_sql_row = sqlQuery("SELECT `option_value` FROM `list_options` WHERE `list_id` = 'abook_type' AND `option_id` = ?", array(trim($_POST['form_abook_type'])));
107 $option_abook_type = $type_sql_row['option_value'];
108 // Set up any abook_type specific settings
109 if ($option_abook_type == 3) {
111 $form_title = invalue('form_director_title');
112 $form_fname = invalue('form_director_fname');
113 $form_lname = invalue('form_director_lname');
114 $form_mname = invalue('form_director_mname');
118 $form_title = invalue('form_title');
119 $form_fname = invalue('form_fname');
120 $form_lname = invalue('form_lname');
121 $form_mname = invalue('form_mname');
126 $query = "UPDATE users SET " .
127 "abook_type = " . invalue('form_abook_type') . ", " .
128 "title = " . $form_title . ", " .
129 "fname = " . $form_fname . ", " .
130 "lname = " . $form_lname . ", " .
131 "mname = " . $form_mname . ", " .
132 "specialty = " . invalue('form_specialty') . ", " .
133 "organization = " . invalue('form_organization') . ", " .
134 "valedictory = " . invalue('form_valedictory') . ", " .
135 "assistant = " . invalue('form_assistant') . ", " .
136 "federaltaxid = " . invalue('form_federaltaxid') . ", " .
137 "upin = " . invalue('form_upin') . ", " .
138 "npi = " . invalue('form_npi') . ", " .
139 "taxonomy = " . invalue('form_taxonomy') . ", " .
140 "email = " . invalue('form_email') . ", " .
141 "url = " . invalue('form_url') . ", " .
142 "street = " . invalue('form_street') . ", " .
143 "streetb = " . invalue('form_streetb') . ", " .
144 "city = " . invalue('form_city') . ", " .
145 "state = " . invalue('form_state') . ", " .
146 "zip = " . invalue('form_zip') . ", " .
147 "street2 = " . invalue('form_street2') . ", " .
148 "streetb2 = " . invalue('form_streetb2') . ", " .
149 "city2 = " . invalue('form_city2') . ", " .
150 "state2 = " . invalue('form_state2') . ", " .
151 "zip2 = " . invalue('form_zip2') . ", " .
152 "phone = " . invalue('form_phone') . ", " .
153 "phonew1 = " . invalue('form_phonew1') . ", " .
154 "phonew2 = " . invalue('form_phonew2') . ", " .
155 "phonecell = " . invalue('form_phonecell') . ", " .
156 "fax = " . invalue('form_fax') . ", " .
157 "notes = " . invalue('form_notes') . " " .
158 "WHERE id = '" . add_escape_custom($userid) . "'";
159 sqlStatement($query);
163 $userid = sqlInsert("INSERT INTO users ( " .
164 "username, password, authorized, info, source, " .
165 "title, fname, lname, mname, " .
166 "federaltaxid, federaldrugid, upin, facility, see_auth, active, npi, taxonomy, " .
167 "specialty, organization, valedictory, assistant, billname, email, url, " .
168 "street, streetb, city, state, zip, " .
169 "street2, streetb2, city2, state2, zip2, " .
170 "phone, phonew1, phonew2, phonecell, fax, notes, abook_type " .
174 "0, " . // authorized
181 invalue('form_federaltaxid') . ", " .
182 "'', " . // federaldrugid
183 invalue('form_upin') . ", " .
187 invalue('form_npi') . ", " .
188 invalue('form_taxonomy') . ", " .
189 invalue('form_specialty') . ", " .
190 invalue('form_organization') . ", " .
191 invalue('form_valedictory') . ", " .
192 invalue('form_assistant') . ", " .
194 invalue('form_email') . ", " .
195 invalue('form_url') . ", " .
196 invalue('form_street') . ", " .
197 invalue('form_streetb') . ", " .
198 invalue('form_city') . ", " .
199 invalue('form_state') . ", " .
200 invalue('form_zip') . ", " .
201 invalue('form_street2') . ", " .
202 invalue('form_streetb2') . ", " .
203 invalue('form_city2') . ", " .
204 invalue('form_state2') . ", " .
205 invalue('form_zip2') . ", " .
206 invalue('form_phone') . ", " .
207 invalue('form_phonew1') . ", " .
208 invalue('form_phonew2') . ", " .
209 invalue('form_phonecell') . ", " .
210 invalue('form_fax') . ", " .
211 invalue('form_notes') . ", " .
212 invalue('form_abook_type') . " " .
218 else if ($_POST['form_delete']) {
221 // Be careful not to delete internal users.
222 sqlStatement("DELETE FROM users WHERE id = ? AND username = ''", array($userid));
227 if ($_POST['form_save'] ||
$_POST['form_delete']) {
228 // Close this window and redisplay the updated list.
229 echo "<script language='JavaScript'>\n";
230 if ($info_msg) echo " alert('".addslashes($info_msg)."');\n";
231 echo " window.close();\n";
232 echo " if (opener.refreshme) opener.refreshme();\n";
233 echo "</script></body></html>\n";
238 $row = sqlQuery("SELECT * FROM users WHERE id = ?", array($userid));
241 if ($type) { // note this only happens when its new
243 $row['abook_type'] = $type;
248 <script language
="JavaScript">
249 $
(document
).ready(function() {
250 // customize the form via the type options
251 typeSelect("<?php echo attr($row['abook_type']); ?>");
255 <form method
='post' name
='theform' action
='addrbook_edit.php?userid=<?php echo attr($userid) ?>'>
258 <table border
='0' width
='100%'>
260 <?php
if (acl_check('admin', 'practice' )) { // allow choose type option if have admin access ?>
262 <td width
='1%' nowrap
><b
><?php
echo xlt('Type'); ?
>:</b
></td
>
265 echo generate_select_list('form_abook_type', 'abook_type', $row['abook_type'], '', 'Unassigned', '', 'typeSelect(this.value)');
269 <?php
} // end of if has admin access ?>
272 <td width
='1%' nowrap
><b
><?php
echo xlt('Name'); ?
>:</b
></td
>
275 generate_form_field(array('data_type'=>1,'field_id'=>'title','list_id'=>'titles','empty_title'=>' '), $row['title']);
277 <b
><?php
echo xlt('Last'); ?
>:</b
><input type
='text' size
='10' name
='form_lname' class='inputtext'
278 maxlength
='50' value
='<?php echo attr($row['lname
']); ?>'/> 
;
279 <b
><?php
echo xlt('First'); ?
>:</b
> <input type
='text' size
='10' name
='form_fname' class='inputtext'
280 maxlength
='50' value
='<?php echo attr($row['fname
']); ?>' /> 
;
281 <b
><?php
echo xlt('Middle'); ?
>:</b
> <input type
='text' size
='4' name
='form_mname' class='inputtext'
282 maxlength
='50' value
='<?php echo attr($row['mname
']); ?>' />
286 <tr id
="specialtyRow">
287 <td nowrap
><b
><?php
echo xlt('Specialty'); ?
>:</b
></td
>
289 <input type
='text' size
='40' name
='form_specialty' maxlength
='250'
290 value
='<?php echo attr($row['specialty
']); ?>'
291 style
='width:100%' class='inputtext' />
296 <td nowrap
><b
><?php
echo xlt('Organization'); ?
>:</b
></td
>
298 <input type
='text' size
='40' name
='form_organization' maxlength
='250'
299 value
='<?php echo attr($row['organization
']); ?>'
300 style
='width:100%' class='inputtext' />
304 <tr id
="nameDirectorRow">
305 <td width
='1%' nowrap
><b
><?php
echo xlt('Director Name'); ?
>:</b
></td
>
308 generate_form_field(array('data_type'=>1,'field_id'=>'director_title','list_id'=>'titles','empty_title'=>' '), $row['title']);
310 <b
><?php
echo xlt('Last'); ?
>:</b
><input type
='text' size
='10' name
='form_director_lname' class='inputtext'
311 maxlength
='50' value
='<?php echo attr($row['lname
']); ?>'/> 
;
312 <b
><?php
echo xlt('First'); ?
>:</b
> <input type
='text' size
='10' name
='form_director_fname' class='inputtext'
313 maxlength
='50' value
='<?php echo attr($row['fname
']); ?>' /> 
;
314 <b
><?php
echo xlt('Middle'); ?
>:</b
> <input type
='text' size
='4' name
='form_director_mname' class='inputtext'
315 maxlength
='50' value
='<?php echo attr($row['mname
']); ?>' />
320 <td nowrap
><b
><?php
echo xlt('Valedictory'); ?
>:</b
></td
>
322 <input type
='text' size
='40' name
='form_valedictory' maxlength
='250'
323 value
='<?php echo attr($row['valedictory
']); ?>'
324 style
='width:100%' class='inputtext' />
329 <td nowrap
><b
><?php
echo xlt('Home Phone'); ?
>:</b
></td
>
331 <input type
='text' size
='11' name
='form_phone' value
='<?php echo attr($row['phone
']); ?>'
332 maxlength
='30' class='inputtext' /> 
;
333 <b
><?php
echo xlt('Mobile'); ?
>:</b
><input type
='text' size
='11' name
='form_phonecell'
334 maxlength
='30' value
='<?php echo attr($row['phonecell
']); ?>' class='inputtext' />
339 <td nowrap
><b
><?php
echo xlt('Work Phone'); ?
>:</b
></td
>
341 <input type
='text' size
='11' name
='form_phonew1' value
='<?php echo attr($row['phonew1
']); ?>'
342 maxlength
='30' class='inputtext' /> 
;
343 <b
><?php
echo xlt('2nd'); ?
>:</b
><input type
='text' size
='11' name
='form_phonew2' value
='<?php echo attr($row['phonew2
']); ?>'
344 maxlength
='30' class='inputtext' /> 
;
345 <b
><?php
echo xlt('Fax'); ?
>:</b
> <input type
='text' size
='11' name
='form_fax' value
='<?php echo attr($row['fax
']); ?>'
346 maxlength
='30' class='inputtext' />
351 <td nowrap
><b
><?php
echo xlt('Assistant'); ?
>:</b
></td
>
353 <input type
='text' size
='40' name
='form_assistant' maxlength
='250'
354 value
='<?php echo attr($row['assistant
']); ?>'
355 style
='width:100%' class='inputtext' />
360 <td nowrap
><b
><?php
echo xlt('Email'); ?
>:</b
></td
>
362 <input type
='text' size
='40' name
='form_email' maxlength
='250'
363 value
='<?php echo attr($row['email
']); ?>'
364 style
='width:100%' class='inputtext' />
369 <td nowrap
><b
><?php
echo xlt('Website'); ?
>:</b
></td
>
371 <input type
='text' size
='40' name
='form_url' maxlength
='250'
372 value
='<?php echo attr($row['url
']); ?>'
373 style
='width:100%' class='inputtext' />
378 <td nowrap
><b
><?php
echo xlt('Main Address'); ?
>:</b
></td
>
380 <input type
='text' size
='40' name
='form_street' maxlength
='60'
381 value
='<?php echo attr($row['street
']); ?>'
382 style
='width:100%' class='inputtext' />
387 <td nowrap
> 
;</td
>
389 <input type
='text' size
='40' name
='form_streetb' maxlength
='60'
390 value
='<?php echo attr($row['streetb
']); ?>'
391 style
='width:100%' class='inputtext' />
396 <td nowrap
><b
><?php
echo xlt('City'); ?
>:</b
></td
>
398 <input type
='text' size
='10' name
='form_city' maxlength
='30'
399 value
='<?php echo attr($row['city
']); ?>' class='inputtext' /> 
;
400 <b
><?php
echo xlt('State')."/".xlt('county'); ?
>:</b
> <input type
='text' size
='10' name
='form_state' maxlength
='30'
401 value
='<?php echo attr($row['state
']); ?>' class='inputtext' /> 
;
402 <b
><?php
echo xlt('Postal code'); ?
>:</b
> <input type
='text' size
='10' name
='form_zip' maxlength
='20'
403 value
='<?php echo attr($row['zip
']); ?>' class='inputtext' />
408 <td nowrap
><b
><?php
echo xlt('Alt Address'); ?
>:</b
></td
>
410 <input type
='text' size
='40' name
='form_street2' maxlength
='60'
411 value
='<?php echo attr($row['street2
']); ?>'
412 style
='width:100%' class='inputtext' />
417 <td nowrap
> 
;</td
>
419 <input type
='text' size
='40' name
='form_streetb2' maxlength
='60'
420 value
='<?php echo attr($row['streetb2
']); ?>'
421 style
='width:100%' class='inputtext' />
426 <td nowrap
><b
><?php
echo xlt('City'); ?
>:</b
></td
>
428 <input type
='text' size
='10' name
='form_city2' maxlength
='30'
429 value
='<?php echo attr($row['city2
']); ?>' class='inputtext' /> 
;
430 <b
><?php
echo xlt('State')."/".xlt('county'); ?
>:</b
> <input type
='text' size
='10' name
='form_state2' maxlength
='30'
431 value
='<?php echo attr($row['state2
']); ?>' class='inputtext' /> 
;
432 <b
><?php
echo xlt('Postal code'); ?
>:</b
> <input type
='text' size
='10' name
='form_zip2' maxlength
='20'
433 value
='<?php echo attr($row['zip2
']); ?>' class='inputtext' />
438 <td nowrap
><b
><?php
echo xlt('UPIN'); ?
>:</b
></td
>
440 <input type
='text' size
='6' name
='form_upin' maxlength
='6'
441 value
='<?php echo attr($row['upin
']); ?>' class='inputtext' /> 
;
442 <b
><?php
echo xlt('NPI'); ?
>:</b
> <input type
='text' size
='10' name
='form_npi' maxlength
='10'
443 value
='<?php echo attr($row['npi
']); ?>' class='inputtext' /> 
;
444 <b
><?php
echo xlt('TIN'); ?
>:</b
> <input type
='text' size
='10' name
='form_federaltaxid' maxlength
='10'
445 value
='<?php echo attr($row['federaltaxid
']); ?>' class='inputtext' /> 
;
446 <b
><?php
echo xlt('Taxonomy'); ?
>:</b
> <input type
='text' size
='10' name
='form_taxonomy' maxlength
='10'
447 value
='<?php echo attr($row['taxonomy
']); ?>' class='inputtext' />
452 <td nowrap
><b
><?php
echo xlt('Notes'); ?
>:</b
></td
>
454 <textarea rows
='3' cols
='40' name
='form_notes' style
='width:100%'
455 wrap
='virtual' class='inputtext' /><?php
echo text($row['notes']) ?
></textarea
>
463 <input type
='submit' name
='form_save' value
='<?php echo xla('Save
'); ?>' />
465 <?php
if ($userid && !$row['username']) { ?
>
467 <input type
='submit' name
='form_delete' value
='<?php echo xla('Delete
'); ?>' style
='color:red' />
471 <input type
='button' value
='<?php echo xla('Cancel
'); ?>' onclick
='window.close()' />