當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Order::sendNotice方法代碼示例

本文整理匯總了PHP中app\Order::sendNotice方法的典型用法代碼示例。如果您正苦於以下問題:PHP Order::sendNotice方法的具體用法?PHP Order::sendNotice怎麽用?PHP Order::sendNotice使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在app\Order的用法示例。


在下文中一共展示了Order::sendNotice方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: placeOrders

 /**
  * Start the checkout process for any type of order
  *
  * @param  int  $type_order Type of order to be processed
  * @return Response
  */
 public static function placeOrders($type_order)
 {
     $cart = Order::ofType($type_order)->auth()->whereStatus('open')->orderBy('id', 'desc')->first();
     $show_order_route = $type_order == 'freeproduct' ? 'freeproducts.show' : 'orders.show_cart';
     $cartDetail = OrderDetail::where('order_id', $cart->id)->get();
     $address_id = 0;
     //When address is invalid, it is because it comes from the creation of a free product. You must have a user direction (Default)
     if (is_null($cart->address_id)) {
         $useraddress = UserAddress::auth()->orderBy('default', 'DESC')->first();
         if ($useraddress) {
             $address_id = $useraddress->address_id;
         } else {
             return trans('address.no_registered');
         }
     } else {
         $address_id = $cart->address_id;
     }
     $address = Address::where('id', $address_id)->first();
     //Checks if the user has points for the cart price and the store has stock
     //and set the order prices to the current ones if different
     //Creates the lists or sellers to send mail to
     $total_points = 0;
     $seller_email = array();
     foreach ($cartDetail as $orderDetail) {
         $product = Product::find($orderDetail->product_id);
         $seller = User::find($product->user_id);
         if (!in_array($seller->email, $seller_email)) {
             $seller_email[] = $seller->email;
         }
         $total_points += $orderDetail->quantity * $product->price;
         if ($orderDetail->price != $product->price) {
             $orderDetail->price = $product->price;
             $orderDetail->save();
         }
         if ($product->type != 'item') {
             $virtual = VirtualProduct::where('product_id', $orderDetail->product_id)->get();
             $first = $virtual->first();
             //$first=null;
             //foreach ($virtual as $row){
             //$first=$row;
             //break;
             //}
             switch ($product->type) {
                 case 'key':
                 case 'software_key':
                     $virtualOrder = VirtualProductOrder::where('virtual_product_id', $first->id)->where('order_id', $orderDetail->order_id)->where('status', 1)->get();
                     if (count($virtual) - 1 < count($virtualOrder)) {
                         return trans('store.insufficientStock');
                     }
                     break;
                 default:
                     break;
             }
         } elseif ($product->stock < $orderDetail->quantity) {
             return trans('store.insufficientStock');
         }
     }
     //Checks if the user has points for the cart price
     $user = \Auth::user();
     if ($user->current_points < $total_points && config('app.payment_method') == 'Points') {
         return trans('store.cart_view.insufficient_funds');
     }
     if (config('app.payment_method') == 'Points') {
         $negativeTotal = -1 * $total_points;
         //7 is the action type id for order checkout
         $pointsModified = $user->modifyPoints($negativeTotal, 7, $cart->id);
     } else {
         $pointsModified = true;
     }
     if ($pointsModified) {
         //Separate the order for each seller
         //Looks for all the different sellers in the cart
         $sellers = [];
         foreach ($cartDetail as $orderDetail) {
             if (!in_array($orderDetail->product->user_id, $sellers)) {
                 $sellers[] = $orderDetail->product->user_id;
             }
         }
         foreach ($sellers as $seller) {
             //Creates a new order and address for each seller
             $newOrder = new Order();
             $newOrder->user_id = $user->id;
             $newOrder->address_id = $address->id;
             $newOrder->status = $type_order == 'freeproduct' ? 'paid' : 'open';
             $newOrder->type = $type_order == 'freeproduct' ? 'freeproduct' : 'order';
             $newOrder->seller_id = $seller;
             $newOrder->save();
             $newOrder->sendNotice();
             //moves the details to the new orders
             foreach ($cartDetail as $orderDetail) {
                 if ($orderDetail->product->user_id == $seller) {
                     $orderDetail->order_id = $newOrder->id;
                     $orderDetail->save();
                 }
//.........這裏部分代碼省略.........
開發者ID:WebtoolsWendland,項目名稱:antVel,代碼行數:101,代碼來源:Order.php

示例2: fire

 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     try {
         //Find all freeproducts that can be processed; that is, they are in the correct date range and are active.
         $this->info('----- STARTING THE PROCESS FOR SELECTION OF WINNERS -----');
         $dateactual = date('Y-m-d');
         $freeproducts = FreeProduct::where('status', 1)->where('draw_date', $dateactual)->get();
         if ($freeproducts) {
             $this->info('Free Products to be processed: ' . $freeproducts->count());
             foreach ($freeproducts as $freeproduct) {
                 //Check the total participants. Depending on this the freeproduct be processed. Remember that there is a minimum of participation to select the winners. Still it not defined to do if the minimum is not met.
                 $participants = FreeProductParticipant::where('freeproduct_id', $freeproduct->id)->where('status', 'registered')->get();
                 if ($freeproduct->min_participants <= $participants->count()) {
                     //Select the winners, as defined in the product free draw_number field.
                     $list_winners = [];
                     for ($i = 0; $i < $freeproduct->draw_number; $i++) {
                         $user_winner = $participants->random(1);
                         $list_winners[] = $user_winner->user_id;
                         $user_winner->status = 'winner';
                         $user_winner->save();
                     }
                     $this->info('Total winners -> ' . count($list_winners));
                     //We mail to notify the winners and create an order for you to communicate with the seller of the product. The first is to list all the products contained in the orders associated with that freeproduct
                     //Collection Orders with Products in details
                     $orders = FreeProduct::find($freeproduct->id)->orders()->with('products')->get();
                     //Collection Products
                     $list_products_orders = Collection::make();
                     foreach ($orders as $order) {
                         $list_products_orders = $list_products_orders->merge($order->products);
                     }
                     $this->info('Total Products to prize: ' . count($list_products_orders));
                     $list_awards = [];
                     foreach ($list_winners as $user_id) {
                         $winner = User::find($user_id);
                         $this->info("Processing user -> ID={$winner->id} ");
                         //In this part of the process, we should when creating the freeproduct, indicate how the prizes will be distributed, something like for position, and indicate that many products will be delivered by position. For now, a product be taken at random.
                         do {
                             $product_award = $list_products_orders->random(1);
                             $in_product_award_list = true;
                             if (in_array($product_award->id, $list_awards)) {
                                 $in_product_award_list = false;
                             } else {
                                 $list_awards[] = $product_award->id;
                                 $this->info("Product selected-> ID={$product_award->id} ");
                             }
                         } while (!$in_product_award_list);
                         //Creating the order with the product won user
                         $winner_address = UserAddress::where('user_id', $winner->id)->orderBy('default', 'DESC')->first();
                         $newOrder = new Order();
                         $newOrder->user_id = $winner->id;
                         $newOrder->address_id = $winner_address->id;
                         $newOrder->status = 'pending';
                         $newOrder->type = 'freeproduct';
                         $newOrder->seller_id = $freeproduct->user_id;
                         $newOrder->save();
                         $newOrder->sendNotice();
                         $this->info("Creating order: Result -> ID {$newOrder->id}");
                         //Order detail. Just take the product won
                         $newOrderDetail = new OrderDetail();
                         $newOrderDetail->order_id = $newOrder->id;
                         $newOrderDetail->product_id = $product_award->id;
                         $newOrderDetail->price = $freeproduct->participation_cost;
                         $newOrderDetail->quantity = 1;
                         $newOrderDetail->status = 1;
                         $newOrderDetail->save();
                         //Off product will deliver a prize
                         $product_award->status = 0;
                         $product_award->save();
                         //Notify the user that was selected as winner of that freeproduct
                         $data = ['product' => $product_award];
                         Mail::queue('emails.freeproducts.winner', $data, function ($message) use($winner) {
                             $message->to($winner->email)->subject(trans('email.free_products_winner.subject'));
                         });
                         $this->info('email sent notice that won');
                         //He also sent an email indicating that a new order was created.(tracking)
                         $data = ['orderId' => $newOrder->id];
                         Mail::queue('emails.neworder', $data, function ($message) use($winner) {
                             $message->to($winner->email)->subject(trans('email.new_order_for_user.subject'));
                         });
                         $this->info('email I sent notice that an order for the product won');
                     }
                     //Freeproduct inactive, so they do not take into account again for next draw
                     $freeproduct->status = 0;
                     $freeproduct->save();
                     //Se le notifica al dueno del freeproduct que se seleccionaron a los ganadores
                     $this->info("FreeProduct -> ID={$freeproduct->id} PROCESSED");
                 } else {
                     $this->info("FreeProduct -> ID={$freeproduct->id} The minimum participation condition for the free product does not comply.");
                 }
             }
         }
         $this->info('----- FINISHED THE PROCESS FOR SELECTION OF WINNERS -----');
     } catch (ModelNotFoundException $e) {
         Log::error($e);
         $this->error('They received errors when running the process. View Log File.');
//.........這裏部分代碼省略.........
開發者ID:softsolution,項目名稱:antVel,代碼行數:101,代碼來源:SelectWinnersFreeProducts.php


注:本文中的app\Order::sendNotice方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。