Esempio n. 1
0
 protected function action_addToProspectList()
 {
     global $beanList;
     require_once 'modules/Relationships/Relationship.php';
     require_once 'modules/ProspectLists/ProspectList.php';
     $prospectList = new ProspectList();
     $prospectList->retrieve($_REQUEST['prospect_id']);
     $module = new $beanList[$this->bean->report_module]();
     $key = Relationship::retrieve_by_modules($this->bean->report_module, 'ProspectLists', $GLOBALS['db']);
     if (!empty($key)) {
         $sql = $this->bean->build_report_query();
         $result = $this->bean->db->query($sql);
         $beans = array();
         while ($row = $this->bean->db->fetchByAssoc($result)) {
             if (isset($row[$module->table_name . '_id'])) {
                 $beans[] = $row[$module->table_name . '_id'];
             }
         }
         if (!empty($beans)) {
             foreach ($prospectList->field_defs as $field => $def) {
                 if ($def['type'] == 'link' && !empty($def['relationship']) && $def['relationship'] == $key) {
                     $prospectList->load_relationship($field);
                     $prospectList->{$field}->add($beans);
                 }
             }
         }
     }
     die;
 }
 public function checkAccess($thisReport)
 {
     require_once 'modules/ProspectLists/ProspectList.php';
     $newProspectList = new ProspectList();
     // fill with results:
     $newProspectList->load_relationships();
     $linkedFields = $newProspectList->get_linked_fields();
     $foundModule = false;
     foreach ($linkedFields as $linkedField => $linkedFieldData) {
         if ($newProspectList->{$linkedField}->_relationship->rhs_module == $thisReport->report_module) {
             $foundModule = true;
         }
     }
     return $foundModule ? true : false;
 }
 public static function createProspectList($id = '', $aParams = array())
 {
     $time = mt_rand();
     $oProspectList = new ProspectList();
     $oProspectList->name = 'ProspectList' . $time;
     if (!empty($id)) {
         $oProspectList->id = $id;
     }
     if (!empty($aParams)) {
         foreach ($aParams as $key => $val) {
             $oProspectList->{$key} = $val;
         }
     }
     $oProspectList->save();
     self::$_aCreatedProspectLists[] = $oProspectList;
     self::$_aCreatedProspectListsIds[] = $oProspectList->id;
     return $oProspectList;
 }
