SHARE
TWEET

Untitled

a guest Jan 14th, 2020 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. class PIREPCriteriaData extends CodonData {
  3.  
  4.     public static function getcriterias(){
  5.         $sql = "SELECT * FROM vcrewsys_pirepcriterias ";
  6.         return DB::get_results($sql);
  7.     }
  8.    
  9.     public static function getactivecriterias(){
  10.         $sql = "SELECT * FROM vcrewsys_pirepcriterias WHERE enabled = 1";
  11.         return DB::get_results($sql);
  12.     }
  13.    
  14.    
  15.     public static function getcriteriadetbyid($criteriaid){
  16.         $sql = "SELECT * FROM vcrewsys_pirepcriterias WHERE id='$criteriaid' ";
  17.         return DB::get_results($sql);
  18.     }
  19.  
  20.     public static function getpirepod($pirepid){
  21.         $sql = "SELECT * FROM vcrewsys_pirepsotherdetails WHERE pirepid = '$pirepid' ";
  22.         return DB::get_row($sql);
  23.     }
  24.  
  25.     public static function checkpirep($pirepid){
  26.         $check = "SELECT * FROM vcrewsys_pirepsotherdetails WHERE pirepid = '$pirepid' ";
  27.         $row = DB::get_row($check);
  28.         if(!$row){
  29.             $sql = "INSERT INTO vcrewsys_pirepsotherdetails (pirepid) VALUES ('$pirepid')";
  30.             DB::query($sql);
  31.             $sqlb = "INSERT INTO vcrewsys_pireppointsdet (pirepid) VALUES ('$pirepid')";
  32.             DB::query($sqlb);
  33.         }
  34.     }
  35.  
  36.     public static function getpireppdata($pirepid){
  37.         $sql = "SELECT * FROM vcrewsys_pireppointsdet WHERE pirepid = '$pirepid'";
  38.         $row = DB::get_row($sql);
  39.        
  40.         return $row->cats;
  41.     }
  42.    
  43.     public static function addpptopirep($pirepid,$points,$pay){
  44.         $get = "SELECT * FROM vcrewsys_pirepsotherdetails WHERE pirepid = '$pirepid' ";
  45.         $row = DB::get_row($get);
  46.  
  47.         $opoints = $row->points;
  48.         $opay = $row->pay;
  49.  
  50.         $totalpoints = $opoints + $points;
  51.         $totalpay = $opay + $pay;
  52.  
  53.         $sql = "UPDATE vcrewsys_pirepsotherdetails SET points = '$totalpoints',pay='$totalpay' WHERE pirepid = '$pirepid' ";
  54.         DB::query($sql);
  55.     }
  56.    
  57.     public static function addcdtopirep($pirepid,$criteriaid){
  58.         $get = "SELECT * FROM vcrewsys_pireppointsdet WHERE pirepid = '$pirepid' ";
  59.         $row = DB::get_row($get);
  60.         $current = $row->cats;
  61.         if($current == '0'){
  62.             $final = $criteriaid;
  63.         }
  64.         else{
  65.             $final = $current.','.$criteriaid;
  66.         }
  67.        
  68.         $sql = "UPDATE vcrewsys_pireppointsdet SET cats='$final' WHERE pirepid = '$pirepid'";
  69.         DB::query($sql);
  70.         return true;
  71.        
  72.     }
  73.  
  74.     public static function getlastlanding($pilotid){
  75.         $sql = "SELECT * FROM ".TABLE_PREFIX."pireps WHERE pilotid = '$pilotid' ORDER BY pirepid DESC LIMIT 1 ";
  76.         $row = DB::get_row($sql);
  77.         return $row->arricao;
  78.     }
  79.  
  80.     public static function addtime($time,$criteria,$pirepid){
  81.         $sql = "UPDATE vcrewsys_pirepsotherdetails SET $criteria = '$time' WHERE pirepid = '$pirepid' ";
  82.         DB::query($sql);
  83.     }
  84.  
  85.     public static function getcriteriasettings(){
  86.         $sql = "select * from vcrewsys_pirepcriterias";
  87.         return DB::get_results($sql);
  88.     }
  89.  
  90.  
  91.     public static function updatesettings($criterianame,$option){
  92.         $sql = "UPDATE vcrewsys_pirepcriterias SET enabled = $option WHERE criteria_title = '".$criterianame."' ";
  93.         DB::query($sql);
  94.     }
  95.  
  96.  
  97.     public static function addpointstoplt($points,$pilotid){
  98.         $sql = "SELECT points FROM ".TABLE_PREFIX."pilots WHERE pilotid = '$pilotid' ";
  99.         $pilot = DB::get_row($sql);
  100.         $ogpoints = $pilot->points;
  101.         $newpoints = $ogpoints + $points;
  102.         $add = "UPDATE ".TABLE_PREFIX."pilots SET points = '$newpoints' WHERE pilotid = '$pilotid'";
  103.         DB::query($add);
  104.     }
  105.  
  106.  
  107.     public static function addpptoprp($pirepid){
  108.         $pod = PIREPCriteriaData::getpirepod($pirepid);
  109.  
  110.         $points = $pod->points;
  111.         $pay = $pod->pay;
  112.         $add = "UPDATE ".TABLE_PREFIX."pireps SET points = '$points', pilotpay = '$pay' WHERE pirepid = '$pirepid'";
  113.         DB::query($add);
  114.     }
  115.  
  116.     public static function validatepirep($pirepid){
  117.  
  118.         //Get PIREP
  119.         $query = "SELECT * FROM ".TABLE_PREFIX."pireps WHERE pirepid = '$pirepid'";
  120.         $pirep = DB::get_row($query);
  121.         $pilotid = $pirep->pilotid;
  122.         //Assign Points to PIREP
  123.         $landingrate = $pirep->landingrate;
  124.         $distance = $pirep->distance;
  125.         $log = $pirep->log;
  126.  
  127.         //Split Logs
  128.         //$log_a = substr($log, 0, strlen($log)/2);
  129.         //$log_b = substr($log, strlen($log)/2);
  130.         $log_a = explode("Taking off", $log);
  131.         $log_a = $log_a[0];
  132.         $log_b = explode("Approaching", $log);
  133.         $log_b = $log_b[1];
  134.        
  135.         //Push Times to Database
  136.         $logarray = explode('*', $log); // change $pirep->log to log string
  137.         foreach($logarray as $line)
  138.         {
  139.             // Get the time
  140.             $time = str_replace("[", "", explode(']', $line)[0]);
  141.  
  142.             // Check for blockouttime
  143.             if (strpos($line, "Preflight started")) {
  144.                 $blockout = $time;
  145.  
  146.             }
  147.             // Check for blockintime
  148.             if (strpos($line, "Engine 1 is off")) {
  149.                 $blockin = $time;
  150.  
  151.             }
  152.             // Check for pushbacktime
  153.             if (strpos($line, "Pushing back")) {
  154.                 $pushback = $time;
  155.  
  156.             }
  157.             // Check for takeofftime
  158.             if (strpos($line, "Taking off")) {
  159.                 $takeoff = $time;
  160.  
  161.             }
  162.             // Check for landingtime   
  163.             if (strpos($line, "Landed in")) {
  164.                 $landed = $time;
  165.  
  166.             }  
  167.  
  168.         }
  169.        
  170.         $sql = "UPDATE vcrewsys_pirepsotherdetails SET blockintime = '$blockin', blockouttime = '$blockout', pushbacktime = '$pushback', takeofftime = '$takeoff', landingtime = '$landed' WHERE pirepid = '$pirepid'";
  171.         $row = DB::get_row($sql);
  172.  
  173.         //Pilot's last flight
  174.         $lastarr = PIREPCriteriaData::getlastlanding($pilotid);
  175.  
  176.         if($landingrate < '0' && $landingrate >= '-600'){
  177.            
  178.  
  179.             //Check all the conditions now
  180.             $criterias = PIREPCriteriaData::getactivecriterias();
  181.             foreach($criterias as $criteria){
  182.  
  183.                 //Check Landing Rates
  184.                 if($criteria->criteria_title == 'landing_rate'){
  185.                     $string = $criteria->criteria_values;
  186.                     $explode = explode(',',$string);
  187.                     $limit_a = $explode[0];
  188.                     $limit_b = $explode[1];
  189.  
  190.                     if($landingrate <= $limit_a && $landingrate >= $limit_b){
  191.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  192.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  193.                     }
  194.  
  195.                 }
  196.  
  197.                 //Check Distances
  198.                 if($criteria->criteria_title == 'distance'){
  199.                     $distpoints = floor($distance/100);
  200.                    
  201.                     PIREPCriteriaData::addpptopirep($pirepid,$distpoints*$criteria->points,$distpoints*$criteria->pay);
  202.                     self::addcdtopirep($pirep->pirepid,$criteria->id);
  203.  
  204.                 }
  205.  
  206.                 //Check if Pilot has exceed 250 KIAS under 10,000 ft
  207.                 if($criteria->criteria_title == 'exceed'){
  208.                     $logarray = explode('*', $log); // change $pirep->log to log string
  209.                     foreach($logarray as $line)
  210.                     {
  211.                         // Get the time
  212.                         $time = str_replace("[", "", explode(']', $line)[0]);
  213.  
  214.                         // Check for 250kts/10000ft
  215.                         if (strpos($line, "Exceeded 250 KIAS below 10,000 feet")) {
  216.                             $exstart = strtotime($time);
  217.  
  218.                         }
  219.                         // Check for recovery
  220.                         if (strpos($line, "Speed corrected at")) {
  221.                             $exfinish = strtotime($time);
  222.  
  223.                         }
  224.                        
  225.                     }
  226.                    
  227.                         // Add points for each time they exceed
  228.                         if ((($exfinish - $exstart) / 60) >= 2) {
  229.                             PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  230.                             self::addcdtopirep($pirep->pirepid,$criteria->id);
  231.                             $exstart = null;
  232.                             $exfinish = null;
  233.                         }
  234.  
  235.                 }
  236.  
  237.                 //Log Options
  238.  
  239.                 //Check Engine 2 is Off before Submit
  240.                 if($criteria->criteria_title == 'checkengineoff'){
  241.                     if(strpos($log_b, 'Engine 2 is off')){
  242.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  243.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  244.                     }
  245.                 }
  246.  
  247.                 //Check Flaps set before landing
  248.                 if($criteria->criteria_title == 'flapscheckbeforeldg'){
  249.                     if(strpos($log_b, 'Flaps set to position')){
  250.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  251.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  252.                     }
  253.                 }
  254.  
  255.                
  256.                 //Check Flaps set before takeoff
  257.                 if($criteria->criteria_title == 'flapscheckbeforeto'){
  258.                     if(strpos($log_a, 'Flaps set to position')){
  259.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  260.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  261.                     }
  262.                 }
  263.  
  264.                 //Check if overspeed
  265.                 if($criteria->criteria_title == 'overspeed'){
  266.                     if(strpos($log, 'Overspeed entered')){
  267.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  268.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  269.                     }
  270.                 }
  271.                
  272.                 //Check if slew
  273.                 if($criteria->criteria_title == 'slew'){
  274.                     if(strpos($log, 'Slew')){
  275.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  276.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  277.                     }
  278.                 }
  279.  
  280.                 //Check if Pilot Departed from last location
  281.  
  282.                 if($criteria->criteria_title == 'lastlocdep'){
  283.                     $currentdep = $pirep->depicao;
  284.                     if($lastarr == $currentdep){
  285.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  286.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  287.                     }
  288.                 }
  289.  
  290.                 //Check if this is Pilot's first Flight
  291.                 if($criteria->criteria_title == 'firstflight'){
  292.                     if(!$lastarr){
  293.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  294.                         self::addcdtopirep($pirep->pirepid,$criteria->id);
  295.                     }
  296.                 }
  297.  
  298.                 if($criteria->criteria_title == 'base'){
  299.                     PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  300.                     self::addcdtopirep($pirep->pirepid,$criteria->id);
  301.                 }
  302.  
  303.                 if($criteria->criteria_title == 'perhour'){
  304.                     $timepoints = floor($pirep->flighttime);
  305.                     $points = $timepoints * $criteria->points;
  306.                     $pay = $timepoints * $criteria->pay;
  307.                     PIREPCriteriaData::addpptopirep($pirepid,$points,$pay);
  308.                     self::addcdtopirep($pirep->pirepid,$criteria->id);
  309.                 }
  310.                
  311.                 if($criteria->criteria_title == 'preflight'){
  312.                     $maxtime = $criteria->criteria_values;
  313.                     $diff = strtotime($pushback) - strtotime($blockout);
  314.                    
  315.                     if($diff > $maxtime){
  316.                         PIREPCriteriaData::addpptopirep($pirepid,$criteria->points,$criteria->pay);
  317.                         self::addcdtopirep($pirep->pirepid,$criteria->id);  
  318.                     }
  319.                    
  320.                 }
  321.  
  322.             }
  323.  
  324.             SchedulesData::changeFlownCount($pirep->code, $pirep->flightnum, '+1');
  325.             $pod = PIREPCriteriaData::getpirepod($pirepid);
  326.            
  327.             if($pod->points < '-10'){
  328.                 $status == PIREP_REJECTED;
  329.                 # Add Automatic Pirep Comment
  330.                 PIREPData::addComment($pirepid,1,"Your Pirep has been rejected because you were awarded less than -10 points.");
  331.                
  332.                 //Get Pilot EMAIL
  333.                 $userinfo = PilotData::getPilotData($pilotid);
  334.  
  335.                 //Send Email
  336.                 $sub = "Flight Operations: Your PIREP {$pirep->code}{$pirep->flightnum} ({$pirep->depicao} - {$pirep->arricao}) has been rejected.";
  337.  
  338.                 $message = '<p><img src="https://crew.walkerair.us/uploads/images/wat.logo.black.png" alt="Walker Air Transport" style="width: 355px"></p>
  339.                 <br/>
  340.                 <p>Hello ' . $userinfo->firstname . ',</p>
  341.                 <br/>
  342.                 <p>Just wanted to send you a quick email regarding your most recent PIREP.</p>
  343.                 <br/>
  344.                 <ul type="square">
  345.                 <li>Flight: ' . $pirep->code . $pirep->flightnum . '</li>
  346.                 <li>Departure: ' . $pirep->depicao . '</li>
  347.                 <li>Arrival: ' . $pirep->arricao . '</li>
  348.                 <li>Date: ' . date('F j, Y, g:i a', strtotime($pirep->submitdate)) . '</li>
  349.                 </ul>
  350.                 <br/>
  351.                 <p>Unfortunately, Flight Operations had to <b>reject your pirep</b> due to the following issues:</p>
  352.                 <br/>
  353.                 <ul type="square">
  354.                 <li>You were awarded less than -10 points.</li>
  355.                 </ul>
  356.                 <br/>
  357.                 <p>If you feel this is in error, please contact Flight Operations at <a href="mailto: help@walkerair.us">help@walkerair.us</a> with your flight information.</p>
  358.                 <br/>
  359.                 <p>Thank you,</p>
  360.                 <br/>
  361.                 <p>Flight Operations</p>
  362.                 <p><b>Walker Air Transport</b></p>
  363.                 <p><a href="https://walkerair.us">https://walkerair.us</a></p>';
  364.  
  365.                 $email = $userinfo->email;
  366.  
  367.                 //Util::SendEmail($email, $sub, $message);
  368.                
  369.             }
  370.             else{
  371.                 $status = PIREP_ACCEPTED;
  372.                 PIREPData::calculatePIREPPayment($pirepid);
  373.                 # Add Automatic Pirep Comment
  374.                 PIREPData::addComment($pirepid,1,"Your PIREP has been automatically approved. Great flight!");
  375.             }
  376.             self::addpointstoplt($pod->points,$pilotid);
  377.             self::addpptoprp($pirepid);  
  378.             PIREPData::PopulatePIREPFinance($pirepid, true);
  379.         }
  380.         else{
  381.             $status = PIREP_REJECTED;
  382.             # Add Automatic Pirep Comment
  383.             PIREPData::addComment($pirepid,1,"Your Pirep has been rejected because you exeeded maximum landing rate of -600 fpm.");
  384.            
  385.             //Get Pilot EMAIL
  386.             $userinfo = PilotData::getPilotData($pilotid);
  387.  
  388.             //Send Email
  389.             $sub = "Flight Operations: Your PIREP {$pirep->code}{$pirep->flightnum} ({$pirep->depicao} - {$pirep->arricao}) has been rejected.";
  390.  
  391.             $message = '<p><img src="https://crew.walkerair.us/uploads/images/wat.logo.black.png" alt="Walker Air Transport" style="width: 355px"></p>
  392.             <br/>
  393.             <p>Hello ' . $userinfo->firstname . ',</p>
  394.             <br/>
  395.             <p>Just wanted to send you a quick email regarding your most recent PIREP.</p>
  396.             <br/>
  397.             <ul type="square">
  398.             <li>Flight: ' . $pirep->code . $pirep->flightnum . '</li>
  399.             <li>Departure: ' . $pirep->depicao . '</li>
  400.             <li>Arrival: ' . $pirep->arricao . '</li>
  401.             <li>Date: ' . date('F j, Y, g:i a', strtotime($pirep->submitdate)) . '</li>
  402.             </ul>
  403.             <br/>
  404.             <p>Unfortunately, Flight Operations had to <b>reject your pirep</b> due to the following issues:</p>
  405.             <br/>
  406.             <ul type="square">
  407.             <li>Landing Rate exceeded the company requirement of less than -600 fpm.</li>
  408.             </ul>
  409.             <br/>
  410.             <p>If you feel this is in error, please contact Flight Operations at <a href="mailto: help@walkerair.us">help@walkerair.us</a> with your flight information.</p>
  411.             <br/>
  412.             <p>Thank you,</p>
  413.             <br/>
  414.             <p>Flight Operations</p>
  415.             <p><b>Walker Air Transport</b></p>
  416.             <p><a href="https://walkerair.us">https://walkerair.us</a></p>';
  417.  
  418.             $email = $userinfo->email;
  419.  
  420.             //Util::SendEmail($email, $sub, $message);
  421.         }
  422.        
  423.         PIREPData::editPIREPFields($pirepid, array('accepted' => $status));
  424.         PilotData::updatePilotStats($pirep->pilotid);
  425.         RanksData::calculateUpdatePilotRank($pirep->pilotid);
  426.         PilotData::generateSignature($pirep->pilotid);
  427.         StatsData::updateTotalHours();
  428.  
  429.         if ($pirep->code == WAT){
  430.              fltbookData::updatePilotLocation($pirep->pilotid, $pirep->arricao);
  431.         }
  432.        
  433.         //Phew Thats it.
  434.  
  435.     }
  436.    
  437.     public static function setpirepsnull(){
  438.         $sql = "UPDATE ".TABLE_PREFIX."pireps SET accepted = 0";
  439.         DB::query($sql);
  440.         $sqlb = "TRUNCATE TABLE vcrewsys_pireppointsdet";
  441.         DB::query($sqlb);
  442.         $sqlc = "UPDATE ".TABLE_PREFIX."pilots SET points = 0";
  443.         DB::query($sqlc);
  444.         $sqld = "TRUNCATE TABLE vcrewsys_pirepsotherdetails";
  445.         DB::query($sqld);
  446.         $sqle = "TRUNCATE ".TABLE_PREFIX."pirepcomments";
  447.         DB::query($sqle);
  448.         $sqlf = "UPDATE ".TABLE_PREFIX."pireps SET points = 0";
  449.         DB::query($sqlf);
  450.         return true;
  451.     }
  452.  
  453. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top