public function update_raid($raid_id, $raid_date, $raid_attendees, $event_id, $raid_note, $raid_value, $additional_data = '') { //get old-data $old['event'] = $this->pdh->get('raid', 'event', array($raid_id)); $old['note'] = $this->pdh->get('raid', 'note', array($raid_id)); $old['value'] = $this->pdh->get('raid', 'value', array($raid_id)); $old['date'] = $this->pdh->get('raid', 'date', array($raid_id)); $old['members'] = $this->pdh->get('raid', 'raid_attendees', array($raid_id)); $old['additional_data'] = $this->pdh->get('raid', 'additional_data', array($raid_id)); //get member names for log $old['m_names'] = $this->pdh->aget('member', 'name', 0, array($old['members'])); $arrSet = array('event_id' => $event_id, 'raid_note' => $raid_note, 'raid_value' => $raid_value, 'raid_date' => $raid_date, 'raid_additional_data' => $additional_data); $objQuery = $this->db->prepare("UPDATE __raids :p WHERE raid_id=?")->set($arrSet)->execute($raid_id); if ($objQuery) { //update raid_attendees $add_atts = array_diff($raid_attendees, $old['members']); $del_atts = array_diff($old['members'], $raid_attendees); $upd_atts = array_diff($old['members'], $del_atts); foreach ($add_atts as $add_att) { $objQuery = $this->db->prepare("INSERT INTO __raid_attendees :p")->set(array('raid_id' => $raid_id, 'member_id' => $add_att))->execute(); } foreach ($del_atts as $del_att) { $objQuery = $this->db->prepare("DELETE FROM __raid_attendees WHERE raid_id = ? AND member_id =?")->execute($raid_id, $del_att); } $member_string = get_coloured_names($upd_atts, $add_atts, $del_atts); $arrOld = array('event' => $this->pdh->get('event', 'name', array($old['event'])), 'attendees' => implode(', ', $old['m_names']), 'note' => $old['note'], 'value' => $old['value'], 'date' => '{D_' . $old['date'] . '}', 'additional_data' => $old['additional_data']); $arrNew = array('event' => $this->pdh->get('event', 'name', array($event_id)), 'attendees' => $member_string, 'note' => $raid_note, 'value' => $raid_value, 'date' => '{D_' . $raid_date . '}', 'additional_data' => $additional_data); $log_action = $this->logs->diff($arrOld, $arrNew, $this->arrLogLang); $this->log_insert('action_raid_updated', $log_action, $raid_id, $this->pdh->get('event', 'name', array($old['event']))); $this->pdh->enqueue_hook('raid_update', $raid_id); return true; } return false; }
public function update_item($group_key_or_id, $item_name, $item_buyers, $raid_id, $game_item_id, $item_value, $itempool_id, $time = false, $id = false) { $time = $time ? $time : time(); $new_group_key = $this->gen_group_key($time, array($item_name, $raid_id, $item_value, $itempool_id)); //fetch old-data if (!$id) { $group_key = $group_key_or_id; $old['ids'] = $this->pdh->get('item', 'ids_of_group_key', array($group_key)); foreach ($old['ids'] as $item_id) { $old['buyers'][$item_id] = $this->pdh->get('item', 'buyer', array($item_id)); } } else { $item_id = $group_key_or_id; $old['buyers'][$item_id] = $this->pdh->get('item', 'buyer', array($item_id)); } $old['value'] = $this->pdh->get('item', 'value', array($item_id)); $old['name'] = $this->pdh->get('item', 'name', array($item_id)); $old['raid_id'] = $this->pdh->get('item', 'raid_id', array($item_id)); $old['itempool_id'] = $this->pdh->get('item', 'itempool_id', array($item_id)); #$this->db->query("START TRANSACTION;"); $retu = array(true); $updated_mems = array(); $added_mems = array(); $items2del = array(); if ($id || count($item_buyers) == 1 && count($old['buyers']) == 1) { $succ_data = $this->db->query("UPDATE __items SET :params WHERE item_id=?;", array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $item_buyers[0], 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'game_itemid' => $game_item_id ? $game_item_id : 0, 'itempool_id' => $itempool_id), $item_id); if (!$succ_data) { #$this->db->query("ROLLBACK;"); return false; } $hook_id = $item_id; } else { $items2del = $old['buyers']; foreach ($item_buyers as $member_id) { $item_id = array_search($member_id, $old['buyers']); if ($item_id !== false) { $updated_mems[] = $member_id; unset($items2del[$item_id]); $succ_data = $this->db->query("UPDATE __items SET :params WHERE item_group_key = ?;", array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $member_id, 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'game_itemid' => $game_item_id ? $game_item_id : 0, 'itempool_id' => $itempool_id, 'item_updated_by' => $this->admin_user), $group_key); if (!$succ_data) { $retu[] = false; break; } $hook_id[] = $item_id; } else { $added_mems[] = $member_id; $blaa = $this->db->query("INSERT INTO __items :params", array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $member_id, 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'item_added_by' => $this->admin_user, 'itempool_id' => $itempool_id)); if (!$blaa) { $retu[] = false; break; } } } if (is_array($items2del)) { foreach ($items2del as $item_id => $member_id) { if (!$this->db->query("DELETE FROM __items WHERE item_id = ?", false, $item_id)) { $retu[] = false; break; } $hook_id[] = $item_id; } } } if (!in_array(false, $retu)) { $old_names = $this->pdh->aget('member', 'name', '0', array($old['buyers'])); $new_name_string = get_coloured_names($updated_mems, $added_mems, $items2del); $itempool = $this->pdh->get('itempool', 'name', $itempool_id); //insert log $log_action = array('{L_ID}' => $item_id, '{L_NAME_BEFORE}' => $old['name'], '{L_BUYERS_BEFORE}' => implode(', ', $old_names), '{L_RAID_ID_BEFORE}' => $old['raid_id'], '{L_VALUE_BEFORE}' => $old['value'], '{L_ITEMPOOL_BEFORE}' => $this->pdh->get('itempool', 'name', $old['itempool_id']), '{L_NAME_AFTER}' => $old['name'] != $item_name ? "<span class=\"negative\">" . $item_name . "</span>" : $item_name, '{L_BUYERS_AFTER}' => $new_name_string, '{L_RAID_ID_AFTER}' => $old['raid_id'] != $raid_id ? "<span class=\"negative\">" . $raid_id . "</span>" : $raid_id, '{L_VALUE_AFTER}' => $old['value'] != $item_value ? "<span class=\"negative\">" . $item_value . "</span>" : $item_value, '{L_ITEMPOOL_AFTER}' => $old['itempool_id'] != $itempool_id ? "<span class=\"negative\">" . $itempool . "</span>" : $itempool, '{L_UPDATED_BY}' => $this->admin_user); $this->log_insert('action_item_updated', $log_action); #$this->db->query("COMMIT;"); $this->pdh->enqueue_hook('item_update', $hook_id); return true; } #$this->db->query("ROLLBACK;"); return false; }
/** * Update an Adjustment. Returns false if error occured, otherwise returns array with IDs of Updated/Inserted Adjustments * * @param string $group_key_or_id GroupKey or ID. If ID, set $first_param_is_id to true * @param float $adj_value * @param string $adj_reason * @param array $member_ids * @param integer $event_id * @param integer $raid_id * @param integer $time * @param boolean $first_param_is_id Set to true if first Param is an ID and not an Group Key * @param boolean $recalculate_group_key * @return multitype:boolean mixed Return false if error occured, otherwise returns array with IDs */ public function update_adjustment($group_key_or_id, $adj_value, $adj_reason, $member_ids, $event_id, $raid_id = NULL, $time = false, $first_param_is_id = false, $recalculate_group_key = true) { $time = $time ? $time : $this->time->time; $new_group_key = $this->gen_group_key($time, array($adj_reason, $adj_value, $event_id, $raid_id)); //fetch old-data $group_key = !$first_param_is_id ? $group_key_or_id : $this->pdh->get('adjustment', 'group_key', array($group_key_or_id)); if ($recalculate_group_key == false) { $new_group_key = $group_key; } $old['ids'] = $this->pdh->get('adjustment', 'ids_of_group_key', array($group_key)); foreach ($old['ids'] as $adjustment_id) { $old['members'][$adjustment_id] = $this->pdh->get('adjustment', 'member', array($adjustment_id)); } $old['value'] = $this->pdh->get('adjustment', 'value', array($adjustment_id)); $old['reason'] = $this->pdh->get('adjustment', 'reason', array($adjustment_id)); $old['event'] = $this->pdh->get('adjustment', 'event', array($adjustment_id)); $retu = array(true); $updated_mems = array(); $added_mems = array(); $adjs2del = $old['members']; $log_action['{L_GROUP_KEY}'] = $new_group_key; foreach ($member_ids as $member_id) { $adj_id = array_search($member_id, $old['members']); if ($adj_id !== false) { $updated_mems[] = $member_id; $hook_id[] = $adj_id; unset($adjs2del[$adj_id]); $arrSet = array('member_id' => $member_id, 'adjustment_value' => $adj_value, 'adjustment_reason' => $adj_reason, 'event_id' => $event_id, 'raid_id' => $raid_id, 'adjustment_date' => $time, 'adjustment_group_key' => $new_group_key, 'adjustment_updated_by' => $this->admin_user); $objQuery = $this->db->prepare("UPDATE __adjustments :p WHERE adjustment_id = ?")->set($arrSet)->execute($adj_id); if (!$objQuery) { $retu[] = false; break; } else { $retu[] = $adj_id; } } else { $added_mems[] = $member_id; $arrSet = array('member_id' => $member_id, 'adjustment_value' => $adj_value, 'adjustment_reason' => $adj_reason, 'event_id' => $event_id, 'raid_id' => $raid_id, 'adjustment_date' => $time, 'adjustment_group_key' => $new_group_key, 'adjustment_added_by' => $this->admin_user); $objQuery = $this->db->prepare("INSERT INTO __adjustments :p")->set($arrSet)->execute(); if (!$objQuery) { $retu[] = false; break; } else { $retu[] = $objQuery->insertId; } } } if (is_array($adjs2del)) { foreach ($adjs2del as $adj_id => $unimportant) { if (!$this->db->prepare("DELETE FROM __adjustments WHERE adjustment_id = ?;")->execute($adj_id)) { $retu[] = false; break; } $hook_id[] = $adj_id; } } if (!in_array(false, $retu)) { $old_names = $this->pdh->aget('member', 'name', 0, array($old['members'])); $member_string = get_coloured_names($updated_mems, $added_mems, $adjs2del); // Logging $arrOld = array('value' => $old['value'], 'reason' => $old['reason'], 'members' => implode(', ', $old_names), 'event' => $this->pdh->get('event', 'name', array($old['event'])), 'raid' => $this->pdh->get('adjustment', 'raid_id', array($adjustment_id))); $arrNew = array('value' => $adj_value, 'reason' => $adj_reason, 'members' => $member_string, 'event' => $this->pdh->get('event', 'name', array($event_id)), 'raid' => $raid_id); $log_action = $this->logs->diff($arrOld, $arrNew, $this->arrLogLang); $this->log_insert('action_indivadj_updated', $log_action, $new_group_key, $old['reason']); $this->pdh->enqueue_hook('adjustment_update', $hook_id); return $retu; } return false; }
public function update_adjustment($group_key_or_id, $adj_value, $adj_reason, $member_ids, $event_id, $raid_id = NULL, $time = false, $id = false, $recalculate_group_key = true) { $time = $time ? $time : time(); $new_group_key = $this->gen_group_key($time, array($adj_reason, $adj_value, $event_id, $raid_id)); //fetch old-data $group_key = !$id ? $group_key_or_id : $this->pdh->get('adjustment', 'group_key', array($group_key_or_id)); if ($recalculate_group_key == false) { $new_group_key = $group_key; } $old['ids'] = $this->pdh->get('adjustment', 'ids_of_group_key', array($group_key)); foreach ($old['ids'] as $adjustment_id) { $old['members'][$adjustment_id] = $this->pdh->get('adjustment', 'member', array($adjustment_id)); } $old['value'] = $this->pdh->get('adjustment', 'value', array($adjustment_id)); $old['reason'] = $this->pdh->get('adjustment', 'reason', array($adjustment_id)); $old['event'] = $this->pdh->get('adjustment', 'event', array($adjustment_id)); $retu = array(true); $updated_mems = array(); $added_mems = array(); $adjs2del = $old['members']; $log_action['{L_GROUP_KEY}'] = $new_group_key; foreach ($member_ids as $member_id) { $adj_id = array_search($member_id, $old['members']); if ($adj_id !== false) { $updated_mems[] = $member_id; $hook_id[] = $adj_id; unset($adjs2del[$adj_id]); $arrSet = array('member_id' => $member_id, 'adjustment_value' => $adj_value, 'adjustment_reason' => $adj_reason, 'event_id' => $event_id, 'raid_id' => $raid_id, 'adjustment_date' => $time, 'adjustment_group_key' => $new_group_key, 'adjustment_updated_by' => $this->admin_user); if (!$this->db->query("UPDATE __adjustments SET :params WHERE adjustment_id = ?", $arrSet, $adj_id)) { $retu[] = false; break; } } else { $added_mems[] = $member_id; $arrSet = array('member_id' => $member_id, 'adjustment_value' => $adj_value, 'adjustment_reason' => $adj_reason, 'event_id' => $event_id, 'raid_id' => $raid_id, 'adjustment_date' => $time, 'adjustment_group_key' => $new_group_key, 'adjustment_added_by' => $this->admin_user); if (!$this->db->query("INSERT INTO __adjustments :params", $arrSet)) { $retu[] = false; break; } } } if (is_array($adjs2del)) { foreach ($adjs2del as $adj_id => $unimportant) { if (!$this->db->query("DELETE FROM __adjustments WHERE adjustment_id = ?;", false, $adj_id)) { $retu[] = false; break; } $hook_id[] = $adj_id; } } if (!in_array(false, $retu)) { $old_names = $this->pdh->aget('member', 'name', 0, array($old['members'])); $member_string = get_coloured_names($updated_mems, $added_mems, $adjs2del); // Logging $log_action = array('{L_ADJUSTMENT_BEFORE}' => $old['value'], '{L_REASON_BEFORE}' => $old['reason'], '{L_MEMBERS_BEFORE}' => implode(', ', $old_names), '{L_EVENT_BEFORE}' => $this->pdh->get('event', 'name', array($old['event'])), '{L_ADJUSTMENT_AFTER}' => $old['value'] != $adj_value ? "<span class=\"negative\">" . $adj_value . "</span>" : $adj_value, '{L_REASON_AFTER}' => $old['reason'] != $adj_reason ? "<span class=\"negative\">" . $adj_reason . "</span>" : $adj_reason, '{L_MEMBERS_AFTER}' => $member_string, '{L_EVENT_AFTER}' => $old['event'] != $event_id ? "<span class=\"negative\">" . $this->pdh->get('event', 'name', array($event_id)) . "</span>" : $this->pdh->get('event', 'name', array($event_id)), '{L_UPDATED_BY}' => $this->admin_user); $this->log_insert('action_indivadj_updated', $log_action); $this->pdh->enqueue_hook('adjustment_update', $hook_id); return true; } return false; }
public function update_raid($raid_id, $raid_date, $raid_attendees, $event_id, $raid_note, $raid_value) { //get old-data $old['event'] = $this->pdh->get('raid', 'event', array($raid_id)); $old['note'] = $this->pdh->get('raid', 'note', array($raid_id)); $old['value'] = $this->pdh->get('raid', 'value', array($raid_id)); $old['date'] = $this->pdh->get('raid', 'date', array($raid_id)); $old['members'] = $this->pdh->get('raid', 'raid_attendees', array($raid_id)); //get member names for log $old['m_names'] = $this->pdh->aget('member', 'name', 0, array($old['members'])); $arrSet = array('event_id' => $event_id, 'raid_note' => $raid_note, 'raid_value' => $raid_value, 'raid_date' => $raid_date); if ($this->db->query("UPDATE __raids SET :params WHERE raid_id=?", $arrSet, $raid_id)) { //update raid_attendees $add_atts = array_diff($raid_attendees, $old['members']); $del_atts = array_diff($old['members'], $raid_attendees); $upd_atts = array_diff($old['members'], $del_atts); foreach ($add_atts as $add_att) { $this->db->query("INSERT INTO __raid_attendees :params", array('raid_id' => $raid_id, 'member_id' => $add_att)); } foreach ($del_atts as $del_att) { $sql = "DELETE FROM __raid_attendees WHERE raid_id = '" . $this->db->escape($raid_id) . "' AND member_id = '" . $this->db->escape($del_att) . "';"; $this->db->query($sql); } $member_string = get_coloured_names($upd_atts, $add_atts, $del_atts); $log_action = array('{L_ID}' => $raid_id, '{L_EVENT_BEFORE}' => $this->pdh->get('event', 'name', array($old['event'])), '{L_ATTENDEES_BEFORE}' => implode(', ', $old['m_names']), '{L_NOTE_BEFORE}' => $old['note'], '{L_VALUE_BEFORE}' => $old['value'], '{L_DATE_BEFORE}' => '{D_' . $old['date'] . '}', '{L_EVENT_AFTER}' => $this->pdh->get('event', 'name', array($event_id)), '{L_ATTENDEES_AFTER}' => $member_string, '{L_NOTE_AFTER}' => $raid_note, '{L_VALUE_AFTER}' => $raid_value, '{L_DATE_AFTER}' => '{D_' . $raid_date . '}', '{L_UPDATED_BY}' => $this->admin_user); $this->log_insert('action_raid_updated', $log_action); $this->pdh->enqueue_hook('raid_update', $raid_id); return true; } return false; }
public function update_item($group_key_or_id, $item_name, $item_buyers, $raid_id, $game_item_id, $item_value, $itempool_id, $time = false, $id = false) { $time = $time ? $time : time(); $new_group_key = $this->gen_group_key($time, array($item_name, $raid_id, $item_value, $itempool_id)); //fetch old-data if (!$id) { $group_key = $group_key_or_id; $old['ids'] = $this->pdh->get('item', 'ids_of_group_key', array($group_key)); foreach ($old['ids'] as $item_id) { $old['buyers'][$item_id] = $this->pdh->get('item', 'buyer', array($item_id)); } } else { $item_id = $group_key_or_id; $old['buyers'][$item_id] = $this->pdh->get('item', 'buyer', array($item_id)); } $old['value'] = $this->pdh->get('item', 'value', array($item_id)); $old['name'] = $this->pdh->get('item', 'name', array($item_id)); $old['raid_id'] = $this->pdh->get('item', 'raid_id', array($item_id)); $old['itempool_id'] = $this->pdh->get('item', 'itempool_id', array($item_id)); $old['date'] = $this->pdh->get('item', 'date', array($item_id)); $old['game_itemid'] = $this->pdh->get('item', 'game_itemid', array($item_id)); $retu = array(true); $updated_mems = array(); $added_mems = array(); $items2del = array(); $this->db->beginTransaction(); if ($id || count($item_buyers) == 1 && count($old['buyers']) == 1) { $objQuery = $this->db->prepare("UPDATE __items :p WHERE item_id=?;")->set(array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $item_buyers[0], 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'game_itemid' => $game_item_id, 'itempool_id' => $itempool_id))->execute($item_id); if (!$objQuery) { $retu[] = false; break; } $hook_id = $item_id; } else { $items2del = $old['buyers']; foreach ($item_buyers as $member_id) { $item_id = array_search($member_id, $old['buyers']); if ($item_id !== false) { $updated_mems[] = $member_id; unset($items2del[$item_id]); $objQuery = $this->db->prepare("UPDATE __items :p WHERE item_id = ?;")->set(array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $member_id, 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'game_itemid' => $game_item_id, 'itempool_id' => $itempool_id, 'item_updated_by' => $this->admin_user))->execute($item_id); if (!$objQuery) { $retu[] = false; break; } $hook_id[] = $item_id; } else { $added_mems[] = $member_id; $objQuery = $this->db->prepare("INSERT INTO __items :p")->set(array('item_name' => $item_name, 'item_value' => $item_value, 'member_id' => $member_id, 'raid_id' => $raid_id, 'item_date' => $time, 'item_group_key' => $new_group_key, 'item_added_by' => $this->admin_user, 'itempool_id' => $itempool_id))->execute(); if (!$objQuery) { $retu[] = false; break; } } } if (is_array($items2del)) { foreach ($items2del as $item_id => $member_id) { $objQuery = $this->db->prepare("DELETE FROM __items WHERE item_id = ?")->execute($item_id); if (!$objQuery) { $retu[] = false; break; } $hook_id[] = $item_id; } } } if (!in_array(false, $retu)) { $old_names = $this->pdh->aget('member', 'name', '0', array($old['buyers'])); $new_name_string = get_coloured_names($updated_mems, $added_mems, $items2del); $itempool = $this->pdh->get('itempool', 'name', $itempool_id); //insert log $arrOld = array('item_name' => $old['name'], 'member_id' => implode(', ', $old_names), 'raid_id' => $old['raid_id'], 'item_value' => $old['value'], 'game_itemid' => $old['game_itemid'], 'itempool' => $old['itempool_id'], 'item_date' => '{D_' . $old['date'] . '}'); $arrNew = array('item_name' => $item_name, 'member_id' => $new_name_string, 'raid_id' => $raid_id, 'item_value' => $item_value, 'item_date' => '{D_' . $time . '}', 'game_itemid' => $game_item_id, 'itempool' => $itempool_id); $log_action = $this->logs->diff($arrOld, $arrNew, $this->arrLogLang); $this->log_insert('action_item_updated', $log_action, $item_id, $old['name']); $this->pdh->enqueue_hook('item_update', $hook_id); $this->db->commitTransaction(); return true; } $this->db->rollbackTransaction(); return false; }