/** * 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; }
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // this program. If not, see <http://www.gnu.org/licenses/>. // require_once '../htdocs/inc/sso.php'; require_once '../htdocs/inc/smarty.php'; try { // Create user if he/she does not exist yet try { WebfinanceUser::ValidateExists($_SESSION['cybsso_user']['email']); } catch (Exception $e) { WebfinanceUser::Create($_SESSION['cybsso_user']['email']); } $user = new WebfinanceUser($_SESSION['cybsso_user']['email']); // Ask the user to create a company if he/she doesn't own one if (count($user->GetCompanies()) == 0) { header('Location: /company/new'); exit; } /* si return_url est définie, alors on redirige (dans le cas de la creation d'un compte) redirect $return_url */ /* Si l'utilisateur a >=1 societe, on affiche les devis, factures, coordonnées, etc. de la première entreprise redirect /company/ID */
function testGetInfo() { $email = '*****@*****.**'; WebfinanceUser::Create($email); $new_company = array('name' => 'ACME', 'address1' => '1110 Gateway Drive', 'zip_code' => 'CA 94404', 'city' => 'San Mateo', 'country' => 'US', 'email' => $email); $company_id = WebfinanceCompany::Create($new_company); $company = new WebfinanceCompany($company_id); $company_info = $company->GetInfo(); $this->assertEquals($new_company['name'], $company_info['name']); }
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // this program. If not, see <http://www.gnu.org/licenses/>. // require_once '../../htdocs/inc/sso.php'; require_once '../../htdocs/inc/smarty.php'; try { // Check arguments if (empty($_GET['company_id'])) { throw new Exception('Missing argument'); } // Check permissions $company = new WebfinanceCompany($_GET['company_id']); $company->ValidatePermission($_SESSION['cybsso_user']['email']); // Display localized amounts and dates foreach (array(LC_MESSAGES, LC_TIME, LC_MONETARY, LC_CTYPE) as $locale) { setlocale($locale, $_SESSION['cybsso_user']['language'] . ".UTF-8") or die("locale {$locale} language failed {$_SESSION['cybsso_user']}[language]"); } $user = new WebfinanceUser($_SESSION['cybsso_user']['email']); $smarty->assign('this_company_id', $_GET['company_id']); $smarty->assign('companies', $user->GetCompanies()); $smarty->assign('company_info', $company->GetInfo()); $smarty->assign('invoices', $company->InvoicesGet()); } catch (SoapFault $fault) { $smarty->assign('error', $fault->getMessage()); } catch (Exception $fault) { $smarty->assign('error', $fault->getMessage()); } $smarty->display('company/index.tpl');
function testGetIdFromEmailOK() { $email = '*****@*****.**'; $user_id = WebfinanceUser::Create($email); $this->assertEquals($user_id, WebfinanceUser::GetIdFromEmail($email)); }