public function action_create() { if (Input::method() == 'POST') { $config = array('path' => DOCROOT . DS . 'files', 'randomize' => true, 'ext_whitelist' => array('txt')); Upload::process($config); if (Upload::is_valid()) { $file = Upload::get_files(0); $contents = File::read($file['file'], true); foreach (explode("\n", $contents) as $line) { if (preg_match('/record [0-9]+ BAD- PHONE: ([0-9]+) ROW: \\|[0-9]+\\| DUP: [0-9] [0-9]+/i', $line, $matches)) { $all_dupes[] = $matches[1]; } } $dupe_check = \Goautodial\Insert::duplicate_check($all_dupes); foreach ($dupe_check as $dupe_number => $dupe_details) { $new_duplicate = new Model_Data_Supplier_Campaign_Lists_Duplicate(); $new_duplicate->list_id = Input::post('list_id'); $new_duplicate->database_server_id = Input::post('database_server_id'); $new_duplicate->duplicate_number = $dupe_number; $new_duplicate->dialler = $dupe_details['dialler']; $new_duplicate->lead_id = $dupe_details['data']['lead_id']; $new_duplicate->save(); } } else { print "No Uploads"; } } $this->template->title = "Data_Supplier_Campaign_Lists_Duplicates"; $this->template->content = View::forge('data/supplier/campaign/lists/duplicates/create'); }
public function test($total = 1) { ob_end_flush(); $mtime = microtime(); $mtime = explode(" ", $mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; $duplicate_details = array(); $count = 0; $details = \Model_Data_Supplier_Campaign_Lists_Duplicate::query()->where('dialler', 0)->limit($total)->get(); $leads = array(); $id_reference = array(); foreach ($details as $lead) { $leads[] = $lead->duplicate_number; $id_reference[$lead->duplicate_number] = $lead->id; } print_r($id_reference); $duplicate_details = \Goautodial\Insert::duplicate_check($leads); foreach ($duplicate_details as $number => $dupe) { $lead = \Model_Data_Supplier_Campaign_Lists_Duplicate::find($id_reference[$number]); $lead->dialler = $dupe['dialler']; $lead->lead_id = $dupe['data']['lead_id']; $lead->save(); $count++; } print $count . " duplicates found.\n"; @ob_flush(); $mtime = microtime(); $mtime = explode(" ", $mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $totaltime = $endtime - $starttime; echo "It took " . $totaltime . " seconds to track " . $count . " duplicates.\n\n"; }
public function action_create() { if (Input::method() == 'POST') { $config = array('path' => DOCROOT . DS . 'files', 'randomize' => true, 'ext_whitelist' => array('csv')); Upload::process($config); // Get the uploaded file and open it if (Upload::is_valid()) { $file = Upload::get_files(0); $contents = File::read($file['file'], true); // create an array of the CSV $found_duplicates = array(); $duplicate_check = array(); $headings_csv = array(); $file_csv = array(); $i = 0; $duplicate_check_count = 0; foreach (explode("\n", $contents) as $line) { $item = array(); if ($i == 0) { $headings_csv = str_getcsv($line); } else { foreach (str_getcsv($line) as $key => $content) { $item[$headings_csv[$key]] = $content; if (strlen($content) > 6 and $headings_csv[$key] == "phone_number" || $headings_csv[$key] == "alt_phone") { $duplicate_check[] = $content; } } $file_csv[] = $item; } $duplicate_check_count++; if ($duplicate_check_count == 50000) { // Pull the current duplicates from the diallers to avoid max limit $duplicate_temp = \Goautodial\Insert::duplicate_check($duplicate_check); $found_duplicates = $found_duplicates + $duplicate_temp; $duplicate_check = array(); $duplicate_temp = null; $duplicate_check_count = 0; } $i++; } // Check for duplicates $duplicate_temp = \Goautodial\Insert::duplicate_check($duplicate_check); $found_duplicates = $found_duplicates + $duplicate_temp; foreach ($file_csv as $lead) { $phonenumber = isset($lead['phone_number']) ? $lead['phone_number'] : ''; $altphone = isset($lead['alt_phone']) ? $lead['alt_phone'] : ''; if (!isset($found_duplicates[$phonenumber]) and !isset($found_duplicates[$altphone])) { $lead_table = Model_Lead_Table::forge(array('phone_number' => isset($lead['phone_number']) ? $lead['phone_number'] : '', 'title' => isset($lead['title']) ? $lead['title'] : '', 'first_name' => isset($lead['first_name']) ? $lead['first_name'] : '', 'middle_initial' => isset($lead['middle_initial']) ? $lead['middle_initial'] : '', 'last_name' => isset($lead['last_name']) ? $lead['last_name'] : '', 'address1' => isset($lead['address1']) ? $lead['address1'] : '', 'address2' => isset($lead['address2']) ? $lead['address2'] : '', 'address3' => isset($lead['address3']) ? $lead['address3'] : '', 'city' => isset($lead['city']) ? $lead['city'] : '', 'state' => isset($lead['state']) ? $lead['state'] : '', 'province' => isset($lead['province']) ? $lead['province'] : '', 'postal_code' => isset($lead['postal_code']) ? $lead['postal_code'] : '', 'country_code' => isset($lead['country_code']) ? $lead['country_code'] : '', 'gender' => isset($lead['gender']) ? $lead['gender'] : '', 'date_of_birth' => isset($lead['date_of_birth']) ? $lead['date_of_birth'] : '', 'alt_phone' => isset($lead['alt_phone']) ? $lead['alt_phone'] : '', 'email' => isset($lead['email']) ? $lead['email'] : '', 'security_phrase' => isset($lead['security_phrase']) ? $lead['security_phrase'] : '', 'comments' => isset($lead['comments']) ? $lead['comments'] : '')); $lead_table->save(); } else { $dupe = isset($found_duplicates[$phonenumber]) ? $found_duplicates[$phonenumber] : $found_duplicates[$altphone]; $lead_dupe = Model_Data_Supplier_Campaign_Lists_Duplicate::forge(array('list_id' => Input::post('list_id'), 'database_server_id' => 999, 'duplicate_number' => $phonenumber != '' ? $phonenumber : $altphone, 'dialler' => $dupe['dialler'], 'lead_id' => $dupe['dialler'] == 999 ? 999 : $dupe['data']['lead_id'])); $lead_dupe->save(); } } /* $val = Model_Lead_Table::validate('create'); if ($val->run()) { $lead_table = Model_Lead_Table::forge(array( 'phone_number' => Input::post('phone_number'), 'title' => Input::post('title'), 'first_name' => Input::post('first_name'), 'middle_initial' => Input::post('middle_initial'), 'last_name' => Input::post('last_name'), 'address1' => Input::post('address1'), 'address2' => Input::post('address2'), 'address3' => Input::post('address3'), 'city' => Input::post('city'), 'state' => Input::post('state'), 'province' => Input::post('province'), 'postal_code' => Input::post('postal_code'), 'country_code' => Input::post('country_code'), 'gender' => Input::post('gender'), 'date_of_birth' => Input::post('date_of_birth'), 'alt_phone' => Input::post('alt_phone'), 'email' => Input::post('email'), 'security_phrase' => Input::post('security_phrase'), 'comments' => Input::post('comments'), )); if ($lead_table and $lead_table->save()) { Session::set_flash('success', 'Added lead_table #'.$lead_table->id.'.'); Response::redirect('lead/table'); } else { Session::set_flash('error', 'Could not save lead_table.'); } } else { Session::set_flash('error', $val->error()); } */ } } $this->template->title = "Lead_Tables"; $this->template->content = View::forge('lead/table/create'); }