Exemple #1
0
 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;
 }
Exemple #6
0
 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;
 }