And So It Begins: Fall


I like rain, Fall starts.

I hate hate solitude, so lonesome.

I like music, radio fades in and out.

Water me, inside’s a drought.

I’ve seen it all, all a dull hum.

It goes by quickly, many broken parts.

Thanks for the inspiration; you know who you are. I have been super busy with class and work. It’s really wide because the word wrapping into the code upload funtion for this blog but if you are curious here is one such project I am working on at work. All original code. Nothing spectacular, but you know, check it out if you are curious about PHP/MySQL. Again, it’s really wide and will fill your screen. To go back, hit your back button or click on home.

<?php
 
/****************************************************************************
 * chg_rebilling.php
 * $Date: 2005/09/12 16:50:53 $
 * $Author: michaelh $
 * $Revision: 1.8 $
 * $Log: chg_rebilling.php,v $
 * Revision 1.8 2005/09/12 16:50:53 michaelh
 * Changed test flag back to "1" since we are not releasing the full version due to lack of testing time.
*
 * Revision 1.7 2005/09/07 18:18:32 michaelh
 * Corrected some logic and other processes in the chg max machines and chg plan level. Rearranged error messages again.
*
 * Revision 1.6 2005/08/26 18:09:36 michaelh
 * Fixed various formatting issues, standardized notes, fixed indentation, added general error for missing rebill types, added session level controlled 'add addpc' & 'remove addpc' items, changed code to use new product_cat and product_cat_xref tables, changed flag to '0' regarding testing only version (makes page operational), fixed font of error messages, changed code for the drop-down list to show "no change" by default and modified the subsequent code that handles it, added 'back to account' link before error messages on top, fixed error checking for core rebill items that (again from aforementioned tables), fixed watch note formatting, and other minor fixes.
*
 * Bug 13734
*
 * Revision 1.5 2005/08/18 00:14:35 michaelh
 * Fixed spelling.
*
 * Revision 1.4 2005/08/17 23:51:53 michaelh
 * Added error checking to the transition override select.
*
 * Revision 1.3 2005/08/17 19:43:33 michaelh
 * Added test display, added init string, fixed select statement.
*
 * Revision 1.2 2005/08/17 18:29:15 michaelh
 * New file for CSI that will handle changes to the rebill items from the chg_rebilling.php file for an account. Initial release has the ability to change these items disabled so this file will not be used.
*
 * Added CVS Logging to header.
*
***************************************************************************/
 
ini_set("session.save_handler", "files");
session_start();
require_once("includes/DB_utils_inc.php");
include ("includes/misc_fns_inc.php");
 
load_get_vars();
load_post_vars();
 
//Set variable(s). These are used to control error handling.
$duplicate_items = 0;
$no_core_items = 0;
$no_rebill_items = 0;
$general_error = 0;
 
//Set variable(s). These are used throughout the page.
$no_addpc_items = 0;
$no_konx_items = 0;
$number_of_mac = 0;
$freq_mismatch = 0;
$core_rebilling_item = '';
 
//Disable ability to make changes 1 = YES, 0 = NO
$display_only_test = 1;
 
//Start HTML, show back link.
?>
 
<html>
<head>
<title>Rebill Items</title>
<meta content="">
<style></style>
</head>
<body>
 
<div align="center">
<h2>Rebill Items</h2>
<p><?php show_link_line(); ?></p>
<p><a href="display_acct.php?acct_id=<?php echo $acct_id ?>">Back to the Account Display</a></p>
 
<?php
 
