Untitled

By Cobalt Crocodile, 11 Years ago, written in PHP, viewed 1'105 times.
URL http://pb.stoleyour.com/view/cc88e015 Embed
Download Paste or View RawExpand paste to full width of browser
  1. <?php
  2.  
  3. class mod_wormhole extends module {
  4.  
  5.         var $dateformat = "m/d/Y H:i";
  6.  
  7.         function load(Request &$r) {
  8.                
  9.         }
  10.        
  11.         function display(Request &$r) {
  12.                 $listing = yapeal::complexQuery("SELECT op.id, op.system, op.created, op.closed, op.name, op.confirmed, op.paid, SUM(it.price*ol.amount) AS profit FROM lc_op op LEFT JOIN lc_oploot ol ON op.id = ol.lc_op_id LEFT JOIN lc_item it ON ol.item_id = it.id WHERE op.paid = 0 GROUP BY op.id", array());
  13.                 if ($listing) {
  14.                         foreach ($listing as &$entry) {
  15.                                 $entry->members = lc_opmember::select(array('lc_op_id'=>$entry->id));
  16.                                 foreach ($entry->members as $member) {
  17.                                         if ($member->user_id == $r->user->id) {
  18.                                                 $entry->partofop = true;
  19.                                         }
  20.                                 }
  21.                         }
  22.                 }
  23.                 $r->set('entries', $listing);
  24.         }
  25.  
  26.         function admin(Request &$r) {
  27.                 $listing = list_content::getInstance()->setType('op')->setConditions(array('where'=>array('paid'=>false)))->getListing($r);
  28.                 foreach ($listing['entries'] as &$entry) {
  29.                         $entry->members = lc_opmember::select(array('lc_op_id'=>$entry->id));
  30.                 }
  31.                 $r->set('entries', $listing['entries']);
  32.         }
  33.  
  34.         function wallet(Request &$r) {
  35.                 $ops_done = yapeal::complexQuery("SELECT op.*, ot.name AS optype FROM lc_opmember om INNER JOIN lc_op op ON om.lc_op_id = op.id INNER JOIN lc_optype ot ON op.optype_id = ot.id INNER JOIN user_account ua ON ua.user_id = om.user_id WHERE ua.user_id = ? AND op.closed IS NOT NULL GROUP BY om.lc_op_id", array($r->user->id));
  36.                 $total_waiting = 0;
  37.                 $total_paid = 0;
  38.                 if ($ops_done) {
  39.                         foreach ($ops_done as &$op) {
  40.                                 $id = $op->id;
  41.                                 $total = yapeal::complexQuery("SELECT SUM(ol.amount*ol.price) AS total FROM lc_oploot ol WHERE ol.lc_op_id = ?", array($id), true);
  42.                                 $participants = yapeal::complexQuery("SELECT rc.* FROM lc_opmember om INNER JOIN user_account ua ON ua.user_id = om.user_id INNER JOIN yap_utilRegisteredCharacter rc ON ua.account_id = rc.userID WHERE om.lc_op_id = ? AND isMain = 1 GROUP BY ua.user_id", array($id));
  43.                                 $participantnr = count($participants);
  44.                                 $op->total = $total->total;
  45.                                 $op->total_earned = $total->total / $participantnr;
  46.                                 if ($op->paid) {
  47.                                         $total_paid += $op->total_earned;
  48.                                 } else {
  49.                                         $total_waiting += $op->total_earned;
  50.                                 }
  51.                         }
  52.                 }
  53.                 $r->set('ops', $ops_done);
  54.                 $r->set('total_waiting', $total_waiting);
  55.                 $r->set('total_paid', $total_paid);
  56.         }
  57.  
  58.         function payment(Request &$r) {
  59.                 $ops_to_be_paid = yapeal::complexQuery("SELECT op.id, op.name, ol.lc_op_id, SUM(ol.amount*ol.price) as total FROM lc_oploot ol INNER JOIN lc_item it ON ol.item_id = it.id INNER JOIN lc_op op ON ol.lc_op_id = op.id WHERE op.confirmed = true AND op.paid = false GROUP BY ol.lc_op_id", array());
  60.                 $characters_to_pay = array();
  61.                 $opstotal = 0;
  62.                 $charactertotal = 0;
  63.                 if ($ops_to_be_paid) {
  64.                         foreach ($ops_to_be_paid as $op) {
  65.                                 $id = $op->lc_op_id;
  66.                                
  67.                                 $opstotal += $op->total;
  68.                                 $participants = yapeal::complexQuery("SELECT rc.* FROM lc_opmember om INNER JOIN user_account ua ON ua.user_id = om.user_id INNER JOIN yap_utilRegisteredCharacter rc ON ua.account_id = rc.userID WHERE om.lc_op_id = ? AND isMain = 1 GROUP BY ua.user_id", array($id));
  69.                                 $participantnr = count($participants);
  70.                                 if ($participants) {
  71.                                         foreach ($participants as $member) {
  72.                                                 $characters_to_pay[$member->characterID]['name'] = $member->name;
  73.                                                 $characters_to_pay[$member->characterID]['payment'] += $op->total/$participantnr;
  74.                                                 $charactertotal += $op->total/$participantnr;
  75.                                         }
  76.                                 }
  77.                         }
  78.                 }
  79.                 $r->set('opstopay', $ops_to_be_paid);
  80.                 $r->set('characters', $characters_to_pay);
  81.                 $r->set('chartotal', $charactertotal);
  82.                 $r->set('opstotal', $opstotal);
  83.         }
  84.  
  85.         function paidops(Request &$r) {
  86.                 list_content::getInstance()->setType("op")->setPerPage(25)->setConditions(array('where'=>array('paid'=>1)))->listing($r);
  87.         }
  88.  
  89.         function dopayment(Request &$r) {
  90.                 $ops_to_be_paid = yapeal::complexQuery("SELECT op.name, ol.lc_op_id, SUM(ol.amount*it.price) as total FROM lc_oploot ol INNER JOIN lc_item it ON ol.item_id = it.id INNER JOIN lc_op op ON ol.lc_op_id = op.id WHERE op.confirmed = true AND op.paid = false GROUP BY ol.lc_op_id", array());
  91.                 if ($ops_to_be_paid) {
  92.                         foreach ($ops_to_be_paid as $op) {
  93.                                 $pop = lc_op::from_id($op->lc_op_id);
  94.                                 $pop->paid = true;
  95.                                 $pop->update();
  96.                         }
  97.                 }
  98.                 $r->redirect('wormhole/admin');
  99.         }
  100.  
  101.         function create(Request &$r) {
  102.                 $record = $r->get('record');
  103.                 if ($r->get('submit')) {
  104.                         $record['notes'] = date($this->dateformat).": Op created<br />";
  105.                         $newop = lc_op::from_values($record);
  106.                         $newop->create();
  107.  
  108.                         $loot = yapeal::complexQuery("SELECT * FROM lc_item_optype io INNER JOIN lc_item it ON io.lc_item_id = it.id WHERE io.lc_optype_id = ? AND it.currently_buying = 1", array($newop->optype_id));
  109.                         foreach ($loot as $item) {
  110.                                 $lootitem = lc_oploot::from_values(array(
  111.                                     'name' => $item->name,
  112.                                     'item_id' => $item->lc_item_id,
  113.                                     'lc_op_id' => $newop->id,
  114.                                     'amount' => 0,
  115.                                     'price' => $item->price
  116.                                 ));
  117.                                 $lootitem->create();
  118.                         }
  119.  
  120.                         $r->redirect('wormhole');
  121.                 }
  122.                 $r->set('types', lc_optype::select());
  123.                 $r->set('cans', yapeal::complexQuery("SELECT oc.id, oc.name FROM lc_opcan oc LEFT JOIN lc_op op ON oc.id = op.opcan_id AND op.paid IS false WHERE op.opcan_id IS NULL ORDER BY oc.name ASC", array()));
  124.         }
  125.  
  126.         function op(Request &$r, $id) {
  127.                 $op = lc_op::from_id($id);
  128.  
  129.                 $opitems = yapeal::complexQuery("SELECT ol.id, ol.name, IF(ol.amount IS NOT NULL, ol.amount, 0) AS amount, ol.price, it.type_id FROM lc_oploot ol INNER JOIN lc_item it ON ol.item_id = it.id WHERE ol.lc_op_id = ? ORDER BY ol.name ASC", array($op->id));
  130.                 $total = 0;
  131.                 if ($opitems) {
  132.                         foreach ($opitems as $item) {
  133.                                 $total += $item->price * $item->amount;
  134.                         }
  135.                 }
  136.                 $r->set('total', $total);
  137.  
  138.                 if ($r->get('loot')) {
  139.                         $loot = $r->get('loot');
  140.                         foreach ($opitems as $item) {
  141.                                 if ($item->amount != $loot[$item->id]) {
  142.                                         $newitem = lc_oploot::from_id($item->id);
  143.                                         $newitem->amount = $loot[$item->id];
  144.                                         $newitem->update();
  145.                                 }
  146.                         }
  147.                         //$op->notes .= date('d-m-Y H:i:s').": ".$r->user->name." modified loot"."<br />";
  148.                         $op->update();
  149.                 }
  150.                 if ($r->get('add_comment')) {
  151.                         $op->notes .= date($this->dateformat)." (".$r->user->name."): ".$r->get('add_comment')."<br />";
  152.                         $op->update();
  153.                 }
  154.  
  155.                 if (user::check_level(3)) {
  156.                         if ($r->get('addcharacter')) {
  157.                                
  158.                                 list($user_id, $character_id, $character_name) = explode('_', $r->get('addcharacter'));
  159.                                
  160.                                 $newmember = lc_opmember::from_values(array(
  161.                                     'name' => $character_name,
  162.                                     'character_id' => $character_id,
  163.                                     'lc_op_id' => $id,
  164.                                     'user_id' => $user_id
  165.                                 ));
  166.                                 $newmember->create();
  167.                         }
  168.                         if ($r->get('canadjust')) {
  169.                                 $op->opcan_id = $r->get('canadjust');
  170.                                 $op->update();
  171.                         }
  172.  
  173.                         $r->set('cans', yapeal::complexQuery("SELECT oc.id, oc.name FROM lc_opcan oc LEFT JOIN lc_op op ON oc.id = op.opcan_id AND op.paid IS false WHERE op.opcan_id IS NULL ORDER BY oc.name ASC", array()));
  174.                         $r->set('characters', yapeal::complexQuery("SELECT rc.name, ua.user_id, rc.characterID FROM yap_utilRegisteredCharacter rc INNER JOIN user_account ua ON rc.userID = ua.account_id ORDER BY rc.name", array()));
  175.                 }
  176.  
  177.                 if ($r->get('loot') || $r->get('comment')) $r->redirect('wormhole/op/'.$id);
  178.  
  179.                 $can = lc_opcan::from_id($op->opcan_id);
  180.                 $optype = lc_optype::from_id($op->optype_id);
  181.                 $r->set('op', $op);
  182.                 $r->set('can', $can);
  183.                 $r->set('optype', $optype);
  184.  
  185.                 $opmembers = lc_opmember::select(array('lc_op_id'=>$op->id));
  186.                 $r->set('members', $opmembers);
  187.  
  188.  
  189.                 $partofop = false;
  190.                 foreach ($opmembers as $member) {
  191.                         if ($member->user_id == $r->user->id) {
  192.                                 $partofop = true;
  193.                                 $r->set('member', $member);
  194.                         }
  195.                 }
  196.                 $r->set('partofop', $partofop);
  197.  
  198.                
  199.                
  200.                 $trueopmembers = yapeal::complexQuery("SELECT rc.* FROM lc_opmember om INNER JOIN user_account ua ON ua.user_id = om.user_id INNER JOIN yap_utilRegisteredCharacter rc ON ua.account_id = rc.userID WHERE om.lc_op_id = ? AND isMain = 1 GROUP BY ua.user_id", array($id));
  201.  
  202.                 $r->set('part', (count($trueopmembers)>0)?$total/count($trueopmembers):0);
  203.                 $r->set('loot', $opitems);
  204.  
  205.                
  206.         }
  207.  
  208.         function joinop(Request &$r, $opid, $characterID=null) {
  209.                 if (!$characterID) {
  210.                         $characterID = $_SERVER['HTTP_EVE_CHARID'];
  211.                 }
  212.  
  213.                 $joiner = yapeal::complexQuery("SELECT * FROM yap_utilRegisteredCharacter rc INNER JOIN user_account ua ON rc.userID = ua.account_id WHERE rc.characterID = ? AND ua.user_id = ?", array($characterID, $r->user->id), true);
  214.                
  215.                 if ($joiner) {
  216.                         $already_joined = lc_opmember::select_one(array('user_id'=>$r->user->id, 'character_id'=>$joiner->characterID, 'lc_op_id' => $opid));
  217.                         if ($already_joined) {
  218.                                
  219.                         } else {
  220.                                 $opmember = lc_opmember::from_values(array(
  221.                                         'user_id' => $r->user->id,
  222.                                         'character_id' => $joiner->characterID,
  223.                                         'lc_op_id' => $opid,
  224.                                         'name' => $joiner->name
  225.                                 ));
  226.                                 $opmember->create();
  227.                                 $op = lc_op::from_id($opid);
  228.                                 $op->notes .= date($this->dateformat).": ".$joiner->name." joined op<br />";
  229.                                 $op->update();
  230.                         }
  231.                         $r->redirect('wormhole/op/'.$opid);
  232.                 } else {
  233.                         $r->set('opid', $opid);
  234.                         $r->set('characters', yapeal::complexQuery("SELECT * FROM yap_utilRegisteredCharacter rc INNER JOIN user_account ua ON rc.userID = ua.account_id WHERE ua.user_id = ?", array($r->user->id)));
  235.                 }
  236.         }
  237.  
  238.         function kickop(Request &$r, $opid, $opmemberid) {
  239.                 $member = lc_opmember::from_id($opmemberid);
  240.                 $op = lc_op::from_id($opid);
  241.  
  242.                 $member->kicked = true;
  243.                 $member->update();
  244.  
  245.                 $op->notes .= date($this->dateformat).": ".$member->name." kicked by ".$r->user->name."<br />";
  246.                 $op->update();
  247.                 $r->redirect('wormhole/op/'.$op->id);
  248.         }
  249.  
  250.         function removeop(Request &$r, $opid, $opmemberid) {
  251.                 $member = lc_opmember::from_id($opmemberid);
  252.                 $member->delete();
  253.  
  254.                 $r->redirect('wormhole/op/'.$opid);
  255.         }
  256.  
  257.         function closeop(Request &$r, $opid) {
  258.                 $op = lc_op::from_id($opid);
  259.                 $op->closed = date('Y-m-d H:i:s');
  260.                 $op->notes .= date($this->dateformat).": ".$r->user->name." closed op<br />";
  261.                 $op->update();
  262.                 $r->redirect("wormhole/op/".$op->id);
  263.         }
  264.  
  265.         function confirmop(Request &$r, $opid) {
  266.                 $op = lc_op::from_id($opid);
  267.                 $op->notes .= date($this->dateformat).": ".$r->user->name." confirmed op<br />";
  268.                 $op->confirmed = true;
  269.                 $op->update();
  270.                 $r->redirect("wormhole/admin");
  271.         }
  272.  
  273.         function easypricing(Request &$r, $optype="all", $order='name') {
  274.                 $conditions = ($optype!="all")?" WHERE io.lc_optype_id = ".  mysql_real_escape_string($optype):"";
  275.                 $ordering = " ORDER BY it.".mysql_real_escape_string($order);
  276.                 $items = yapeal::complexQuery("SELECT DISTINCT it.id, it.type_id, it.name, it.price, it.currently_buying FROM lc_item it INNER JOIN lc_item_optype io ON it.id = io.lc_item_id".$conditions.$ordering, array());
  277.  
  278.                 if ($r->get('prices') || $r->get('buying')) {
  279.                         $prices = $r->get('prices');
  280.                         $buying = $r->get('buying');
  281.                        
  282.                         foreach ($items as &$item) {
  283.                                 if ($item->price != $prices[$item->id] || $item->currently_buying != $buying[$item->id]) {
  284.                                         $moditem = lc_item::from_id($item->id);
  285.                                         $moditem->price = $prices[$item->id];
  286.                                         $moditem->currently_buying = (isset($buying[$item->id]))?true:false;
  287.                                         $item->price = $prices[$item->id];
  288.                                         $item->currently_buying = (isset($buying[$item->id]))?true:false;
  289.                                         $moditem->update();
  290.                                 }
  291.                         }
  292.                 }
  293.  
  294.                 $r->set('items', $items);
  295.                 $r->set('optypes', lc_optype::select());
  296.                 $r->set('currenttype', $optype);
  297.                 $r->set('currentorder', $order);
  298.                
  299.         }
  300.  
  301.         function pineeds(Request &$r) {
  302.                 $needed = yapeal::complexQuery("SELECT it.name, it.id, it.type_id, it.price, it.currently_buying FROM lc_item it INNER JOIN lc_item_optype io ON it.id = io.lc_item_id WHERE io.lc_optype_id = 5", array());
  303.                 $r->set('needed', $needed);
  304.         }
  305.  
  306. }
  307.  
  308. ?>
  309.  

Reply to "Untitled"

Here you can reply to the paste above