Esempio n. 4
0
$ss->assign("SAVE_CONFIRM_MESSAGE", $mod_strings['LBL_CONFIRM_SEND_SAVE']);
$javascript = new javascript();
$javascript->setFormName('wizform');
$javascript->setSugarBean($mrkt_focus);
$javascript->addAllFields('');
echo $javascript->getScript();
/**************************** Final Step UI DIV *******************/
//Grab the prospect list of type default
$default_pl_focus = ' ';
$campaign_focus->load_relationship('prospectlists');
$prospectlists = $campaign_focus->prospectlists->get();
$pl_count = 0;
$pl_lists = 0;
if (!empty($prospectlists)) {
    foreach ($prospectlists as $prospect_id) {
        $pl_focus = new ProspectList();
        $pl_focus->retrieve($prospect_id);
        if ($pl_focus->list_type == 'default' || $pl_focus->list_type == 'seed') {
            $default_pl_focus = $pl_focus;
            // get count of all attached target types
            $pl_count = $default_pl_focus->get_entry_count();
        }
        $pl_lists = $pl_lists + 1;
    }
}
//if count is 0, then hide inputs and and print warning message
if ($pl_count == 0) {
    if ($pl_lists == 0) {
        //print no target list warning
        $ss->assign("WARNING_MESSAGE", $mod_strings['LBL_NO_TARGETS_WARNING']);
    } else {
function process_subscriptions_from_request($campaign_name)
{
    global $mod_strings;
    $pl_list = array();
    //process default target list
    $create_new = true;
    $pl_subs = new ProspectList($campaign_name);
    if (!empty($_REQUEST['wiz_step3_subscription_list_id'])) {
        //if subscription list is specified then attach
        $pl_subs->retrieve($_REQUEST['wiz_step3_subscription_list_id']);
        //check to see name matches the bean, if not, then the user has chosen to create new bean
        if ($pl_subs->name == $_REQUEST['wiz_step3_subscription_name']) {
            $pl_list[] = $pl_subs;
            $create_new = false;
        }
    }
    //create new bio if one was not retrieved succesfully
    if ($create_new) {
        //use default name if one has not been specified
        $name = $campaign_name . " " . $mod_strings['LBL_SUBSCRIPTION_LIST'];
        if (isset($_REQUEST['wiz_step3_subscription_name']) && !empty($_REQUEST['wiz_step3_subscription_name'])) {
            $name = $_REQUEST['wiz_step3_subscription_name'];
        }
        //if subscription list is not specified then create and attach default one
        $pl_subs->name = $name;
        $pl_subs->list_type = 'default';
        $pl_subs->assigned_user_id = $GLOBALS['current_user']->id;
        $pl_subs->save();
        $pl_list[] = $pl_subs;
    }
    //process exempt target list
    $create_new = true;
    $pl_un_subs = new ProspectList();
    if (!empty($_REQUEST['wiz_step3_unsubscription_list_id'])) {
        //if unsubscription list is specified then attach
        $pl_un_subs->retrieve($_REQUEST['wiz_step3_unsubscription_list_id']);
        //check to see name matches the bean, if not, then the user has chosen to create new bean
        if ($pl_un_subs->name == $_REQUEST['wiz_step3_unsubscription_name']) {
            $pl_list[] = $pl_un_subs;
            $create_new = false;
        }
    }
    //create new bean if one was not retrieved succesfully
    if ($create_new) {
        //use default name if one has not been specified
        $name = $campaign_name . " " . $mod_strings['LBL_UNSUBSCRIPTION_LIST'];
        if (isset($_REQUEST['wiz_step3_unsubscription_name']) && !empty($_REQUEST['wiz_step3_unsubscription_name'])) {
            $name = $_REQUEST['wiz_step3_unsubscription_name'];
        }
        //if unsubscription list is not specified then create and attach default one
        $pl_un_subs->name = $name;
        $pl_un_subs->list_type = 'exempt';
        $pl_un_subs->assigned_user_id = $GLOBALS['current_user']->id;
        $pl_un_subs->save();
        $pl_list[] = $pl_un_subs;
    }
    //process test target list
    $pl_test = new ProspectList();
    $create_new = true;
    if (!empty($_REQUEST['wiz_step3_test_list_id'])) {
        //if test list is specified then attach
        $pl_test->retrieve($_REQUEST['wiz_step3_test_list_id']);
        //check to see name matches the bean, if not, then the user has chosen to create new bean
        if ($pl_test->name == $_REQUEST['wiz_step3_test_name']) {
            $pl_list[] = $pl_test;
            $create_new = false;
        }
    }
    //create new bio if one was not retrieved succesfully
    if ($create_new) {
        //use default name if one has not been specified
        $name = $campaign_name . " " . $mod_strings['LBL_TEST_LIST'];
        if (isset($_REQUEST['wiz_step3_test_name']) && !empty($_REQUEST['wiz_step3_test_name'])) {
            $name = $_REQUEST['wiz_step3_test_name'];
        }
        //if test list is not specified then create and attach default one
        $pl_test->name = $name;
        $pl_test->list_type = 'test';
        $pl_test->assigned_user_id = $GLOBALS['current_user']->id;
        $pl_test->save();
        $pl_list[] = $pl_test;
    }
    return $pl_list;
}
Esempio n. 6
0
        global $current_user;
        global $mod_strings;
        //if no prospect lists are attached, then lets create a subscription and unsubscription
        //default prospect lists as these are required for newsletters.
        //create subscription list
        $subs = new ProspectList();
        $subs->name = $focus->name . ' ' . $mod_strings['LBL_SUBSCRIPTION_LIST'];
        $subs->assigned_user_id = $current_user->id;
        $subs->list_type = "default";
        $subs->save();
        $focus->prospectlists->add($subs->id);
        //create unsubscription list
        $unsubs = new ProspectList();
        $unsubs->name = $focus->name . ' ' . $mod_strings['LBL_UNSUBSCRIPTION_LIST'];
        $unsubs->assigned_user_id = $current_user->id;
        $unsubs->list_type = "exempt";
        $unsubs->save();
        $focus->prospectlists->add($unsubs->id);
        //create unsubscription list
        $test_subs = new ProspectList();
        $test_subs->name = $focus->name . ' ' . $mod_strings['LBL_TEST_LIST'];
        $test_subs->assigned_user_id = $current_user->id;
        $test_subs->list_type = "test";
        $test_subs->save();
        $focus->prospectlists->add($test_subs->id);
    }
    //save new relationships
    $focus->save();
}
//finish newsletter processing
handleRedirect($focus->id, 'Campaigns');
Esempio n. 7
0
    function unsubscribe($campaign, $focus) {
        $relationship = strtolower($focus->getObjectName()).'s';
        //--grab all the list for this campaign id
        $pl_qry ="select id, list_type from prospect_lists where id in (select prospect_list_id from prospect_list_campaigns ";
        $pl_qry .= "where campaign_id = '$campaign') and deleted = 0 ";
        $pl_qry_result = $focus->db->query($pl_qry);
        //build the array with list information
        $pl_arr = array();
        $GLOBALS['log']->debug("In Campaigns Util, about to run query: ".$pl_qry);
    	while ($row = $focus->db->fetchByAssoc($pl_qry_result)){$pl_arr[] = $row;}

        //retrieve lists that this user belongs to
        $curr_pl_qry ="select prospect_list_id, related_id  from prospect_lists_prospects ";
        $curr_pl_qry .="where related_id = '$focus->id'  and deleted = 0 ";
        $GLOBALS['log']->debug("In Campaigns Util, unsubscribe function about to run query: ".$curr_pl_qry );
        $curr_pl_qry_result = $focus->db->query($curr_pl_qry);

        //build the array with current user list information
        $curr_pl_arr = array();
        while ($row = $focus->db->fetchByAssoc($curr_pl_qry_result)){$curr_pl_arr[] = $row;}
         //check to see if user is already there in prospect list
        $already_here = 'false';
        $exempt_id = '';

        foreach($curr_pl_arr as $user_list){
        	foreach($pl_arr as $v){
        		//if list is exempt list
            	if($v['list_type'] == 'exempt'){
            		//save the exempt list id for later use
            		$exempt_id = $v['id'];
					//check to see if user is already in this exempt list
            		if(in_array($v['id'], $user_list)){
                		$already_here = 'true';
            		}

                	break 2;
            	}
        	}
        }

        //unsubscribe subscripted newsletter
        foreach($pl_arr as $subscription_list){
			//create a new instance of the prospect list
        	$exempt_list = new ProspectList();
        	$exempt_list->retrieve($subscription_list['id']);
        	$exempt_list->load_relationship($relationship);
			//if list type is default, then delete the relationship
            //if list type is exempt, then add the relationship to unsubscription list
            if($subscription_list['list_type'] == 'exempt') {
		        $exempt_list->$relationship->add($focus->id);
            }elseif($subscription_list['list_type'] == 'default' || $subscription_list['list_type'] == 'test'){
            	//if list type is default or test, then delete the relationship
            	//$exempt_list->$relationship->delete($subscription_list['id'],$focus->id);
            }

        }

        if($already_here =='true'){
            //do nothing, user is already exempted

        }else{
            //user is not exempted yet , so add to unsubscription list


            $exempt_result = $exempt_list->retrieve($exempt_id);
            if($exempt_result == null)
            {//error happened while retrieving this list
                return;
            }
            $GLOBALS['log']->debug("In Campaigns Util, loading relationship: ".$relationship);
            $exempt_list->load_relationship($relationship);
            $exempt_list->$relationship->add($focus->id);
        }

    }
 ********************************************************************************/
