/** * Create Empty company without users * @param $fedId * @param $newCompanyName * @param $impVendorInfo * @return Clients */ public static function createEmptyCompany($fedId, $newCompanyName, $impVendorInfo = null) { $client = new Clients; // begin transaction $transaction = Yii::app()->db->beginTransaction(); try { $company = new Companies; $project = new Projects; $companyAdreses = new CompanyAddresses; //$usersClientList = new UsersClientList; $company->Company_Name = $newCompanyName; $company->Company_Fed_ID = $fedId; if (preg_match('/^(\d{2}\-\d{7})|(\d{3}\-\d{2}\-\d{4})$/', $company->Company_Fed_ID)) { //usual w9 do nothing } if (preg_match('/^(IN[-]\d{7})$/', $company->Company_Fed_ID)) { //international w9 $company->Temp_Fed_ID_Flag = 'N'; } if (preg_match('/^(T0[-]\d{7})$/', $company->Company_Fed_ID)) { //international w9 $company->Temp_Fed_ID_Flag = 'T'; } $company->Auth_Code = Helper::generatePassword(); $company->save(); $company_adress = new Addresses; if ($impVendorInfo) { $company_adress = new Addresses; $company_adress->Address1 = $impVendorInfo['address']; $company_adress->City = $impVendorInfo['city']; $company_adress->State = $impVendorInfo['state']; $company_adress->ZIP = $impVendorInfo['zip']; if ($company_adress->validate()) { $company_adress->save(); } else { $company_adress = new Addresses; $company_adress->save(); } } $company_adress->save(); $companyAdreses->Company_ID = $company->Company_ID; $companyAdreses->Address_ID = $company_adress->Address_ID ? $company_adress->Address_ID : 0; $companyAdreses->save(); $client->Company_ID = $company->Company_ID; $client->Client_Type = 1; $client->Client_Number = 1; $client->save(); //create client project $project->Client_ID = $client->Client_ID; $project->Project_Name = "Corporate"; $project->Project_Description = "Description of the Project"; $project->PO_Starting_Number = Projects::DEFAULT_PO_STARTING_NUMBER; $project->Ck_Req_Starting_Numb = Projects::DEFAULT_CKRQ_STARTING_NUMBER; $project->save(); $transaction->commit(); } catch(Exception $e) { $transaction->rollback(); } return $client; }