public function updateBid(Bid $bid)
 {
     $connection = ConnectionManager::getConnection();
     $amount = (double) $bid->amount;
     $timeOfBid = $bid->timeOfBid->format("Y-m-d H:i:s");
     $bidderID = (int) $bid->bidderID;
     $auctionID = (int) $bid->auctionID;
     if ($this->isValidBid($bid)) {
         $auctionManager = new AuctionManager();
         $bidder = (int) $auctionManager->getAuctionDetail($auctionID)->highestBidderID;
         $sql = "\n              INSERT INTO bid (amount, time_of_bid, auction_id, bidder_id)\n              VALUES ({$amount}, '{$timeOfBid}', {$auctionID}, {$bidderID})";
         if ($connection->query($sql) === TRUE) {
             $email = new EmailManager();
             if ($bidder != 0) {
                 $email->highestBidder($bid, $bidder);
             }
             $email->watcherEmail($auctionID, $amount);
             Alerter::showAlert("Your bid was posted successfully");
         } else {
             Alerter::showAlert("Error: " . $sql . " " . $connection->error);
         }
     } else {
         Alerter::showAlert("Your bid needs to be higher than the current highest bid and the starting price!");
     }
 }
 public function autoReportEmail(array $auctionIDs, $sellerID)
 {
     $auctionManager = new AuctionManager();
     $userManager = new UserManager($sellerID);
     $user = $userManager->getUser($sellerID);
     $to = $user->email;
     $subject = "Daily Report";
     $message = '<html><body>';
     $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
     $message .= '<p>Hey ' . $user->firstName . ' below is your daily sales report</p>';
     foreach ($auctionIDs as $auctionID) {
         $details = $auctionManager->getAuctionDetail($auctionID);
         $itemName = $details->itemName;
         $expirationDate = DateTimeUtils::formatDate($details->endDate);
         $maxBid = $details->maxBid;
         $watchers = $details->watchers;
         $noBidders = $details->numberOfBidders;
         $bidNo = $details->numberOfBids;
         $views = $details->views;
         $message .= "<tr style='background: #eee;'><td><strong>Item Name:</strong> </td><td>" . $itemName . "</td></tr>";
         $message .= "<tr><td><strong>Expiration date:</strong> </td><td>" . $expirationDate . "</td></tr>";
         $message .= "<tr><td><strong>Highest bid</strong> </td><td>" . $maxBid . "</td></tr>";
         $message .= "<tr><td><strong>No of bids:</strong> </td><td>" . $bidNo . "</td></tr>";
         $message .= "<tr><td><strong>No of bidders</strong> </td><td>" . $noBidders . "</td></tr>";
         $message .= "<tr><td><strong>No of watchers:</strong> </td><td>" . $watchers . "</td></tr>";
         $message .= "<tr><td><strong>No of views:</strong> </td><td>" . $views . "</td></tr>";
         $message .= "<br>";
     }
     $message .= "<p><br>Best regards,<br>The BidBucket Team</p>";
     $this->sendEmail($to, $subject, $message);
 }