1<?php
2/* $Id: company.class.php,v 1.45 2005/02/02 10:06:51 k-fish Exp $ */
3class Company{
4	var $templatesAreIn="";
5
6	function opMassUpdate($data){
7		global $conn;
8		if(is_array($data['cids'])){
9			foreach($data['cids'] as $cid)
10			$cids[] = (int)$cid;
11
12			// mass update groups
13			if($data['group']!==0){
14				$sql="SELECT id,owner FROM mgw_companies WHERE id IN(".implode(',',$cids).")";
15				if(!$res = $conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
16				while($row = $res->FetchRow()){
17					if((($row['owner'] == $_SESSION["MGW"]->userid) &&
18					queryRights2_bool('root_modules_contact_company_modify'))
19					|| queryRights2_bool('root_modules_contact_company_modifyothers')){
20						$sql = 'UPDATE mgw_companies SET groupid='.(int)$data['group'].' WHERE id='.$row['id'];
21						if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
22					}
23				}
24			}
25
26			// mass update action
27			if($data['action']!==0){
28				$sql="SELECT id,owner FROM mgw_companies WHERE id IN(".implode(',',$cids).")";
29				if(!$res = $conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
30
31				switch($data['action']){
32					case 'delete':
33					while($row = $res->FetchRow()){
34						if((($row['owner'] == $_SESSION["MGW"]->userid) &&
35						queryRights2_bool('root_modules_contact_company_delete'))
36						|| queryRights2_bool('root_modules_contact_company_deleteothers')){
37							$sql = 'DELETE FROM mgw_companies WHERE id='.$row['id'];
38							if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
39						}
40					}
41					break;
42					case 'private':
43					while($row = $res->FetchRow()){
44						if((($row['owner'] == $_SESSION["MGW"]->userid) &&
45						queryRights2_bool('root_modules_contact_company_modify'))
46						|| queryRights2_bool('root_modules_contact_company_modifyothers')){
47							$sql = 'UPDATE mgw_companies SET ispublic=0 WHERE id='.$row['id'];
48							if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
49						}
50					}
51					break;
52					case 'public':
53					while($row = $res->FetchRow()){
54						if((($row['owner'] == $_SESSION["MGW"]->userid) &&
55						queryRights2_bool('root_modules_contact_company_modify'))
56						|| queryRights2_bool('root_modules_contact_company_modifyothers')){
57							$sql = 'UPDATE mgw_companies SET ispublic=1 WHERE id='.$row['id'];
58							if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
59						}
60					}
61				}
62			}
63			return true;
64		}
65		return false;
66	}
67
68	function opCreate($data){
69		global $conn;
70		queryRights2('root_modules_contact_company_create');
71
72		$id = mgw_genID('mgw__seq_companies');
73		$name1 = $conn->QMagic(isset($data["name1"])?$data["name1"]:"");
74		$name2 = $conn->QMagic(isset($data["name2"])?$data["name2"]:"");
75		$street = $conn->QMagic(isset($data["street"])?$data["street"]:"");
76		$add = $conn->QMagic(isset($data["add"])?$data["add"]:"");
77		$zip = $conn->QMagic(isset($data["zip"])?$data["zip"]:"");
78		$city = $conn->QMagic(isset($data["city"])?$data["city"]:"");
79		$state = $conn->QMagic(isset($data["state"])?$data["state"]:"");
80		$country = $conn->QMagic(isset($data["country"])?$data["country"]:"");
81		$phone = $conn->QMagic(isset($data["phone"])?$data["phone"]:"");
82		$fax = $conn->QMagic(isset($data["fax"])?$data["fax"]:"");
83		$url = $conn->QMagic(isset($data["url"])?$data["url"]:"");
84		$email = $conn->QMagic(isset($data["email"])?$data["email"]:"");
85		$bank1 = $conn->QMagic(isset($data["bank1"])?$data["bank1"]:"");
86		$bank2 = $conn->QMagic(isset($data["bank2"])?$data["bank2"]:"");
87		$taxnr = $conn->QMagic(isset($data["taxnr"])?$data["taxnr"]:"");
88		$taxpct = isset($data["taxpct"])?(int)$data["taxpct"]:21;
89		$note = $conn->QMagic(isset($data["note"])?$data["note"]:"");
90		$groupid = isset($data["_group"])?(int) $data["_group"]:0;
91		$public = isset($data["public"])?(int) $data["public"]:0;
92
93		$sql="INSERT INTO mgw_companies (id, name1, name2, street, additional, zip, city, state, countrycode, telephone, fax, url, email, bank1, bank2, taxnr, taxpct, note, groupid, ispublic, owner,  lu_user, lu_date) VALUES ($id, $name1, $name2, $street, $add, $zip, $city, $state, $country, $phone, $fax, $url, $email, $bank1, $bank2, $taxnr, $taxpct, $note, $groupid, '$public', ".$_SESSION["MGW"]->userid.", ".$_SESSION["MGW"]->userid.", ". $conn->DBTimeStamp(time()). ")";
94
95		if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
96
97		return $id;
98	}
99
100	function opUpdate($data){
101		global $conn;
102
103		$id = isset($data["id"])?(int) $data["id"]:0;
104
105		$sql="SELECT owner FROM mgw_companies WHERE id=$id";
106		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
107		if($row['owner'] == $_SESSION["MGW"]->userid)
108		queryRights2('root_modules_contact_company_modify');
109		else
110		queryRights2('root_modules_contact_company_modifyothers');
111
112		$name1 = $conn->QMagic(isset($data["name1"])?$data["name1"]:"");
113		$name2 = $conn->QMagic(isset($data["name2"])?$data["name2"]:"");
114		$street = $conn->QMagic(isset($data["street"])?$data["street"]:"");
115		$add = $conn->QMagic(isset($data["add"])?$data["add"]:"");
116		$zip = $conn->QMagic(isset($data["zip"])?$data["zip"]:"");
117		$city = $conn->QMagic(isset($data["city"])?$data["city"]:"");
118		$state = $conn->QMagic(isset($data["state"])?$data["state"]:"");
119		$country = $conn->QMagic(isset($data["country"])?$data["country"]:"");
120		$phone = $conn->QMagic(isset($data["phone"])?$data["phone"]:"");
121		$fax = $conn->QMagic(isset($data["fax"])?$data["fax"]:"");
122		$url = $conn->QMagic(isset($data["url"])?$data["url"]:"");
123		$email = $conn->QMagic(isset($data["email"])?$data["email"]:"");
124		$bank1 = $conn->QMagic(isset($data["bank1"])?$data["bank1"]:"");
125		$bank2 = $conn->QMagic(isset($data["bank2"])?$data["bank2"]:"");
126		$taxnr = $conn->QMagic(isset($data["taxnr"])?$data["taxnr"]:"");
127		$taxpct = isset($data["taxpct"])?(int)$data["taxpct"]:21;
128		$note = $conn->QMagic(isset($data["note"])?$data["note"]:"");
129		$groupid = isset($data["_group"])?(int) $data["_group"]:0;
130		$public = isset($data["public"])?(int) $data["public"]:0;
131
132		$sql="UPDATE mgw_companies SET name1=$name1, name2=$name2, street=$street, additional=$add, zip=$zip, city=$city, state=$state, countrycode=$country, telephone=$phone, fax=$fax, url=$url, email=$email, bank1=$bank1, bank2=$bank2, taxnr=$taxnr, taxpct=$taxpct, note=$note,groupid = $groupid, ispublic='$public', lu_user=".$_SESSION["MGW"]->userid.", lu_date=". $conn->DBTimeStamp(time()). " WHERE (ispublic=1 or owner=".$_SESSION["MGW"]->userid.") and id=".$id;
133
134		if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
135
136		return true;
137	}
138
139	function opDelete($id){
140		global $conn;
141
142		$sql="SELECT owner FROM mgw_companies WHERE id=$id";
143		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
144		if($row['owner'] == $_SESSION["MGW"]->userid)
145		queryRights2('root_modules_contact_company_delete');
146		else
147		queryRights2('root_modules_contact_company_deleteothers');
148
149		$sql = "DELETE FROM mgw_companies WHERE (ispublic=1 or owner=".$_SESSION["MGW"]->userid.") and id=".(int)$id;
150		if(!$conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
151
152		return true;
153	}
154
155	function viewDelete($id){
156		global $smarty, $conn, $appconf;
157
158		$sql="SELECT owner FROM mgw_companies WHERE id=$id";
159		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
160		if($row['owner'] == $_SESSION["MGW"]->userid)
161		queryRights2('root_modules_contact_company_delete');
162		else
163		queryRights2('root_modules_contact_company_deleteothers');
164
165		$sql = "SELECT * FROM mgw_companies WHERE (ispublic=1 or owner=".$_SESSION["MGW"]->userid.") and id=".(int)$id;
166		if(!$res = $conn->Execute($sql)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
167		$row = $res->FetchRow();
168
169		$smarty->assign("menuid", "1");
170		$smarty->assign("itemid", $id);
171		$smarty->assign("parms", str_replace("delete","list",$_SERVER["QUERY_STRING"]));
172		$smarty->assign("reallydeleteitem", Lang::getLanguageString("reallydelcompany"));
173		$smarty->assign("deleteheader", Lang::getLanguageString("deletecompanyh"));
174		$smarty->assign("deletedetail1", $row["name1"]);
175		$smarty->assign("deletedetail2", $row["name2"]);
176		$smarty->assign("deletedetail3", $row["city"]);
177		$smarty->assign("suclass", "submit");
178
179		return true;
180	}
181
182	function viewNewForm(){
183		global $smarty;
184		include(INCLUDEPATH . "mSelectBox.class.php");
185		queryRights2('root_modules_contact_company_create');
186
187		$smarty->assign("countrysb", createCountrySB("country"));
188
189		$sb5 = new mSelectBox("_group");
190		$sb5->setContentType("sql");
191		$sb5->setSQLvalue("id");
192		$sb5->setSQLcontent("name_key");
193		$sb5->addContent("SELECT id, name_key FROM mgw_contacts_groups ORDER BY name_key");
194		$sb5->addOption("0", Lang::getLanguageString("chosegrouptext"), "pre");
195		$smarty->assign("groupsb", $sb5->draw());
196
197		$smarty->assign("pubcheckyes", "checked");
198		$smarty->assign("pubcheckno", "");
199		$smarty->assign("suname", "create");
200		$smarty->assign("suvalue", Lang::getLanguageString("create"));
201		$smarty->assign("suclass", "submit");
202		$smarty->assign("mode", "new");
203		$smarty->assign("contentheader", Lang::getLanguageString("createnewcompany"));
204
205		return true;
206	}
207
208	function viewEditForm($id){
209		global $conn, $smarty;
210		include(INCLUDEPATH . "mSelectBox.class.php");
211		$sql="SELECT owner FROM mgw_companies WHERE id=".(int)$id;
212		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
213		if($row['owner'] == $_SESSION["MGW"]->userid)
214		queryRights2('root_modules_contact_company_modify');
215		else
216		queryRights2('root_modules_contact_company_modifyothers');
217
218		$sql = "SELECT * FROM mgw_companies WHERE (ispublic=1 or owner=".$_SESSION["MGW"]->userid.") and id=".(int)$id;
219		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
220
221		$smarty->assign("countrysb", createCountrySB("country", $row["countrycode"]));
222
223		$sb5 = new mSelectBox("_group");
224		$sb5->setContentType("sql");
225		$sb5->setSQLvalue("id");
226		$sb5->setSQLcontent("name_key");
227		$sb5->addContent("SELECT id, name_key FROM mgw_contacts_groups ORDER BY name_key");
228		$sb5->addOption("0", Lang::getLanguageString("chosegrouptext"), "pre");
229		$smarty->assign("groupsb", $sb5->draw($row["groupid"]));
230
231		if($row["ispublic"] == 1){
232			$smarty->assign("pubcheckyes", "checked");
233			$smarty->assign("pubcheckno", "");
234		}
235		else{
236			$smarty->assign("pubcheckyes", "");
237			$smarty->assign("pubcheckno", "checked");
238		}
239
240		$smarty->assign("td", $row);
241		$smarty->assign("myurl", $row["url"]);
242		$smarty->assign("id",$id);
243		$smarty->assign("npage",isset($_GET["npage"])?$_GET["npage"]:"");
244		$smarty->assign("suname","edit");
245		$smarty->assign("suvalue",Lang::getLanguageString("save"));
246		$smarty->assign("suclass","submit");
247		$smarty->assign("contentheader", Lang::getLanguageString("editcompany").": ".$row["name1"]);
248
249		return true;
250	}
251
252	function viewDetails($id){
253		global $conn, $smarty;
254		include(INCLUDEPATH . "mSelectBox.class.php");
255		$icons = getIconStrings();
256		$space = $icons["space"];
257
258		$sql = "SELECT a.*, b.name AS country FROM mgw_companies a LEFT JOIN mgw_countries b ON a.countrycode = b.code WHERE (a.ispublic=1 or a.owner=".$_SESSION["MGW"]->userid.") and a.id=".(int)$id;
259		if(($row = $conn->GetRow($sql))===false) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
260
261		$row["email"] = linkEmail($row["email"]);
262
263		//display company id?
264		$smarty->assign('show_company_id',$_SESSION["MGW"]->settings["show_company_id"]);
265		$smarty->assign("searchterm",isset($_GET["searchterm"])?$_GET["searchterm"]:"");
266		$smarty->assign("searchtype",isset($_GET["searchtype"])?$_GET["searchtype"]:"");
267		$smarty->assign("td", $row);
268
269		// modify only for user with appropriate rights
270		if((queryRights2_bool("root_modules_contact_company_modify") && $row["owner"] == $_SESSION["MGW"]->userid)
271		OR (queryRights2_bool("root_modules_contact_company_modifyothers") && $row["owner"] <> $_SESSION["MGW"]->userid))
272		$smarty->assign("maymod","yes");
273		else
274		$smarty->assign("maymod","no");
275
276		// delete only for user with appropriate rights
277		if((queryRights2_bool("root_modules_contact_company_delete") && $row["owner"] == $_SESSION["MGW"]->userid)
278		OR (queryRights2_bool("root_modules_contact_company_deleteothers") && $row["owner"] <> $_SESSION["MGW"]->userid))
279		$smarty->assign("maydel","yes");
280		else
281		$smarty->assign("maydel","no");
282
283		// this is a rather horrible hack; better solution would be an OO approach where this information is pulled from a class
284		$urls2 = array();
285		$companyid = $_REQUEST["id"];
286		$sql2 = "SELECT * FROM mgw_contacts WHERE companyid=$companyid"; // I really do hope this is ADOdb compatible
287		if(!$res2 = $conn->Execute($sql2)) exit(showSQLerror($sql2, $conn->ErrorMsg(), __LINE__, __FILE__));
288		while ($row2 = $res2->FetchRow()){
289			$smarty->append("td2", $row2);
290			$contactid = $row2["id"];
291			$detlink = "<a href=\"../contact/?mod=contact&amp;obj=person&amp;view=details&amp;id=$contactid&amp;".SID."\" CLASS=\"edit\">".$icons["details"]."</a>";
292			$space = $icons["space"];
293			$urls2[] = "<nobr>" . $detlink . "</nobr>";
294		};
295		$smarty->assign('urls2', $urls2);
296
297		$urls3 = array();
298		if (isset($_SESSION['MGW']->modules["projects"])) {
299			$companyid = $_REQUEST["id"];
300			$sql3 = "SELECT * FROM mgw_projects WHERE companyid=$companyid";
301			if(!$res3 = $conn->Execute($sql3)) exit(showSQLerror($sql3, $conn->ErrorMsg(), __LINE__, __FILE__));
302			while ($row3 = $res3->FetchRow()){
303				$row3['targetdate'] = $conn->UnixDate($row3['targetdate']);
304				$smarty->append("td3", $row3);
305				$projleaderid = $row3["projleaderid"];
306				$sql4 = "SELECT concat(lastname, '\, ', firstname) as name FROM mgw_users WHERE id=$projleaderid";
307				if(!$res4 = $conn->Execute($sql4)) exit(showSQLerror($sql4, $conn->ErrorMsg(), __LINE__, __FILE__));
308				$smarty->append("td4", $res4->FetchRow());
309				$projectid = $row3["project_id"];
310				$detlink = "<a href=\"../projects/?mod=projects&amp;obj=project&amp;view=details&amp;pid=$projectid&amp;".SID."\" CLASS=\"edit\">".$icons["details"]."</a>";
311				$space = $icons["space"];
312				$urls3[] = "<nobr>" . $detlink . "</nobr>";
313			};
314		}
315		$smarty->assign('urls3', $urls3);
316
317		$smarty->assign("npage",isset($_GET["npage"])?$_GET["npage"]:"");
318		$smarty->assign("suclass","submit");
319
320		return true;
321	}
322
323	function viewList(){
324		global $conn, $smarty, $appconf;
325		include(INCLUDEPATH . "mSelectBox.class.php");
326
327		if(isset($_GET["sort"])){
328			if($_GET["sort"] == $_SESSION["contact"]["company"]["prevorderby"]){
329				$_SESSION["contact"]["company"]["sort_order"] = ($_SESSION["contact"]["company"]["sort_order"] == "DESC") ? "ASC" : "DESC";
330			}
331			else{
332				$_SESSION["contact"]["company"]["sort_order"] = 'ASC';
333			}
334			$_SESSION["contact"]["company"]["prevorderby"] = $_GET["sort"];
335			$_SESSION["contact"]["company"]["sort_by"] = $_GET["sort"];
336		}
337		elseif(!isset($_SESSION["contact"]["company"]["sort_by"])){
338			$_SESSION["contact"]["company"]["sort_by"] = 'name1';
339			$_SESSION["contact"]["company"]["sort_order"] = 'ASC';
340		}
341
342		// if user wants icons, assign icons if not -> not
343		$icons = getIconStrings();
344		$smarty->assign("prevsym", $icons["prev"]);
345		$smarty->assign("nextsym", $icons["next"]);
346		$icons["contacts"] = $_SESSION["MGW"]->settings["iconmode"] ? "<img src=\"".$appconf["imgpath"]."/contacts_".$_SESSION["MGW"]->settings["iconid"].".gif\" border=\"0\" alt=\"".Lang::getLanguageString("contacts")."\" title=\"".Lang::getLanguageString("contacts")."\" />" : Lang::getLanguageString("contacts");
347
348		$searchtype = '';
349		$searchterm = '';
350		$list = '';
351		if(isset($_GET["list"]) and $_GET["list"] != "") { // ALPHABET SEARCH ACTIVE
352		$qsearchterm = '(name1 LIKE '.$conn->QMagic($_GET["list"]."%").' OR name1 LIKE '.$conn->QMagic(strtolower($_GET["list"])."%").')';
353		$sql = "SELECT * FROM mgw_companies WHERE ".$qsearchterm." AND (owner=".$_SESSION['MGW']->userid." OR ispublic=1) ORDER BY ".$_SESSION["contact"]["company"]["sort_by"].' '.$_SESSION["contact"]["company"]["sort_order"];
354		$smarty->assign("list",$_GET["list"]);
355		$list = $_GET["list"];
356		}
357		elseif((isset($_POST["qsearch"]) and $_POST["qsearch"] != "") || (isset($_GET["searchtype"]) and $_GET["searchtype"] == "quick")){ // QUICK SEARCH ACTIVE
358		$searchterm = ($_SERVER["REQUEST_METHOD"] == "POST") ? (isset($_POST["searchterm"])?$_POST["searchterm"]:"") : (isset($_GET["searchterm"])?$_GET["searchterm"]:"");
359
360		$searchterm2 = $conn->QMagic("%".$searchterm."%");
361		$sql = "SELECT * FROM mgw_companies a WHERE ";
362		if (!empty($searchterm)) {
363			$qsearchterm2 = $conn->QMagic('%'.$searchterm.'%');
364			for($i=0;$i<count($_SESSION["MGW"]->settings["quicksearchmethod"]);$i++) {
365				if (!strstr($_SESSION["MGW"]->settings["quicksearchmethod"][$i],"mgw_contacts")) {
366					if(!empty($searchsql)) $searchsql .= ' OR ';
367					$searchsql .= "(UPPER(".$_SESSION["MGW"]->settings["quicksearchmethod"][$i] . ") LIKE UPPER($qsearchterm2) AND a.ispublic = 1) OR ".
368					"(UPPER(".$_SESSION["MGW"]->settings["quicksearchmethod"][$i] . ") LIKE UPPER($qsearchterm2) AND a.ispublic = 0 AND a.owner=".$_SESSION["MGW"]->userid.")";
369				}
370			}
371		}
372		$sql .= $searchsql." AND (owner=".$_SESSION['MGW']->userid." OR ispublic=1) ORDER BY ".$_SESSION["contact"]["company"]["sort_by"].' '.$_SESSION["contact"]["company"]["sort_order"];
373		$sql = str_replace("mgw_companies.","a.",$sql);
374		// ----------
375
376		$smarty->assign("searchterm",$searchterm);
377		$smarty->assign("searchtype","quick");
378		$searchtype = "quick";
379		}
380		elseif((isset($_POST["groupsearch"]) and $_POST["groupsearch"] != "") || (isset($_GET["searchtype"]) and $_GET["searchtype"] == "group")){ // GROUP SEARCH ACTIVE
381		$searchterm = ($_SERVER["REQUEST_METHOD"] == "POST") ? (isset($_POST["_group"])?(int)$_POST["_group"]:"") : (isset($_GET["searchterm"])?(int)$_GET["searchterm"]:"");
382		if($searchterm != "*") $sql = "SELECT * FROM mgw_companies WHERE groupid=".$searchterm." AND (owner=".$_SESSION['MGW']->userid." OR ispublic=1) ORDER BY ".$_SESSION["contact"]["company"]["sort_by"].' '.$_SESSION["contact"]["company"]["sort_order"];
383		else $sql = "SELECT * FROM mgw_companies WHERE owner=".$_SESSION['MGW']->userid." OR ispublic=1 ORDER BY ".$_SESSION["contact"]["company"]["sort_by"].' '.$_SESSION["contact"]["company"]["sort_order"];
384		$smarty->assign("searchterm",$searchterm);
385		$smarty->assign("searchtype","group");
386		$searchtype = "group";
387		}
388		else { // NORMAL LIST VIEW
389		$sql = "SELECT * FROM mgw_companies WHERE owner=".$_SESSION['MGW']->userid." OR ispublic=1 ORDER BY ".$_SESSION["contact"]["company"]["sort_by"].' '.$_SESSION["contact"]["company"]["sort_order"];
390		}
391
392		if (isset($_GET['npage']) || (isset($_POST['npage']) and $_POST['npage'])){
393			$curr_page = isset($_POST['npage']) ? $_POST['npage'] : $_GET['npage'];
394		} else {
395			$curr_page = 1;
396		}
397		$smarty->assign("curr_page", $curr_page);
398		if(!$res = $conn->PageExecute($sql, $_SESSION["MGW"]->settings["list_items_number"], $curr_page)) exit(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
399		if(!$res->AtFirstPage()) {
400			$smarty->assign("_prev", true);
401			$smarty->assign("ppage", $res->AbsolutePage() - 1);
402		}
403		if(!$res->AtLastPage()) {
404			$smarty->assign("_next", true);
405			$smarty->assign("npage", $res->AbsolutePage() + 1);
406		}
407
408		while($row = $res->FetchRow()) {
409			// build action URLs
410			$aqlink = "";
411			if (queryRights2_bool("root_modules_contact_crm_create")) {
412				$aqlink = "<a href=\"index.php?mod=contact&amp;obj=crm&amp;view=directnewform&amp;".SID."\">".Lang::getLanguageString('call')."</a>";
413			}
414			$detlink = "<a href=\"index.php?mod=contact&amp;obj=company&amp;view=details&amp;id=". $row["id"] ."&amp;searchtype=$searchtype&amp;searchterm=$searchterm&amp;npage=$curr_page&amp;".SID."\" class=\"edit\">".$icons["details"]."</a>";
415			$contactslink = "<a href=\"index.php?mod=contact&amp;obj=person&amp;view=list&amp;compid=". $row["id"] ."&amp;".SID."\" class=\"edit\">".$icons["contacts"]."</a>";
416
417			// modify only for user with appropriate rights
418			if((queryRights2_bool("root_modules_contact_company_modify") && $row["owner"] == $_SESSION["MGW"]->userid)
419			OR (queryRights2_bool("root_modules_contact_company_modifyothers") && $row["owner"] <> $_SESSION["MGW"]->userid)) {
420				$editlink = "<a href=\"index.php?mod=contact&amp;obj=company&amp;view=editform&amp;id=". $row["id"] ."&amp;npage=$curr_page&amp;list=$list&amp;searchtype=$searchtype&amp;searchterm=$searchterm&amp;npage=$curr_page&amp;".SID."\" class=\"edit\">".$icons["edit"]."</a>";
421			}
422			else {
423				$editlink = "";
424			}
425
426			// delete only for user with appropriate rights
427			if((queryRights2_bool("root_modules_contact_company_delete") && $row["owner"] == $_SESSION["MGW"]->userid)
428			OR (queryRights2_bool("root_modules_contact_company_deleteothers") && $row["owner"] <> $_SESSION["MGW"]->userid)) {
429				$dellink = "<a href=\"index.php?mod=contact&amp;obj=company&amp;view=delete&amp;id=". $row["id"]. "&amp;searchtype=$searchtype&amp;searchterm=$searchterm&amp;npage=$curr_page&amp;".SID."\" class=\"delete\">".$icons["delete"]."</a>";
430			}
431			else {
432				$dellink = "";
433			}
434
435			if($row['url'] != '' && !stristr($row["url"], 'http'))
436			$row['url'] = 'http://'.$row['url'];
437			//$row["url"] = ($row["url"] != "") ? "<a href=\"".$row["url"]."\" target=\"_blank\">".$row["url"]."</a>" : "";
438			$row['action'] = $detlink ."<br />". $editlink ."<br />". $dellink ."<br />".$aqlink."<br />". $contactslink ."<br />"
439			."<hr />". linkEmail2($row["email"]);
440
441			if($row["ispublic"]==1) $row['pimg'] = "&nbsp;";
442			else $row['pimg'] = $icons['private'];
443
444			$smarty->append("td",$row);
445		}
446
447		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=ispublic";
448		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=name1";
449		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=email";
450		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=street";
451		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=zip";
452		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=city";
453		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=url";
454		$columns[]['url'] = "index.php?mod=contact&amp;obj=company&amp;view=list&amp;sort=id";
455		$smarty->assign("columns", $columns);
456
457		$smarty->assign('groups', $conn->GetAssoc("SELECT id, name_key FROM mgw_contacts_groups ORDER by name_key"));
458		$smarty->assign("actgroup", (isset($_POST["_group"])?$_POST["_group"]:""));
459		$smarty->assign("hascreaterights", queryRights2_bool("root_modules_contact_company_create"));
460		$smarty->assign('at', alphabet_table("mod=contact&amp;obj=company&amp;view=list"));
461
462		if($_SESSION["MGW"]->settings["quicksearchmethod"]=="") $qsbool = false; else $qsbool = true;
463		$smarty->assign("qsearchon", $qsbool);
464
465		return true;
466	}
467
468	function display($template) {
469		global $smarty,$appconf,$myEnv;
470		if (strstr($template,$appconf["gentemplates"])) {
471
472		} elseif (!empty($this->templatesAreIn)) {
473			$smarty->template_dir=ROOTPATH ."/modules/" . $this->templatesAreIn . "/templates/" .$appconf["theme"] ."/" . $myEnv["output"];
474		}
475		$smarty->display($template);
476	}
477
478
479
480}
481?>
482