Example #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']]);
         }
     }
 }
Example #2
0
 public static function create(array $attr = [])
 {
     if (isset($attr['features']) && is_array($attr['features'])) {
         $attr['features'] = json_encode($attr['features']);
     }
     return parent::create($attr);
 }
Example #3
0
 /**
  * create many notices.
  * If user and sender are the same, this notices will be ignored.
  * @param  array  $notices [description]
  * @return [type]          [description]
  */
 public static function createMany(array $notices)
 {
     $valids = [];
     foreach ($notices as $notice) {
         if ($notice['user_id'] != $notice['sender_id']) {
             $valids[] = $notice;
         }
     }
     return parent::createMany($valids);
 }
Example #4
0
 public static function create(array $attr = [])
 {
     if (!isset($attr['user_id']) && isset($attr['user'])) {
         $attr['user']['role'] = @$attr['user']['role'] ?: 'person';
         $user = User::create($attr['user']);
         unset($attr['user']);
         $attr['user_id'] = $user->id;
     }
     return parent::create($attr);
 }
Example #5
0
 public static function create(array $attr = [], $normal = true)
 {
     $role = $normal ? 'Business' : 'Non Profit';
     if (!isset($attr['user_id']) && isset($attr['user'])) {
         $attr['user']['role'] = $role;
         $user = User::create($attr['user']);
         unset($attr['user']);
         $attr['user_id'] = $user->id;
     }
     return parent::create($attr);
 }
Example #6
0
 public function save(array $options = array())
 {
     $status_changed = isset($this->original['status']) && $this->attributes['status'] != $this->original['status'] || isset($options['status']) && $this->attributes['status'] != $options['status'];
     $saved = parent::save($options);
     if ($saved) {
         $this->createLog();
         if ($status_changed) {
             $this->sendNotice();
         }
     }
     return $saved;
 }