Example #1
0
function duplicaterec($currentModule, $record_id, $bmapname)
{
    global $adb, $current_user;
    $focus = CRMEntity::getInstance($currentModule);
    $focus->retrieve_entity_info($record_id, $currentModule);
    // Retrieve relations map
    //$bmapname = 'BusinessMapping_'.$currentModule.'_DuplicateRelations';
    $cbMapid = GlobalVariable::getVariable('BusinessMapping_' . $bmapname, cbMap::getMapIdByName($bmapname));
    if ($cbMapid) {
        $cbMap = cbMap::getMapByID($cbMapid);
        $maped_relations = $cbMap->DuplicateRelations()->getRelatedModules();
    }
    // Duplicate Records that this Record is dependent of
    if ($cbMapid && $cbMap->DuplicateRelations()->DuplicateDirectRelations()) {
        $invmods = getInventoryModules();
        foreach ($focus->column_fields as $fieldname => $value) {
            $sql = 'SELECT * FROM vtiger_field WHERE columnname = ? AND uitype IN (10,50,51,57,58,59,73,68,76,75,81,78,80)';
            $result = $adb->pquery($sql, array($fieldname));
            if ($adb->num_rows($result) == 1 && !empty($value)) {
                $module = getSalesEntityType($value);
                if (in_array($module, $invmods)) {
                    continue;
                }
                // we can't duplicate these
                $handler = vtws_getModuleHandlerFromName($module, $current_user);
                $meta = $handler->getMeta();
                $entity = CRMEntity::getInstance($module);
                $entity->mode = '';
                $entity->retrieve_entity_info($value, $module);
                $entity->column_fields = DataTransform::sanitizeRetrieveEntityInfo($entity->column_fields, $meta);
                $entity->save($module);
                $focus->column_fields[$fieldname] = $entity->id;
            }
        }
    }
    $handler = vtws_getModuleHandlerFromName($currentModule, $current_user);
    $meta = $handler->getMeta();
    $focus->column_fields = DataTransform::sanitizeRetrieveEntityInfo($focus->column_fields, $meta);
    $focus->saveentity($currentModule);
    // no workflows for this one => so we don't reenter this process
    $new_record_id = $focus->id;
    $curr_tab_id = gettabid($currentModule);
    $related_list = get_related_lists($curr_tab_id, $maped_relations);
    dup_related_lists($new_record_id, $currentModule, $related_list, $record_id, $maped_relations);
    $dependents_list = get_dependent_lists($curr_tab_id);
    $dependent_tables = get_dependent_tables($dependents_list, $currentModule);
    dup_dependent_rec($record_id, $currentModule, $new_record_id, $dependent_tables, $maped_relations);
    return $new_record_id;
}
Example #2
0
    public static function createPotentialRelatedTo($relatedto, $campaignid)
    {
        global $adb, $current_user;
        $checkrs = $adb->pquery('select 1
			from vtiger_potential
			inner join vtiger_crmentity on crmid=potentialid
			where deleted=0 and related_to=? and campaignid=?', array($relatedto, $campaignid));
        if ($adb->num_rows($checkrs) == 0) {
            require_once 'modules/Potentials/Potentials.php';
            $entity = new Potentials();
            $entity->mode = '';
            $cname = getEntityName('Campaigns', $campaignid);
            $cname = $cname[$campaignid] . ' - ';
            $setype = getSalesEntityType($relatedto);
            $rname = getEntityName($setype, $relatedto);
            $rname = $rname[$relatedto];
            $cbMapid = GlobalVariable::getVariable('BusinessMapping_PotentialOnCampaignRelation', cbMap::getMapIdByName('PotentialOnCampaignRelation'));
            if ($cbMapid) {
                $cmp = CRMEntity::getInstance('Campaigns');
                $cmp->retrieve_entity_info($campaignid, 'Campaigns');
                if ($setype == 'Accounts') {
                    $cmp->column_fields['AccountName'] = $rname;
                    $cmp->column_fields['ContactName'] = '';
                } else {
                    $cmp->column_fields['AccountName'] = '';
                    $cmp->column_fields['ContactName'] = $rname;
                }
                $cbMap = cbMap::getMapByID($cbMapid);
                $entity->column_fields = $cbMap->Mapping($cmp->column_fields, array());
            }
            if (empty($entity->column_fields['assigned_user_id'])) {
                $entity->column_fields['assigned_user_id'] = $current_user->id;
            }
            $entity->column_fields['related_to'] = $relatedto;
            $entity->column_fields['campaignid'] = $campaignid;
            if (empty($entity->column_fields['closingdate'])) {
                $dt = new DateTimeField();
                $entity->column_fields['closingdate'] = $dt->getDisplayDate();
            }
            if (empty($entity->column_fields['potentialname'])) {
                $entity->column_fields['potentialname'] = $cname . $rname;
            }
            if (empty($entity->column_fields['sales_stage'])) {
                $entity->column_fields['sales_stage'] = 'Prospecting';
            }
            $_REQUEST['assigntype'] = 'U';
            $_REQUEST['assigned_user_id'] = $entity->column_fields['assigned_user_id'];
            $entity->save('Potentials');
        }
    }
Example #3
0
/** This function returns the sales order object populated with the details from quote object.
* Param $focus - Sales order object
* Param $quote_focus - Quote order focus
* Param $quoteid - quote id
* Return type is an object array
*/
function getConvertQuoteToSoObject($focus, $quote_focus, $quoteid)
{
    global $log, $current_user;
    $log->debug("Entering getConvertQuoteToSoObject(" . get_class($focus) . "," . get_class($quote_focus) . "," . $quoteid . ") method ...");
    $xyz = array('bill_street', 'bill_city', 'bill_code', 'bill_pobox', 'bill_country', 'bill_state', 'ship_street', 'ship_city', 'ship_code', 'ship_pobox', 'ship_country', 'ship_state');
    for ($i = 0; $i < 12; $i++) {
        if (getFieldVisibilityPermission('Quotes', $current_user->id, $xyz[$i]) == '0') {
            $quote_focus->column_fields[$xyz[$i]] = $quote_focus->column_fields[$xyz[$i]];
        } else {
            $quote_focus->column_fields[$xyz[$i]] = '';
        }
    }
    $focus->column_fields['quote_id'] = $quoteid;
    $focus->column_fields['subject'] = $quote_focus->column_fields['subject'];
    $focus->column_fields['contact_id'] = $quote_focus->column_fields['contact_id'];
    $focus->column_fields['potential_id'] = $quote_focus->column_fields['potential_id'];
    $focus->column_fields['account_id'] = $quote_focus->column_fields['account_id'];
    $focus->column_fields['carrier'] = $quote_focus->column_fields['carrier'];
    $focus->column_fields['bill_street'] = $quote_focus->column_fields['bill_street'];
    $focus->column_fields['ship_street'] = $quote_focus->column_fields['ship_street'];
    $focus->column_fields['bill_city'] = $quote_focus->column_fields['bill_city'];
    $focus->column_fields['ship_city'] = $quote_focus->column_fields['ship_city'];
    $focus->column_fields['bill_state'] = $quote_focus->column_fields['bill_state'];
    $focus->column_fields['ship_state'] = $quote_focus->column_fields['ship_state'];
    $focus->column_fields['bill_code'] = $quote_focus->column_fields['bill_code'];
    $focus->column_fields['ship_code'] = $quote_focus->column_fields['ship_code'];
    $focus->column_fields['bill_country'] = $quote_focus->column_fields['bill_country'];
    $focus->column_fields['ship_country'] = $quote_focus->column_fields['ship_country'];
    $focus->column_fields['bill_pobox'] = $quote_focus->column_fields['bill_pobox'];
    $focus->column_fields['ship_pobox'] = $quote_focus->column_fields['ship_pobox'];
    $focus->column_fields['description'] = $quote_focus->column_fields['description'];
    $focus->column_fields['terms_conditions'] = $quote_focus->column_fields['terms_conditions'];
    $focus->column_fields['currency_id'] = $quote_focus->column_fields['currency_id'];
    $focus->column_fields['conversion_rate'] = $quote_focus->column_fields['conversion_rate'];
    $cbMapid = GlobalVariable::getVariable('BusinessMapping_Quotes2SalesOrder', cbMap::getMapIdByName('Quotes2SalesOrder'));
    if ($cbMapid) {
        $cbMap = cbMap::getMapByID($cbMapid);
        $focus->column_fields = $cbMap->Mapping($quote_focus->column_fields, $focus->column_fields);
    }
    $log->debug("Exiting getConvertQuoteToSoObject method ...");
    return $focus;
}
Example #4
0
function getSearchListViewEntries($focus, $module, $list_result, $navigation_array, $form = '')
{
    global $log, $adb, $app_strings, $theme, $current_user, $list_max_entries_per_page;
    $log->debug("Entering getSearchListViewEntries(" . get_class($focus) . "," . $module . "," . $list_result . ") method ...");
    $noofrows = $adb->num_rows($list_result);
    $list_header = '';
    $theme_path = "themes/" . $theme . "/";
    $image_path = $theme_path . "images/";
    $list_block = array();
    //getting the vtiger_fieldtable entries from database
    $tabid = getTabid($module);
    require 'user_privileges/user_privileges_' . $current_user->id . '.php';
    $bmapname = $module . '_ListColumns';
    $cbMapid = GlobalVariable::getVariable('BusinessMapping_' . $bmapname, cbMap::getMapIdByName($bmapname));
    if ($cbMapid) {
        $cbMap = cbMap::getMapByID($cbMapid);
        $focus->search_fields = $cbMap->ListColumns()->getSearchFields();
        $focus->search_fields_name = $cbMap->ListColumns()->getSearchFieldsName();
        $focus->popup_fields = array($cbMap->ListColumns()->getSearchLinkField());
        $focus->list_link_field = $cbMap->ListColumns()->getSearchLinkField();
    }
    //Added to reduce the no. of queries logging for non-admin user -- by Minnie-start
    $field_list = array_values($focus->search_fields_name);
    $field = array();
    if ($is_admin == false && $module != 'Users') {
        if ($module == 'Emails') {
            $query = "SELECT fieldname FROM vtiger_field WHERE tabid = ? and vtiger_field.presence in (0,2)";
            $params = array($tabid);
        } else {
            $profileList = getCurrentUserProfileList();
            $query = "SELECT DISTINCT vtiger_field.fieldname\n\t\t\t\tFROM vtiger_field\n\t\t\t\tINNER JOIN vtiger_profile2field\n\t\t\t\t\tON vtiger_profile2field.fieldid = vtiger_field.fieldid\n\t\t\t\tINNER JOIN vtiger_def_org_field\n\t\t\t\t\tON vtiger_def_org_field.fieldid = vtiger_field.fieldid\n\t\t\t\tWHERE vtiger_field.tabid = ?\n\t\t\t\tAND vtiger_profile2field.visible = 0\n\t\t\t\tAND vtiger_def_org_field.visible = 0\n\t\t\t\tAND vtiger_profile2field.profileid IN (" . generateQuestionMarks($profileList) . ")\n\t\t\t\tAND vtiger_field.fieldname IN (" . generateQuestionMarks($field_list) . ") and vtiger_field.presence in (0,2)";
            $params = array($tabid, $profileList, $field_list);
        }
        $result = $adb->pquery($query, $params);
        for ($k = 0; $k < $adb->num_rows($result); $k++) {
            $field[] = $adb->query_result($result, $k, "fieldname");
        }
    }
    //constructing the uitype and columnname array
    $ui_col_array = array();
    $query = "SELECT uitype, columnname, fieldname\n\t\tFROM vtiger_field\n\t\tWHERE tabid=?\n\t\tAND fieldname IN (" . generateQuestionMarks($field_list) . ") and vtiger_field.presence in (0,2)";
    $result = $adb->pquery($query, array($tabid, $field_list));
    $num_rows = $adb->num_rows($result);
    for ($i = 0; $i < $num_rows; $i++) {
        $tempArr = array();
        $uitype = $adb->query_result($result, $i, 'uitype');
        $columnname = $adb->query_result($result, $i, 'columnname');
        $field_name = $adb->query_result($result, $i, 'fieldname');
        $tempArr[$uitype] = $columnname;
        $ui_col_array[$field_name] = $tempArr;
    }
    if ($navigation_array['end_val'] > 0) {
        for ($i = 1; $i <= $noofrows; $i++) {
            //Getting the entityid
            if ($module != 'Users') {
                $entity_id = $adb->query_result($list_result, $i - 1, "crmid");
            } else {
                $entity_id = $adb->query_result($list_result, $i - 1, "id");
            }
            $list_header = array();
            foreach ($focus->search_fields as $name => $tableinfo) {
                $fieldname = $focus->search_fields_name[$name];
                if ($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0 || in_array($fieldname, $field) || $module == 'Users') {
                    if ($fieldname == '') {
                        $table_name = '';
                        $column_name = '';
                        foreach ($tableinfo as $tablename => $colname) {
                            $table_name = $tablename;
                            $column_name = $colname;
                        }
                        $value = $adb->query_result($list_result, $i - 1, $colname);
                    } else {
                        if (($module == 'Calls' || $module == 'Tasks' || $module == 'Meetings' || $module == 'Emails') && ($name == 'Related to' || $name == 'Contact Name' || $name == 'Vendor Name')) {
                            if ($name == 'Related to') {
                                $value = getRelatedTo($module, $list_result, $i - 1);
                            }
                            if ($name == 'Contact Name') {
                                $contact_id = $adb->query_result($list_result, $i - 1, "contactid");
                                $contact_name = getFullNameFromQResult($list_result, $i - 1, "Contacts");
                                $value = "";
                                if ($contact_name != "" && $contact_id != 'NULL') {
                                    $value = "<a href='index.php?module=Contacts&action=DetailView&record=" . $contact_id . "'>" . $contact_name . "</a>";
                                }
                            }
                        } elseif (($module == 'Faq' || $module == 'Documents') && $name == 'Related to') {
                            $value = getRelatedToEntity($module, $list_result, $i - 1);
                        } elseif ($name == 'Account Name' && ($module == 'Potentials' || $module == 'SalesOrder' || $module == 'Quotes' || $module == 'Invoice')) {
                            $account_id = $adb->query_result($list_result, $i - 1, "accountid");
                            $account_name = getAccountName($account_id);
                            $value = textlength_check($account_name);
                        } elseif ($name == 'Quote Name' && $module == 'SalesOrder') {
                            $quote_id = $adb->query_result($list_result, $i - 1, "quoteid");
                            $quotename = getQuoteName($quote_id);
                            $value = textlength_check($quotename);
                        } elseif ($name == 'Account Name' && $module == 'Contacts') {
                            $account_id = $adb->query_result($list_result, $i - 1, "accountid");
                            $account_name = getAccountName($account_id);
                            $value = textlength_check($account_name);
                        } elseif (isset($focus->popup_fields) && in_array($fieldname, $focus->popup_fields)) {
                            global $default_charset;
                            $forfield = isset($_REQUEST['forfield']) ? vtlib_purify($_REQUEST['forfield']) : '';
                            $forfield = htmlspecialchars($forfield, ENT_QUOTES, $default_charset);
                            $forform = isset($_REQUEST['form']) ? vtlib_purify($_REQUEST['form']) : '';
                            $forform = htmlspecialchars($forform, ENT_QUOTES, $default_charset);
                            $list_result_count = $i - 1;
                            $value = getValue($ui_col_array, $list_result, $fieldname, $focus, $module, $entity_id, $list_result_count, "search", $focus->popup_type);
                            if (isset($forfield) && $forfield != '' && $focus->popup_type != 'detailview') {
                                $value1 = strip_tags($value);
                                $value = htmlspecialchars(addslashes(html_entity_decode(strip_tags($value), ENT_QUOTES, $default_charset)), ENT_QUOTES, $default_charset);
                                // Remove any previous html conversion
                                $value = str_replace(array("\r", "\n"), '', $value);
                                $count = counterValue();
                                if (property_exists($focus, 'popup_function') and !empty($focus->popup_function)) {
                                    $value = "<a href='javascript:void(0);' onclick='return " . $focus->popup_function . "({$entity_id}, \"{$value}\", \"{$forfield}\"" . (empty($forform) ? '' : ',"' . $forform . '"') . ")' id ={$count} >{$value1}</a>";
                                } else {
                                    $value = "<a href='javascript:if (document.getElementById(\"closewindow\").value==\"true\") {window.close();}' onclick='return vtlib_setvalue_from_popup({$entity_id}, \"{$value}\", \"{$forfield}\"" . (empty($forform) ? '' : ',"' . $forform . '"') . ")' id ={$count} >{$value1}</a>";
                                }
                            }
                        } else {
                            $list_result_count = $i - 1;
                            $value = getValue($ui_col_array, $list_result, $fieldname, $focus, $module, $entity_id, $list_result_count, "search", $focus->popup_type, $form);
                        }
                    }
                    $list_header[] = $value;
                }
            }
            if ($module == 'Products' && ($focus->popup_type == 'inventory_prod' || $focus->popup_type == 'inventory_prod_po')) {
                global $default_charset;
                require 'user_privileges/user_privileges_' . $current_user->id . '.php';
                $row_id = $_REQUEST['curr_row'];
                //To get all the tax types and values and pass it to product details
                $tax_str = '';
                $tax_details = getAllTaxes();
                for ($tax_count = 0; $tax_count < count($tax_details); $tax_count++) {
                    $tax_str .= $tax_details[$tax_count]['taxname'] . '=' . $tax_details[$tax_count]['percentage'] . ',';
                }
                $tax_str = trim($tax_str, ',');
                $rate = $user_info['conv_rate'];
                if (getFieldVisibilityPermission($module, $current_user->id, 'unit_price') == '0') {
                    $unitprice = $adb->query_result($list_result, $list_result_count, 'unit_price');
                    if ($_REQUEST['currencyid'] != null) {
                        $prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id));
                        $unitprice = $prod_prices[$entity_id];
                    }
                } else {
                    $unitprice = '';
                }
                $sub_products = '';
                $sub_prod = '';
                $sub_prod_query = $adb->pquery("SELECT vtiger_products.productid,vtiger_products.productname from vtiger_products INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_products.productid INNER JOIN vtiger_seproductsrel on vtiger_seproductsrel.crmid=vtiger_products.productid WHERE vtiger_seproductsrel.productid=? and vtiger_seproductsrel.setype='Products'", array($entity_id));
                for ($k = 0; $k < $adb->num_rows($sub_prod_query); $k++) {
                    //$sub_prod=array();
                    $id = $adb->query_result($sub_prod_query, $k, "productid");
                    $str_sep = '';
                    if ($k > 0) {
                        $str_sep = ":";
                    }
                    $sub_products .= $str_sep . $id;
                    $sub_prod .= $str_sep . " - " . $adb->query_result($sub_prod_query, $k, "productname");
                }
                $sub_det = $sub_products . "::" . str_replace(":", "<br>", $sub_prod);
                $qty_stock = $adb->query_result($list_result, $list_result_count, 'qtyinstock');
                $slashes_temp_val = popup_from_html(getProductName($entity_id));
                $slashes_temp_val = htmlspecialchars($slashes_temp_val, ENT_QUOTES, $default_charset);
                $description = $adb->query_result($list_result, $list_result_count, 'description');
                $slashes_desc = htmlspecialchars($description, ENT_QUOTES, $default_charset);
                $sub_products_link = '<a href="index.php?module=Products&action=Popup&html=Popup_picker&return_module=' . vtlib_purify($_REQUEST['return_module']) . '&record_id=' . vtlib_purify($entity_id) . '&form=HelpDeskEditView&select=enable&popuptype=' . $focus->popup_type . '&curr_row=' . vtlib_purify($row_id) . '&currencyid=' . vtlib_purify($_REQUEST['currencyid']) . '" > ' . getTranslatedString('Sub Products') . '</a>';
                $SubProductBeParent = GlobalVariable::getVariable('Product_Permit_Subproduct_Be_Parent', 'no');
                if (!isset($_REQUEST['record_id']) || $SubProductBeParent == 'yes') {
                    $sub_products_query = $adb->pquery("SELECT * from vtiger_seproductsrel WHERE productid=? AND setype='Products'", array($entity_id));
                    if ($adb->num_rows($sub_products_query) > 0) {
                        $list_header[] = $sub_products_link;
                    } else {
                        $list_header[] = $app_strings['LBL_NO_SUB_PRODUCTS'];
                    }
                }
            }
            if ($module == 'Services' && $focus->popup_type == 'inventory_service') {
                global $default_charset;
                require 'user_privileges/user_privileges_' . $current_user->id . '.php';
                $row_id = $_REQUEST['curr_row'];
                //To get all the tax types and values and pass it to product details
                $tax_str = '';
                $tax_details = getAllTaxes();
                for ($tax_count = 0; $tax_count < count($tax_details); $tax_count++) {
                    $tax_str .= $tax_details[$tax_count]['taxname'] . '=' . $tax_details[$tax_count]['percentage'] . ',';
                }
                $tax_str = trim($tax_str, ',');
                $rate = $user_info['conv_rate'];
                if (getFieldVisibilityPermission($module, $current_user->id, 'unit_price') == '0') {
                    $unitprice = $adb->query_result($list_result, $list_result_count, 'unit_price');
                    if ($_REQUEST['currencyid'] != null) {
                        $prod_prices = getPricesForProducts($_REQUEST['currencyid'], array($entity_id), $module);
                        $unitprice = $prod_prices[$entity_id];
                    }
                } else {
                    $unitprice = '';
                }
                $slashes_temp_val = popup_from_html($adb->query_result($list_result, $list_result_count, 'servicename'));
                $slashes_temp_val = htmlspecialchars($slashes_temp_val, ENT_QUOTES, $default_charset);
                $description = $adb->query_result($list_result, $list_result_count, 'description');
                $slashes_desc = htmlspecialchars($description, ENT_QUOTES, $default_charset);
            }
            $list_block[$entity_id] = $list_header;
        }
    }
    $list = $list_block;
    $log->debug("Exiting getSearchListViewEntries method ...");
    return $list;
}
Example #5
0
/**
 * This function is used to set the Object values from the REQUEST values.
 * @param  object reference $focus - reference of the object
 */
