/** * Create a new company * * @param company array. An array containing the company information, * example: * \code * array( * 'name' => 'ACME', * 'address1' => '1110 Gateway Drive', * 'address2' => '', * 'address3' => '', * 'zip_code' => 'CA 94404', * 'city' => 'San Mateo', * 'country' => 'US', // ISO 3166-1 alpha-2 country code * 'email' => '*****@*****.**', * ) * \endcode * * @return company_id int. The ID of the newly created company. * */ static function Create(array $company = array()) { CybPHP_Validate::ValidateCompanyName($company['name']); CybPHP_Validate::ValidateAddress($company['address1']); CybPHP_Validate::ValidateZipCode($company['zip_code']); CybPHP_Validate::ValidateCity($company['city']); CybPHP_Validate::ValidateCountry($company['country']); CybPHP_Validate::ValidateEmail($company['email']); WebfinanceUser::ValidateExists($company['email']); WebfinanceCompany::ValidateAvailable($company['name']); if (empty($company['address2'])) { $company['address2'] = ''; } else { CybPHP_Validate::ValidateAddress($company['address2']); } if (empty($company['address3'])) { $company['address3'] = ''; } else { CybPHP_Validate::ValidateAddress($company['address3']); } foreach (array('name', 'address1', 'address2', 'address3', 'zip_code', 'city', 'country', 'email') as $value) { $company[$value] = mysql_escape_string($company[$value]); } $user_id = WebfinanceUser::GetIdFromEmail($company['email']); CybPHP_MySQL::Query('BEGIN'); CybPHP_MySQL::Query('INSERT INTO webfinance_clients SET ' . "nom = '{$company['name']}', " . 'date_created = NOW(), ' . "addr1 = '{$company['address1']}', " . "addr2 = '{$company['address2']}', " . "addr3 = '{$company['address3']}', " . "cp = '{$company['zip_code']}', " . "ville = '{$company['city']}', " . "pays = '{$company['country']}', " . "email = '{$company['email']}'"); $company_id = mysql_insert_id(); CybPHP_MySQL::Query('INSERT INTO webfinance_clients2users SET ' . "id_client = {$company_id}, " . "id_user = {$user_id}"); CybPHP_MySQL::Query('COMMIT'); return $company_id; }
function testValidateAvailableAlreadyTaken() { $name = 'ACME'; $email = '*****@*****.**'; WebfinanceUser::Create($email); $company = array('name' => $name, 'address1' => '1110 Gateway Drive', 'zip_code' => 'CA 94404', 'city' => 'San Mateo', 'country' => 'US', 'email' => $email); WebfinanceCompany::Create($company); $this->setExpectedException('Exception'); WebfinanceCompany::ValidateAvailable($name); }