98e4df48 by Kevin Burton

updated the UserAdmin section now allows the admin to register a user for an arc…

…hived event - and now creates an invoice, paid or unpaid.
1 parent ce188a5f
......@@ -64,6 +64,11 @@ function display_users() {
}
}
function getTaxesByProvince($provstate = "ON") {
return CBV\get_tax_pct($provstate);
}
function search_special_status($key) {
$special_statuses = get_user_meta($_GET['uid'], 'special_statuses',true);
if (!empty($special_statuses)) {
......@@ -832,6 +837,8 @@ class Actions {
if (!isset($_POST['type'])) { die('Invalid Form Post'); }
$post = get_post($_POST['event_id']);
$uid = $_POST['uid'];
$event_id = $_POST['event_id'];
$type = $_POST['type'];
......@@ -862,10 +869,165 @@ class Actions {
$return = array('success' => 'true', 'refresh' => 'false');
} else {
Events\set_attending($uid,$event_id,$status,'',$_POST);
$return = array('success' => 'true', 'refresh' => 'true');
}
// KB
$user = new User\Account($uid);
$cost = get_post_meta($event_id, 'cost', true);
if ( empty($cost) OR $cost < 1 OR strtolower($cost) == "free" ) {
set_attending($user->ID,$event_id,"free","",$_POST);
} else {
//$user = new User\CurrentAccount();
$role = $user->getRole();
$event = get_post($event_id);
$cehours = get_post_meta($event_id,'worth_cehours',true);
$early_bird_deadline = get_post_meta($event_id,'early_bird_deadline',true);
$early_bird_discount = get_post_meta($event_id,'early_bird_discount',true);
$member_discount = get_post_meta($event_id,'student_member_discount',true);
$reg_deadline = get_post_meta($event_id,'reg_deadline',true);
$event_date = get_post_meta($event_id,'event_date',true);
$event_term_slugs = array();
$terms = get_the_terms($event_id,'event_type');
if (!empty($terms)) {
foreach($terms as $types) {
$event_term_slugs[$types->slug] = $types->name;
}
}
$discounts = array();
$new_cost = $cost;
$total_discount = 0;
if ( ($user->getRole()=="member" || $user->getRole()=="student") && !empty($member_discount) ) {
$show_member_discount = true;
$discounts[] = Array(
'discount_label' => "Student/Member Discount"
, 'discount' => $member_discount
);
$new_cost = ($new_cost - $member_discount);
$total_discount = ($total_discount + $member_discount);
}
if (!empty($early_bird_deadline) && $early_bird_deadline > time()) {
$show_early_discount = true;
$discounts[] = Array(
'discount_label' => "Early Bird Discount"
, 'discount' => $early_bird_discount
);
$new_cost = ($new_cost - $early_bird_discount);
$total_discount = ($total_discount + $early_bird_discount);
}
$provstate = get_post_meta($event_id,'provstate',true);
if (empty($provstate) OR $provstate == "outside") {
$provstate = "ON";
}
if (isset($event_term_slugs['webinar'])) {
$tpp = get_user_meta($user->ID,'profile_preference',true);
$tpp = strtolower($tpp);
$province = get_user_meta($user->ID,$tpp."_province",true);
$tax_label = "Taxes-$province";
$tax = getTaxesByProvince($province);
} else {
$tax_label = "Taxes-$provstate";
$tax = getTaxesByProvince($provstate); // tax percentage (whole number)
}
$taxes = ($new_cost * ($tax/100));
$invoice_post = $_POST;
$details = Array('dietary',
'mealopt_one','mealopt_two','mealopt_three','mealopt_four','mealopt_five','mealopt_six','mealopt_seven','mealopt_eight','mealopt_nine','mealopt_ten',
'session_one','session_two','session_three','session_four','session_five','session_six','session_seven','session_eight','session_nine','session_ten');
$extras = array();
foreach($details as $index) {
if ( isset($_POST[$index]) ) {
$extras[$index] = $_POST[$index];
}
}
Events\set_attending($user->ID,$event_id,'paid',md5(rand()),$extras);
$items = array();
$items[] = array(
'post_id' => $event_id
, 'cost' => get_post_meta($event_id,'cost',true)
, 'discounts' => $discounts
, 'tax_label' => $tax_label
, 'tax_rate' => $tax
, 'tax_amount' => $taxes
, 'subtotal' => $new_cost
, 'total' => number_format(($new_cost + $taxes),2)
, 'description' => ""
, 'extras' => $extras
);
$pp = get_user_meta($user->ID,'profile_preference',true);
$pp = $pp . "_";
$invoice_data = array();
$invoice_data['items'] = $items;
$invoice_data['payment'] = array(
'total_cost' => get_post_meta($event_id,'cost',true)
, 'total_discounts' => $total_discount
, 'total_taxes' => $taxes
, 'subtotal' => $new_cost
, 'total' => number_format(($new_cost + $taxes),2)
, 'bt_address' => get_user_meta($user->ID, $pp.'address',true)
, 'bt_address2' => get_user_meta($user->ID, $pp.'address2',true)
, 'bt_city' => get_user_meta($user->ID, $pp.'city',true)
, 'bt_province' => get_user_meta($user->ID, $pp.'province',true)
, 'bt_country' => get_user_meta($user->ID, $pp.'country',true)
, 'bt_postal' => get_user_meta($user->ID, $pp.'postal',true)
, 'bt_card_holder' => ""
, 'bt_card_number' => ""
, 'bt_card_type' => ""
);
$event_term_slugs = array();
$terms = get_the_terms($event_id,'event_type');
if (!empty($terms)) {
foreach($terms as $types) {
$event_term_slugs[$types->slug] = $types->name;
}
}
//create($items = array(), $invoice_type = 'event', $title = "Invoice", $user_id = 0, $status = 'pending', $reference = '', $publish = 'draft')
Invoice\create($invoice_data, 'event', 'Registration for Event via CBV Admin: '.$event->post_title, $user->ID, $status, 'publish',number_format(($new_cost + $taxes),2));
}
}
$return = array('success' => 'true', 'refresh' => 'true');
die(json_encode($return));
}
......
......@@ -50,16 +50,21 @@ else: ?>
</tbody>
</table>
<h4 style="margin-bottom:5px;padding-bottom:0px; padding-left:10px;"><em>Not registered for...</em></h4>
<h4 style="margin-bottom:5px;padding-bottom:0px; padding-left:10px;"><em>Events not registered for...</em></h4>
<?php endif; ?>
<?php
$posts = query_posts(Array(
'post_type' => 'events'
, 'posts_per_page' => get_option('posts_per_page')
, 'posts_per_page' => -1
, 'paged' => (get_query_var('paged') ? get_query_var('paged') : 1)
, 'meta_key' => 'event_date'
/*
, 'meta_compare' => '>'
, 'meta_value' => (time() + (60*60*24)) // event date + 1 day, so that they can register the day of...
*/
, 'orderby' => 'meta_value'
, 'order' => 'DESC'
));
?>
......@@ -77,13 +82,51 @@ $posts = query_posts(Array(
<tbody>
<?php foreach($posts as $post):
if (!Events\is_attending($post->ID, $uid) && UAM\can_user_access($post->ID, $uid)):
// get categories....
$event_term_slugs = array();
$terms = get_the_terms($post->ID,'event_type');
$external_only = false;
if (!empty($terms)) {
foreach($terms as $types) {
$event_term_slugs[$types->slug] = $types->name;
if ($types->slug == "externalevent") {
$external_only = true;
}
}
}
if ($external_only) {
continue;
}
$event_date = get_post_meta($post->ID, 'event_date', true);
if (isset($event_term_slugs['webinar'])) {
$is_archived = get_post_meta($post->ID, 'is_archived_webinar', true);
if (!$is_archived == "on") { continue; }
} else {
if ($event_date <= (time() + (60*60*24)) ) {
continue;
}
}
$event_date = get_post_meta($post->ID, 'event_date', true);
$register_date = get_post_meta($post->ID, 'reg_deadline', true);
$cost = get_post_meta($post->ID,'cost',true);
if (empty($cost) || $cost < 1 || strtolower($cost)=="free") { $cost = 0; }
?>
<tr>
<td><?php echo $post->post_title;?></td>
<td><?php echo $post->post_title;?><br />
<?php foreach($terms as $the_term) { echo $the_term->name; } ?>
</td>
<td><?php echo date('F j, Y',$event_date);?></td>
<td><?php echo date('F j, Y',$register_date);?></td>
<td>$<?php echo number_format($cost,2);?></td>
......
......@@ -36,6 +36,8 @@
<div class="title-link" style="display:block;color:#f7bd55; font-size: 12px;font-weight: bold;text-align: left;line-height: 1.75em; background-color: #3b0d32; border: solid 1px #FFF; border-bottom: solid 1px #999; cursor: default; padding: 0em; padding:3px 10px 3px 10px; margin: 0em;"><?php echo $post->post_title;?></div>
<div style="padding: 0px 0px 10px 0px;">
<?php
$extras = $user_event_meta['extras'];
?>
......@@ -51,9 +53,8 @@
<div class="dashboard-section-links"></div>
<div class="dashboard-section-content small">
<select name="status">
<option value="paid" <?php echo ($user_event_meta['status']=="paid") ? "selected" : ""; ?>>Paid</option>
<option value="invoice" <?php echo ($user_event_meta['status']=="invoice") ? "selected" : ""; ?>>Invoice</option>
<option value="free" <?php echo ($user_event_meta['status']=="free") ? "selected" : ""; ?>>Free</option>
<option value="paid" <?php echo ($user_event_meta['status']=="paid") ? "selected" : ""; ?>>Paid/Free</option>
<option value="unpaid" <?php echo ($user_event_meta['status']=="unpaid") ? "selected" : ""; ?>>Invoice User</option>
</select>
</div>
</div>
......@@ -63,10 +64,12 @@
<div class="dashboard-section-links"></div>
<div class="dashboard-section-content small">
<select name="paid_by">
<option value="">Select payment method...</option>
<option value="visa" <?php echo ($user_event_meta['extras']['paid_by']=="visa") ? "selected" : ""; ?>>Visa</option>
<option value="mc" <?php echo ($user_event_meta['extras']['paid_by']=="mc") ? "selected" : ""; ?>>Mastercard</option>
<option value="amex" <?php echo ($user_event_meta['extras']['paid_by']=="amex") ? "selected" : ""; ?>>American Express</option>
<option value="cheque" <?php echo ($user_event_meta['extras']['paid_by']=="cheque") ? "selected" : ""; ?>>Cheque</option>
<option value="other" <?php echo ($user_event_meta['extras']['paid_by']=="other") ? "selected" : ""; ?>>Other</option>
</select>
</div>
</div>
......@@ -263,6 +266,6 @@
</div>
</form>
</div>
</body>
</html>
\ No newline at end of file
......