Пример #1
0
 public function Delete(Domain $domain)
 {
     $this->DB->BeginTrans();
     try {
         $this->DB->Execute('DELETE FROM domains WHERE id = ?', array($domain->ID));
         $this->DB->Execute('DELETE FROM domains_data WHERE domainid = ?', array($domain->ID));
         $this->DB->Execute('DELETE FROM domains_flags WHERE domainid = ?', array($domain->ID));
         $this->DB->Execute("UPDATE zones SET isdeleted = '1' WHERE zone=?", array($domain->GetHostName()));
         $purposes = implode(',', array($this->DB->qstr(INVOICE_PURPOSE::DOMAIN_CREATE), $this->DB->qstr(INVOICE_PURPOSE::DOMAIN_RENEW), $this->DB->qstr(INVOICE_PURPOSE::DOMAIN_TRANSFER), $this->DB->qstr(INVOICE_PURPOSE::DOMAIN_TRADE)));
         $this->DB->Execute("UPDATE invoices SET itemid=0, status=IF(status = 0, 2, status) WHERE itemid=? AND purpose IN ({$purposes})", array($domain->ID));
         $this->DBNameserverHost->DeleteList($domain->ID);
         $domain->ID = null;
     } catch (Exception $e) {
         $this->DB->RollbackTrans();
         Log::Log(sprintf("DBDomain::Delete failed. %s", $e->getMessage()), E_ERROR);
         throw new ApplicationException($e->getMessage(), $e->getCode());
     }
     $this->DB->CompleteTrans();
     // Remove it from loaded objects storage
     unset($this->LoadedObjects[$domain->ID]);
 }