예제 #1
0
 public function save(array $options = array())
 {
     $saved = parent::save($options);
     if ($saved) {
         $data = [];
         if (is_array($this->original)) {
             $data = $data + $this->original;
         }
         if (is_array($this->attribute)) {
             $data = $data + $this->attribute;
         }
         $data = $data + $options;
         #here we validate the type and return the source reference
         switch (ActionType::find($data['action_type_id'])->source_type) {
             case 'order':
                 $action = 3;
                 $order = Order::find($data['source_id']);
                 if ($order) {
                     $users = [$order->user_id, $order->seller_id];
                 }
                 break;
         }
         if (isset($users)) {
             Notice::create(['action_type_id' => $action, 'sender_id' => $data['user_id'], 'user_ids' => $users, 'source_id' => $data['source_id']]);
         }
     }
 }
예제 #2
0
 /**
  *
  */
 public function run()
 {
     $faker = Faker::create();
     $userIds = User::lists('id');
     $groupIds = Group::lists('id');
     foreach (range(1, 200) as $index) {
         Notice::create(['title' => $faker->word, 'user_id' => $faker->randomElement($userIds), 'group_id' => $faker->randomElement($groupIds), 'message' => $faker->paragraph()]);
     }
 }
예제 #3
0
 public function run()
 {
     $faker = Faker::create();
     $users = User::get()->toArray();
     foreach ($users as $user) {
         //dd($user);
         foreach (range(1, 10) as $void) {
             $sender_id = $user['id'];
             while ($sender_id == $user['id']) {
                 $sender_id = $faker->randomElement($users)['id'];
             }
             Notice::create(['user_id' => $user['id'], 'sender_id' => $sender_id, 'source_id' => $faker->numberBetween(50, 1000000), 'title' => $faker->text(50), 'message' => $faker->text(150), 'status' => $faker->randomElement(['read', 'unread', 'new']), 'type' => $faker->randomElement(['info', 'danger', 'warning', 'success'])]);
         }
     }
 }
예제 #4
0
 public function rateProduct(Request $request)
 {
     $detail_id = $request->get('detail_id');
     $product_rate = $request->get('product_rate');
     $product_comment = $request->get('product_comment');
     $user = \Auth::user();
     if ($user) {
         $detail = OrderDetail::find($detail_id);
         if ($detail) {
             //Checks if the order exists and belongs to the current user
             $order = Order::where('id', $detail->order_id)->where('user_id', $user->id)->first();
             if ($order && $order->rate == '') {
                 $product = Product::find($detail->product_id);
                 $product_old_rate = $product->rate_val ? $product->rate_val : 0;
                 $product_old_rate_count = $product->rate_count ? $product->rate_count : 0;
                 //Checks if it is the first time the product is rated
                 if ($product_old_rate_count == 0) {
                     $product->rate_val = $product_rate;
                     $product->rate_count = 1;
                 } else {
                     //Checks if the user has rated this product on this order before
                     if ($detail->rate) {
                         if ($product_old_rate > $product_rate) {
                             $product->rate_val = $product->rate_val - ($product_old_rate - $product_rate) / $product_old_rate_count;
                         }
                         if ($product_old_rate < $product_rate) {
                             $product->rate_val = $product->rate_val + ($product_rate - $product_old_rate) / $product_old_rate_count;
                         }
                     } else {
                         if ($product_old_rate > $product_rate) {
                             $product->rate_val = $product->rate_val - ($product_old_rate - $product_rate) / ($product_old_rate_count + 1);
                         }
                         if ($product_old_rate < $product_rate) {
                             $product->rate_val = $product->rate_val + ($product_rate - $product_old_rate) / ($product_old_rate_count + 1);
                         }
                         $product->rate_count = $product_old_rate_count + 1;
                     }
                 }
                 $seller_user = User::find($order->seller_id);
                 $email = $seller_user->email;
                 $mail_subject = trans('email.product_rated.subject');
                 $data = ['product_id' => $product->id, 'subject' => $mail_subject, 'email_message' => $mail_subject, 'email' => $email];
                 Mail::queue('emails.product_rated', $data, function ($message) use($user, $data) {
                     $message->to($data['email'])->subject($data['subject']);
                 });
                 $product->save();
                 $detail->rate = $product_rate;
                 $detail->rate_comment = $product_comment;
                 $detail->save();
                 Notice::create(['user_id' => $seller_user->id, 'sender_id' => $user->id, 'action_type_id' => 14, 'source_id' => $order->id, 'status' => 'new']);
                 return \Response::json(array('success' => true, 'message' => trans('store.order_rate_view.http_messages.success'), 'detail_id' => $detail_id, 'product_rate' => $product_rate), 200);
             } else {
                 return \Response::json(array('success' => false, 'message' => trans('store.order_rate_view.http_messages.no_order'), 'detail_id' => $detail_id, 'product_rate' => $product_rate), 200);
             }
         } else {
             return \Response::json(array('success' => false, 'message' => trans('store.order_rate_view.http_messages.no_user'), 'detail_id' => $detail_id, 'product_rate' => $product_rate), 200);
         }
     } else {
         return \Response::json(array('success' => false, 'message' => trans('store.order_rate_view.http_messages.no_user'), 'detail_id' => $detail_id, 'product_rate' => $product_rate), 200);
     }
 }
예제 #5
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $data = \Request::all();
     $this->json_or_dd($data);
     $notice = Notice::create($data);
     $this->json_or_dd($notice);
     //si-nuevo
 }
예제 #6
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $input = Request::all();
     Notice::create($input);
     return redirect('admin/notice');
 }
예제 #7
0
 public function sendNotice()
 {
     if (!empty($this->seller_id) && !empty($this->user_id) && $this->type == 'order') {
         switch ($this->status) {
             case 'open':
                 Notice::create(['action_type_id' => 1, 'source_id' => $this->id, 'user_id' => $this->seller_id, 'sender_id' => $this->user_id]);
                 break;
             case 'pending':
                 Notice::create(['action_type_id' => 2, 'source_id' => $this->id, 'user_id' => $this->user_id, 'sender_id' => $this->seller_id]);
                 break;
             case 'closed':
                 Notice::create(['action_type_id' => 8, 'source_id' => $this->id, 'user_id' => $this->seller_id, 'sender_id' => $this->user_id]);
                 break;
             case 'cancelled':
                 Notice::create(['action_type_id' => 9, 'source_id' => $this->id, 'users' => [$this->seller_id, $this->user_id]]);
                 break;
             case 'sent':
                 Notice::create(['action_type_id' => 11, 'source_id' => $this->id, 'user_id' => $this->user_id, 'sender_id' => $this->seller_id]);
                 break;
         }
     }
     // $this->sendMail();
     return $this;
 }