48 public static function getModuleClassName()
50 return 'AccountContactAffiliationsModule';
58 protected static function getLabel($language = null)
60 return Zurmo::t(
'AccountContactAffiliationsModule',
61 'Account to Contact Affiliation', array(), null, $language);
71 return Zurmo::t(
'AccountContactAffiliationsModule',
72 'Account to Contact Affiliations', array(), null, $language);
75 public static function getPrimaryByAccountIdAndContactId($accountId, $contactId)
77 assert(
'is_int($accountId)');
78 assert(
'is_int($contactId)');
79 $searchAttributeData = array();
80 $searchAttributeData[
'clauses'] = array(
82 'attributeName' =>
'account',
83 'operatorType' =>
'equals',
87 'attributeName' =>
'contact',
88 'operatorType' =>
'equals',
92 $searchAttributeData[
'structure'] =
'(1 and 2)';
97 $where .=
" and {$q}{$tableName}{$q}.{$q}primary{$q} = '1'";
98 return self::getSubset($joinTablesAdapter, null, null, $where);
101 public static function getByAccountAndContact(
Account $account,
Contact $contact)
103 assert(
'$account->id > 0');
104 assert(
'$contact->id > 0');
105 $searchAttributeData = array();
106 $searchAttributeData[
'clauses'] = array(
108 'attributeName' =>
'account',
109 'operatorType' =>
'equals',
110 'value' => $account->id
113 'attributeName' =>
'contact',
114 'operatorType' =>
'equals',
115 'value' => $contact->id
118 $searchAttributeData[
'structure'] =
'(1 and 2)';
121 return self::getSubset($joinTablesAdapter, null, null, $where);
124 public static function getDefaultMetadata()
126 $metadata = parent::getDefaultMetadata();
127 $metadata[__CLASS__] = array(
132 array(
'primary',
'boolean'),
133 array(
'primary',
'readOnly'),
134 array(
'primary',
'default',
'value' =>
false),
135 array(
'account',
'required'),
136 array(
'contact',
'required'),
139 'relations' => array(
140 'role' => array(static::HAS_ONE,
'OwnedCustomField', static::OWNED,
141 static::LINK_TYPE_SPECIFIC,
'role'),
142 'account' => array(static::HAS_ONE,
'Account', static::NOT_OWNED, static::LINK_TYPE_SPECIFIC,
143 'accountAffiliation'),
144 'contact' => array(static::HAS_ONE,
'Contact', static::NOT_OWNED, static::LINK_TYPE_SPECIFIC,
145 'contactAffiliation'),
150 'account' =>
'Account',
151 'contact' =>
'Contact',
152 'primary' =>
'CheckBox',
154 'customFields' => array(
155 'role' =>
'AccountContactAffiliationRoles',
166 public static function isTypeDeletable()
171 public static function canSaveMetadata()
176 protected static function translatedAttributeLabels($language)
179 return array_merge(parent::translatedAttributeLabels($language),
181 'account' => Zurmo::t(
'AccountsModule',
'AccountsModuleSingularLabel', $params, null, $language),
182 'contact' => Zurmo::t(
'ContactsModule',
'ContactsModuleSingularLabel', $params, null, $language),
183 'role' => Zurmo::t(
'ZurmoModule',
'Role', null, null, $language),
184 'primary' => Zurmo::t(
'AccountContactAffiliationsModule',
'Primary Relationship', null, null, $language),
189 public function __toString()
193 return strval($this->account) .
' - ' . strval($this->contact);
206 if ( in_array($attributeName, array(
'primary')))
212 return parent::isAllowedToSetReadOnlyAttribute($attributeName);
static getTranslationParamsForAllModules()
static makeWhere($modelClassName, array $metadata, &$joinTablesAdapter)