晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/www/crm/modules/Settings/Potentials/models/ |
Upload File : |
<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
class Settings_Potentials_Mapping_Model extends Settings_Leads_Mapping_Model {
var $name = 'Potentials';
/**
* Function to get headers for detail view
* @return <Array> headers list
*/
public function getHeaders() {
return array('Potentials' => 'Potentials', 'Type' => 'Type', 'Projects' => 'Projects');
}
/**
* Function to get list of detail view link models
* @return <Array> list of detail view link models <Vtiger_Link_Model>
*/
public function getDetailViewLinks() {
return array(Vtiger_Link_Model::getInstanceFromValues(array(
'linktype' => 'DETAILVIEW',
'linklabel' => 'LBL_EDIT',
'linkurl' => 'javascript:Settings_PotentialMapping_Js.triggerEdit("'. $this->getEditViewUrl() .'")',
'linkicon' => ''
)));
}
/**
* Function to get list of mapping link models
* @return <Array> list of mapping link models <Vtiger_Link_Model>
*/
public function getMappingLinks() {
return array(Vtiger_Link_Model::getInstanceFromValues(array(
'linktype' => 'DETAILVIEW',
'linklabel' => 'LBL_DELETE',
'linkurl' => 'javascript:Settings_PotentialMapping_Js.triggerDelete(event,"'. $this->getMappingDeleteUrl() .'")',
'linkicon' => ''
)));
}
/**
* Function to get mapping details
* @return <Array> list of mapping details
*/
public function getMapping($editable = false) {
if (!$this->mapping) {
$db = PearDatabase::getInstance();
$query = 'SELECT * FROM vtiger_convertpotentialmapping';
if ($editable) {
$query .= ' WHERE editable = 1';
}
$result = $db->pquery($query, array());
$numOfRows = $db->num_rows($result);
$mapping = array();
for ($i=0; $i<$numOfRows; $i++) {
$rowData = $db->query_result_rowdata($result, $i);
$mapping[$rowData['cfmid']] = $rowData;
}
$finalMapping = $fieldIdsList = array();
foreach ($mapping as $mappingDetails) {
array_push($fieldIdsList, $mappingDetails['potentialfid'], $mappingDetails['projectfid']);
}
$fieldLabelsList = array();
if(!empty($fieldIdsList)){
$fieldLabelsList = $this->getFieldsInfo(array_unique($fieldIdsList));
}
foreach ($mapping as $mappingId => $mappingDetails) {
$finalMapping[$mappingId] = array(
'editable' => $mappingDetails['editable'],
'Potentials' => $fieldLabelsList[$mappingDetails['potentialfid']],
'Project' => $fieldLabelsList[$mappingDetails['projectfid']]
);
}
$this->mapping = $finalMapping;
}
return $this->mapping;
}
/**
* Function to save the mapping info
* @param <Array> $mapping info
*/
public function save($mapping) {
$db = PearDatabase::getInstance();
$deleteMappingsList = $updateMappingsList = $createMappingsList = array();
foreach ($mapping as $mappingDetails) {
$mappingId = $mappingDetails['mappingId'];
if ($mappingDetails['potential']) {
if ($mappingId) {
if ((array_key_exists('deletable', $mappingDetails)) || (!$mappingDetails['project'])) {
$deleteMappingsList[] = $mappingId;
} else {
if ($mappingDetails['project']) {
$updateMappingsList[] = $mappingDetails;
}
}
} else {
if ($mappingDetails['project']) {
$createMappingsList[] = $mappingDetails;
}
}
}
}
if ($deleteMappingsList) {
$db->pquery('DELETE FROM vtiger_convertpotentialmapping WHERE editable = 1 AND cfmid IN ('. generateQuestionMarks($deleteMappingsList) .')', $deleteMappingsList);
}
if ($createMappingsList) {
$insertQuery = 'INSERT INTO vtiger_convertpotentialmapping(potentialfid, projectfid) VALUES ';
$count = count($createMappingsList);
for ($i=0; $i<$count; $i++) {
$mappingDetails = $createMappingsList[$i];
$insertQuery .= '('. $mappingDetails['potential'] .', '. $mappingDetails['project'] .')';
if ($i !== $count-1) {
$insertQuery .= ', ';
}
}
$db->pquery($insertQuery, array());
}
if ($updateMappingsList) {
$potentialQuery = ' SET potentialfid = CASE ';
$projectQuery = ' projectfid = CASE ';
foreach ($updateMappingsList as $mappingDetails) {
$mappingId = $mappingDetails['mappingId'];
$potentialQuery .= " WHEN cfmid = $mappingId THEN ". $mappingDetails['potential'];
$projectQuery .= " WHEN cfmid = $mappingId THEN ". $mappingDetails['project'];
}
$potentialQuery .= ' ELSE potentialfid END ';
$projectQuery .= ' ELSE projectfid END ';
$db->pquery("UPDATE vtiger_convertpotentialmapping $potentialQuery, $projectQuery WHERE editable = ?", array(1));
}
}
/**
* Function to get restricted field ids list
* @return <Array> list of field ids
*/
public static function getRestrictedFieldIdsList() {
$db = PearDatabase::getInstance();
$result = $db->pquery('SELECT * FROM vtiger_convertpotentialmapping WHERE editable = ?', array(0));
$numOfRows = $db->num_rows($result);
$restrictedIdsList = array();
for ($i=0; $i<$numOfRows; $i++) {
$rowData = $db->query_result_rowdata($result, $i);
if ($rowData['projectfid']) {
$restrictedIdsList[] = $rowData['projectfid'];
}
}
return $restrictedIdsList;
}
/**
* Function to get mapping supported modules list
* @return <Array>
*/
public static function getSupportedModulesList() {
return array('Project');
}
/**
* Function to delate the mapping
* @param <Array> $mappingIdsList
*/
public static function deleteMapping($mappingIdsList) {
$db = PearDatabase::getInstance();
$db->pquery('DELETE FROM vtiger_convertpotentialmapping WHERE cfmid IN ('. generateQuestionMarks($mappingIdsList). ')', $mappingIdsList);
}
/**
* Function to get instance
* @param <Boolean> true/false
* @return <Settings_Potentials_Mapping_Model>
*/
public static function getInstance($editable = false) {
$instance = new self();
$instance->getMapping($editable);
return $instance;
}
/**
* Function to get instance
* @return <Settings_Potentials_Mapping_Model>
*/
public static function getCleanInstance() {
return new self();
}
}