function setObjectValuesFromRequest($focus)
{
    global $log;
    $moduleName = get_class($focus);
    $log->debug("Entering setObjectValuesFromRequest({$moduleName}) method ...");
    if (isset($_REQUEST['record'])) {
        $focus->id = $_REQUEST['record'];
    }
    if (isset($_REQUEST['mode'])) {
        $focus->mode = $_REQUEST['mode'];
    }
    foreach ($focus->column_fields as $fieldname => $val) {
        if (isset($_REQUEST[$fieldname])) {
            if (is_array($_REQUEST[$fieldname])) {
                $value = $_REQUEST[$fieldname];
            } else {
                $value = trim($_REQUEST[$fieldname]);
            }
            $focus->column_fields[$fieldname] = $value;
        } elseif (isset($_REQUEST[$fieldname . '_hidden'])) {
            $value = trim($_REQUEST[$fieldname . '_hidden']);
            $focus->column_fields[$fieldname] = $value;
        }
    }
    $cbfrommodule = $moduleName;
    $cbfrom = CRMEntity::getInstance($cbfrommodule);
    $bmapname = $moduleName . '2' . $moduleName;
    $cbMapid = GlobalVariable::getVariable('BusinessMapping_' . $bmapname, cbMap::getMapIdByName($bmapname));
    if (!empty($_REQUEST['cbfromid'])) {
        $cbfromid = vtlib_purify($_REQUEST['cbfromid']);
        $cbfrommodule = getSalesEntityType($cbfromid);
        $bmapname = $cbfrommodule . '2' . $moduleName;
        $cbfrom = CRMEntity::getInstance($cbfrommodule);
        $cbfrom->retrieve_entity_info($cbfromid, $cbfrommodule);
        $cbMapidFromid = GlobalVariable::getVariable('BusinessMapping_' . $bmapname, cbMap::getMapIdByName($bmapname));
        if ($cbMapidFromid) {
            $cbMapid = $cbMapidFromid;
        }
    }
    if ($cbMapid) {
        $cbMap = cbMap::getMapByID($cbMapid);
        $focus->column_fields = $cbMap->Mapping($cbfrom->column_fields, $focus->column_fields);
    }
    $focus = cbEventHandler::do_filter('corebos.filter.editview.setObjectValues', $focus);
    $log->debug("Exiting setObjectValuesFromRequest method ...");
}
Example #6
0
function vtws_createEntity($recordid, $originMod, $targetMod)
{
    global $adb, $current_user, $log;
    $return = 0;
    $newEntityInfo = CRMEntity::getInstance($targetMod);
    $mapfound = false;
    foreach ($originMod as $modName) {
        if ($recordid[$modName]) {
            $oldEntityInfo = CRMEntity::getInstance($modName);
            $oldEntityInfo->retrieve_entity_info(vtws_getIdComponents($recordid[$modName])[1], $modName);
            $map_name = $modName . '2' . $targetMod;
            $cbMapid = GlobalVariable::getVariable('BusinessMapping_' . $map_name, cbMap::getMapIdByName($map_name));
            if ($cbMapid) {
                $mapfound = true;
                $cbMap = cbMap::getMapByID($cbMapid);
                $newEntityInfo->column_fields = $cbMap->Mapping($oldEntityInfo->column_fields, $newEntityInfo->column_fields);
            }
        }
    }
    if ($mapfound) {
        try {
            $webserviceObject = VtigerWebserviceObject::fromName($adb, $targetMod);
            $handlerPath = $webserviceObject->getHandlerPath();
            $handlerClass = $webserviceObject->getHandlerClass();
            require_once $handlerPath;
            $handler = new $handlerClass($webserviceObject, $current_user, $adb, $log);
            $meta = $handler->getMeta();
            $values = DataTransform::sanitizeReferences($newEntityInfo->column_fields, $meta);
            $values = DataTransform::sanitizeOwnerFields($values, $meta);
            $return = vtws_create($targetMod, $values, $current_user);
        } catch (Exception $e) {
            throw new WebServiceException(WebServiceErrorCode::$UNKNOWNOPERATION, $e->getMessage() . ' : ' . $targetMod);
        }
    }
    return $return;
}
Example #7
0
/** This function returns the vtiger_invoice object populated with the details from sales order object.
* Param $focus - Invoice object
* Param $so_focus - Sales order focus
* Param $soid - sales order id
* Return type is an object array
*/
function getConvertSoToInvoice($focus, $so_focus, $soid)
{
    global $log, $current_user;
    $log->debug("Entering getConvertSoToInvoice(" . get_class($focus) . "," . get_class($so_focus) . "," . $soid . ") method ...");
    $cbMapid = GlobalVariable::getVariable('BusinessMapping_SalesOrder2Invoice', cbMap::getMapIdByName('SalesOrder2Invoice'));
    if ($cbMapid) {
        $cbMap = cbMap::getMapByID($cbMapid);
        $focus->column_fields = $cbMap->Mapping($so_focus->column_fields, $focus->column_fields);
    } else {
        $xyz = array('bill_street', 'bill_city', 'bill_code', 'bill_pobox', 'bill_country', 'bill_state', 'ship_street', 'ship_city', 'ship_code', 'ship_pobox', 'ship_country', 'ship_state');
        for ($i = 0; $i < count($xyz); $i++) {
            if (getFieldVisibilityPermission('SalesOrder', $current_user->id, $xyz[$i]) == '0') {
                $so_focus->column_fields[$xyz[$i]] = $so_focus->column_fields[$xyz[$i]];
            } else {
                $so_focus->column_fields[$xyz[$i]] = '';
            }
        }
        $focus->column_fields['salesorder_id'] = $soid;
        $focus->column_fields['subject'] = $so_focus->column_fields['subject'];
        $focus->column_fields['customerno'] = $so_focus->column_fields['customerno'];
        $focus->column_fields['duedate'] = $so_focus->column_fields['duedate'];
        $focus->column_fields['contact_id'] = $so_focus->column_fields['contact_id'];
        //to include contact name in Invoice
        $focus->column_fields['account_id'] = $so_focus->column_fields['account_id'];
        $focus->column_fields['exciseduty'] = $so_focus->column_fields['exciseduty'];
        $focus->column_fields['salescommission'] = $so_focus->column_fields['salescommission'];
        $focus->column_fields['purchaseorder'] = $so_focus->column_fields['vtiger_purchaseorder'];
        $focus->column_fields['bill_street'] = $so_focus->column_fields['bill_street'];
        $focus->column_fields['ship_street'] = $so_focus->column_fields['ship_street'];
        $focus->column_fields['bill_city'] = $so_focus->column_fields['bill_city'];
        $focus->column_fields['ship_city'] = $so_focus->column_fields['ship_city'];
        $focus->column_fields['bill_state'] = $so_focus->column_fields['bill_state'];
        $focus->column_fields['ship_state'] = $so_focus->column_fields['ship_state'];
        $focus->column_fields['bill_code'] = $so_focus->column_fields['bill_code'];
        $focus->column_fields['ship_code'] = $so_focus->column_fields['ship_code'];
        $focus->column_fields['bill_country'] = $so_focus->column_fields['bill_country'];
        $focus->column_fields['ship_country'] = $so_focus->column_fields['ship_country'];
        $focus->column_fields['bill_pobox'] = $so_focus->column_fields['bill_pobox'];
        $focus->column_fields['ship_pobox'] = $so_focus->column_fields['ship_pobox'];
        $focus->column_fields['description'] = $so_focus->column_fields['description'];
        $focus->column_fields['terms_conditions'] = $so_focus->column_fields['terms_conditions'];
        $focus->column_fields['currency_id'] = $so_focus->column_fields['currency_id'];
        $focus->column_fields['conversion_rate'] = $so_focus->column_fields['conversion_rate'];
    }
    $log->debug("Exiting getConvertSoToInvoice method ...");
    return $focus;
}