/** * Recalculates and updates adjustment decay * @param $mode 1 for recalculating, 0 for setting decay to zero. * @param string $origin * @return bool|int */ public function sync_adjdecay($mode, $origin = '') { global $user, $db; switch ($mode) { case 0: // Decay = OFF : set all decay to 0 // update item detail to new decay value $db->sql_transaction('begin'); $sql = 'UPDATE ' . ADJUSTMENTS_TABLE . ' SET adj_decay = 0 '; $db->sql_query($sql); $sql = 'UPDATE ' . MEMBER_DKP_TABLE . ' SET adj_decay = 0 '; $db->sql_query($sql); $db->sql_transaction('commit'); if ($origin == 'cron') { $origin = $user->lang['DECAYCRON']; } return true; break; case 1: // Decay is ON : synchronise // loop all ajustments $adj = new \bbdkp\controller\adjustments\Adjust(); $sql = 'SELECT adjustment_dkpid, adjustment_id, member_id , adjustment_date, adjustment_value, adj_decay FROM ' . ADJUSTMENTS_TABLE . ' WHERE can_decay = 1'; $result = $db->sql_query($sql); $countadj = 0; while ($row = $db->sql_fetchrow($result)) { $adj->decayadj($row['adjustment_id']); $countadj++; } $db->sql_freeresult($result); return $countadj; break; } }
public function buildpage(viewNavigation $Navigation) { global $db, $config, $phpbb_root_path, $phpEx, $user, $template; if (!isset($_GET[URI_NAMEID])) { trigger_error($user->lang['MNOTFOUND']); } $member_id = request_var(URI_NAMEID, 0); $member = new \bbdkp\controller\members\Members($member_id); $points = new \bbdkp\controller\points\Points($member_id, $Navigation->getDkpsysId()); $Raids = new \bbdkp\controller\raids\Raids(); $Adjustments = new \bbdkp\controller\adjustments\Adjust($Navigation->getDkpsysId()); /* Get attendance */ $range1 = $config['bbdkp_list_p1']; $range2 = $config['bbdkp_list_p2']; $range3 = $config['bbdkp_list_p3']; //member raidcount $mc1 = $Raids->raidcount($Navigation->getDkpsysId(), $range1, $member_id, 0, false, $member->member_guild_id); $mc2 = $Raids->raidcount($Navigation->getDkpsysId(), $range2, $member_id, 0, false, $member->member_guild_id); $mc3 = $Raids->raidcount($Navigation->getDkpsysId(), $range3, $member_id, 0, false, $member->member_guild_id); $mclife = $Raids->raidcount($Navigation->getDkpsysId(), 0, $member_id, 0, true, $member->member_guild_id); //guild raidcount $pc1 = $Raids->raidcount($Navigation->getDkpsysId(), $range1, $member_id, 1, false, $member->member_guild_id); $pc2 = $Raids->raidcount($Navigation->getDkpsysId(), $range2, $member_id, 1, false, $member->member_guild_id); $pc3 = $Raids->raidcount($Navigation->getDkpsysId(), $range3, $member_id, 1, false, $member->member_guild_id); $pclife = $Raids->raidcount($Navigation->getDkpsysId(), 0, $member_id, 1, true, $member->member_guild_id); //attendances $pct1 = $pc1 > 0 ? round($mc1 / $pc1 * 100, 1) : 0; $pct2 = $pc2 > 0 ? round($mc2 / $pc2 * 100, 1) : 0; $pct3 = $pc3 > 0 ? round($mc3 / $pc3 * 100, 1) : 0; $pctlife = $pclife > 0 ? round($mclife / $pclife * 100, 1) : 0; /** * * RAID history * * **/ $rstart = request_var('rstart', 0); if ($config['bbdkp_epgp'] == '1') { $current_earned = $points->earned_net; } else { $current_earned = $points->earned_net; } $raids_result = $Raids->getRaids('r.raid_start DESC', $Navigation->getDkpsysId(), 0, $rstart, $member_id); while ($raid = $db->sql_fetchrow($raids_result)) { $template->assign_block_vars('raids_row', array('DATE' => !empty($raid['raid_start']) ? date($config['bbdkp_date_format'], $raid['raid_start']) : ' ', 'U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $raid['raid_id']), 'NAME' => $raid['event_name'], 'NOTE' => !empty($raid['raid_note']) ? $raid['raid_note'] : ' ', 'RAIDVAL' => $raid['raid_value'], 'TIMEBONUS' => $raid['time_value'], 'ZSBONUS' => $raid['zs_value'], 'RAIDDECAY' => $raid['raiddecay'], 'EARNED' => $raid['net_earned'], 'CURRENT_EARNED' => sprintf("%.2f", $current_earned))); $current_earned = $current_earned - $raid['net_earned']; } /** * * Adjustments * */ $sort_order = array(0 => array('adjustment_id desc', 'adjustment_id asc'), 1 => array('adjustment_date desc, member_name asc', 'adjustment_date asc, member_name asc'), 2 => array('adjustment_dkpid', 'adjustment_dkpid desc'), 3 => array('dkpsys_name', 'dkpsys_name desc'), 4 => array('member_name', 'member_name desc'), 5 => array('adjustment_reason', 'adjustment_reason desc'), 6 => array('adjustment_value desc', 'adjustment_value'), 7 => array('adjustment_added_by', 'adjustment_added_by desc')); $result2 = $Adjustments->countadjust($member_id); $total_adjustments = (int) $db->sql_fetchfield('total_adjustments'); $db->sql_freeresult($result2); $current_order = $Navigation->switch_order($sort_order); $astart = request_var('astart', 0); $current_adj = $points->adjustment - $points->adj_decay; $result = $Adjustments->ListAdjustments($current_order['sql'], $member_id, $astart); while ($adj = $db->sql_fetchrow($result)) { $template->assign_block_vars('adjustments_row', array('DATE' => date($config['bbdkp_date_format'], $adj['adjustment_date']), 'ADJID' => $adj['adjustment_id'], 'DKPID' => $adj['adjustment_dkpid'], 'DKPPOOL' => $adj['dkpsys_name'], 'REASON' => isset($adj['adjustment_reason']) ? $adj['adjustment_reason'] : '', 'COLOR' => $adj['adjustment_value'] < 0 ? 'negative' : 'positive', 'ADJUSTMENT' => $adj['adjustment_value'] == 0 ? '' : number_format($adj['adjustment_value'], 2), 'CAN_DECAY' => $adj['can_decay'], 'ADJ_DECAY' => -1 * $adj['adj_decay'] == 0 ? '0.00' : -1 * $adj['adj_decay'], 'ADJUSTMENT_NET' => $adj['adjustment_value'] - $adj['adj_decay'] == 0 ? '' : number_format($adj['adjustment_value'] - $adj['adj_decay'], 2), 'CURRENT_ADJ' => sprintf("%.2f", $current_adj), 'COLORCURRENT' => $current_adj > 0 ? 'positive' : 'nagative', 'ADDED_BY' => $adj['adjustment_added_by'])); $current_adj = $current_adj - ($adj['adjustment_value'] - $adj['adj_decay']); } $db->sql_freeresult($result); $listadj_footcount = sprintf($user->lang['LISTADJ_FOOTCOUNT'], $total_adjustments, $config['bbdkp_user_alimit']); $adjpagination = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&astart=' . $astart), $total_adjustments, $config['bbdkp_user_alimit'], $astart, 1, 'astart'); $template->assign_vars(array('S_SHOW' => $total_adjustments > 0 ? true : false, 'O_ADJID' => $current_order['uri'][0], 'O_DATE' => $current_order['uri'][1], 'O_DKPID' => $current_order['uri'][2], 'O_DKPPOOL' => $current_order['uri'][3], 'O_MEMBER' => $current_order['uri'][4], 'O_REASON' => $current_order['uri'][5], 'O_ADJUSTMENT' => $current_order['uri'][6], 'O_ADDED_BY' => $current_order['uri'][7], 'ASTART' => $astart, 'LISTADJ_FOOTCOUNT' => $listadj_footcount, 'ADJUSTMENTS_PAGINATION' => $adjpagination, 'PAGE_NUMBER' => on_page($total_adjustments, $config['bbdkp_user_alimit'], $astart))); /** * * loot history * * **/ $istart = request_var('istart', 0); if ($config['bbdkp_epgp'] == '1') { $current_spent = $points->gp_net; } else { $current_spent = $points->item_net; } $loot = new \bbdkp\controller\loot\Loot(); $lootdetails = $loot->GetAllLoot(' i.item_date DESC ', 0, $Navigation->getDkpsysId(), 0, $istart, $member_id); while ($item = $db->sql_fetchrow($lootdetails)) { if ($Navigation->bbtips == true && $item['item_gameid'] == 'wow') { if ($item['wowhead_id'] > 0) { $item_name = '<strong>' . $Navigation->bbtips->parse('[itemdkp]' . $item['wowhead_id'] . '[/itemdkp]') . '</strong>'; } else { $item_name = '<strong>' . $Navigation->bbtips->parse('[itemdkp]' . $item['item_name'] . '[/itemdkp]') . '</strong>'; } } else { $item_name = '<strong>' . $item['item_name'] . '</strong>'; } $template->assign_block_vars('items_row', array('DATE' => !empty($item['item_date']) ? date($config['bbdkp_date_format'], $item['item_date']) : $item['item_date'] . ' ', 'U_VIEW_ITEM' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=item&' . URI_ITEM . '=' . $item['item_id']), 'U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $item['raid_id']), 'NAME' => $item_name, 'RAID' => !empty($item['event_name']) ? $item['event_name'] : '<<i>Not Found</i>>', 'SPENT' => sprintf("%.2f", $item['item_value']), 'DECAY' => sprintf("%.2f", $item['item_decay']), 'SPENT_NET' => sprintf("%.2f", $item['item_net']), 'CURRENT_SPENT' => sprintf("%.2f", $current_spent))); $current_spent -= $item['item_net']; } $db->sql_freeresult($lootdetails); $sql_array = array('SELECT' => 'count(*) as itemcount ', 'FROM' => array(EVENTS_TABLE => 'e', RAIDS_TABLE => 'r', RAID_ITEMS_TABLE => 'i'), 'WHERE' => " e.event_id = r.event_id\n\t\tAND e.event_dkpid=" . (int) $Navigation->getDkpsysId() . ' AND r.raid_id = i.raid_id AND i.member_id = ' . $member_id); $sql6 = $db->sql_build_query('SELECT', $sql_array); $result6 = $db->sql_query($sql6); $total_purchased_items = $db->sql_fetchfield('itemcount'); $db->sql_freeresult($result6); $raidpag = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&istart=' . $istart), $points->raidcount, $config['bbdkp_user_rlimit'], $rstart, 1, 'rstart'); $itpag = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&rstart=' . $rstart), $total_purchased_items, $config['bbdkp_user_ilimit'], $istart, 1, 'istart'); $template->assign_vars(array('RAID_PAGINATION' => $raidpag, 'RSTART' => $rstart, 'RAID_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_RAID_FOOTCOUNT'], $points->raidcount, $config['bbdkp_user_rlimit']), 'ITEM_PAGINATION' => $itpag, 'ISTART' => $istart, 'ITEM_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_ITEM_FOOTCOUNT'], $total_purchased_items, $config['bbdkp_user_ilimit']), 'ITEMS' => is_null($total_purchased_items) ? false : true)); //output $url = append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_NAMEID . '=' . $member_id . '&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId()); $template->assign_vars(array('S_DISPLAY_VIEWMEMBER' => true, 'S_SHOWZS' => $config['bbdkp_zerosum'] == '1' ? true : false, 'S_SHOWDECAY' => $config['bbdkp_decay'] == '1' ? true : false, 'S_SHOWEPGP' => $config['bbdkp_epgp'] == '1' ? true : false, 'S_SHOWTIME' => $config['bbdkp_timebased'] == '1' ? true : false, 'NAME' => $member->member_name, 'GUILD' => $member->member_guild_name, 'REGION' => $member->member_region, 'REALM' => $member->member_realm, 'MEMBER_LEVEL' => $member->member_level, 'MEMBER_DKPID' => $Navigation->getDkpsysId(), 'MEMBER_DKPNAME' => $Navigation->getDkpsysName(), 'MEMBER_RACE' => $member->member_race, 'MEMBER_CLASS' => $member->member_class, 'COLORCODE' => $member->colorcode, 'CLASS_IMAGE' => $member->class_image, 'S_CLASS_IMAGE_EXISTS' => strlen($member->class_image) > 1 ? true : false, 'RACE_IMAGE' => $member->race_image, 'S_RACE_IMAGE_EXISTS' => strlen($member->race_image) > 1 ? true : false, 'MEMBER_RANK' => $member->member_rank_id, 'U_VIEW_MEMBER' => $url, 'POINTNAME' => $config['bbdkp_dkp_name'])); if ($config['bbdkp_epgp'] == '0') { $template->assign_vars(array('RAIDVAL' => sprintf("%.2f", $points->raid_value), 'TIMEBONUS' => sprintf("%.2f", $points->time_bonus), 'ZEROSUM' => sprintf("%.2f", $points->zerosum_bonus), 'RAIDDECAY' => sprintf("%.2f", $points->earned_decay), 'EARNED' => sprintf("%.2f", $points->total_earned), 'EARNED_NET' => sprintf("%.2f", $points->earned_net), 'SPENT' => sprintf("%.2f", $points->spent), 'ITEMDECAY' => sprintf("%.2f", $points->item_decay), 'ITEMNET' => sprintf("%.2f", $points->item_net), 'CURRENT' => sprintf("%.2f", $points->total), 'C_CURRENT' => $points->total > 0 ? 'positive' : 'negative', 'ADJUSTMENT' => sprintf("%.2f", $points->adjustment), 'C_ADJUSTMENT' => $points->adjustment > 0 ? 'positive' : 'negative', 'ADJDECAY' => sprintf("%.2f", $points->adj_decay), 'ADJNET' => sprintf("%.2f", $points->adj_net), 'TOTAL_DECAY' => sprintf("%.2f", $points->total_decayed), 'C_TOTAL_DECAY' => $points->total_decayed > 0 ? 'negative' : 'positive', 'NETCURRENT' => sprintf("%.2f", $points->total_net), 'C_NETCURRENT' => $points->total_net > 0 ? 'positive' : 'negative')); } elseif ($config['bbdkp_epgp'] == '1') { $template->assign_vars(array('EP' => $points->ep, 'EPNET' => (double) $points->ep_net, 'GP' => $points->gp, 'BGP' => $config['bbdkp_basegp'], 'GPNET' => $points->gp_net, 'PR' => $points->pr, 'PRNET' => $points->pr_net)); } $template->assign_vars(array('RAID_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_RAID_FOOTCOUNT'], $points->raidcount, $config['bbdkp_user_rlimit']), 'RAIDS_X1_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range1), 'RAIDS_X2_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range2), 'RAIDS_X3_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range3), 'RAIDS_LIFETIME' => sprintf($user->lang['RAIDS_LIFETIME'], date($config['bbdkp_date_format'], $points->firstraid), date($config['bbdkp_date_format'], $points->lastraid)), 'C_RAIDS_X1_DAYS' => $mc1 . '/' . $pc1 . ' : ' . $pct1, 'C_RAIDS_X2_DAYS' => $mc2 . '/' . $pc2 . ' : ' . $pct2, 'C_RAIDS_X3_DAYS' => $mc3 . '/' . $pc3 . ' : ' . $pct3, 'C_RAIDS_LIFETIME' => $mclife . '/' . $pclife . ' : ' . $pctlife)); $navlinks_array = array(array('DKPPAGE' => $user->lang['MENU_STANDINGS'], 'U_DKPPAGE' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=standings&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId())), array('DKPPAGE' => sprintf($user->lang['MENU_VIEWMEMBER'], $member->member_name), 'U_DKPPAGE' => $url)); foreach ($navlinks_array as $name) { $template->assign_block_vars('dkpnavlinks', array('DKPPAGE' => $name['DKPPAGE'], 'U_DKPPAGE' => $name['U_DKPPAGE'])); } $template->assign_vars(array()); // Output page page_header($user->lang['MEMBER']); }
/** * main dkp_adj acp function * @param integer $id * @param string $mode */ public function main($id, $mode) { global $db, $user, $template; global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx; $this->adjustment = new \bbdkp\controller\adjustments\Adjust(); //always late binding in php $this->link = '<br /><a href="' . append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=listiadj") . '"><h3>' . $user->lang['RETURN_DKPINDEX'] . '</h3></a>'; $this->tpl_name = 'dkp/acp_' . $mode; switch ($mode) { case 'listiadj': if (count($this->games) == 0) { trigger_error($user->lang['ERROR_NOGAMES'], E_USER_WARNING); } $showadd = isset($_POST['addiadj']) ? true : false; if ($showadd) { redirect(append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=addiadj")); break; } // guild dropdown $submit = isset($_POST['member_guild_id']) ? true : false; $Guild = new \bbdkp\controller\guilds\Guilds(); $guildlist = $Guild->guildlist(1); if ($submit) { $Guild->guildid = request_var('member_guild_id', 0); } else { foreach ($guildlist as $g) { $Guild->guildid = $g['id']; $Guild->name = $g['name']; if ($Guild->guildid == 0 && $Guild->name == 'Guildless') { trigger_error('ERROR_NOGUILD', E_USER_WARNING); } break; } } foreach ($guildlist as $g) { $template->assign_block_vars('guild_row', array('VALUE' => $g['id'], 'SELECTED' => $g['id'] == $Guild->guildid ? ' selected="selected"' : '', 'OPTION' => !empty($g['name']) ? $g['name'] : '(None)')); } $this->adjustment->setAdjustmentDkpid(0); if (isset($_GET[URI_DKPSYS]) or isset($_POST[URI_DKPSYS])) { $this->adjustment->setAdjustmentDkpid(request_var(URI_DKPSYS, 0)); } if ($this->adjustment->getAdjustmentDkpid() == 0) { if (count((array) $this->adjustment->getDkpsys()) == 0) { trigger_error('ERROR_NOPOOLS', E_USER_WARNING); } //get default dkp pool foreach ($this->adjustment->getDkpsys() as $pool) { if ($pool['default'] == 'Y') { $this->adjustment->setAdjustmentDkpid($pool['id']); break; } } //if still 0 then get first one if ($this->adjustment->getAdjustmentDkpid() == 0) { foreach ($this->adjustment->getDkpsys() as $pool) { $this->adjustment->setAdjustmentDkpid($pool['id']); break; } } } foreach ($this->adjustment->getDkpsys() as $pool) { $template->assign_block_vars('dkpsys_row', array('VALUE' => $pool['id'], 'SELECTED' => $pool['id'] == $this->adjustment->getAdjustmentDkpid() ? ' selected="selected"' : '', 'OPTION' => !empty($pool['name']) ? $pool['name'] : '(None)')); } /*** end DKPSYS drop-down ***/ $sort_order = array(0 => array('adjustment_id desc', 'adjustment_id asc'), 1 => array('adjustment_date desc, member_name asc', 'adjustment_date asc, member_name asc'), 2 => array('adjustment_dkpid', 'adjustment_dkpid desc'), 3 => array('dkpsys_name', 'dkpsys_name desc'), 4 => array('member_name', 'member_name desc'), 5 => array('adjustment_reason', 'adjustment_reason desc'), 6 => array('adjustment_value desc', 'adjustment_value'), 7 => array('adjustment_added_by', 'adjustment_added_by desc')); $member_filter = utf8_normalize_nfc(request_var('member_name', '', true)); $result2 = $this->adjustment->countadjust(0, $member_filter, $Guild->guildid); $total_adjustments = (int) $db->sql_fetchfield('total_adjustments'); $db->sql_freeresult($result2); $start = request_var('start', 0); if ($member_filter != '') { $u_list_adjustments = append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=listiadj&" . URI_DKPSYS . "=" . $this->adjustment->getAdjustmentDkpid()) . '&member_name=' . $member_filter; } else { $u_list_adjustments = append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=listiadj&" . URI_DKPSYS . "=" . $this->adjustment->getAdjustmentDkpid()); } $current_order = $this->switch_order($sort_order); $result = $this->adjustment->ListAdjustments($current_order['sql'], 0, $start, $Guild->guildid, $member_filter); while ($adj = $db->sql_fetchrow($result)) { $template->assign_block_vars('adjustments_row', array('U_ADD_ADJUSTMENT' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=addiadj") . '&' . URI_ADJUSTMENT . '=' . $adj['adjustment_id'] . '&' . URI_DKPSYS . '=' . $adj['adjustment_dkpid'], 'DATE' => date($config['bbdkp_date_format'], $adj['adjustment_date']), 'ADJID' => $adj['adjustment_id'], 'DKPID' => $adj['adjustment_dkpid'], 'DKPPOOL' => $adj['dkpsys_name'], 'COLORCODE' => $adj['colorcode'] == '' ? '#254689' : $adj['colorcode'], 'CLASS_IMAGE' => strlen($adj['imagename']) > 1 ? $phpbb_root_path . "images/bbdkp/class_images/" . $adj['imagename'] . ".png" : '', 'S_CLASS_IMAGE_EXISTS' => strlen($adj['imagename']) > 1 ? true : false, 'U_VIEW_MEMBER' => isset($adj['member_name']) ? append_sid("{$phpbb_root_path}dkp.{$phpEx}", "page=member&" . URI_NAMEID . '=' . $adj['member_id'] . '&' . URI_DKPSYS . '=' . $adj['adjustment_dkpid']) : '', 'U_VIEW_MEMBER_ACP' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_mdkp&mode=mm_editmemberdkp") . '&member_id=' . $adj['member_id'] . '&' . URI_DKPSYS . '=' . $adj['adjustment_dkpid'], 'MEMBER' => isset($adj['member_name']) ? $adj['member_name'] : '', 'REASON' => isset($adj['adjustment_reason']) ? $adj['adjustment_reason'] : '', 'CAN_DECAY' => $adj['can_decay'], 'ADJUSTMENT' => $adj['adjustment_value'] == 0 ? '' : number_format($adj['adjustment_value'], 2), 'ADJ_DECAY' => -1 * $adj['adj_decay'] == 0 ? '' : -1 * $adj['adj_decay'], 'ADJUSTMENT_NET' => $adj['adjustment_value'] - $adj['adj_decay'] == 0 ? '' : number_format($adj['adjustment_value'] - $adj['adj_decay'], 2), 'DECAY_TIME' => $adj['decay_time'] != 0 ? date($config['bbdkp_date_format'], $adj['decay_time']) : '', 'ADDED_BY' => $adj['adjustment_added_by'], 'MEMBER_NAME' => $member_filter)); } $db->sql_freeresult($result); $listadj_footcount = sprintf($user->lang['LISTADJ_FOOTCOUNT'], $total_adjustments, $config['bbdkp_user_alimit']); $pagination = generate_pagination(append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=listiadj&dkpsys_id=" . $this->adjustment->getAdjustmentDkpid()), $total_adjustments, $config['bbdkp_user_alimit'], $start, true); $template->assign_vars(array('L_TITLE' => $user->lang['ACP_LISTIADJ'], 'L_EXPLAIN' => $user->lang['ACP_LISTIADJ_EXPLAIN'], 'S_SHOW' => $total_adjustments > 0 ? true : false, 'O_ADJID' => $current_order['uri'][0], 'O_DATE' => $current_order['uri'][1], 'O_DKPID' => $current_order['uri'][2], 'O_DKPPOOL' => $current_order['uri'][3], 'O_MEMBER' => $current_order['uri'][4], 'O_REASON' => $current_order['uri'][5], 'O_ADJUSTMENT' => $current_order['uri'][6], 'O_ADDED_BY' => $current_order['uri'][7], 'U_LIST_ADJUSTMENTS' => $u_list_adjustments, 'MEMBER_NAME' => $member_filter, 'START' => $start, 'S_GROUP_ADJ' => false, 'LISTADJ_FOOTCOUNT' => $listadj_footcount, 'ADJUSTMENT_PAGINATION' => $pagination, 'TOTAL_ADJUSTMENTS' => 'Total Adjustments', 'PAGE_NUMBER' => on_page($total_adjustments, $config['bbdkp_user_alimit'], $start))); $this->page_title = 'ACP_LISTIADJ'; break; case 'addiadj': $form_key = 'acp_dkp_adj'; add_form_key($form_key); // begin DKPSYS drop-down $dkpsys_id = 1; $sql = 'SELECT dkpsys_id, dkpsys_name, dkpsys_default FROM ' . DKPSYS_TABLE . "\n\t\t WHERE dkpsys_status = 'Y'\n ORDER BY dkpsys_name"; $resultdkpsys = $db->sql_query($sql); $showadj = new \bbdkp\controller\adjustments\Adjust(); $adjust_id = request_var(URI_ADJUSTMENT, 0); $dkpsys_id = request_var(URI_DKPSYS, 0); if ($adjust_id != 0 && $dkpsys_id != 0) { $showadj->get($adjust_id); while ($row2 = $db->sql_fetchrow($resultdkpsys)) { $template->assign_block_vars('adj_dkpid_row', array('VALUE' => $row2['dkpsys_id'], 'SELECTED' => $row2['dkpsys_id'] == $showadj->getAdjustmentDkpid() ? ' selected="selected"' : '', 'OPTION' => !empty($row2['dkpsys_name']) ? $row2['dkpsys_name'] : '(None)')); } } else { // we dont have a GET so put default dkp pool in pulldown while ($row2 = $db->sql_fetchrow($resultdkpsys)) { //dkpsys_default $template->assign_block_vars('adj_dkpid_row', array('VALUE' => $row2['dkpsys_id'], 'SELECTED' => $row2['dkpsys_default'] == 'Y' ? ' selected="selected"' : '', 'OPTION' => !empty($row2['dkpsys_name']) ? $row2['dkpsys_name'] : '(None)')); if ($row2['dkpsys_default'] == 'Y') { $dkpsys_id = $row2['dkpsys_id']; } } } // end DKPSYS drop-down $submit = isset($_POST['add']) ? true : false; $update = isset($_POST['update']) ? true : false; $delete = isset($_POST['delete']) ? true : false; if ($submit || $update) { if (!check_form_key('acp_dkp_adj')) { trigger_error('FORM_INVALID'); } } $now = getdate(); $s_day_options = ''; $day = $showadj->getAdjustmentDate() > 0 ? date('j', $showadj->getAdjustmentDate()) : $now['mday']; for ($i = 1; $i < 32; $i++) { $selected = $i == $day ? ' selected="selected"' : ''; $s_day_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>"; } $s_month_options = ''; $month = $showadj->getAdjustmentDate() > 0 ? date('n', $showadj->getAdjustmentDate()) : $now['mon']; for ($i = 1; $i < 13; $i++) { $selected = $i == $month ? ' selected="selected"' : ''; $s_month_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>"; } $s_year_options = ''; $yr = $showadj->getAdjustmentDate() > 0 ? date('Y', $showadj->getAdjustmentDate()) : $now['year']; for ($i = $now['year'] - 10; $i <= $now['year']; $i++) { $selected = $i == $yr ? ' selected="selected"' : ''; $s_year_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>"; } if ($submit) { global $user; $this->error_check(); $newadjust = new \bbdkp\controller\adjustments\Adjust(); $temp = str_replace(".", "", request_var('adjustment_value', 0.0)); $temp2 = (double) str_replace(",", ".", $temp); $newadjust->setAdjustmentValue($temp2); $newadjust->setAdjustmentReason(utf8_normalize_nfc(request_var('adjustment_reason', '', true))); $newadjust->setCanDecay(request_var('adj_decayable', 1)); $newadjust->setAdjDecay(0); $newadjust->setDecayTime(0); $newadjust->setAdjustmentDate(mktime(12, 0, 0, request_var('adjustment_month', 0), request_var('adjustment_day', 0), request_var('adjustment_year', 0))); $newadjust->setAdjustmentDkpid(request_var('adj_dkpid', 0)); $newadjust->setAdjustmentGroupkey($this->gen_group_key($this->time, $newadjust->getAdjustmentReason(), $newadjust->getAdjustmentValue())); $newadjust->setAdjustmentAddedBy($user->data['username']); $members = request_var('member_names', array(0 => 0), true); $member_names = array(); foreach ($members as $member_id) { $member = new \bbdkp\controller\members\Members(); $member->member_id = $member_id; $member->Getmember(); $newadjust->setMemberId($member_id); $newadjust->setMemberName($member->member_name); $member_names[] = $member->member_name; $newadjust->add(); } // // Logging // $log_action = array('header' => 'L_ACTION_INDIVADJ_ADDED', 'L_ADJUSTMENT' => $newadjust->getAdjustmentValue(), 'L_REASON' => $newadjust->getAdjustmentReason(), 'L_MEMBERS' => implode(', ', $member_names), 'L_ADDED_BY' => $newadjust->getAdjustmentAddedBy()); $this->log_insert(array('log_type' => 'L_ACTION_INDIVADJ_ADDED', 'log_action' => $log_action)); $success_message = sprintf($user->lang['ADMIN_ADD_IADJ_SUCCESS'], $config['bbdkp_dkp_name'], $newadjust->getAdjustmentValue(), implode(', ', $member_names)); trigger_error($success_message . $this->link); } if ($update) { $this->error_check(); $oldadjust = new \bbdkp\controller\adjustments\Adjust(); $oldadjust->adjustment_id = request_var('hidden_id', 0); $oldadjust->get($oldadjust->adjustment_id); foreach ($oldadjust->getMembersSamegroupkey() as $member_id) { $oldmembers = new \bbdkp\controller\members\Members(); $oldmembers->member_id = $member_id; $oldmembers->Getmember(); $oldmember_names[] = $oldmembers->member_name; unset($oldmembers); // remove old adjustment $oldadjust->delete(); } $updadjust = new \bbdkp\controller\adjustments\Adjust(); $temp = str_replace(".", "", request_var('adjustment_value', 0.0)); $temp2 = (double) str_replace(",", ".", $temp); $updadjust->setAdjustmentValue($temp2); $updadjust->setAdjustmentReason(utf8_normalize_nfc(request_var('adjustment_reason', '', true))); $updadjust->setCanDecay(request_var('adj_decayable', 1)); $updadjust->setAdjDecay(request_var('adjustment_decay', 0.0)); $updadjust->setDecayTime($oldadjust->getDecayTime()); $updadjust->setAdjustmentDate(mktime(12, 0, 0, request_var('adjustment_month', 0), request_var('adjustment_day', 0), request_var('adjustment_year', 0))); $updadjust->setAdjustmentDkpid(request_var('adj_dkpid', 0)); $updadjust->setAdjustmentAddedBy($user->data['username']); $updadjust->setAdjustmentGroupkey($updadjust->gen_group_key($this->time, $updadjust->getAdjustmentReason(), $updadjust->getAdjustmentValue())); $members = request_var('member_names', array(0 => 0), true); foreach ($members as $member_id) { $member = new \bbdkp\controller\members\Members(); $member->member_id = $member_id; $updadjust->setMembersSamegroupkey($member_id); $member->Getmember(); $updadjust->setMemberId($member_id); $updadjust->setMemberName($member->member_name); $member_names[] = $member->member_name; $updadjust->add(); unset($member); } // // Logging // $log_action = array('header' => 'L_ACTION_INDIVADJ_UPDATED', 'id' => $adjust_id, 'L_ADJUSTMENT_BEFORE' => $oldadjust->getAdjustmentValue(), 'L_REASON_BEFORE' => $oldadjust->getAdjustmentReason(), 'L_MEMBERS_BEFORE' => implode(', ', $oldmember_names), 'L_ADJUSTMENT_AFTER' => $updadjust->getAdjustmentValue(), 'L_REASON_AFTER' => $updadjust->getAdjustmentReason(), 'L_MEMBERS_AFTER' => implode(', ', $member_names), 'L_UPDATED_BY' => $user->data['username']); $this->log_insert(array('log_type' => $log_action['header'], 'log_action' => $log_action)); $success_message = sprintf($user->lang['ADMIN_UPDATE_IADJ_SUCCESS'], $config['bbdkp_dkp_name'], $updadjust->getAdjustmentValue(), implode(', ', $member_names)); trigger_error($success_message . $this->link); } if ($delete) { if (confirm_box(true)) { // get form vars $adjust_id = request_var('xhidden_id', 0); $deleteadj = new \bbdkp\controller\adjustments\Adjust(); $deleteadj->get($adjust_id); $deleteadj->delete(); // Logging $log_action = array('header' => 'L_ACTION_INDIVADJ_DELETED', 'id' => $adjust_id, 'L_ADJUSTMENT' => $deleteadj->getAdjustmentValue(), 'L_REASON' => $deleteadj->getAdjustmentReason(), 'L_MEMBERS' => $deleteadj->getMemberName()); $this->log_insert(array('log_type' => $log_action['header'], 'log_action' => $log_action)); // // Success messages $success_message = sprintf($user->lang['ADMIN_DELETE_IADJ_SUCCESS'], $config['bbdkp_dkp_name'], $deleteadj->getAdjustmentValue(), $deleteadj->getMemberName()); trigger_error($success_message . $this->link); } else { $s_hidden_fields = build_hidden_fields(array('delete' => true, 'xhidden_id' => request_var('hidden_id', 0))); $template->assign_vars(array('S_HIDDEN_FIELDS' => $s_hidden_fields)); confirm_box(false, $user->lang['CONFIRM_DELETE_IADJ'], $s_hidden_fields); } } //guild dropdown $guildid = request_var('member_guild_id', 0); $Guild = new \bbdkp\controller\guilds\Guilds(); $guildlist = $Guild->guildlist(1); foreach ((array) $guildlist as $g) { if ($guildid == 0) { $guildid = $g['id']; } if ($g['guilddefault'] == 1) { $guildid = $g['id']; } $template->assign_block_vars('guild_row', array('VALUE' => $g['id'], 'SELECTED' => $guildid == $g['id'] ? ' selected="selected"' : '', 'OPTION' => $g['name'])); } /* mark members as selected */ $sql = 'SELECT member_id, member_name FROM ' . MEMBER_LIST_TABLE . ' WHERE member_guild_id = ' . $guildid . ' ORDER BY member_name '; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($adjust_id) { //editmode $selected = @in_array($row['member_id'], $showadj->getMembersSamegroupkey()) ? ' selected="selected"' : ''; } else { //newmode $selected = @in_array($row['member_id'], utf8_normalize_nfc(request_var('member_names', array(0 => 0)))) ? ' selected="selected"' : ''; } $template->assign_block_vars('members_row', array('VALUE' => $row['member_id'], 'SELECTED' => $selected, 'OPTION' => $row['member_name'])); } $db->sql_freeresult($result); $template->assign_vars(array('L_TITLE' => $showadj->adjustment_id == 0 ? $user->lang['ADD_IADJ_TITLE'] : $user->lang['EDIT_IADJ_TITLE'], 'L_EXPLAIN' => $user->lang['ACP_ADDIADJ_EXPLAIN'], 'F_ADD_ADJUSTMENT' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_adj&mode=addiadj"), 'ADJUSTMENT_ID' => $showadj->adjustment_id, 'DKP_ID' => $showadj->getAdjustmentDkpid(), 'ADJUSTMENT_VALUE' => number_format($showadj->getAdjustmentValue(), 2), 'ADJUSTMENT_REASON' => $showadj->getAdjustmentReason(), 'ADJUSTMENT_DECAY' => number_format($showadj->getAdjDecay(), 2), 'S_DAY_OPTIONS' => $s_day_options, 'S_MONTH_OPTIONS' => $s_month_options, 'S_YEAR_OPTIONS' => $s_year_options, 'CAN_DECAY_NO_CHECKED' => $showadj->getCanDecay() == 0 ? ' checked="checked"' : '', 'CAN_DECAY_YES_CHECKED' => $showadj->getCanDecay() == 1 ? ' checked="checked"' : '', 'MSG_VALUE_EMPTY' => $user->lang['FV_REQUIRED_ADJUSTMENT'], 'UA_FINDMEMBERS' => append_sid($phpbb_admin_path . "style/dkp/findmembers.{$phpEx}"), 'S_ADD' => !$showadj->adjustment_id ? true : false)); $this->page_title = 'ACP_ADDIADJ'; break; } }
/** * * adds new members to listmembers table, adds dkp */ private function handle_new_members() { global $db, $user, $config, $phpbb_root_path, $phpEx; $membersadded = 0; $attendee = new \bbdkp\controller\members\Members(0, $this->guildlist); foreach ($this->allplayerinfo as $playerid => $player) { $member_id = $attendee->get_member_id($player['playername'], 'wow', $player['realm']); if ($member_id != 0) { // existing bbdkp member $attendee->member_id = $member; $attendee->Getmember(); $this->allplayerinfo[$playerid]['member_id'] = $attendee->member_id; $this->allplayerinfo[$playerid]['rank_id'] = $attendee->member_rank_id; $this->allplayerinfo[$playerid]['guild_id'] = $attendee->member_guild_id; } else { // player in dkp string is unknown $attendee = new \bbdkp\controller\members\Members(0, $this->guildlist); $attendee->game_id = 'wow'; $attendee->member_name = $player['playername']; $attendee->member_realm = $player['realm'] == '' ? $config['bbdkp_default_region'] : $player['realm']; $attendee->member_region = $config['bbdkp_default_region']; $attendee->member_guild_id = $this->guild->guildid; $attendee->member_rank_id = $this->defaultrank_id; $attendee->member_level = $player['level']; if (!in_array($attendee->member_region, $attendee->regionlist)) { $attendee->member_region = ''; } $attendee->member_race_id = $player['race']; $attendee->member_class_id = $player['class']; $attendee->member_gender_id = $player['sex']; $attendee->member_comment = "Member inserted " . $user->format_date($this->time) . ' by RaidTracker'; // take two days ago from raid start (3600*24*-2 = -172800) $attendee->member_joindate = $this->raidbegin - 172800; $attendee->member_outdate = 0; $attendee->member_achiev = 0; if ($attendee->Armory_getmember() == -1) { //no armory response //do checks on guild name from dkp string $found = false; foreach ($this->guildlist as $guild) { // has dkpstringguild a match in guildlist ? if ($guild['name'] == $player['guild']) { $found = true; //is the form guild different from the dkpstring guild ? then override guild ! if ($this->guild->guildid != $guild['id']) { $attendee->member_guild_id = $guild['id']; $attendee->member_guild_name = $player['guild']; $attendee->member_rank_id = $guild['joinrank']; } break; } } if ($found == false) { // if dkpstring guild not in database then assign to noguild $attendee->member_guild_id = 0; $attendee->member_rank_id = 99; } } switch ($config['bbdkp_rt_noguild']) { case 0: //RT_NOGUILD_IGNORE // if we ignore no guild then skip this member if he's got no guild if ($attendee->member_guild_id != 0) { $this->allplayerinfo[$playerid]['member_id'] = $attendee->Makemember(); if ($this->allplayerinfo[$playerid]['member_id'] > 0) { $membersadded += 1; } } break; case 1: //RT_NOGUILD_ADDNONE $this->allplayerinfo[$playerid]['member_id'] = $attendee->Makemember(); if ($this->allplayerinfo[$playerid]['member_id'] > 0) { $membersadded += 1; } break; } } if ($attendee->member_id == 0) { //skipped $this->allplayerinfo[$playerid]['skipped'] = true; } else { $this->acceptedraiders += 1; $this->allplayerinfo[$playerid]['skipped'] = false; $Points = new \bbdkp\controller\points\Points($attendee->member_id, $this->dkp); // check if player has dkp record for pool if (!$Points->has_account($attendee->member_id, $this->dkp)) { $Points->member_id = $attendee->member_id; $Points->dkpid = $this->dkp; $Points->raid_value = 0.0; $Points->time_bonus = 0.0; $Points->zerosum_bonus = 0.0; $Points->earned_decay = 0.0; $Points->spent = 0.0; $Points->item_decay = 0.0; $Points->adjustment = 0.0; $Points->adj_decay = 0.0; $Points->firstraid = $this->raidbegin; $Points->lastraid = $this->raidbegin; $Points->raidcount = 1; $Points->status = 1; $Points->open_account(); unset($Points); //add starting adjustment that can never decay $newadjust = new \bbdkp\controller\adjustments\Adjust($this->dkp); $newadjust->member_id = $attendee->member_id; $newadjust->adjustment_dkpid = $this->dkp; $newadjust->adjustment_value = floatval($config['bbdkp_starting_dkp']); $newadjust->adjustment_reason = $user->lang['RT_STARTING_DKP']; $newadjust->can_decay = 0; $newadjust->adj_decay = 0; $newadjust->decay_time = 0; $newadjust->adjustment_date = $this->raidbegin; $newadjust->adjustment_groupkey = $this->gen_group_key($this->raidbegin, $newadjust->adjustment_reason, $newadjust->adjustment_value); $newadjust->adjustment_added_by = $user->data['username']; $newadjust->add(); unset($newadjust); } } } $a = "debug"; }
/** * @param float $adj * @param string $reason */ private function AddMemberAdjustment($adj, $reason) { global $user; if (!class_exists('\\bbdkp\\controller\\adjustments\\Adjust')) { global $phpbb_root_path, $phpEx; require "{$phpbb_root_path}includes/bbdkp/controller/adjustments/Adjust.{$phpEx}"; } $newadjust = new \bbdkp\controller\adjustments\Adjust(); $newadjust->setMemberId($this->member_id); $newadjust->setAdjustmentValue($adj); $newadjust->setAdjustmentReason($reason); $newadjust->setCanDecay(0); $newadjust->setAdjDecay(0); $newadjust->setDecayTime(0); $newadjust->setAdjustmentDate($this->member_joindate); $newadjust->setAdjustmentGroupkey($this->gen_group_key($newadjust->getAdjustmentDate(), $newadjust->getAdjustmentReason(), $newadjust->getAdjustmentValue())); $newadjust->setAdjustmentAddedBy($user->data['username']); foreach ($newadjust->getDkpsys() as $pool) { $newadjust->setAdjustmentDkpid($pool['id']); $newadjust->add(); } unset($newadjust); }