require_once 'XTemplate/xtpl.php';
require_once 'data/Tracker.php';
require_once 'modules/ProspectLists/ProspectList.php';
require_once 'modules/ProspectLists/Forms.php';
global $timedate;
global $app_strings;
global $app_list_strings;
global $mod_strings;
global $current_user;
global $sugar_version, $sugar_config;
// Unimplemented until jscalendar language files are fixed
// global $current_language;
// global $default_language;
// global $cal_codes;
$focus = new ProspectList();
if (isset($_REQUEST['record'])) {
    $focus->retrieve($_REQUEST['record']);
}
global $theme;
$theme_path = "themes/" . $theme . "/";
$image_path = $theme_path . "images/";
require_once $theme_path . 'layout_utils.php';
$GLOBALS['log']->info("Prospect List Edit View");
echo "\n<p>\n";
echo get_module_title($mod_strings['LBL_MODULE_ID'], $mod_strings['LBL_MODULE_NAME'] . ": " . $focus->name, true);
echo "\n</p>\n";
$xtpl = new XTemplate('modules/ProspectLists/EditView.html');
$xtpl->assign("MOD", $mod_strings);
$xtpl->assign("APP", $app_strings);
$json = getJSONobj();
 public function testbean_implements()
 {
     $prospectList = new ProspectList();
     $this->assertEquals(false, $prospectList->bean_implements(''));
     //test with blank value
     $this->assertEquals(false, $prospectList->bean_implements('test'));
     //test with invalid value
     $this->assertEquals(true, $prospectList->bean_implements('ACL'));
     //test with valid value
 }
Esempio n. 10
0
 function createTargeList($listname, $campaign_id = '')
 {
     global $current_user, $db;
     $results = $this->getSelectionResults(array());
     if (count($results > 0)) {
         require_once 'modules/ProspectLists/ProspectList.php';
         $newProspectList = new ProspectList();
         $newProspectList->name = $listname;
         $newProspectList->list_type = 'default';
         $newProspectList->assigned_user_id = $current_user->id;
         $newProspectList->save();
         // add to campaign
         if ($campaign_id != '') {
             require_once 'modules/Campaigns/Campaign.php';
             $thisCampaign = new Campaign();
             $thisCampaign->retrieve($campaign_id);
             $thisCampaign->load_relationships();
             $campaignLinkedFields = $thisCampaign->get_linked_fields();
             foreach ($campaignLinkedFields as $linkedField => $linkedFieldData) {
                 if ($thisCampaign->{$linkedField}->_relationship->rhs_module == 'ProspectList') {
                     $thisCampaign->{$linkedField}->add($newProspectList->id);
                 }
             }
         }
         // fill with results:
         $newProspectList->load_relationships();
         $linkedFields = $newProspectList->get_linked_fields();
         foreach ($linkedFields as $linkedField => $linkedFieldData) {
             if ($newProspectList->{$linkedField}->_relationship->rhs_module == $this->report_module) {
                 foreach ($results as $thisRecord) {
                     $newProspectList->{$linkedField}->add($thisRecord['sugarRecordId']);
                 }
             } elseif ($newProspectList->{$linkedField}->_relationship->rhs_module == 'Campaigns' and $campaign_id != '') {
                 $newProspectList->{$linkedField}->add($campaign_id);
             }
         }
     }
 }
