/**
  * the singleton pattern
  *
  * @return Sales_Controller_PurchaseInvoice
  */
 public static function getInstance()
 {
     if (self::$_instance === NULL) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * (non-PHPdoc)
  * @see \Sabre\DAV\Collection::createFile()
  */
 public function createFile($name, $data = null)
 {
     if (is_resource($data)) {
         $fstat = fstat($data);
         // ignore empty files
         if ($fstat['size'] == 0) {
             return '"emptyetag"';
         }
     }
     $invoice = Sales_Controller_PurchaseInvoice::getInstance()->importPurchaseInvoice($name, $data);
     return '"' . $invoice->seq . '"';
 }
 /**
  * deletes existing records
  *
  * @param  array $ids
  * @return string
  */
 public function deletePurchaseInvoices($ids)
 {
     return $this->_delete($ids, Sales_Controller_PurchaseInvoice::getInstance());
 }
 /**
  * export purchase invoices
  *
  * @param string $filter JSON encoded string with employee ids for multi export or employee filter
  * @param string $options format or export definition id
  */
 public function exportPurchaseInvoices($filter, $options)
 {
     $decodedFilter = Zend_Json::decode($filter);
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Export filter: ' . print_r($decodedFilter, TRUE));
     }
     if (!is_array($decodedFilter)) {
         $decodedFilter = array(array('field' => 'id', 'operator' => 'equals', 'value' => $decodedFilter));
     }
     $filter = new Sales_Model_PurchaseInvoiceFilter($decodedFilter);
     parent::_export($filter, Zend_Json::decode($options), Sales_Controller_PurchaseInvoice::getInstance());
 }