public function save(Repository_Model_MetaContact $value) { global $application; $data = array(); if (!isnull($value->getId())) { $data['id'] = $value->getId(); } if (!isnull($value->getAssocId())) { $data['assocId'] = $value->getAssocId(); } if (!isnull($value->getAssocEntity())) { $data['assocEntity'] = $value->getAssocEntity(); } if (!isnull($value->getExternalId())) { $data['externalId'] = $value->getExternalId(); } if (!isnull($value->getContactTypeId())) { $data['contactTypeId'] = $value->getContactTypeId(); } if (!isnull($value->getFirstname())) { $data['firstname'] = $value->getFirstname(); } if (!isnull($value->getLastname())) { $data['lastname'] = $value->getLastname(); } if (!isnull($value->getEmail())) { $data['email'] = $value->getEmail(); } $q1 = 'id = ?'; $q2 = $value->id; if (null === ($id = $value->id)) { unset($data['id']); $value->id = $this->getDbTable()->insert($data); } else { $s = $this->getDbTable()->getAdapter()->quoteInto($q1, $q2); $this->getDbTable()->update($data, $s); } }