Esempio n. 11
0
 function execute($format = 'TABLE', $parameter_values = array())
 {
     global $sugar_config, $current_user, $current_language;
     global $beanList, $beanFiles;
     $beanName = $beanList[$this->mainmodule];
     $beanFile = $beanFiles[$beanName];
     if (!empty($beanName) && !empty($beanFile)) {
         require_once $beanFile;
         $seed = new $beanName();
         $filters = $this->get_filters();
         $sql_where = array();
         foreach ($filters as $filter) {
             $sql_where[] = $filter->create_where_clause($parameter_values);
         }
         $orders = $this->get_orders();
         $sql_order = array();
         foreach ($orders as $order) {
             $sql_order[] = $order->create_order_clause($parameter_values);
         }
         if ($this->filtertype == "AND") {
             $sql_join = " and ";
         } else {
             if ($this->filtertype == "OR") {
                 $sql_join = " or ";
             } else {
                 $sql_join = " and ";
             }
         }
         if (!empty($sql_join) && !empty($sql_where)) {
             $where_clause = "(" . join($sql_join, $sql_where) . ")";
         }
         if (!empty($sql_order)) {
             $order_clause = join(", ", $sql_order);
         }
         if (!empty($this->customwhere1)) {
             $where_clause = $this->customwhere1 . " " . $where_clause;
         }
         if (!empty($this->customwhere2)) {
             $where_clause = $where_clause . " " . $this->customwhere1;
         }
         $rows = $seed->get_full_list($order_clause, $where_clause);
         if (empty($rows)) {
             $rows = array();
         }
         $this->report_output .= "Found " . count($rows) . " rows<br/>";
         if ($format == "TABLE" || $format == "HTML" || $format == "SIMPLEHTML" || $format == "CSV") {
             $list_data = array();
             $list_fields = array();
             foreach ($rows as $row) {
                 $row_data = $row->get_list_view_data();
                 $row_data_mapped = array();
                 foreach (array_keys($row_data) as $key) {
                     $row_data_mapped[strtoupper($this->mainmodule) . "_" . $key] = $row_data[$key];
                 }
                 $list_data[] = new ListingRow($row_data_mapped);
                 if (empty($list_fields)) {
                     foreach (array_keys($row_data) as $key) {
                         $list_fields[] = $key;
                     }
                 }
             }
             if ($format == "HTML" || $format == "TABLE") {
                 if ($this->list_template == "default") {
                     require_once 'include/ListView/ListViewSmarty.php';
                     if (file_exists('custom/modules/' . $this->mainmodule . '/metadata/listviewdefs.php')) {
                         require_once 'custom/modules/' . $this->mainmodule . '/metadata/listviewdefs.php';
                     } else {
                         require_once 'modules/' . $this->mainmodule . '/metadata/listviewdefs.php';
                     }
                     $lv = new ListViewSmarty();
                     $displayColumns = array();
                     foreach ($listViewDefs[$this->mainmodule] as $col => $params) {
                         if (!empty($params['default']) && $params['default']) {
                             $displayColumns[$col] = $params;
                         }
                     }
                     $lv->displayColumns = $displayColumns;
                     $lv->setup($seed, 'include/ListView/ListViewGeneric.tpl', $where_clause, $params);
                     ob_start();
                     echo $lv->display();
                 } else {
                     require_once 'include/ListView/ListView.php';
                     $lv = new ListView();
                     if ($_REQUEST["is_scheduler"] = "true") {
                         $lv->setDisplayHeaderAndFooter(false);
                     }
                     $lv->initNewXTemplate('modules/ZuckerListingTemplate/lists/' . $this->list_template, return_module_language($current_language, $this->mainmodule));
                     $lv->xTemplateAssign("SITE_URL", $sugar_config["site_url"]);
                     ob_start();
                     $lv->processListViewTwo($list_data, "rows", "ROW");
                 }
                 if ($format == "HTML") {
                     $date = date("ymd_His");
                     $this->report_result_type = "FILE";
                     $this->report_result_name = $date . "_" . $this->name . ".html";
                     $this->report_result_name = strtolower(join("_", explode(" ", $this->report_result_name)));
                     $this->report_result = $this->archive_dir . "/" . $this->report_result_name;
                     $f = fopen($this->report_result, "w");
                     $c = file_get_contents("modules/ZuckerListingTemplate/lists/header.html");
                     $c = str_replace("{SITE_URL}", $sugar_config["site_url"], $c);
                     $c = str_replace("{THEME_URL}", $sugar_config["site_url"] . "/themes/" . $theme, $c);
                     fwrite($f, $c);
                     fwrite($f, ob_get_clean());
                     fwrite($f, file_get_contents("modules/ZuckerListingTemplate/lists/footer.html"));
                     fclose($f);
                 } else {
                     $this->report_result_type = "INLINE";
                     $this->report_result = ob_get_clean();
                 }
             } else {
                 if ($format == "SIMPLEHTML") {
                     $date = date("ymd_His");
                     $this->report_result_type = "FILE";
                     $this->report_result_name = $date . "_" . $this->name . ".html";
                     $this->report_result_name = strtolower(join("_", explode(" ", $this->report_result_name)));
                     $this->report_result = $this->archive_dir . "/" . $this->report_result_name;
                     $f = fopen($this->report_result, "w");
                     fwrite($f, "<!DOCTYPE html PUBLIC \"-//W3C//DTD html 4.01 Transitional//EN\">\n");
                     fwrite($f, "<html><body><table border=\"1\">");
                     if ($this->include_header && !empty($list_fields)) {
                         fwrite($f, "\n<tr>");
                         foreach ($list_fields as $col_name) {
                             fwrite($f, "<th>" . $col_name . "</th>");
                         }
                         fwrite($f, "</tr>");
                     }
                     foreach ($list_data as $list_row) {
                         fwrite($f, "\n<tr>");
                         foreach (array_keys($list_row->list_view_data) as $col_name) {
                             $field = $list_row->list_view_data[$col_name];
                             if (empty($field)) {
                                 fwrite($f, "<td>&nbsp;</td>");
                             } else {
                                 fwrite($f, "<td>" . $this->format_value_for_html($field) . "</td>");
                             }
                         }
                         fwrite($f, "</tr>");
                     }
                     fwrite($f, "\n</table></body></html>");
                     fclose($f);
                 } else {
                     if ($format == "CSV") {
                         $date = date("ymd_His");
                         $this->report_result_type = "FILE";
                         $this->report_result_name = $date . "_" . $this->name . ".csv";
                         $this->report_result_name = strtolower(join("_", explode(" ", $this->report_result_name)));
                         $this->report_result = $this->archive_dir . "/" . $this->report_result_name;
                         $f = fopen($this->report_result, "w");
                         if ($this->include_header && count($list_data) > 0) {
                             $row = $list_data[0];
                             foreach (array_keys($row->list_view_data) as $col_name) {
                                 fwrite($f, $col_name);
                                 fwrite($f, $this->col_delim);
                             }
                             fwrite($f, $this->row_delim);
                         }
                         foreach ($list_data as $list_row) {
                             foreach (array_keys($list_row->list_view_data) as $col_name) {
                                 $field = $list_row->list_view_data[$col_name];
                                 $pieces = explode("\n", $field);
                                 $cleaned_pieces = array();
                                 foreach ($pieces as $piece) {
                                     $cleaned_pieces[] = trim($piece);
                                 }
                                 fwrite($f, join(" ", $cleaned_pieces));
                                 if ($i != count($list_row->list_view_data) - 1) {
                                     fwrite($f, $this->col_delim);
                                 }
                             }
                             fwrite($f, $this->row_delim);
                         }
                         fclose($f);
                     }
                 }
             }
         } else {
             if ($format == "PROSPECTLIST") {
                 require_once "modules/ProspectLists/ProspectList.php";
                 $pl = new ProspectList();
                 $pl->name = empty($_REQUEST["prospect_list_name"]) ? $this->name : $_REQUEST["prospect_list_name"];
                 $pl->save();
                 foreach ($rows as $row) {
                     if ($row->object_name == "Contact") {
                         $pl->set_relationship('prospect_lists_prospects', array("related_type" => "Contacts", "related_id" => $row->id, 'prospect_list_id' => $pl->id));
                     } else {
                         if ($row->object_name == "Lead") {
                             $pl->set_relationship('prospect_lists_prospects', array("related_type" => "Leads", "related_id" => $row->id, 'prospect_list_id' => $pl->id));
                         } else {
                             if ($row->object_name == "Prospect") {
                                 $pl->set_relationship('prospect_lists_prospects', array("related_type" => "Prospects", "related_id" => $row->id, 'prospect_list_id' => $pl->id));
                             }
                         }
                     }
                 }
                 $this->report_result = "index.php?module=ProspectLists&action=DetailView&record=" . $pl->id;
                 $this->report_result_type = "FORWARD";
             }
         }
         $result = true;
     }
     return $result;
 }
