Can fetch a companypaymentmode of a thirdparty

This commit is contained in:
Laurent Destailleur 2018-04-10 18:11:08 +02:00
parent 0dea2b08c2
commit f181719769
2 changed files with 9 additions and 6 deletions

View File

@ -6792,14 +6792,16 @@ abstract class CommonObject
*/
public function fetchCommon($id, $ref = null, $morewhere = '')
{
if (empty($id) && empty($ref)) return false;
if (empty($id) && empty($ref) && empty($morewhere)) return -1;
$sql = 'SELECT '.$this->getFieldList();
$sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element;
if (!empty($id)) $sql.= ' WHERE rowid = '.$id;
else $sql.= " WHERE ref = ".$this->quote($ref, $this->fields['ref']);
if ($morewhere) $sql.=$morewhere;
if (!empty($id)) $sql.= ' WHERE rowid = '.$id;
elseif (!empty($ref)) $sql.= " WHERE ref = ".$this->quote($ref, $this->fields['ref']);
else $sql.=' WHERE 1 = 1'; // usage with empty id and empty ref is very rare
if ($morewhere) $sql.= $morewhere;
$sql.=' LIMIT 1'; // This is a fetch, to be sure to get only one record
$res = $this->db->query($sql);
if ($res)

View File

@ -268,8 +268,9 @@ class CompanyPaymentMode extends CommonObject
*/
public function fetch($id, $ref = null, $socid = 0, $type = '')
{
if ($socid) $sql.= " AND fk_soc = ".$this->db->escape($socid)." AND default_rib = 1";
if ($type) $sql.= " AND type = '".$this->db->escape($type)."'";
$morewhere = '';
if ($socid) $morewhere.= " AND fk_soc = ".$this->db->escape($socid)." AND default_rib = 1";
if ($type) $morewhere.= " AND type = '".$this->db->escape($type)."'";
$result = $this->fetchCommon($id, $ref, $morewhere);
if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines();