/**
  * Save this record to database: insert or update depending on whether record exists in DB.
  * Silently ignores all keys that have no corresponding fields in database table.
  *
  * @return mixed this record id
  * @throws waException when values fail validation
  */
 public function save()
 {
     $this->beforeSave();
     $values = array_intersect_key($this->removeStubs()->rec_data, $this->m->getMetadata());
     if ($this->id === null) {
         $this->id = $this->m->insert($values);
         $this[$this->m->getTableId()] = $this->id;
     } else {
         $this->m->updateById($this->id, $values);
     }
     $this->afterSave();
     $this->merge();
     return $this->id;
 }
 public function insert($data, $type = 0)
 {
     if (!isset($data['application_id'])) {
         $data['application_id'] = waSystem::getInstance()->getApp();
     }
     if (!isset($data['create_datetime'])) {
         $data['create_datetime'] = date('Y-m-d H:i:s');
     }
     return parent::insert($data);
 }
 public function insert($data, $type = 0)
 {
     if (!isset($data['create_contact_id'])) {
         $data['create_contact_id'] = waSystem::getInstance()->getUser()->getId();
     }
     if (!isset($data['create_app_id'])) {
         $data['create_app_id'] = waSystem::getInstance()->getApp();
     }
     if (!isset($data['create_datetime'])) {
         $data['create_datetime'] = date("Y-m-d H:i:s");
     }
     return parent::insert($data, $type = 0);
 }
Example #4
0
 /**
  * Save this record to database: insert or update depending on whether record exists in DB.
  * Silently ignores all keys that have no corresponding fields in database table.
  *
  * @return mixed this record id
  * @throws waException when values fail validation
  */
 public function save()
 {
     $this->beforeSave();
     $values = array_intersect_key($this->removeStubs()->rec_data, $this->m->getMetadata());
     $do_insert = true;
     $id = $this->getId();
     // Force saving with given id, if specified during construction
     $id || ($id = $this->persistent->ifset($this->m->getTableId()));
     // Update if record exists
     if ($id && $this->exists()) {
         if (!$values) {
             $do_insert = false;
         } else {
             $result = $this->m->updateById($this->id, $values, null, true);
             if ($result->affectedRows()) {
                 $do_insert = false;
                 if (!empty($values[$this->m->getTableId()])) {
                     $this->id = $values[$this->m->getTableId()];
                 }
             } else {
                 // Make sure the record exists
                 if ($row = $this->m->getById($this->id)) {
                     $do_insert = false;
                     $this->persistent->setAll($row);
                 } else {
                     $this->clearPersistent();
                 }
             }
         }
     } else {
         if ($id && empty($values[$this->m->getTableId()])) {
             // id was given to constructor, but no such record exists
             $values[$this->m->getTableId()] = $id;
         }
     }
     // No row in database yet: insert
     if ($do_insert) {
         unset($this->persistent[$this->m->getTableId()]);
         $this->id = $this->m->insert($values);
         $this[$this->m->getTableId()] = $this->id;
     }
     $this->afterSave();
     $this->merge();
     return $this->id;
 }
Example #5
0
 public function insert($data, $type = 0)
 {
     if (!isset($data['sort'])) {
         $sql = "SELECT MAX(`sort`) `sort`, COUNT(1) `cnt` FROM {$this->table}";
         $where = array();
         if (is_array($this->id)) {
             $fields = $this->remapId($data);
             foreach ($fields as $field => $value) {
                 if ($value !== null) {
                     $where[] = $this->getWhereByField($field, $value);
                 }
             }
         }
         if ($this->context && isset($data[$this->context])) {
             $where[] = $this->getWhereByField($this->context, $data[$this->context]);
         }
         if ($where) {
             $sql .= ' WHERE (' . implode(') AND (', $where) . ')';
         }
         $sort = $this->query($sql)->fetchAssoc();
         if ($sort['cnt']) {
             ++$sort['sort'];
         }
         $data['sort'] = $sort['sort'];
     }
     return parent::insert($data, $type);
 }
 public function insert($data, $type = 0)
 {
     $data['url'] = $this->genUniqueUrl(empty($data['url']) ? $data['name'] : $data['url']);
     return parent::insert($data, $type);
 }
 public function insert($data, $type = 0)
 {
     $data['datetime'] = date('Y-m-d H:i:s');
     $data['description'] = self::$description;
     $data['type'] = self::$transaction_type;
     if (self::$params) {
         if (isset(self::$params['order_id'])) {
             $data['order_id'] = self::$params['order_id'];
         }
     }
     parent::insert($data, $type);
 }
Example #8
0
 public function insert($data, $type = 0)
 {
     if (!isset($data['create_datetime'])) {
         $data['create_datetime'] = date('Y-m-d H:i:s');
     }
     return parent::insert($data, $type);
 }