Esempio n. 12
0
 * requirements.
 *
 * The Original Code is: SugarCRM Open Source
 * The Initial Developer of the Original Code is SugarCRM, Inc.
 * Portions created by SugarCRM are Copyright (C) 2004-2006 SugarCRM, Inc.;
 * All Rights Reserved.
 * Contributor(s): ______________________________________.
 ********************************************************************************/
/*********************************************************************************
 * Description:  TODO: To be written.
 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
 * All Rights Reserved.
 * Contributor(s): ______________________________________..
 ********************************************************************************/
require_once 'modules/ProspectLists/ProspectList.php';
$focus = new ProspectList();
$focus->retrieve($_POST['record']);
if (!empty($_POST['assigned_user_id']) && $focus->assigned_user_id != $_POST['assigned_user_id'] && $_POST['assigned_user_id'] != $current_user->id) {
    $check_notify = TRUE;
} else {
    $check_notify = FALSE;
}
foreach ($focus->column_fields as $field) {
    if (isset($_POST[$field])) {
        $value = $_POST[$field];
        $focus->{$field} = $value;
    }
}
foreach ($focus->additional_column_fields as $field) {
    if (isset($_POST[$field])) {
        $value = $_POST[$field];
 function createTargeList($listname, $campaign_id = '')
 {
     global $current_user, $db;
     $results = $this->getSelectionResults(array());
     if (count($results > 0)) {
         require_once 'modules/ProspectLists/ProspectList.php';
         $newProspectList = new ProspectList();
         $newProspectList->name = $listname;
         $newProspectList->list_type = 'default';
         $newProspectList->assigned_user_id = $current_user->id;
         $db = DBManagerFactory::getInstance();
         /*
         $sugarQuery = new SugarQuery();
         $sugarQuery->select('id');
         $sugarQuery->from(BeanFactory::getBean('Accounts'));
         $sugarQuery->where()->equals('name',$newProspectList->name);
         $id_prospect = $sugarQuery->execute();
         $id_prospect = $id_prospect[0];         
         */
         $sql = "SELECT id, name from prospect_lists where deleted = '0' and name = '" . $newProspectList->name . "' limit 1";
         $result = $db->query($sql);
         if ($db->getRowCount($result) > 0) {
             if ($row = $db->fetchByAssoc($result)) {
                 $newProspectList->id = $row['id'];
             }
         }
         if ($newProspectList->save()) {
             /* Força update do campo da base de dados com o sql do relatório */
             $sql = 'UPDATE prospect_lists SET sql_query = "' . str_replace('"', "'", $_SESSION['kreport_sql']) . '" where id = "' . $newProspectList->id . '"';
             $result = $db->query($sql);
             if ($result) {
                 $GLOBALS['log']->debug("Atualizou prospect list sql");
             } else {
                 $GLOBALS['log']->debug("Falha ao atualizar prospect list sql");
             }
             /* Fim */
         }
         // add to campaign
         if ($campaign_id != '') {
             require_once 'modules/Campaigns/Campaign.php';
             $thisCampaign = new Campaign();
             $thisCampaign->retrieve($campaign_id);
             $thisCampaign->load_relationships();
             $campaignLinkedFields = $thisCampaign->get_linked_fields();
             foreach ($campaignLinkedFields as $linkedField => $linkedFieldData) {
                 if ($thisCampaign->{$linkedField}->_relationship->rhs_module == 'ProspectList') {
                     $thisCampaign->{$linkedField}->add($newProspectList->id);
                 }
             }
         }
         // fill with results:
         $newProspectList->load_relationships();
         $linkedFields = $newProspectList->get_linked_fields();
         foreach ($linkedFields as $linkedField => $linkedFieldData) {
             if ($newProspectList->{$linkedField}->_relationship->rhs_module == $this->report_module) {
                 foreach ($results as $thisRecord) {
                     $newProspectList->{$linkedField}->add($thisRecord['sugarRecordId']);
                 }
             } elseif ($newProspectList->{$linkedField}->_relationship->rhs_module == 'Campaigns' and $campaign_id != '') {
                 $newProspectList->{$linkedField}->add($campaign_id);
             }
         }
     }
 }
Esempio n. 14
0
function create_target_summary($focus)
{
    global $mod_strings, $app_strings, $app_list_strings;
    $colorclass = '';
    $camp_type = $focus->campaign_type;
    //create schedule table
    $pltbl = '';
    //set the title based on campaign type
    $target_title = $mod_strings['LBL_TARGET_LISTS'];
    if ($camp_type == 'NewsLetter') {
        $target_title = $mod_strings['LBL_NAVIGATION_MENU_SUBSCRIPTIONS'];
    }
    $focus->load_relationship('prospectlists');
    $pl_lists = $focus->prospectlists->get();
    $pl_tbl = "<p><table align='center' class='list view' width='100%' border='0' cellspacing='1' cellpadding='1'>";
    $pl_tbl .= "<tr class='detail view'><td colspan='4'><h4> " . $target_title . " </h4></td></tr>";
    $pl_tbl .= "<tr class='listViewHRS1'><td width='50%' scope='col'><b>" . $mod_strings['LBL_LIST_NAME'] . "</b></td><td width='30%' scope='col'><b>" . $mod_strings['LBL_LIST_TYPE'] . "</b></td>";
    $pl_tbl .= "<td width='15%' scope='col'><b>" . $mod_strings['LBL_TOTAL_ENTRIES'] . "</b></td><td width='5%' scope='col'>&nbsp;</td></tr>";
    if (count($pl_lists) > 0) {
        $pl_focus = new ProspectList();
        foreach ($pl_lists as $pl_id) {
            if ($colorclass == "class='evenListRowS1'") {
                $colorclass = "class='oddListRowS1'";
            } else {
                $colorclass = "class='evenListRowS1'";
            }
            $pl_focus->retrieve($pl_id);
            //set the list type if this is a newsletter
            $type = $pl_focus->list_type;
            if ($camp_type == 'NewsLetter') {
                if ($pl_focus->list_type == 'default' || $pl_focus->list_type == 'seed') {
                    $type = $mod_strings['LBL_SUBSCRIPTION_TYPE_NAME'];
                }
                if ($pl_focus->list_type == 'exempt') {
                    $type = $mod_strings['LBL_UNSUBSCRIPTION_TYPE_NAME'];
                }
                if ($pl_focus->list_type == 'test') {
                    $type = $mod_strings['LBL_TEST_TYPE_NAME'];
                }
            } else {
                $type = $app_list_strings['prospect_list_type_dom'][$pl_focus->list_type];
            }
            if (isset($pl_focus->id) && !empty($pl_focus->id)) {
                $pl_tbl .= "<tr {$colorclass}>";
                $pl_tbl .= "<td scope='row' width='50%'><a href='index.php?action=DetailView&module=ProspectLists&return_module=Campaigns&return_action=WizardHome&return_id=" . $focus->id . "&record=" . $pl_focus->id . "'>";
                $pl_tbl .= $pl_focus->name . "</a></td>";
                $pl_tbl .= "<td scope='row' width='30%'>{$type}</td>";
                $pl_tbl .= "<td scope='row' width='15%'>" . $pl_focus->get_entry_count() . "</td>";
                $pl_tbl .= "<td scope='row' width='5%' align='right'><a href='index.php?action=EditView&module=ProspectLists&return_module=Campaigns&return_action=WizardHome&return_id=" . $focus->id . "&record=" . $pl_focus->id . "'>";
                $pl_tbl .= SugarThemeRegistry::current()->getImage('edit_inline', 'border=0', null, null, ".gif", $mod_strings['LBL_EDIT_INLINE']) . "</a>&nbsp;";
                $pl_tbl .= "<a href='index.php?action=DetailView&module=ProspectLists&return_module=Campaigns&return_action=WizardHome&return_id=" . $focus->id . "&record=" . $pl_focus->id . "'>";
                $pl_tbl .= SugarThemeRegistry::current()->getImage('view_inline', 'border=0', null, null, ".gif", $mod_strings['LBL_VIEW_INLINE']) . "</a></td>";
            }
        }
    } else {
        $pl_tbl .= "<tr><td class='{$colorclass}' scope='row' colspan='2'>" . $mod_strings['LBL_NONE'] . "</td></tr>";
    }
    $pl_tbl .= "</table></p>";
    return $pl_tbl;
}
Esempio n. 15
0
 * Contributor(s): ______________________________________..
 ********************************************************************************/
$focus = new ProspectList();
$focus->retrieve($_POST['record']);
if (!empty($_POST['assigned_user_id']) && $focus->assigned_user_id != $_POST['assigned_user_id'] && $_POST['assigned_user_id'] != $current_user->id) {
    $check_notify = TRUE;
} else {
    $check_notify = FALSE;
}
require_once 'include/formbase.php';
$focus = populateFromPost('', $focus);
$focus->save($check_notify);
$return_id = $focus->id;
//Bug 33675 Duplicate target list
if (!empty($_REQUEST['duplicateId'])) {
    $copyFromProspectList = new ProspectList();
    $copyFromProspectList->retrieve($_REQUEST['duplicateId']);
    $relations = $copyFromProspectList->retrieve_relationships('prospect_lists_prospects', array('prospect_list_id' => $_REQUEST['duplicateId']), 'related_id, related_type');
    if (count($relations) > 0) {
        foreach ($relations as $rel) {
            $rel['prospect_list_id'] = $return_id;
            $focus->set_relationship('prospect_lists_prospects', $rel, true);
        }
    }
    $focus->save();
}
if (isset($_POST['return_module']) && $_POST['return_module'] != "") {
    $return_module = $_POST['return_module'];
} else {
    $return_module = "ProspectLists";
}
Esempio n. 16
0
        }
    }
} else {
    //this is not a newlsetter campaign, so fill in target list table
    //create array for javascript, this will help to display the option text, not the value
    $dom_txt = ' ';
    foreach ($app_list_strings['prospect_list_type_dom'] as $key => $val) {
        $dom_txt .= "if(trgt_type_text =='{$key}'){trgt_type_text='{$val}';}";
    }
    $ss->assign("PL_DOM_STMT", $dom_txt);
    $trgt_count = 0;
    $trgt_html = ' ';
    if (count($prospect_lists) > 0) {
        foreach ($prospect_lists as $pl_id) {
            //retrieve prospect list
            $pl = new ProspectList();
            $pl_focus = $pl->retrieve($pl_id);
            $trgt_html .= "<div id='existing_trgt" . $trgt_count . "'> <table class='tabDetailViewDL2' width='100%'>";
            $trgt_html .= "<td width='25%'> <input id='existing_target_name" . $trgt_count . "' type='hidden' type='text' size='60' maxlength='255' name='existing_target_name" . $trgt_count . "'  value='" . $pl_focus->name . "' >" . $pl_focus->name . "</td>";
            $trgt_html .= "<td width='25%'><input type='hidden' size='60' maxlength='255' name='existing_tracker_list_type" . $trgt_count . "'   id='existing_tracker_list_type" . $trgt_count . "' value='" . $pl_focus->list_type . "' >" . $app_list_strings['prospect_list_type_dom'][$pl_focus->list_type];
            $trgt_html .= "<input type='hidden' name='added_target_id" . $trgt_count . "' id='added_target_id" . $trgt_count . "' value='" . $pl_focus->id . "' ></td>";
            $trgt_html .= "<td><a href='#' onclick=\"javascript:remove_existing_target('existing_trgt" . $trgt_count . "','" . $pl_focus->id . "'); \" >  ";
            $trgt_html .= "<img src='" . SugarThemeRegistry::current()->getImageURL("delete_inline.gif") . "' border='0' alt='rem' align='absmiddle' border='0' height='12' width='12'>" . $mod_strings['LBL_REMOVE'] . "</a></td></tr></table></div>";
            $trgt_count = $trgt_count + 1;
        }
        $trgt_html .= "<div id='no_targets'></div>";
    } else {
        $trgt_html .= "<div id='no_targets'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr class='evenListRowS1'><td>" . $mod_strings['LBL_NONE'] . "</td></tr></table></div>";
    }
    $ss->assign('EXISTING_TARGETS', $trgt_html);
}
Esempio n. 17
0
 * 
 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
 * 
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU Affero General Public License version 3.
 * 
 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
 * these Appropriate Legal Notices must retain the display of the "Powered by
 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
 * technical reasons, the Appropriate Legal Notices must display the words
 * "Powered by SugarCRM".
 ********************************************************************************/
/*********************************************************************************
 * Description:  TODO: To be written.
 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
 * All Rights Reserved.
 * Contributor(s): ______________________________________..
 ********************************************************************************/
$focus = new ProspectList();
if (!isset($_REQUEST['record'])) {
    sugar_die("A record number must be specified to delete the prospect list.");
}
$focus->retrieve($_REQUEST['record']);
if (!$focus->ACLAccess('Delete')) {
    ACLController::displayNoAccess(true);
    sugar_cleanup(true);
}
$focus->mark_deleted($_REQUEST['record']);
header("Location: index.php?module=" . $_REQUEST['return_module'] . "&action=" . $_REQUEST['return_action'] . "&record=" . $_REQUEST['return_id']);
Esempio n. 18
0
 * Section 5 of the GNU Affero General Public License version 3.
 *
 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
 * these Appropriate Legal Notices must retain the display of the "Powered by
 * SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
 * reasonably feasible for  technical reasons, the Appropriate Legal Notices must
 * display the words  "Powered by SugarCRM" and "Supercharged by SuiteCRM".
 ********************************************************************************/
/*********************************************************************************
 * Description:  TODO: To be written.
 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
 * All Rights Reserved.
 * Contributor(s): ______________________________________..
 ********************************************************************************/
global $mod_strings;
$focus = new ProspectList();
$focus->retrieve($_POST['record']);
if (isset($_POST['isDuplicate']) && $_POST['isDuplicate'] == true) {
    $focus->id = '';
    $focus->name = $mod_strings['LBL_COPY_PREFIX'] . ' ' . $focus->name;
    $focus->save();
    $return_id = $focus->id;
    //duplicate the linked items.
    $query = "select * from prospect_lists_prospects where prospect_list_id = '" . $_POST['record'] . "'";
    $result = $focus->db->query($query);
    if ($result != null) {
        while (($row = $focus->db->fetchByAssoc($result)) != null) {
            $iquery = "INSERT INTO prospect_lists_prospects (id,prospect_list_id, related_id, related_type,date_modified) ";
            $iquery .= "VALUES (" . "'" . create_guid() . "'," . "'" . $focus->id . "'," . "'" . $row['related_id'] . "'," . "'" . $row['related_type'] . "'," . "'" . TimeDate::getInstance()->nowDb() . "')";
            $focus->db->query($iquery);
            //save the record.
Esempio n. 19
0
 ********************************************************************************/
global $timedate;
global $current_user;
$campaign = new Campaign();
$campaign->retrieve($_REQUEST['record']);
$query = "SELECT prospect_list_id as id FROM prospect_list_campaigns WHERE campaign_id='{$campaign->id}' AND deleted=0";
$fromName = $_REQUEST['from_name'];
$fromEmail = $_REQUEST['from_address'];
$date_start = $_REQUEST['date_start'];
$time_start = $_REQUEST['time_start'];
$template_id = $_REQUEST['email_template'];
$dateval = $timedate->merge_date_time($date_start, $time_start);
$listresult = $campaign->db->query($query);
while ($list = $campaign->db->fetchByAssoc($listresult)) {
    $prospect_list = $list['id'];
    $focus = new ProspectList();
    $focus->retrieve($prospect_list);
    $query = "SELECT prospect_id,contact_id,lead_id FROM prospect_lists_prospects WHERE prospect_list_id='{$focus->id}' AND deleted=0";
    $result = $focus->db->query($query);
    while ($row = $focus->db->fetchByAssoc($result)) {
        $prospect_id = $row['prospect_id'];
        $contact_id = $row['contact_id'];
        $lead_id = $row['lead_id'];
        if ($prospect_id != '') {
            $moduleName = "Prospects";
            $moduleID = $row['prospect_id'];
        }
        if ($contact_id != '') {
            $moduleName = "Contacts";
            $moduleID = $row['contact_id'];
        }
Esempio n. 20
0
 public function action_add_to_list()
 {
     $ids = $_POST['subpanel_id'];
     $event_id = $_POST['return_id'];
     $type = $_POST['pop_up_type'];
     if (!is_array($ids)) {
         $ids = array($ids);
     }
     //Target lists. Can incliude contacts, leads and targets as part of the target list
     if ($type = 'target_list') {
         foreach ($ids as $list) {
             $event = new FP_events();
             $event->retrieve($event_id);
             $event->load_relationship('fp_events_prospects_1');
             $event->load_relationship('fp_events_contacts');
             $event->load_relationship('fp_events_leads_1');
             $target_list = new ProspectList();
             $target_list->retrieve($list);
             $target_list->load_relationship('prospects');
             $target_list->load_relationship('contacts');
             $target_list->load_relationship('leads');
             //add prospects/targets
             foreach ($target_list->prospects->getBeans() as $contact) {
                 $contact_id_list = $event->fp_events_prospects_1->get();
                 if (!in_array($contact->id, $contact_id_list)) {
                     //check if its already related
                     $event->fp_events_prospects_1->add($contact->id);
                 }
             }
             //add contacts
             foreach ($target_list->contacts->getBeans() as $contact) {
                 $contact_id_list = $event->fp_events_contacts->get();
                 if (!in_array($contact->id, $contact_id_list)) {
                     $event->fp_events_contacts->add($contact->id);
                 }
             }
             //add leads
             foreach ($target_list->leads->getBeans() as $contact) {
                 $contact_id_list = $event->fp_events_leads_1->get();
                 if (!in_array($contact->id, $contact_id_list)) {
                     $event->fp_events_leads_1->add($contact->id);
                 }
             }
         }
     }
     //Targets
     if ($type = 'targets') {
         foreach ($ids as $target) {
             $event = new FP_events();
             $event->retrieve($event_id);
             $event->load_relationship('fp_events_prospects_1');
             $contact_id_list = $event->fp_events_prospects_1->get();
             //get array of currently linked targets
             if (!in_array($target, $contact_id_list)) {
                 //check if its already in the array
                 $event->fp_events_prospects_1->add($target);
                 //if not add relationship
             }
         }
     }
     //leads
     if ($type = 'leads') {
         foreach ($ids as $lead) {
             $event = new FP_events();
             $event->retrieve($event_id);
             $event->load_relationship('fp_events_leads_1');
             $contact_id_list = $event->fp_events_leads_1->get();
             //get array of currently linked leads
             if (!in_array($lead, $contact_id_list)) {
                 //check if its already in the array
                 $event->fp_events_leads_1->add($lead);
                 //if not add relationship
             }
         }
     }
     //contacts
     if ($type = 'contacts') {
         foreach ($ids as $contact) {
             $event = new FP_events();
             $event->retrieve($event_id);
             $event->load_relationship('fp_events_contacts');
             $contact_id_list = $event->fp_events_contacts->get();
             //get array of currently linked contacts
             if (!in_array($contact, $contact_id_list)) {
                 $event->fp_events_contacts->add($contact);
             }
         }
     }
     die;
 }
Esempio n. 21
0
function track_campaign_prospects($focus)
{
    global $mod_strings;
    //load target list relationships
    $focus->load_relationship('prospectlists');
    $target_lists = $focus->prospectlists->get();
    $prospect_lists = array();
    //retrieve the default target list if it exists
    foreach ($target_lists as $list) {
        //create subscription list
        $p_list = new ProspectList();
        $p_list->retrieve($list);
        if ($p_list->list_type == 'default') {
            $prospect_lists[] = $p_list;
        }
    }
    //list does not exist, send back error message
    if (count($prospect_lists) == 0) {
        return $mod_strings['LBL_DEFAULT_LIST_NOT_FOUND'];
    }
    //iterate through each Prospect list and make sure entries exist.
    $entry_count = 0;
    foreach ($prospect_lists as $default_target_list) {
        $entry_count = $entry_count + $default_target_list->get_entry_count();
    }
    //if no entries exist, then return error message.
    if ($entry_count == 0) {
        return $mod_strings['LBL_DEFAULT_LIST_ENTRIES_NOT_FOUND'];
    }
    //iterate through each member of list and enter campaign log
    foreach ($prospect_lists as $default_target_list) {
        //process targets/prospects
        $rel_bean = new Prospect();
        create_campaign_log_entry($focus->id, $default_target_list, 'prospects', $rel_bean);
        //process users
        $rel_bean = new User();
        create_campaign_log_entry($focus->id, $default_target_list, 'users', $rel_bean);
        //process contacts
        $rel_bean = new Contact();
        create_campaign_log_entry($focus->id, $default_target_list, 'contacts', $rel_bean);
        //process leads
        $rel_bean = new Lead();
        create_campaign_log_entry($focus->id, $default_target_list, 'leads', $rel_bean);
        //process accounts
        $rel_bean = new Account();
        create_campaign_log_entry($focus->id, $default_target_list, 'accounts', $rel_bean);
    }
    //return success message
    return $mod_strings['LBL_DEFAULT_LIST_ENTRIES_WERE_PROCESSED'];
}