Пример #1
0
 public function update_order_status()
 {
     $id = Request::segment(3);
     $order = Order::find($id);
     $order->status = Input::get('status');
     $order->save();
     if ($order->status == 'Delivered') {
         $total = $order->total_amount;
         // Charge Users
         $credits = UserCredit::where('user_id', $order->user_id)->first();
         $balance = $credits->earned - $credits->spent;
         if ($total > $balance) {
             $ledger_temp = UserCredit::find($credits->id);
             $ledger_temp->spent = $ledger_temp->earned;
             $ledger_temp->save();
             $total = $total - $balance;
         } else {
             $ledger_temp = UserCredit::find($credits->id);
             $ledger_temp->spent = $ledger_temp->spent + $total;
             $ledger_temp->save();
             $total = 0;
         }
         $order = Order::find($id);
         $order->card_payment = $total;
         $order->credit_payment = $order->total_amount - $total;
         $order->save();
         try {
             $payment = Payment::find($order->payment_id);
             $customer_id = $payment->customer_id;
             Stripe::setApiKey(Config::get('app.stripe_secret_key'));
             Stripe_Charge::create(array("amount" => $total * 100, "currency" => "usd", "customer" => $customer_id));
             $walk->is_paid = 1;
             if ($walk->tip) {
                 $walk->tip_status = 2;
             }
         } catch (Exception $e) {
             //print_r($e);
         }
         // Payment Charged Mail
         $user = User::find($order->user_id);
         Mail::send('emails.payment_charged', array('user' => $user, 'order' => $order), function ($message) use($user) {
             $message->to($user->email, $user->first_name)->subject('Order Successfully Delivered!');
         });
         // Payment Charged Mail to Admin
         $admin_email = Config::get('app.admin_email');
         Mail::send('emails.admin_payment_charged', array('user' => $user, 'order' => $order), function ($message) use($admin_email) {
             $message->to($admin_email, "Admin")->subject('Payment Charged!');
         });
     }
     $message = "Successfully updated the order status";
     $type = "success";
     return Redirect::to('/admin/order/' . $id . '/details')->with('type', $type)->with('message', $message);
 }