/**
  * Updates the orders totalPaid and datePaid date and completes order
  *
  * @param Market_OrderModel $order
  */
 public function updateOrderPaidTotal(Market_OrderModel $order)
 {
     $totalPaid = craft()->market_payment->getTotalPaidForOrder($order);
     $order->totalPaid = $totalPaid;
     if ($order->isPaid()) {
         if ($order->datePaid == null) {
             $order->datePaid = DateTimeHelper::currentTimeForDb();
         }
     }
     $this->save($order);
     if (!$order->dateOrdered) {
         if ($order->isPaid()) {
             craft()->market_order->complete($order);
         } else {
             // maybe not paid in full, but authorized enough to complete order.
             $totalAuthorized = craft()->market_payment->getTotalAuthorizedForOrder($order);
             if ($totalAuthorized >= $order->totalPrice) {
                 craft()->market_order->complete($order);
             }
         }
     }
 }