Yellow Bike Project Hours and Transaction Database for Community Bike Shops
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1002 lines
44 KiB

<?php
error_reporting(E_STRICT);
require_once('Connections/YBDB.php');
require_once('Connections/database_functions.php');
/*
require_once(realpath($_SERVER["DOCUMENT_ROOT"]) . '/php-console/src/PhpConsole/__autoload.php');
$handler = PhpConsole\Handler::getInstance();
$handler->setErrorsHandlerLevel(E_ALL &~ E_DEPRECATED);
$handler->start();
*/
$page_edit_contact = PAGE_EDIT_CONTACT;
$page_individual_history_log = INDIVIDUAL_HISTORY_LOG;
$storage_period = STORAGE_PERIOD;
$default_transaction_type = DEFAULT_TRANSACTION_TYPE;
$number_of_transactions = NUMBER_OF_TRANSACTIONS;
$change_fund = CHANGE_FUND;
$show_shop_id = SHOW_SHOP_ID;
//transaction ID
if($_GET['trans_id']>0){
$trans_id = $_GET['trans_id'];
} else {
$trans_id =-1;}
//error
switch ($_GET['error']) {
case 'transactioncomplete':
$error_message = 'Paypal transaction was successful';
break;
case 'transactioncanceled': //this is a sample error message. insert error case here
$error_message = 'Paypal transaction was cancelled';
break;
default:
$error_message = '';
break;
}
//delete transaction ID
if($_GET['delete_trans_id']>0){
$delete_trans_id = $_GET['delete_trans_id'];
} else {
$delete_trans_id =-1;}
//shop_date ($trans_date => SQL) ($trans_date_state => state)
if($_GET['trans_date']>0){
$trans_date = "AND date <= ADDDATE('{$_GET['trans_date']}',1)" ;
$trans_date_state = $_GET['trans_date'];
} else {
$datetoday = current_date();
$trans_date_state = $datetoday;
$trans_date ="AND date <= ADDDATE('{$datetoday}',1)";
$trans_date = "";
}
//dayname ($shop_dayname => SQL) ($shop_dayname_state => state)
if($_GET['shop_dayname']=='alldays'){
$shop_dayname = '';
$shop_dayname_state = 'alldays';
} elseif(isset($_GET['shop_dayname'])) {
$shop_dayname = "AND DAYNAME(date) = '" . $_GET['shop_dayname'] . "'";
$shop_dayname_state = $_GET['shop_dayname'];
} else {
$shop_dayname = '';
$shop_dayname_state = 'alldays';
}
//Transaction_type ($trans_type => SQL) ($trans_type_state => state)
if($_GET['trans_type']=='all_types'){
$trans_type = '';
$trans_type_state = 'all_types';
} elseif(isset($_GET['trans_type'])) {
$trans_type = "AND transaction_log.transaction_type = '" . $_GET['trans_type'] . "'";
$trans_type_state = $_GET['trans_type'];
} else {
$trans_type = '';
$trans_type_state = 'all_types';
}
if($_GET['contact_id_search']=='everyone'){
$contact_id = '';
$contact_id_state = 'everyone';
} elseif(isset($_GET['contact_id_search'])) {
$contact_id = "AND contact_id = '" . $_GET['contact_id_search'] . "'";
$contact_id_state = $_GET['contact_id_search'];
} else {
$contact_id = '';
$contact_id_state = 'everyone';
}
if($_GET['search']==''){
$search = '';
$search_state = '';
} elseif(isset($_GET['search'])) {
$search = "AND description REGEXP" . "'" . $_GET['search'] . "'";
//$search = "AND description LIKE" . "'%" . $_GET['search'] . "%'";
$search_state = $_GET['search'];
} else {
$search = '';
$search_state = '';
}
//// currently used for links in reports, and not for transaction_log page search mechanism
// Shop Transaction Totals (stats_shoptransactiontotals.php) - by shop
if($_GET['shop_id_search']==''){
$shop_id_search = '';
} elseif(isset($_GET['shop_id_search'])) {
$shop_id_search = "AND shop_id = '" . $_GET['shop_id_search'] . "'";
} else {
$shop_id_search = '';
}
// Sales Tax Report (stats_monthlysalestax.php)- by month
if($_GET['month_search']==''){
$month_search = '';
} elseif(isset($_GET['month_search'])) {
$month_search = "AND DATE(date) >='" . $_GET['month_search'] . "' AND DATE(date) <= LAST_DAY('" . $_GET['month_search'] . "')";
} else {
$month_search = '';
}
//// record_count (SQL or state)
if($_GET['record_count']>0){
$record_count = $_GET['record_count'];
$number_of_transactions = $record_count;
} else {
$record_count = $number_of_transactions;
}
// create a string to remember state
$search_state_array = array(
"search" => $search_state,
"contact_id_search" => $contact_id_state,
"trans_date" => $trans_date_state,
"trans_type" => $trans_type_state,
"shop_dayname" => $shop_dayname_state,
"record_count" => $record_count
);
$count = count($search_state_array);
$c = 1;
foreach ( $search_state_array as $key => $value ) {
if (isset($value)) {
$search_state .= $key . "=" . $value;
if ($c < $count) {
$search_state = $search_state . "&";
}
}
$c++;
}
// This is the recordset for the list of logged transactions
// What is seen on the main page.
mysql_select_db($database_YBDB, $YBDB);
// count for $month_search and $shop_id_search
if($month_search || $shop_id_search) {
$query_Recordset1 = "SELECT *,
DATE_FORMAT(date,'%m/%d/%y (%a)') as date_wday,
CONCAT('$',FORMAT(amount,2)) as format_amount,
CONCAT(contacts.last_name, ', ', contacts.first_name, ' ',contacts.middle_initial) AS full_name,
LEFT(IF(show_startdate, CONCAT(' [',
DATE_FORMAT(DATE_ADD(date_startstorage,INTERVAL $storage_period DAY),'%W, %M %D'), '] ', transaction_log.description),
IF(community_bike,CONCAT('Quantity(', quantity, ') ', transaction_log.description), description)),2000)
as description_with_locations
FROM transaction_log
LEFT JOIN contacts ON transaction_log.sold_to=contacts.contact_id
LEFT JOIN transaction_types ON transaction_log.transaction_type=transaction_types.transaction_type_id
WHERE 1=1 {$trans_date} {$shop_dayname} {$trans_type} {$contact_id} {$search} {$shop_id_search} {$month_search};";
$Recordset1 = mysql_query($query_Recordset1, $YBDB) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
//$handler->debug($totalRows_Recordset1);
$record_count = $totalRows_Recordset1;
}
$query_Recordset1 = "SELECT *,
DATE_FORMAT(date,'%m/%d/%y (%a)') as date_wday,
CONCAT('$',FORMAT(amount,2)) as format_amount,
CONCAT(contacts.last_name, ', ', contacts.first_name, ' ',contacts.middle_initial) AS full_name,
LEFT(IF(show_startdate, CONCAT(' [',
DATE_FORMAT(DATE_ADD(date_startstorage,INTERVAL $storage_period DAY),'%W, %M %D'), '] ', transaction_log.description),
IF(community_bike,CONCAT('Quantity(', quantity, ') ', transaction_log.description), description)),2000)
as description_with_locations
FROM transaction_log
LEFT JOIN contacts ON transaction_log.sold_to=contacts.contact_id
LEFT JOIN transaction_types ON transaction_log.transaction_type=transaction_types.transaction_type_id
WHERE 1=1 {$trans_date} {$shop_dayname} {$trans_type} {$contact_id} {$search} {$shop_id_search} {$month_search} ORDER BY transaction_id DESC LIMIT 0, $record_count;";
$Recordset1 = mysql_query($query_Recordset1, $YBDB) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
//$handler->debug($query_Recordset1);
//Action on form update
$editFormAction = "";
//Form Submit New Transaction===================================================================
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormNew")) {
$trans_type = $_POST['transaction_type'];
$shop_id = current_shop_by_ip();
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset5 = "SELECT show_startdate FROM transaction_types WHERE transaction_type_id = \"$trans_type\";";
//echo $query_Recordset5;
$Recordset5 = mysql_query($query_Recordset5, $YBDB) or die(mysql_error());
$row_Recordset5 = mysql_fetch_assoc($Recordset5);
$totalRows_Recordset5 = mysql_num_rows($Recordset5);
$initial_date_startstorage = $row_Recordset5['show_startdate'];
// Note: storage of time via current_datetime()) seems futile since updated or customized dates do not have a time
if ($initial_date_startstorage) {
$date_startstorage = current_datetime();
$date = "NULL";
$amount = "NULL";
} else {
$date_startstorage = "NULL";
$date = current_datetime();
$amount = "NULL";
} //end if
// gets newest transaction ID
//mysql_select_db($database_YBDB, $YBDB);
$query_Recordset4 = "SELECT MAX(transaction_id) as newtrans FROM transaction_log;";
$Recordset4 = mysql_query($query_Recordset4, $YBDB) or die(mysql_error());
$row_Recordset4 = mysql_fetch_assoc($Recordset4);
$totalRows_Recordset4 = mysql_num_rows($Recordset4);
$newtrans = $row_Recordset4['newtrans']; //This field is used to set edit box preferences
$newtrans = $newtrans + 1;
$insertSQL = sprintf("INSERT INTO transaction_log (transaction_type,shop_id, date_startstorage, date, quantity, amount, transaction_id)
VALUES (%s,%s, %s ,%s,%s, %s, %s)",
GetSQLValueString($_POST['transaction_type'], "text"),
GetSQLValueString($shop_id, "text"),
GetSQLValueString($date_startstorage, "date"),
GetSQLValueString($date, "date"),
GetSQLValueString(1, "int"),
GetSQLValueString($amount, "float"),
GetSQLValueString($newtrans, "int")
);
//echo $insertSQL;
//mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB); // or die(mysql_error());
// Here is the error to check for: "Column 'shop_id' cannot be null" when there is no shop and create transaction is pressed
if (mysql_error()) {
header("Refresh:0;");
exit();
}
$LoadPage = "?trans_id={$newtrans}";
header(sprintf("Location: %s", $LoadPage));
} // end Form Submit New Transaction
// Form Close Record
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormEdit") && ($_POST["EditSubmit"] == "Close")) {
header(sprintf("Location: %s",$editFormAction . "?" . $search_state)); //$editFormAction
}
//Form Edit Record ===============================================================================
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormEdit") && ($_POST["EditSubmit"] == "Save")) {
//Error Correction & good place for jquery
$sold_to = (($_POST['sold_to'] == 'no_selection') ? 1268 : $_POST['sold_to'] );
$sold_by = (($_POST['sold_by'] == 'no_selection') ? 1268 : $_POST['sold_by'] );
$date_startstorage = date_update_wo_timestamp($_POST['date_startstorage'], $_POST['db_date_startstorage']);
$date = date_update_wo_timestamp($_POST['date'], $_POST['db_date']);
$description = $_POST['description'];
$check_number = (($_POST['check_number'] == "") ? "" : $_POST['check_number'] );
$transaction_id = $_POST['transaction_id'];
// If storage transaction finalized, change transaction_id to most recent transaction_id
$current_date = current_date();
$storage_date = split(' ', $_POST['db_date_startstorage']);
$transaction_date = split(' ', $_POST['date']);
mysql_select_db($database_YBDB, $YBDB);
$query = 'SELECT MAX(transaction_id) AS "ti" FROM transaction_log;';
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($sql);
// percolate transaction_id for completed storage transactions
if($date_startstorage) {
$new_transaction_id = $result['ti'] + 1;
// If startstorage > current date (transaction_id stays the same)
// If startstorage =< current date (transaction_id becomes > than last)
// not necessary - && $storage_date[0] != $transaction_date[0]
if ($current_date >= $storage_date[0] ) {
if($_POST['amount'] != "" && $_POST['payment_type'] != "") {
$query = 'UPDATE transaction_log SET transaction_id="' . $new_transaction_id .
'" WHERE transaction_id="' . $_POST['transaction_id'] . '";';
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$transaction_id = $new_transaction_id;
} else {
$new_transaction_id = "";
}
}
}
$query = 'SELECT anonymous FROM transaction_log WHERE transaction_id="' . $transaction_id . '";';
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($sql);
if($result['anonymous']) {
// keep the order
$updateSQL = sprintf("UPDATE transaction_log SET transaction_type=%s, date_startstorage=%s,
date=%s, amount=%s, quantity=%s, description=%s,
sold_by=%s,
shop_id=%s, check_number=%s WHERE transaction_id=%s",
GetSQLValueString($_POST['transaction_type'], "text"),
GetSQLValueString($date_startstorage, "date"),
GetSQLValueString($date, "date"),
GetSQLValueString($_POST['amount'], "double"),
GetSQLValueString($_POST['quantity'], "int"),
GetSQLValueString($description, "text"),
GetSQLValueString($sold_by, "int"),
GetSQLValueString($_POST['shop_id'], "int"),
GetSQLValueString($check_number, "text"),
GetSQLValueString($transaction_id, "int")
);
} else {
$updateSQL = sprintf("UPDATE transaction_log SET transaction_type=%s, date_startstorage=%s,
date=%s, amount=%s, quantity=%s, description=%s,
sold_to=%s, sold_by=%s,
shop_id=%s, check_number=%s WHERE transaction_id=%s",
GetSQLValueString($_POST['transaction_type'], "text"),
GetSQLValueString($date_startstorage, "date"),
GetSQLValueString($date, "date"),
GetSQLValueString($_POST['amount'], "double"),
GetSQLValueString($_POST['quantity'], "int"),
GetSQLValueString($description, "text"),
GetSQLValueString($sold_to, "int"),
GetSQLValueString($sold_by, "int"),
GetSQLValueString($_POST['shop_id'], "int"),
GetSQLValueString($check_number, "text"),
GetSQLValueString($transaction_id, "int")
);
}
//mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
$trans_id = $transaction_id;
header(sprintf("Location: %s",$editFormAction . "?trans_id={$trans_id}&" . $search_state)); //$editFormAction
}
//Form Edit Record Delete ===============================================================================
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormEdit") && ($_POST["EditSubmit"] == "Delete")) {
$trans_id = $_POST['transaction_id'];
header(sprintf("Location: %s",$editFormAction . "?delete_trans_id={$trans_id}&" . $search_state )); //$editFormAction
}
//Form Confirm Delete ===============================================================================
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ConfirmDelete") && ($_POST["DeleteConfirm"] == "Confirm Delete")) {
$delete_trans_id = $_POST['delete_trans_id'];
$insertSQL = "DELETE FROM transaction_log WHERE transaction_id = {$delete_trans_id}";
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB) or die(mysql_error());
header(sprintf("Location: %s", PAGE_SALE_LOG . "?" . $search_state)); //$editFormAction
//Cancel and go back to transaction ================================================================
} elseif ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ConfirmDelete") && ($_POST["DeleteConfirm"] == "Cancel")) {
$delete_trans_id = $_POST['delete_trans_id'];
header(sprintf("Location: %s", PAGE_SALE_LOG . "?trans_id={$delete_trans_id}&" . $search_state )); //$editFormAction
}
//Change Date & Transaction Search isset($_POST["MM_update"]) =========================================================
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ChangeDate")) {
$editFormAction = "?trans_date={$_POST['trans_date']}&trans_type={$_POST['trans_type']}&shop_dayname={$_POST['dayname']}&record_count={$_POST['record_count']}&contact_id_search={$_POST['contact_id_search']}&search={$_POST['search']}";
header(sprintf("Location: %s",$editFormAction )); //$editFormAction
}
?>
<?php include("include_header.html"); ?>
<input type="hidden" name="cancel_return" value="transaction_log.php?error=transactioncanceled" />
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<td align="left" valign="bottom"><?php echo $error_message ?> </td>
</tr>
<!-- All elements of edit transaction contained in this row -->
<tr>
<td>
<table border="1" cellpadding="1" cellspacing="0" bordercolor="#CCCCCC">
<tr bordercolor="#CCCCCC" bgcolor="#99CC33">
<td colspan="9" bgcolor="#99CC33"><div align="center"><strong>Bike, Sale and Donation Log</strong></div></td>
</tr>
<?php // show delete transaction confirmation =========================================
if($delete_trans_id <> -1 ) { ?>
<form method="post" name="FormConfirmDelete" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td colspan="9"><p><strong>Edit Transaction:
<input type="submit" name="DeleteConfirm" value="Confirm Delete" />
<input type="submit" name="DeleteConfirm" value="Cancel" />
<input type="hidden" name="delete_trans_id" value="<?php echo $delete_trans_id; ?>">
<input type="hidden" name="MM_insert" value="ConfirmDelete">
</strong></p> </td>
</tr>
</form>
<?php //Form to edit preexisting records ================================================
} elseif($trans_id <> -1 ) {
// Gets data for the transaction being edited
// shows transaction if edit link is clicked
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset2 = "SELECT *,
DATE_FORMAT(date_startstorage,'%Y-%m-%d') as date_startstorage_day,
DATE_FORMAT(date,'%Y-%m-%d') as date_day,
DATE_FORMAT(DATE_ADD(date_startstorage,INTERVAL $storage_period DAY),'%W, %M %D') as storage_deadline,
DATEDIFF(DATE_ADD(date_startstorage,INTERVAL $storage_period DAY),CURRENT_DATE()) as storage_days_left,
FORMAT(amount,2) as format_amount
FROM transaction_log WHERE transaction_id = $trans_id; ";
$Recordset2 = mysql_query($query_Recordset2, $YBDB) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$trans_type = $row_Recordset2['transaction_type']; //This field is used to set edit box preferences
// gets preferences of edit based on Transaction Type
//mysql_select_db($database_YBDB, $YBDB);
$query_Recordset3 = "SELECT * FROM transaction_types WHERE transaction_type_id = \"$trans_type\";";
$Recordset3 = mysql_query($query_Recordset3, $YBDB) or die(mysql_error());
$row_Recordset3 = mysql_fetch_assoc($Recordset3);
$totalRows_Recordset3 = mysql_num_rows($Recordset3);
//$handler->debug($row_Recordset3);
?>
<!-- The actual row for edit transactions -->
<tr bgcolor="#CCCC33">
<!-- the column for the edit transactions form -->
<td colspan="8">
<form method="post" name="FormEdit" action="<?php echo $editFormAction; ?>">
<table border="0" cellspacing="0" cellpadding="1">
<td></td><td></td>
<td>
<input id="save_transaction" type="submit" name="EditSubmit" value="Save" align="right">
<input id="close_transaction" type="submit" name="EditSubmit" value="Close">
<input id="delete_transaction" type="submit" name="EditSubmit" value="Delete">
<span id="transaction_start_error"></span>
<!-- Save before using paypal ->> -->
</td>
</tr>
<?php if ($show_shop_id) { ?>
<tr><td>&nbsp;</td>
<td><label>Transaction ID:</label></td>
<td><?php echo $row_Recordset2['transaction_id']; ?><em>
<?php echo $row_Recordset3['message_transaction_id']; ?></em>
</td>
</tr>
<tr><td>&nbsp;</td>
<td><label for="shop_id">ShopID:</label> </td>
<td><input name="shop_id" type="text" id="shop_id"
value="<?php echo $row_Recordset2['shop_id']; ?>" size="6" />
</td>
</tr>
<?php } else { ?>
<tr><td>&nbsp;</td>
<td><label>Transaction #:</label></td>
<td><em><?php echo $row_Recordset2['transaction_id']; ?>
-
<?php echo $row_Recordset2['shop_id'];
echo "&nbsp;&nbsp" . $row_Recordset3['message_transaction_id'];?></em>
<input name="shop_id" type="hidden" id="shop_id"
value="<?php echo $row_Recordset2['shop_id']; ?>" />
</td>
</tr>
<?php } ?>
<?php ?>
<tr><td>&nbsp;</td><td><label for="trans_type_info">Transaction Type:</label></td>
<td><?php echo "<span id='trans_type_info'>" . $row_Recordset2['transaction_type'] . "</span>";
echo "<input type='hidden' id='transaction_type' name='transaction_type' value='" .
$row_Recordset2['transaction_type'] . "'>";
//list_transaction_types('transaction_type',$row_Recordset2['transaction_type'] );
?></td>
</tr>
<?php //date_startstorage ==============================================================
if($row_Recordset3['show_startdate']){?>
<tr><td>&nbsp;</td>
<td for="date_startstorage"><label>Storage Start Date:</label></td>
<td><input name="date_startstorage" type="text" id="date_startstorage" value="<?php
echo $row_Recordset2['date_startstorage_day']; ?>" size="10" maxlength="10" />
<span id="original_shop_date"></span></td>
</tr>
<?php } //end if storage | start of date ================================================
?>
<tr><td>&nbsp;</td>
<td><label for="date"><?php echo $row_Recordset3['fieldname_date']; ?>:</label></td>
<td><input name="date" type="text" id="date" value="<?php echo $row_Recordset2['date_day']; ?>" size="10" maxlength="10" />
<span id="date_error"></span>
<SCRIPT>
function FillDate() {
document.FormEdit.date.value = '<?php echo current_date(); ?>' }
</SCRIPT>
<input type="button" name="date_fill" id="date_fill" value="Fill Current Date" onclick="FillDate()" />
<br /><?php
if ($row_Recordset3['show_startdate']) { // If there is a start date show storage expiration message.
if ( $row_Recordset2['date_day'] == "0000-00-00" ||
!isset($row_Recordset2['date_day']) ) {
echo $row_Recordset2['storage_days_left'] .
" days of storage remaining. Bike must be finished by " .
$row_Recordset2['storage_deadline'] . ".";
} else {
echo "Bike is marked as complete and should no longer be stored in the shop.";
}
} ?></td>
</tr>
<?php // start show amount
if($row_Recordset3['community_bike']){ //community bike will allow a quantity to be selected for Yellow Bikes and Kids Bikes?>
<tr>
<td>&nbsp;</td>
<td valign="top"><label for="quantity">Quantity:</label></td>
<td><input name="quantity" type="text" id="quantity" value="<?php echo $row_Recordset2['quantity']; ?>" size="3" maxlength="3" />
<span id="quantity_error"></span></td>
</tr>
<?php } // end if show quantity for community bikes
if($row_Recordset3['show_description']){ ?>
<tr><td>&nbsp;</td>
<td valign="top"><label><?php echo $row_Recordset3['fieldname_description']; ?>:</label></td>
<td><textarea id="description" name="description" cols="45" rows="3"><?php echo $row_Recordset2['description']; ?></textarea>
<span id="description_error"></span></td>
</tr>
<?php } // end show_description ?>
<?php if($row_Recordset3['show_amount']){ ?>
<tr id="price"><td>&nbsp;</td>
<?php if($row_Recordset3['transaction_type_id'] == "Deposit"){?>
<td><label>Deposited:</label></td>
<?php } else { ?>
<td><label id="paid_label">Paid:</label></td>
<?php } ?>
<td><input name="amount" type="text" id="amount" value="<?php echo $row_Recordset2['format_amount']; ?>" size="6" />
<span id="payment_error"></span>
<span id="stand_time_total"></span>
<span id="original_price"></span>
<span id="membership_discount"></span>
<span id="membership_discount_price"></span>
<span id="volunteer_hours_to_membership_discount"></span>
</td>
</tr>
<?php } // end show_amount ?>
<?php if($row_Recordset3['show_payment']) { ?>
<tr id="payment_type">
<td></td>
<td><label for="payment_type" id="payment_type_label">Payment Type:</label></td>
<td>
<input type="radio" name="payment_type" value="cash"
<?php if ($row_Recordset2['payment_type'] == "cash") { echo " checked"; } ?> >
<label id="cash" class="payment_type" for="payment_type">Cash</label>
<input type="radio" name="payment_type" value="credit"
<?php if ($row_Recordset2['payment_type'] == "credit") { echo " checked"; } ?> >
<label id="credit_card" class="payment_type" for="payment_type">Credit Card</label>
<input type="radio" name="payment_type" value="check"
<?php if ($row_Recordset2['payment_type'] == "check") { echo " checked"; } ?> >
<label id="check" class="payment_type" for="payment_type">Check</label>
<span id="payment_type_error"></span>
<?php if ($row_Recordset2['payment_type'] == "check") {
echo '&nbsp;<input type="text" id="check_number" size="10" name="check_number" value="' .
$row_Recordset2['check_number'] . '".>';
}
?>
<span id="check_number_error"></span></td>
</tr>
<?php } // end if show_payment ?>
<?php
// Patron
if($row_Recordset3['show_soldto_signed_in'] ||$row_Recordset3['show_soldto_not_signed_in'] ){ // if location show row?> <tr><td>&nbsp;</td>
<td><label><?php echo $row_Recordset3['fieldname_soldto']; ?>:</label></td>
<?php
if($row_Recordset3['show_soldto_signed_in']){
echo "<td>";
list_CurrentShopUsers_select('sold_to', $row_Recordset2['sold_to']);
echo "<span id='sold_to_error'></span>";
$record_trans_id = $row_Recordset2['transaction_id'];
if ($row_Recordset3['anonymous']) {
echo "<span id='anon' style='display:show;'><label for='anonymous' id='anonymous_label'>Anonymous:</label>";
if ($row_Recordset2['anonymous']) {
echo "<input type='checkbox' id='anonymous' checked>";
} else {
echo "<input type='checkbox' id='anonymous'>";
}
echo "</span>";
} else {
echo "<span id='anon' style='display:none;'><label for='anonymous' id='anonymous_label'>Anonymous:</label></span>";
}
echo "<span id='anonymous_error'></span>";
echo "<span id='paid_member'></span>";
echo "<span id='volunteer_hours'></span>";
echo "<input id='redeemable_hours'>";
echo "</td>";
} elseif($row_Recordset3['show_soldto_not_signed_in']) {
echo "<td>";
list_donation_locations_withheader('sold_to', $row_Recordset2['sold_to']); //- not required to be signed in.
echo "<span id='sold_to_error'></span>";
// echo " <a href=\"location_add_edit.php?trans_id={$record_trans_id}&contact_id=new_contact\">Create New Location</a> |
// <a href=\"location_add_edit_select.php?trans_id={$record_trans_id}&contact_id=new_contact\">Edit Existing Location</a>";
$record_trans_id = $row_Recordset2['transaction_id'];
if ($row_Recordset3['anonymous']) {
echo "<span id='anon' style='display:show;'><label for='anonymous' id='anonymous_label'>Anonymous:</label>";
if ($row_Recordset2['anonymous']) {
echo "<input type='checkbox' id='anonymous' checked>";
} else {
echo "<input type='checkbox' id='anonymous'>";
}
echo "</span>";
} else {
echo "<span id='anon' style='display:none;'><label for='anonymous' id='anonymous_label'>Anonymous:</label></span>";
}
echo "<span id='anonymous_error'></span>";
echo "<span id='paid_member'></span>";
echo "<span id='volunteer_hours'></span>";
echo "</td>";
}
?>
</tr> <?php } //end if show location row ?>
<tr><td>&nbsp;</td>
<td><label><?php // sold by or received by
echo $row_Recordset3['fieldname_soldby']; ?>:</label></td>
<td><?php if(current_shop_by_ip()>0) list_current_coordinators_select('sold_by', $row_Recordset2['sold_by']);
else list_contacts_coordinators('sold_by//,', $row_Recordset2['sold_by']);
//list_contacts_coordinators('sold_by', $row_Recordset2['sold_by']);
//list_current_coordinators_select('sold_by', $row_Recordset2['sold_by']);
?>
<span id="sold_by_error"></span></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="FormEdit">
<input type="hidden" name="transaction_id" value="<?php echo $trans_id; ?>">
<input type="hidden" name="db_date_startstorage" value="<?php echo $row_Recordset2['date_startstorage']; ?>">
<input type="hidden" name="db_date" value="<?php echo $row_Recordset2['date']; ?>">
</form></td>
<!-- PayPal column for edit transactions -->
<td colspan="1" align="right" valign="top">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="donate@positivespin.org" />
<input type="hidden" name="item_name" value="PS Transaction <?php echo $row_Recordset2['transaction_id']; ?>: <?php echo $row_Recordset2['transaction_type']; ?> - <?php echo $row_Recordset2['description']; ?>" />
<input type="hidden" name="amount" value="<?php echo $row_Recordset2['format_amount']; ?>" />
<!-- <input type="hidden" name="item_number" value="" /> -->
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="transaction_log.php?error=transactioncomplete" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
<img alt="Donate" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form> </td>
</tr>
<?php // Form to create a transaction
} else { //This section executes if it is not the transaction_id selected NOT FOR EDIT ?>
<form method="post" name="FormNew" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td colspan="9"><p><strong>Start New Transaction:</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;Select Type: <?php list_transaction_types('transaction_type',$default_transaction_type); ?>
<input type="submit" name="Submit43" value="Create Transaction" /><span id="current_shop"></span>
</p>
<div></div>
</td>
</tr>
<input type="hidden" name="MM_insert" value="FormNew" />
</form>
<?php } // if ?>
<tr bordercolor="#CCCCCC" bgcolor="#99CC33">
<td width="50"><strong>Shop</strong></td>
<td width="100"><strong>Trans. Date</strong></td>
<td width="200" bgcolor="#99CC33"><strong>Sale Type </strong></td>
<td><strong>Patron</strong></td>
<td width="300"><strong>Description</strong></td>
<td><strong>Type</strong></td>
<td width="70"><strong>Amount</strong></td>
<td width="50"><strong>Edit </strong></td>
<td><strong>Paid</strong></td>
</tr>
<?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { //do { ?>
<form method="post" name="FormView_<?php echo $row_Recordset1['transaction_id']; ?>" action="<?php echo $editFormAction; ?>">
<tr bordercolor='#CCCCCC' <?php echo "title='Transaction ID: " . $row_Recordset1['transaction_id'] . "'";
echo ((intval($row_Recordset1['transaction_id']) == intval($trans_id)) ? "bgcolor='#CCCC33'" : "");
if ($row_Recordset1['paid'] == 1) { echo "bgcolor='#E6E7E6'"; }
if ($row_Recordset1['transaction_type'] == "Deposit") { echo "class='deposit'"; }
?> >
<td class="shop_id">
<a style="color: rgb(27, 105, 30); text-decoration: none; cursor: crosshair;" href="./shop_log.php?shop_id=<?php echo $row_Recordset1['shop_id']; ?>">
<?php echo $row_Recordset1['shop_id']; ?></a></td>
<td><span id="wday" style="font-size:96%;"><?php echo $row_Recordset1['date_wday']; ?></span></td>
<td><?php echo $row_Recordset1['transaction_type']; ?></td>
<td><?php // Patron or Anonymous
$query = 'SELECT anonymous FROM transaction_log WHERE transaction_id="' . $row_Recordset1['transaction_id'] . '";';
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($sql);
if($result['anonymous']) {
echo "Anonymous";
$whoami = "Anonymous";
} else {
echo '<a style="color: rgb(27, 105, 30); text-decoration: none; cursor: crosshair;" href="individual_history_log.php?contact_id=' .
$row_Recordset1['contact_id'] . '">' .
$row_Recordset1['full_name'] . "</a>";
$whoami = '<a style="color: rgb(27, 105, 30); text-decoration: none; cursor: crosshair;" href="individual_history_log.php?contact_id=' .
$row_Recordset1['contact_id'] . '">' .
$row_Recordset1['full_name'] . "</a>";
}
?>&nbsp;</td>
<?php
// Highlight search results in Description
$description = $row_Recordset1['description_with_locations'];
if(!empty($_GET["search"])) {
$description = highlightKeywords($row_Recordset1['description_with_locations'],$_GET["search"]);
}
?>
<td <?php echo "title='Description: " . htmlspecialchars($row_Recordset1['description_with_locations'], ENT_QUOTES) . "'"; ?> ><?php echo $description; ?>&nbsp;</td>
<td><?php echo $row_Recordset1['payment_type']; ?>&nbsp;</td>
<td <?php
$history = json_decode($row_Recordset1['history']);
if ($history) {
end($history);
$key = key($history);
$query = "SELECT CONCAT(first_name, ' ', middle_initial, ' ', last_name) AS full_name
FROM contacts WHERE contact_id=" . $history[$key]->sold_by . ";";
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($sql);
if ( $history[$key]->original_price ) {
$title = "Date: " . $history[$key]->date. "\r\n" .
"Sold By: " . $result['full_name']. "\r\n" .
"Original Price: " . $history[$key]->original_price . "\r\n" .
"Paid: " . $history[$key]->amount . "\r\n" .
"Redeemed Hours: " . floatval($history[$key]->redeemed_hours);
echo "title='" . $title . "'";
} else {
$title = "Date: " . $history[$key]->date. "\r\n" .
"Transaction Performed By: " . $result['full_name'];
echo "title='" . $title . "'";
}
}
?>
><?php echo $row_Recordset1['format_amount'];
if($row_Recordset1['transaction_type'] !== "Deposit" && $row_Recordset1['paid'] == 1) {
$total = $total + $row_Recordset1['amount'];
}
?>&nbsp;</td>
<td><?php $record_trans_id = $row_Recordset1['transaction_id'];
foreach ($_GET as $i => $value) {
if ($i != "trans_id") {
$trans_url .= "&$i" . "=" . $value;
}
}
if (isset($trans_url)) {
echo "<a href=\"?trans_id={$record_trans_id}$trans_url\">edit</a></td>";
} else {
echo "<a href=\"?trans_id={$record_trans_id}\">edit</a></td>";
}
$trans_url = "";
?>
<td><input class="paid" type="checkbox" name="<?php $ti = $row_Recordset1['transaction_id']; echo $ti; ?>"
value="<?php echo $row_Recordset1['paid'];?>"
<?php if ($row_Recordset1['paid'] == 1) { echo " checked"; } ?>
>
</td>
</tr>
<?php
if ($row_Recordset1['transaction_type'] == "Deposit") {
$difference = "";
$diff = "";
if (isset($row_Recordset1['change_fund'])) {
$cf = $row_Recordset1['change_fund'];
$difference = $cf - $change_fund;
if ($difference <> $change_fund && $difference != 0) {
$diff = "(" . number_format((float)$difference, 2, '.', '') . ")";
} else {
$diff = "";
}
} else {
$cf = $change_fund;
}
echo "<tr class='deposit_calculator'><td colspan='9'><div style='text-align:right;'>";
echo '<span style="padding-left:10px; padding-right:10px;" id="' . $ti .
'_change" title="Mouse over number to change. Change Fund should always balance out to the same amount it started with.">Change Fund:' .
" $<span class='editable_change' id='" . $ti . "_editable_change'>$cf</span>";
if ($diff != "") {
echo "<span id='" . $ti . "_different_change' style='padding-left: 5px; padding-right: 5px; color: red;'>$diff</span>";
} else {
echo "<span id='" . $ti . "_different_change' style='padding-left: 5px; padding-right: 5px; color: red; display: none;'></span>";
}
echo '</span>|
<span style="padding-left:10px; padding-right:10px;" id="' . $ti . '_credit">Credit Card: <span></span></span>|
<span style="padding-left:10px; padding-right:10px;" id="' . $ti . '_check">Check: <span></span></span>+
<span style="padding-left:10px; padding-right:10px;" id="' . $ti . '_cash">Cash: <span></span></span>=
<span style="padding-left:10px; padding-right:10px;" id="' . $ti . '_sum">Sum: <span></span></span>|
<span style="padding-left:10px; padding-right:10px;" id="' . $ti . '_difference">Difference: <span></span></span>';
echo "</div></td></tr>";
}
?>
<input type="hidden" name="MM_insert" value="FormUpdate">
<input type="hidden" name="shop_visit_id" value="<?php echo $row_Recordset1['transaction_id']; ?>">
</form>
<?php } //while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); // while Recordset1 ?>
<tr>
<td>TOTAL</td><td></td>
<td style="text-align: center;">Transactions: <?php echo $totalRows_Recordset1; ?></td>
<td><?php
if ($contact_id_state !== 'everyone') {
if ($whoami) {
echo $whoami;
} else {
$query = "SELECT CONCAT(last_name, ', ', first_name, ' ', middle_initial) AS full_name
FROM contacts WHERE contact_id=" . $contact_id_state . ";";
$sql = mysql_query($query, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($sql);
echo '<a style="color: rgb(27, 105, 30); text-decoration: none; cursor: crosshair;" href="individual_history_log.php?contact_id=' .
$contact_id_state . '">' .
$result['full_name'] . "</a>";
}
}
?></td>
<td></td><td></td>
<td title="Updates on Transaction Search Submit">$<?php echo number_format((float)$total, 2, '.', ''); ?></td>
<td></td><td></td>
</tr>
</table> </tr>
<tr>
<td height="40" valign="bottom" style="white-space: nowrap;"><form id="form1" name="form1" method="post" action="">
<br \>
<label for="transaction_search" style="font-weight:bold;">Transaction Search:</label>
<br \>
Show <input name="record_count" type="text" value="<?php echo $number_of_transactions; ?>" size="3">
transactions on or before:
<input name="trans_date" type="text" id="trans_date" value="<?php
if ($_GET['trans_date']) {
echo $_GET['trans_date'];
} else {
echo current_date();
}
?>" size="10" maxlength="10" />
<script>
<?php
if(isset( $_GET["shop_dayname"] )){
$selected_shop_dayname = $_GET["shop_dayname"];
} else { $selected_shop_dayname = "alldays"; }
if(isset( $_GET["trans_type"] )){
$selected_trans_type = $_GET["trans_type"];
} else { $selected_trans_type = "all_types"; }
?>
// remember pull-down list selections
$(function() {
$("[name='dayname']").val("<?php echo $selected_shop_dayname; ?>").prop("selected","selected");
$("[name='trans_type']").val("<?php echo $selected_trans_type; ?>").prop("selected","selected");
});
</script>
<select class="yb_standard" name="dayname">
<option value="alldays" selected="selected">All Days</option>
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
<option value="Sunday">Sunday</option>
</select>
transaction type <?php list_transaction_types_withheader('trans_type', 'all_types'); ?> by
<?php list_contacts_select_contact(contact_id_search, $_GET['contact_id_search']);?> <br \> with these words
<input type="text" name="search" value="<?php echo $_GET[search]; ?>" />
<input type="submit" name="Submit" value="Submit" />
<input type="hidden" name="MM_insert" value="ChangeDate" />
</form>
</td>
</tr>
<tr>
<td>
<?php
$shop_id = current_shop_by_ip();
if ($shop_id) {
$sql = "SELECT *, IF(date <> curdate() AND shop_type = 'Mechanic Operation Shop',0,1) as CanEdit
FROM shops WHERE shop_id = $shop_id;";
$query = mysql_query($sql, $YBDB) or die(mysql_error());
$result = mysql_fetch_assoc($query);
}
if(current_shop_by_ip()>=1) echo '<label class="open_shop" for="shop" style="font-weight:bold;">Current Shop:</label>';
else echo '<label class="open_shop" for="shop" style="font-weight:bold">No Shop</label>';
if (current_shop_by_ip()>=1) echo "<br \>" . "(" . $result['shop_id'] . ") " .
$result['shop_location'] . " - " . $result['shop_type'] . " - " . $result['date'];
?>
</td>
</tr>
<tr>
<td>
<br \>
<label style="font-weight:bold;" class="open_shop" for="gnucash_csv">GnuCash CSV:</label>
<br \>
<?php
echo "<form method='post' name='gnucash_csv'><table><tr>";
// populate year pull-down list
echo "<td style='vertical-align:top;'><label class='gnucash_csv' for='gnucash_csv_year'>Year</label><br \>";
list_distinct_shop_years("gnucash_csv_year","");
echo "</td>";
// populate Accounts pull-down list
echo "<td style='vertical-align:top; padding-left:10px; padding-right:10px'>
<label class='gnucash_csv' for='gnucash_csv_year'>Accounts</label><br \>";
echo "<select id='gnucash_csv_accounts' class='yb_standard' multiple>";
foreach ( $gnucash_accounts as $key => $value ) {
echo "<option value='$value'>$key</option>";
}
echo "</select>";
// range bar
echo "<td style='vertical-align:top; padding-left:10px; padding-right:2px; padding-bottom:10px;'>
<label class='gnucash_csv' for='gnucash_csv_range'>Deposit Range</label><br \>";
echo "<div id='range_slider'><div id='gnucash_csv_range'></div></div>";
echo "<br \><input type='text' id='slider_lower'>&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' id='slider_upper'></td>";
echo "<td td style='vertical-align:inherit;'><input id='gnucash_csv_submit' type='submit' name='Submit' /></td></tr></table></form>";
?>
</td>
</tr>
</table>
<?php include("include_footer.html"); ?>
<?php
mysql_free_result($Recordset1);
?>