create_demo_data(); $number_contacts = 200; $number_companies = 50; $number_leads = 200; $large_scale_test = empty($sugar_config['large_scale_test']) ? false : $sugar_config['large_scale_test']; // If large scale test is set to true, increase the seed data. if($large_scale_test) { // increase the cuttoff time to 1 hour ini_set("max_execution_time", "3600"); $number_contacts = 100000; $number_companies = 15000; $number_leads = 100000; } $possible_duration_hours_arr = array( 0, 1, 2, 3); $possible_duration_minutes_arr = array('00' => '00','15' => '15', '30' => '30', '45' => '45'); $account_ids = Array(); $accounts = Array(); $opportunity_ids = Array(); // Determine the assigned user for all demo data. This is the default user if set, or admin $assigned_user_name = "admin"; if(!empty($sugar_config['default_user_name']) && !empty($sugar_config['create_default_user']) && $sugar_config['create_default_user']) { $assigned_user_name = $sugar_config['default_user_name']; } // Look up the user id for the assigned user $seed_user = new User(); $assigned_user_id = $seed_user->retrieve_user_id($assigned_user_name); $patterns[] = '/ /'; $patterns[] = '/\./'; $patterns[] = '/&/'; $patterns[] = '/\//'; $replacements[] = ''; $replacements[] = ''; $replacements[] = ''; $replacements[] = ''; /////////////////////////////////////////////////////////////////////////////// //// ACCOUNTS for($i = 0; $i < $number_companies; $i++) { $account_name = $sugar_demodata['company_name_array'][mt_rand(0,$company_name_count-1)]; // Create new accounts. $account = new Account(); $account->name = $account_name; $account->phone_office = create_phone_number(); $account->assigned_user_id = $assigned_user_id; $account->emailAddress->addAddress(createEmailAddress(), true); $account->emailAddress->addAddress(createEmailAddress()); $account->website = createWebAddress(); $account->billing_address_street = $sugar_demodata['street_address_array'][mt_rand(0,$street_address_count-1)]; $account->billing_address_city = $sugar_demodata['city_array'][mt_rand(0,$city_array_count-1)]; if($i % 3 == 1) { $account->billing_address_state = "NY"; $assigned_user_id = mt_rand(9,10); if($assigned_user_id == 9) { $account->assigned_user_name = "seed_will"; $account->assigned_user_id = $account->assigned_user_name."_id"; } else { $account->assigned_user_name = "seed_chris"; $account->assigned_user_id = $account->assigned_user_name."_id"; } $account->assigned_user_id = $account->assigned_user_name."_id"; } else { $account->billing_address_state = "CA"; $assigned_user_id = mt_rand(6,8); if($assigned_user_id == 6) { $account->assigned_user_name = "seed_sarah"; } elseif($assigned_user_id == 7) { $account->assigned_user_name = "seed_sally"; } else { $account->assigned_user_name = "seed_max"; } $account->assigned_user_id = $account->assigned_user_name."_id"; } $account->billing_address_postalcode = mt_rand(10000, 99999); $account->billing_address_country = 'USA'; $account->shipping_address_street = $account->billing_address_street; $account->shipping_address_city = $account->billing_address_city; $account->shipping_address_state = $account->billing_address_state; $account->shipping_address_postalcode = $account->billing_address_postalcode; $account->shipping_address_country = $account->billing_address_country; $account->industry = array_rand($app_list_strings['industry_dom']); $account->account_type = "Customer"; $account->save(); $account_ids[] = $account->id; $accounts[] = $account; // Create a case for the account $case = new aCase(); $case->account_id = $account->id; $case->priority = array_rand($app_list_strings['case_priority_dom']); $case->status = array_rand($app_list_strings['case_status_dom']); $case->name = $sugar_demodata['case_seed_names'][mt_rand(0,4)]; $case->assigned_user_id = $account->assigned_user_id; $case->assigned_user_name = $account->assigned_user_name; $case->save(); // Create a bug for the account $bug = new Bug(); $bug->account_id = $account->id; $bug->priority = array_rand($app_list_strings['bug_priority_dom']); $bug->status = array_rand($app_list_strings['bug_status_dom']); $bug->name = $sugar_demodata['bug_seed_names'][mt_rand(0,4)]; $bug->assigned_user_id = $account->assigned_user_id; $bug->assigned_user_name = $account->assigned_user_name; $bug->save(); $note = new Note(); $note->parent_type = 'Accounts'; $note->parent_id = $account->id; $seed_data_index = mt_rand(0,3); $note->name = $sugar_demodata['note_seed_names_and_Descriptions'][$seed_data_index][0]; $note->description = $sugar_demodata['note_seed_names_and_Descriptions'][$seed_data_index][1]; $note->assigned_user_id = $account->assigned_user_id; $note->assigned_user_name = $account->assigned_user_name; $note->save(); $call = new Call(); $call->parent_type = 'Accounts'; $call->parent_id = $account->id; $call->name = $sugar_demodata['call_seed_data_names'][mt_rand(0,3)]; $call->assigned_user_id = $account->assigned_user_id; $call->assigned_user_name = $account->assigned_user_name; $call->direction='Outbound'; $call->date_start = create_date(). ' ' . create_time(); $call->duration_hours='0'; $call->duration_minutes='30'; $call->account_id =$account->id; $call->status='Planned'; $call->save(); //Set the user to accept the call $seed_user->id = $call->assigned_user_id; $call->set_accept_status($seed_user,'accept'); //Create new opportunities $opp = new Opportunity(); $opp->assigned_user_id = $account->assigned_user_id; $opp->assigned_user_name = $account->assigned_user_name; $opp->name = substr($account_name." - 1000 units", 0, 50); $opp->date_closed = create_date(); $opp->lead_source = array_rand($app_list_strings['lead_source_dom']); $opp->sales_stage = array_rand($app_list_strings['sales_stage_dom']); // If the deal is already one, make the date closed occur in the past. if($opp->sales_stage == "Closed Won" || $opp->sales_stage == "Closed Lost") { $opp->date_closed = create_past_date(); } $opp->opportunity_type = array_rand($app_list_strings['opportunity_type_dom']); $amount = array("10000", "25000", "50000", "75000"); $key = array_rand($amount); $opp->amount = $amount[$key]; $probability = array("10", "70", "40", "60"); $key = array_rand($probability); $opp->probability = $probability[$key]; $opp->save(); $opportunity_ids[] = $opp->id; // Create a linking table entry to assign an account to the opportunity. $opp->set_relationship('accounts_opportunities', array('opportunity_id'=>$opp->id ,'account_id'=> $account->id), false); } $titles = $sugar_demodata['titles']; $account_max = count($account_ids) - 1; $first_name_max = $first_name_count - 1; $last_name_max = $last_name_count - 1; $street_address_max = $street_address_count - 1; $city_array_max = $city_array_count - 1; $lead_source_max = count($app_list_strings['lead_source_dom']) - 1; $lead_status_max = count($app_list_strings['lead_status_dom']) - 1; $title_max = count($titles) - 1; /////////////////////////////////////////////////////////////////////////////// //// DEMO CONTACTS for($i=0; $i<$number_contacts; $i++) { $contact = new Contact(); $contact->first_name = $sugar_demodata['first_name_array'][mt_rand(0,$first_name_max)]; $contact->last_name = $sugar_demodata['last_name_array'][mt_rand(0,$last_name_max)]; $contact->assigned_user_id = $account->assigned_user_id; $contact->primary_address_street = $sugar_demodata['street_address_array'][mt_rand(0,$street_address_max)]; $contact->primary_address_city = $sugar_demodata['city_array'][mt_rand(0,$city_array_max)]; $contact->lead_source = array_rand($app_list_strings['lead_source_dom']); $contact->title = $titles[mt_rand(0,$title_max)]; $contact->emailAddress->addAddress(createEmailAddress(), true, true); $contact->emailAddress->addAddress(createEmailAddress(), false, false, false, true); $assignedUser = new User(); $assignedUser->retrieve($contact->assigned_user_id); $contact->assigned_user_id = $assigned_user_id; $contact->email1 = createEmailAddress(); $key = array_rand($sugar_demodata['street_address_array']); $contact->primary_address_street = $sugar_demodata['street_address_array'][$key]; $key = array_rand($sugar_demodata['city_array']); $contact->primary_address_city = $sugar_demodata['city_array'][$key]; $contact->lead_source = array_rand($app_list_strings['lead_source_dom']); $contact->title = $titles[array_rand($titles)]; $contact->phone_work = create_phone_number(); $contact->phone_home = create_phone_number(); $contact->phone_mobile = create_phone_number(); $account_number = mt_rand(0,$account_max); $account_id = $account_ids[$account_number]; // Fill in a bogus address $contacts_account = $accounts[$account_number]; $contact->primary_address_state = $contacts_account->billing_address_state; $contact->assigned_user_id = $contacts_account->assigned_user_id; $contact->assigned_user_name = $contacts_account->assigned_user_name; $contact->primary_address_postalcode = mt_rand(10000,99999); $contact->primary_address_country = 'USA'; $contact->save(); // Create a linking table entry to assign an account to the contact. $contact->set_relationship('accounts_contacts', array('contact_id'=>$contact->id ,'account_id'=> $account_id), false); // This assumes that there will be one opportunity per company in the seed data. $opportunity_key = array_rand($opportunity_ids); $contact->set_relationship('opportunities_contacts', array('contact_id'=>$contact->id ,'opportunity_id'=> $opportunity_ids[$opportunity_key], 'contact_role'=>$app_list_strings['opportunity_relationship_type_default_key']), false); //Create new tasks $task = new Task(); $key = array_rand($sugar_demodata['task_seed_data_names']); $task->name = $sugar_demodata['task_seed_data_names'][$key]; //separate date and time field have been merged into one. $task->date_due = create_date() . ' ' . create_time(); $task->date_due_flag = 0; $task->assigned_user_id = $contacts_account->assigned_user_id; $task->assigned_user_name = $contacts_account->assigned_user_name; $task->priority = array_rand($app_list_strings['task_priority_dom']); $task->status = array_rand($app_list_strings['task_status_dom']); $task->contact_id = $contact->id; if ($contact->primary_address_city == "San Mateo") { $task->parent_id = $account_id; $task->parent_type = 'Accounts'; } $task->save(); //Create new meetings $meeting = new Meeting(); $key = array_rand($sugar_demodata['meeting_seed_data_names']); $meeting->name = $sugar_demodata['meeting_seed_data_names'][$key]; $meeting->date_start = create_date(). ' ' . create_time(); //$meeting->time_start = date("H:i",time()); $meeting->duration_hours = array_rand($possible_duration_hours_arr); $meeting->duration_minutes = array_rand($possible_duration_minutes_arr); $meeting->assigned_user_id = $assigned_user_id; $meeting->assigned_user_id = $contacts_account->assigned_user_id; $meeting->assigned_user_name = $contacts_account->assigned_user_name; $meeting->description = $sugar_demodata['meeting_seed_data_descriptions']; $meeting->status = array_rand($app_list_strings['meeting_status_dom']); $meeting->contact_id = $contact->id; $meeting->parent_id = $account_id; $meeting->parent_type = 'Accounts'; // dont update vcal $meeting->update_vcal = false; $meeting->save(); // leverage the seed user to set the acceptance status on the meeting. $seed_user->id = $meeting->assigned_user_id; $meeting->set_accept_status($seed_user,'accept'); //Create new emails $email = new Email(); $key = array_rand($sugar_demodata['email_seed_data_subjects']); $email->name = $sugar_demodata['email_seed_data_subjects'][$key]; $email->date_start = create_date(); $email->time_start = create_time(); $email->duration_hours = array_rand($possible_duration_hours_arr); $email->duration_minutes = array_rand($possible_duration_minutes_arr); $email->assigned_user_id = $assigned_user_id; $email->assigned_user_id = $contacts_account->assigned_user_id; $email->assigned_user_name = $contacts_account->assigned_user_name; $email->description = $sugar_demodata['email_seed_data_descriptions']; $email->status = 'sent'; $email->parent_id = $account_id; $email->parent_type = 'Accounts'; $email->to_addrs = $contact->emailAddress->getPrimaryAddress($contact); $email->from_addr = $assignedUser->emailAddress->getPrimaryAddress($assignedUser); $email->from_addr_name = $email->from_addr; $email->to_addrs_names = $email->to_addrs; $email->type = 'out'; $email->save(); $email->load_relationship('contacts'); $email->contacts->add($contact); $email->load_relationship('accounts'); $email->accounts->add($contacts_account); } for($i=0; $i<$number_leads; $i++) { $lead = new Lead(); $lead->account_name = $sugar_demodata['company_name_array'][mt_rand(0,$company_name_count-1)]; $lead->first_name = $sugar_demodata['first_name_array'][mt_rand(0,$first_name_max)]; $lead->last_name = $sugar_demodata['last_name_array'][mt_rand(0,$last_name_max)]; $lead->primary_address_street = $sugar_demodata['street_address_array'][mt_rand(0,$street_address_max)]; $lead->primary_address_city = $sugar_demodata['city_array'][mt_rand(0,$city_array_max)]; $lead->lead_source = array_rand($app_list_strings['lead_source_dom']); $lead->title = $sugar_demodata['titles'][mt_rand(0,$title_max)]; $lead->phone_work = create_phone_number(); $lead->phone_home = create_phone_number(); $lead->phone_mobile = create_phone_number(); $lead->emailAddress->addAddress(createEmailAddress(), true); // Fill in a bogus address $lead->primary_address_state = $sugar_demodata['primary_address_state']; $leads_account = $accounts[$account_number]; $lead->primary_address_state = $leads_account->billing_address_state; $lead->status = array_rand($app_list_strings['lead_status_dom']); $lead->lead_source = array_rand($app_list_strings['lead_source_dom']); if($i % 3 == 1) { $lead->billing_address_state = $sugar_demodata['billing_address_state']['east']; $assigned_user_id = mt_rand(9,10); if($assigned_user_id == 9) { $lead->assigned_user_name = "seed_will"; $lead->assigned_user_id = $lead->assigned_user_name."_id"; } else { $lead->assigned_user_name = "seed_chris"; $lead->assigned_user_id = $lead->assigned_user_name."_id"; } $lead->assigned_user_id = $lead->assigned_user_name."_id"; } else { $lead->billing_address_state = $sugar_demodata['billing_address_state']['west']; $assigned_user_id = mt_rand(6,8); if($assigned_user_id == 6) { $lead->assigned_user_name = "seed_sarah"; } else if($assigned_user_id == 7) { $lead->assigned_user_name = "seed_sally"; } else { $lead->assigned_user_name = "seed_max"; } $lead->assigned_user_id = $lead->assigned_user_name."_id"; } // If this is a large scale test, switch to the bulk teams 90% of the time. if ($large_scale_test) { if(mt_rand(0,100) < 90) { $assigned_team = $team_demo_data->get_random_team(); $lead->assigned_user_name = $assigned_team; } else { } } $lead->primary_address_postalcode = mt_rand(10000,99999); $lead->primary_address_country = $sugar_demodata['primary_address_country']; $lead->save(); } /// /// SEED DATA FOR EMAIL TEMPLATES /// if(!empty($sugar_demodata['emailtemplates_seed_data'])) { foreach($sugar_demodata['emailtemplates_seed_data'] as $v){ $EmailTemp = new EmailTemplate(); $EmailTemp->name = $v['name']; $EmailTemp->description = $v['description']; $EmailTemp->subject = $v['subject']; $EmailTemp->body = $v['text_body']; $EmailTemp->body_html = $v['body']; $EmailTemp->deleted = 0; $EmailTemp->published = 'off'; $EmailTemp->text_only = 0; $id =$EmailTemp->save(); } } /// /// SEED DATA FOR PROJECT AND PROJECT TASK /// include_once('modules/Project/Project.php'); include_once('modules/ProjectTask/ProjectTask.php'); // Project: Audit Plan $project = new Project(); $project->name = $sugar_demodata['project_seed_data']['audit']['name']; $project->description = $sugar_demodata['project_seed_data']['audit']['description']; $project->assigned_user_id = 1; $project->estimated_start_date = $sugar_demodata['project_seed_data']['audit']['estimated_start_date']; $project->estimated_end_date = $sugar_demodata['project_seed_data']['audit']['estimated_end_date']; $project->status = $sugar_demodata['project_seed_data']['audit']['status']; $project->priority = $sugar_demodata['project_seed_data']['audit']['priority']; $audit_plan_id = $project->save(); $project_task_id_counter = 1; // all the project task IDs cannot be 1, so using couter foreach($sugar_demodata['project_seed_data']['audit']['project_tasks'] as $v){ $project_task = new ProjectTask(); $project_task->assigned_user_id = 1; $project_task->name = $v['name']; $project_task->date_start = $v['date_start']; $project_task->date_finish = $v['date_finish']; $project_task->project_id = $audit_plan_id; $project_task->project_task_id = $project_task_id_counter; $project_task->description = $v['description']; $project_task->duration = $v['duration']; $project_task->duration_unit = $v['duration_unit']; $project_task->percent_complete = $v['percent_complete']; $communicate_stakeholders_id = $project_task->save(); $project_task_id_counter++; } ?>