link('vend_curr_id', func_get_arg(0)) : $this->link('vend_curr_id'); } /** * Getter / Setter for $vend_addr_id * * @param mixed (optional) value to assign * @access public */ public function addr() { return func_num_args() ? $this->link('vend_addr_id', func_get_arg(0)) : $this->link('vend_addr_id'); } /** * Getter / Setter for $vend_taxzone_id * * @param mixed (optional) value to assign * @access public */ public function taxzone() { return func_num_args() ? $this->link('vend_taxzone_id', func_get_arg(0)) : $this->link('vend_taxzone_id'); } /** * Getter / Setter for $vend_vendtype_id * * @param mixed (optional) value to assign * @access public */ public function vendtype() { return func_num_args() ? $this->link('vend_vendtype_id', func_get_arg(0)) : $this->link('vend_vendtype_id'); } /** * Getter / Setter for $vend_terms_id * * @param mixed (optional) value to assign * @access public */ public function terms() { return func_num_args() ? $this->link('vend_terms_id', func_get_arg(0)) : $this->link('vend_terms_id'); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE function findInternal($int_name, $cur) { //DB_DataObject::DebugLevel(1); $ve = $this->factory($this->tableName()); $ve->vend_curr_id = $cur->pid(); // CRMACCT $ve->whereAdd(" charass_getvalue('CRMACCT', (SELECT crmacct_id FROM crmacct where crmacct_vend_id = vend_id LIMIT 1), 'INTERNALCOMPANY') = '{$this->escape($int_name)}'"); // fixme INTERNALCOMPANY must be added to contacts $matches = $ve->count(); if (!$matches || $matches > 1) { return false; } $ve->find(true); return $ve; } function applyFilters($q,$au, $roo) { if (!empty($q['search']['name'])) { $v = $this->escape($q['search']['name']); $this->whereAdd("vend_name ILIKE '%$v%' or vend_number ILIKE '%$v%' "); } if (!empty($q['query']['vend_name'])) { $v = $this->escape($q['query']['vend_name']); $this->whereAdd("vend_name ILIKE '%$v%' or vend_number ILIKE '%$v%' "); } if (!empty($q['_with_char'])) { $ch = DB_DAtaObject::Factory('char'); $ch->char_crmaccounts = 1; //if (!$ch->count() < 2) { // $ch->initDatabase(); //} $ch->find(); while ($ch->fetch()) { $nm = 'vend_char_' . strtolower(preg_replace('/[^a-z]+/i','_', $ch->char_name)); $this->selectAdd(" charass_getvalue('CRMACCT', (SELECT crmacct_id FROM crmacct where crmacct_vend_id = vend_id LIMIT 1), '{$this->escape($ch->char_name)}') as $nm "); if (!empty($q['sort']) && $q['sort'] == $nm) { $dir = (empty($q['dir']) || $q['dir'] == 'ASC') ? 'ASC' : 'DESC'; $this->orderBy("charass_getvalue('CRMACCT', (SELECT crmacct_id FROM crmacct where crmacct_vend_id = vend_id LIMIT 1), '{$this->escape($ch->char_name)}') $dir"); } } } } function beforeInsert($q,$roo) { foreach ($this->defaults() as $k => $v){ if(!isset($this->$k)){ $this->$k = $v; } } } function beforeUpdate($old, $q,$roo) { if(!empty($q['_remove_addr'])){ $vendaddrinfo = DB_DataObject::factory('vendaddrinfo'); $vendaddrinfo->vendaddr_vend_id = $this->pid(); $addrs = $vendaddrinfo->fetchAll(); foreach ($addrs as $addr){ $addr->delete(); } $roo->jok('UPDATED'); } } function beforeDelete($dependants_array, $roo){ $roo->addEvent("DELETE", $this); $this->delete(); $roo->jok("Deleted"); } function defaults() { return array( 'vend_accnt_id' => -1, 'vend_vendtype_id' => $this->sqlValue("getvendtypeid('NORMAL'::text)"), 'vend_active' => true, 'vend_curr_id' => $this->sqlValue("baseCurrId()"), 'vend_terms_id' => $this->sqlValue("fetchmetricvalue('DefaultTerms'::text)"), 'vend_taxzone_id' => $this->sqlValue("gettaxzoneid('NO TAX')"), 'vend_shipvia' => $this->sqlValue("fetchdefaultshipvia()"), ); } }