//Get plan level of account so we can display the correct choices & use it for duplicate test.
$sql = "SELECT Type_String_ID
FROM Account_Index
WHERE Account_ID = ? ";
$ret = DB_SELECT("Accounting_Dynamic", $result_type_string, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$type_string = $result_type_string[0]['Type_String_ID'];
 
//Load rebill items for account with info from products table.
$sql = "SELECT products.eace_days, products.description,
products.sku, products.price, products.rebill_type, products.product_id, rebill_items.quantity
FROM products, rebill_items
WHERE rebill_items.account_id = ?
AND rebill_items.product_id = products.product_id
ORDER BY products.rebill_type ASC";
$ret = DB_SELECT("Customer", $result_rebill_items, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
//Load rebill items for an account. This is to detect items that do not exist on the products table.
$sql = "SELECT product_id
FROM rebill_items
WHERE account_id = ? ";
$ret = DB_SELECT("Customer", $result_actual_rebill_items, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
//Find rebill frequency. Set display variable to null if there is none found.
$sql = "SELECT products.eace_days
FROM products, rebill_items
WHERE rebill_items.account_id = ?
AND rebill_items.product_id = products.product_id
AND products.rebill_type = 'core'";
$ret = DB_SELECT("Customer", $result_days, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$display_days_top = "<i>null</i>";
 
if(count($result_days) >= 1)
{
$display_days_top = $result_days[0]['eace_days'];
}
 
/*************************************NOTES*****************************************
*Check to see if add-ons exist. Any duplicates? If yes, disable the submit button and display an error message
*If no add-ons exist, push a multiplier onto the end of the quantity for the core SKU.
*Thus the quanity will have a multiplier so the amount rebilled displayed is more clear.
*We also need to check to see if a mismatch in rebilling freq between the items exists and offer a way to fix it.
**********************************************************************************/
 
//We have the rebill items from above: step through them. Increment counters for error handling and/or display.
$cnt_core = 0;
$cnt_addpc = 0;
$cnt_konx = 0;
$cnt_special = 0;
$cnt_ignore = 0;
 
for($i = 0; $i < count($result_rebill_items); $i++)
{
$prod_id_check = $result_rebill_items[$i]['product_id'];
$check_quantity = $result_rebill_items[$i]['quantity'];
 
$sql = "SELECT product_cat.category
FROM products, product_cat, product_cat_xref
WHERE products.product_id = ?
AND products.product_id = product_cat_xref.product_id
AND product_cat.category_id = product_cat_xref.category_id ";
$ret = DB_SELECT("Customer", $result_check_type, $sql, $prod_id_check);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$duplicate_check = $result_check_type[0]['category'];

//fixme
// echo "[$duplicate_check] VAR DUPLICATE_CHECK <br />\n";
// echo "[$prod_id_check] VAR PRODUCT_ID <br />\n";
// echo "[$check_quantity] VAR QUANTITY <br />\n"; 
 
if($duplicate_check == 'core')
{
$cnt_core++;
$core_rebilling_item = $prod_id_check;
//More than one core item or if that core has quantity not equal to one, error.
if($cnt_core > 1 || $check_quantity != 1)
{
$duplicate_items = 1;
}
}
elseif($duplicate_check == 'addpc')
{
$cnt_addpc++;
$no_addpc_items++;
if($cnt_addpc > 1)
{
$duplicate_items = 1;
}
}
elseif($duplicate_check == 'konx')
{
$cnt_konx++;
$no_konx_items++;
if($cnt_konx > 1)
{
$duplicate_items = 1;
}
}
elseif($duplicate_check == 'special')
{
//Treat as core SKU. Not currently doing anything special to these.
$cnt_special++;
if($cnt_special > 1)
{
$duplicate_items = 1;
}
}
elseif($duplicate_check == 'ignore')
{
$cnt_ignore++;
}
else
{
echo "ERROR: Product ID [$prod_id_check] not found in the product_cat_xfer table.<br /> ";
$general_error = 1;
}
}
 
//Check for mismatch between core frequency and addons. If core does not have frequency that is valid, do not allow change but display message.
 
//For freq_mistach check.
$core_freq = $display_days_top;
 
//First, let's get the list of valid rebill frequencies for which we can check against.
$sql = "SELECT DISTINCT eace_days
FROM rebill_chg_plan ";
$ret = DB_SELECT("Customer", $result_valid_days, $sql);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$invalid_core_freq = 1;
for($i = 0; $i < count($result_valid_days); $i++)
{
$valid_days = $result_valid_days[$i]['eace_days'];
if($core_freq == $valid_days)
{
$invalid_core_freq = 0;
break;
}
}
 
if($invalid_core_freq == 0 && ($no_addpc_items != 0 || $no_konx_items != 0))
{
//The core has a good frequency and there are addons. We will proceed with the frequency check.
//First load the rebill items for the account that are type 'addpc' and 'konx'
$sql = "SELECT rebill_chg_plan.eace_days
FROM products, product_cat, product_cat_xref, rebill_chg_plan, rebill_items
WHERE rebill_items.account_id = ?
AND rebill_items.product_id = rebill_chg_plan.product_id
AND rebill_items.product_id = products.product_id
AND products.product_id = product_cat_xref.product_id
AND product_cat.category_id = product_cat_xref.category_id
AND (product_cat.category = 'addpc' OR product_cat.category = 'konx')
GROUP BY rebill_items.product_id ";
$ret = DB_SELECT("Customer", $result_check_freq, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
for($i = 0; $i < count($result_check_freq); $i++)
{
$check_freq = $result_check_freq[$i]['eace_days'];
if($core_freq != $check_freq)
{
$freq_mismatch = 1;
}
}
}
 
//fixme
//print_r($result_check_freq);
//echo "$core_freq CORE<br />";
//echo "$check_freq DAYS<br />";
//echo "$freq_mismatch MISMATCH<br />";
 
//If the account is not SVIP, it should not have konx addons.
if($type_string != 17 && $no_konx_items != 0)
{
echo "ERROR: Non-SVIP account has Addons Type: konx.<br />";
$general_error = 1;
}
 
//Checking for an unusual case. Not stopping for them but making the user aware.
if($no_konx_items != 0 && $no_addpc_items == 0)
{
echo "NOTE: There are no Addon Type 'addpc' but there are Addon Type 'konx'";
}
 
//If the number of rebill items doesn't match up with the ones displayed, its because one of the rebill items don't exist in the products table. Display message.
if(count($result_actual_rebill_items) != count($result_rebill_items))
{
 
$invalid_prod_id = array();

//Show the bad prod_id(s).
for($i = 0; $i < count($result_actual_rebill_items); $i++)
{
$check_prod_vs_rebill = $result_actual_rebill_items[$i]['product_id'];
 
$sql = "SELECT product_id
FROM products
WHERE product_id = ? ";
$ret = DB_SELECT("Customer", $result_comparison, $sql, $check_prod_vs_rebill);
if($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
if(count($result_comparison) < 1)
{
array_push($invalid_prod_id, $check_prod_vs_rebill);
}
}

$cnt_rebill_items = count($result_rebill_items);
$cnt_actual_rebill_items = count($result_actual_rebill_items);
 
$display_cnt_items = $cnt_actual_rebill_items - $cnt_rebill_items;

echo "ERROR: There are [$display_cnt_items] invalid rebill_items. They are";

$m = 0; 
while($m < count($invalid_prod_id))
{
echo " [$invalid_prod_id[$m]]";
$m++;
}
 
echo ".<br />";

$general_error = 1;
}
 
//Are there cores? If no, then set flag to no which will disable buttons.
if($cnt_core == 0 && $cnt_special == 0)
{
$no_core_items = 1;
}
 
//If no addons exist, check for number of GUID versus max machines. Use lesser of two unless GUIDs is zero, then use MAX_Machines.
if($no_addpc_items == 0)
{
$sql = "SELECT MAX_Machines
FROM Account_Index
WHERE Account_ID = ?";
$ret = DB_SELECT("Accounting_Dynamic", $result_max_machines, $sql, $acct_id);
if($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$max_machines = $result_max_machines[0]['MAX_Machines'];
 
$sql = "SELECT GUID
FROM GUID_Index
WHERE Account_ID = ?";
$ret = DB_SELECT("Accounting_Dynamic", $result_GUIDS, $sql, $acct_id); 
if($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}

$GUIDS = count($result_GUIDS);
 
if($GUIDS != $max_machines)
{
if($GUIDS < $max_machines)
{
$number_of_mac = $GUIDS;
}
elseif($max_machines < $GUIDS)
{
$number_of_mac = $max_machines;
}
}
elseif($GUIDS == $max_machines)
{
$number_of_mac = $GUIDS;
}
//If number GUIDs is zero.
if($GUIDS == 0)
{
$number_of_mac = $max_machines;
}
}
 
//Perform calculations and error checking before this error display!!
//Display an error message if correct user level & duplicates are found or no core items detected.
if($_SESSION['SESSION_access_level'] >= 2 && ($duplicate_items != 0 || $no_core_items != 0 || $general_error != 0 || $no_rebill_items != 0))
{
echo "<h2><font color=\"#FF0000\">There is a problem with the rebill items on this account!</font></h2>";
echo "ERROR INFO ";
echo "Core: [$cnt_core] ";
echo "Addpc: [$cnt_addpc] ";
echo "Konx: [$cnt_konx] ";
echo "Special: [$cnt_special] ";
echo "Number of Machines: [$number_of_mac] ";
if($general_error == 1)
{
echo "General Error<br />";
echo "<b>Please contact DB-Help with the account number, the above message & what you were trying to do.</b><br />";
}
else
{
echo "<br /><b>Please contact DB-Help with the account number, the above message & what you were trying to do.</b><br />";
}
 
echo "<br />";
}
 
?>
 
<table width="70%" bgcolor="#eeeeee" cellpadding="5" border="1">
<tr bgcolor="#cceecc">
<td><b>Account #:</b> <?php echo $acct_id ?>  </td>
<td colspan="6" ><b>Rebill Frequency:</b> <?php echo $display_days_top ?> days</td> 
</tr>
<tr>
<td><b>SKU</b></td>
<td><b>Description</b></td>
<td><b>Days</b></td>
<td><b>Price</b></td>
<td><b>Quantity</b></td>
<td><b>Type</b></td>
<td><b>Product ID</b></td>
</tr>
 
<?php
 
//If no rebill items exit, display message. Disable submit button. Otherwise, format rebill items for display.
if (count($result_rebill_items) == 0)
{
echo "<tr><td colspan=\"7\"><center><i>This account has no rebill items! Contact DB-Help.</i></center></td></tr>";
$no_rebill_items = 1;
}
 
for($j = 0; $j < count($result_rebill_items); $j++)
{
$display_sku = $result_rebill_items[$j]['sku'];
$display_desc = $result_rebill_items[$j]['description'];
$display_freq = $result_rebill_items[$j]['eace_days'];
$display_price = $result_rebill_items[$j]['price'];
$display_quan = $result_rebill_items[$j]['quantity'];
$display_type = $result_rebill_items[$j]['rebill_type'];
$display_prod_id = $result_rebill_items[$j]['product_id'];
 
//Begin display of rebill items on account & start form.
echo "<form action=\"chg_rebilling_success.php\" method=\"post\" name=\"chg_rebilling\" id=\"chg_rebilling\">";
 

if($no_addpc_items == 0)
{
if($display_type == 'core')
{
echo "<tr><td>$display_sku</td><td>$display_desc</td><td><center>$display_freq</center></td><td><center>$display_price
</center></td><td><center>$display_quan (x $number_of_mac)</center></td><td><center>$display_type</center></td>
<td><center>$display_prod_id</center></td></tr>";
}
else
{
echo "<tr><td>$display_sku</td><td>$display_desc</td><td><center>$display_freq</center></td><td><center>$display_price
</center></td><td><center>$display_quan</center></td><td><center>$display_type</center></td>
<td><center>$display_prod_id</center></td></tr>";
}
}
else
{
echo "<tr><td>$display_sku</td><td>$display_desc</td><td><center>$display_freq</center></td><td><center>$display_price</center></td><td><center>
$display_quan</center></td><td><center>$display_type</center></td><td><center>$display_prod_id</center></td></tr>";
}
}
 
//Get a list of products availble to change the account to.
$sql = "SELECT products.sku, products.description, products.price, products.eace_days, products.product_id
FROM products, rebill_chg_plan
WHERE rebill_chg_plan.plan_level = ?
AND rebill_chg_plan.product_id = products.product_id
AND products.rebill_type = 'core'
GROUP BY rebill_chg_plan.product_id
ORDER BY products.eace_days ASC ";
$ret = DB_SELECT("Customer", $result_available_items, $sql, $type_string);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
?>
 
<tr>
<td colspan="7">
<fieldset>
<legend>Select Core Rebilling Frequency SKU</legend>
<?php

if($display_only_test == 1 || $_SESSION['SESSION_access_level'] < 2 || $duplicate_items != 0 || $no_rebill_items != 0 || $no_core_items != 0 || $general_error != 0)
{
//Don't allow changes if any of the above conditions apply.
echo "<select name=\"new_core_item\" DISABLED>";
}
else
{
echo "<select name=\"new_core_item\">";
}
 
?>
<optgroup label="New SKUs">
<?php

echo "<option value=\"no_chg_core\" SELECTED>No Change - Core item will remain the same</option>";

for($l = 0; $l < count($result_available_items); $l++)
{
$display_opt_sku = $result_available_items[$l]['sku'];
$display_opt_desc = $result_available_items[$l]['description'];
$display_opt_price = $result_available_items[$l]['price'];
$display_opt_days = $result_available_items[$l]['eace_days'];
$display_opt_prod_id = $result_available_items[$l]['product_id'];
 
echo "<option value=\"$display_opt_prod_id\">$display_opt_sku $display_opt_desc ($display_opt_days days \$$display_opt_price)</option>";
}

?>
 
</optgroup>
</fieldset> 
</td>
 
<input type='hidden' name='acct_id' value='<?php echo $acct_id ?>'>
 
</tr>
<tr>
<td colspan="7"><i><u>Remember</u>: To add add-on items - place an order. To change quantities go to the
Account Display page and change them or place an order. Change the account plan level
from the Account Display page as well.</i>
</td>
</tr>
 
<?php
 
//Check permission level and display row allowing us to fix rebilling freq mismatches.
if($_SESSION['SESSION_access_level'] >= 2)
{
if($invalid_core_freq == 1 && ($no_addpc_items != 0 || $no_konx_items != 0))
{
echo "<tr bgcolor=\"#cceecc\">";
echo "<td colspan=\"7\"><b>Repair Rebilling Frequency Mismatch</b></td>";
echo "</tr>";
echo "<tr><td colspan=\"5\">\n";
echo "There is a frequency mismatch but it is <u>irrepairable</u> with the current core frequency. Either change the core frequency or contact DB-Help for assistance.</td>\n";
echo "<td colspan=\"2\"><center><input type=\"checkbox\" DISABLED name=\"repair_frequencies\" value=\"no\"></center>\n";
echo "</td></tr>\n";
}
elseif($freq_mismatch != 0)
{
echo "<tr bgcolor=\"#cceecc\">";
echo "<td colspan=\"7\"><b>Repair Rebilling Frequency Mismatch</b></td>";
echo "</tr>";
echo "<tr><td colspan=\"5\">\n";
echo "Change all addon rebilling frequency to match current core item? (check box for yes)</td>\n";
 
if($display_only_test == 1 || $duplicate_items != 0 || $no_rebill_items != 0 || $no_core_items != 0 || $general_error != 0)
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" DISABLED name=\"repair_frequencies\" value=\"no\"></center>\n";
}
else
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" name=\"repair_frequencies\" value=\"yes\"></center>\n";
}

echo "</td></tr>\n";
}
}
 
//Check permission level and display row with old/new rebilling items option.
if($_SESSION['SESSION_access_level'] >= 5)
{
if($cnt_addpc > 0)
{
echo "<tr bgcolor=\"#cceecc\">";
echo "<td colspan=\"7\"><b>Rebilling Method Conversion</b></td>";
echo "</tr>";
echo "<tr><td colspan=\"5\">\n";
echo "Remove Addons 'addpc' from rebill items? (check box for yes)</td>\n";

if($display_only_test == 1 || $duplicate_items != 0 || $no_rebill_items != 0 || $no_core_items != 0 || $general_error != 0)
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" DISABLED name=\"remove_addpc_items\" value=\"no\"></center>\n";
}
else
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" name=\"remove_addpc_items\" value=\"yes\"></center>\n";
}

echo "</td></tr>\n";
}
if($cnt_addpc == 0 && $number_of_mac > 1)
{
echo "<tr bgcolor=\"#cceecc\">";
echo "<td colspan=\"7\"><b>Rebilling Method Conversion</b></td>";
echo "</tr>";
echo "<tr><td colspan=\"5\">\n";
echo "Add Addons 'addpc' to rebill items? (check box for yes)</td>\n";

if($display_only_test == 1 || $duplicate_items != 0 || $no_rebill_items != 0 || $no_core_items != 0 || $general_error != 0)
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" DISABLED name=\"add_addpc_items\" value=\"yes\"></center>\n";
}
else
{
echo "<td colspan=\"2\"><center><input type=\"checkbox\" name=\"add_addpc_items\" value=\"yes\"></center>\n";
}

echo "</td></tr>\n";
}
}
 
//Check and see if there is any data in the transition override table. If yes, show it. If none exists, display yes. If no exists, show it.
$sql = "SELECT do_override
FROM transition_override
WHERE account_id = ? ";
$ret = DB_SELECT("Customer", $result_transition_override, $sql, $acct_id);
if ($ret < 0)
{
die("Error $ret: Executing \"$sql\" on the Customer database");
}
 
$transition_override = $result_transition_override[0]['do_override'];
$selected_override_yes = "CHECKED";
$selected_override_no = "";
 

if ($transition_override == 'n')
{
$selected_override_yes = "";
$selected_override_no = "CHECKED";
}
 
?>
 
<tr bgcolor="#cceecc">
<td colspan="7"><b>Transition Override</b></td>
</tr>
<tr>
<td colspan="5">Allow the Subscription Renewal Process to change the rebilling frequency?</td>
<td colspan="2"><center>
<?php
if($display_only_test == 1 || $_SESSION['SESSION_access_level'] < 2 || $duplicate_items != 0 || $no_rebill_items != 0 || $no_core_items != 0 || $general_error != 0)
{
echo "<INPUT TYPE=\"radio\" DISABLED NAME=\"transition_or\" VALUE=\"1\" $selected_override_yes >Yes ";
echo "<INPUT TYPE=\"radio\" DISABLED NAME=\"transition_or\" VALUE=\"0\" $selected_override_no >No ";
}
else
{
echo "<INPUT TYPE=\"radio\" NAME=\"transition_or\" VALUE=\"1\" $selected_override_yes >Yes ";
echo "<INPUT TYPE=\"radio\" NAME=\"transition_or\" VALUE=\"0\" $selected_override_no >No ";
}
 
?>
</center></td>
</tr>
<tr>
<td valign="middle" colspan="7">
<?php
 
//Disable submit button if test mode is on. Show it if else.
if ($display_only_test == 1)
{
echo "<center><b>Display Only Version</b></center>";
}
else
{
//Show submit button if level is high enough & there are no duplicate items & no lack of rebill items & there is a core item.
if ($_SESSION['SESSION_access_level'] >= 2 && $duplicate_items == 0 && $no_rebill_items == 0 && $no_core_items == 0 && $general_error == 0)
{
echo "<center><INPUT TYPE=\"submit\" value=\"Submit Changes\"></center>";
}
//If user is not logged in, show log in message.
elseif ($_SESSION['SESSION_access_level'] < 1)
{
echo "<center><b>Please log in</b></center>";
}
//If user has insufficient user level, show message.
elseif ($_SESSION['SESSION_access_level'] < 2)
{
echo "<center><b>Insufficient permissions</b></center>";
}
//If any of the above error are true & user is logged in, show error message.
else
{
echo "<center><b>Errors detected</b></center>";
}
}
 
?>
 
</td>
</tr>
 
</form>
</table>
 
<p>&nbsp;</p>
<a href="display_acct.php?acct_id=<?php echo $acct_id ?>">Back to the Account Display</a>
<p>&nbsp;</p>
<p><?php show_link_line(); ?></p>
 
</div>
 
</body>
</html>
 

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.