partners.php 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136
  1. <?php
  2. namespace Model;
  3. class Partners extends Model {
  4. public function getPartnerek() {
  5. if ($_SESSION['structure_parent']!='') {
  6. $folders[] = $_SESSION['structure_parent'];
  7. foreach ($_SESSION['structure_childrens'] as $child) {
  8. $folders[] = $child;
  9. }
  10. $this->prepare("SELECT * FROM dr_partnerek AS part
  11. LEFT JOIN dr_partner_structure_index AS csop ON csop.psi_partner_id=part.partner_id
  12. WHERE
  13. part.partner_status<>? AND
  14. part.partner_ceg = ? AND
  15. csop.psi_status<>? AND
  16. csop.psi_ps_id IN (".implode(',',$folders).")
  17. ORDER BY part.partner_id ASC;");
  18. $this->execute('0',$_SESSION['user_company_id'],'0');
  19. $result = $this->fetchAll();
  20. return $result;
  21. }
  22. elseif ($_SESSION['group_parent']!='') {
  23. $folders[] = $_SESSION['group_parent'];
  24. foreach ($_SESSION['group_childrens'] as $child) {
  25. $folders[] = $child;
  26. }
  27. $this->prepare("SELECT * FROM dr_partnerek AS part
  28. LEFT JOIN dr_partner_csoport_index AS csop ON csop.pcsi_partner_id=part.partner_id
  29. WHERE
  30. part.partner_status<>? AND
  31. part.partner_ceg = ? AND
  32. csop.pcsi_status<>? AND
  33. csop.pcsi_pcs_id IN (".implode(',',$folders).")
  34. ORDER BY part.partner_id ASC;");
  35. $this->execute('0',$_SESSION['user_company_id'],'0');
  36. $result = $this->fetchAll();
  37. return $result;
  38. }
  39. else {
  40. //die("SELECT * FROM dr_partnerek WHERE partner_ceg = '".$_SESSION['user_company_id']."' AND partner_status <> '0' ORDER BY partner_id ASC;");
  41. $this->prepare("SELECT * FROM dr_partnerek WHERE partner_ceg = ? AND partner_status <> ? ORDER BY partner_id ASC;");
  42. $this->execute($_SESSION['user_company_id'],'0');
  43. $result = $this->fetchAll();
  44. if (sizeof($result)>0) {
  45. foreach ($result as $row) {
  46. /*if ($row['partner_customer_id']!='0') {
  47. $this->prepare("SELECT * FROM dr_customers WHERE customer_id = ?;");
  48. $this->execute($row['partner_customer_id']);
  49. $customer = $this->fetch();
  50. $row['partner_code'] = $customer['customer_code'];
  51. $row['partner_name'] = $customer['customer_name'];
  52. $row['partner_email'] = $customer['customer_email'];
  53. $row['partner_telefon'] = $customer['customer_phone'];
  54. }*/
  55. if ($_SESSION['partnergroup_notassigned']=='y') {
  56. if ($this->isNotAssigned($row['partner_id'])) {
  57. $row['partner_szcim'] = $this->getPartnerSzallitasiCim($row['partner_id']);
  58. $return[] = $row;
  59. }
  60. }
  61. elseif ($_SESSION['partnerstructure_notassigned']=='y') {
  62. if ($this->isNotAssignedStructure($row['partner_id'])) {
  63. $row['partner_szcim'] = $this->getPartnerSzallitasiCim($row['partner_id']);
  64. $return[] = $row;
  65. }
  66. }
  67. else {
  68. $row['partner_szcim'] = $this->getPartnerSzallitasiCim($row['partner_id']);
  69. $return[] = $row;
  70. }
  71. }
  72. if ($_SESSION['partnergroup_notassigned']=='y') $_SESSION['partnergroup_notassigned'] = '';
  73. if ($_SESSION['partnerstructure_notassigned']=='y') $_SESSION['partnerstructure_notassigned'] = '';
  74. return $return;
  75. }
  76. else {
  77. return false;
  78. }
  79. }
  80. }
  81. public function getTRVs($defaultList) {
  82. $this->prepare("SELECT
  83. customer_id AS partner_id,
  84. customer_code AS partner_code,
  85. customer_name AS partner_name,
  86. CONCAT(cc_irsz,' ',cc_telepules,' ',cc_kozterulet) AS partner_szcim,
  87. customer_phone AS partner_telefon,
  88. customer_email AS partner_email
  89. FROM dr_customers
  90. LEFT JOIN dr_customer_cimek ON cc_customer_id=customer_id
  91. WHERE customer_status <> ? AND cc_tipus = ? AND cc_status <> ?;");
  92. $this->execute('0','Számlázási cím','0');
  93. foreach ($this->fetchAll() as $row) {
  94. $defaultList[] = $row;
  95. }
  96. return $defaultList;
  97. }
  98. public function isNotAssigned($partner_id) {
  99. if ($partner_id!='') {
  100. $this->prepare("SELECT * FROM dr_partner_csoport_index WHERE pcsi_partner_id = ? AND pcsi_status = ?;");
  101. $this->execute($partner_id,'1');
  102. $result = $this->fetchAll();
  103. if (sizeof($result)>0) {
  104. return false;
  105. }
  106. else {
  107. return true;
  108. }
  109. }
  110. else {
  111. return true;
  112. }
  113. }
  114. public function isNotAssignedStructure($partner_id) {
  115. if ($partner_id!='') {
  116. $this->prepare("SELECT * FROM dr_partner_structure_index WHERE psi_partner_id = ? AND psi_status = ?;");
  117. $this->execute($partner_id,'1');
  118. $result = $this->fetchAll();
  119. if (sizeof($result)>0) {
  120. return false;
  121. }
  122. else {
  123. return true;
  124. }
  125. }
  126. else {
  127. return true;
  128. }
  129. }
  130. public function getPartner($partnerid) {
  131. if ($partnerid!='') {
  132. $this->prepare("SELECT * FROM dr_partnerek WHERE partner_id = ?");
  133. $this->execute($partnerid);
  134. return $this->fetch();
  135. }
  136. else {
  137. return false;
  138. }
  139. }
  140. public function savePartner($data) {
  141. if ($data['partner_id']!='') {
  142. $this->prepare("UPDATE dr_partnerek SET
  143. partner_code = ?,
  144. partner_srs = ?,
  145. partner_name = ?,
  146. partner_cegtipus = ?,
  147. partner_adoszam = ?,
  148. partner_artipus = ?,
  149. partner_fizmod = ?,
  150. partner_nyelv = ?,
  151. partner_telefon = ?,
  152. partner_email = ?,
  153. partner_felelos = ?,
  154. partner_ceg = ?,
  155. partner_szallitas = ? WHERE partner_id = ?;");
  156. if ($data['partner_felelos']=='') $data['partner_felelos'] = '0';
  157. $this->execute(
  158. $data['partner_code'],
  159. $data['partner_srs'],
  160. $data['partner_name'],
  161. $data['partner_cegtipus'],
  162. $data['partner_adoszam'],
  163. $data['partner_artipus'],
  164. $data['partner_fizmod'],
  165. $data['partner_nyelv'],
  166. $data['partner_telefon'],
  167. $data['partner_email'],
  168. $data['partner_felelos'],
  169. $data['partner_ceg'],
  170. $data['partner_szallitas'],
  171. $data['partner_id']
  172. );
  173. foreach ($data['partner_meta'] as $meta) {
  174. if ($meta!='') {
  175. $raw = explode("#",$meta);
  176. $hash = md5($data['partner_id'].'partner'.$raw[1]);
  177. if ($raw[0]!='') {
  178. $this->prepare("UPDATE dr_meta_values SET mv_value = ? WHERE mv_id = ?;");
  179. $this->execute($raw[2],$raw[0]);
  180. }
  181. else {
  182. $this->prepare("INSERT INTO dr_meta_values SET
  183. mv_meta_id = ?,
  184. mv_hash = ?,
  185. mv_value = ?,
  186. mv_createuser = ?;");
  187. $this->execute($raw[1],$hash,$raw[2],$_SESSION['admin']['user_id']);
  188. }
  189. }
  190. }
  191. return true;
  192. }
  193. else {
  194. return false;
  195. }
  196. }
  197. public function cancelPartner($data) {
  198. if ($data['partner_id']!='') {
  199. $this->prepare("DELETE FROM dr_partnerek WHERE partner_id = ?");
  200. $this->execute($data['partner_id']);
  201. return true;
  202. }
  203. else {
  204. return false;
  205. }
  206. }
  207. public function getPartnerSzallitasiCim($partnerid) {
  208. $this->prepare("SELECT CONCAT(pc_irsz,' ',pc_telepules,' ',pc_kozterulet) AS partner_szcim FROM dr_partner_cimek WHERE pc_partner_id = ? AND pc_tipus = ? AND pc_status <> ? ORDER BY pc_createdate DESC;");
  209. $this->execute($partnerid,'Számlázási cím','0');
  210. $result = $this->fetchAll();
  211. if (sizeof($result)>0) {
  212. return $result[0]['partner_szcim'];
  213. }
  214. else {
  215. return 'Nincs megadva...';
  216. }
  217. }
  218. public function getGroups() {
  219. $this->prepare("SELECT pcs_id AS id, pcs_name AS text, pcs_parent AS parent FROM dr_partner_csoportok WHERE pcs_status <> ?;");
  220. $this->execute('0');
  221. $result = $this->fetchAll();
  222. if (sizeof($result)>0) {
  223. foreach ($result as $row) {
  224. if ($row['parent']=='0') {
  225. $row['parent'] = '#';
  226. }
  227. $data[] = $row;
  228. }
  229. return $data;
  230. }
  231. else {
  232. return false;
  233. }
  234. }
  235. public function getGroup($data) {
  236. $this->prepare("SELECT * FROM dr_partner_csoportok WHERE pcs_id = ?;");
  237. $this->execute($data['id']);
  238. return $this->fetch();
  239. }
  240. public function insertGroup($data) {
  241. $this->prepare("INSERT INTO dr_partner_csoportok SET pcs_parent = ?, pcs_name = ?, pcs_createuser = ?;");
  242. $this->execute($data['parent'],$data['text'],$_SESSION['admin']['user_id']);
  243. return true;
  244. }
  245. public function updateGroup($data) {
  246. $this->prepare("UPDATE dr_partner_csoportok SET pcs_name = ? WHERE pcs_id = ?;");
  247. $this->execute($data['name'],$data['id']);
  248. return true;
  249. }
  250. public function getTreeNames($tree,$root='') {
  251. $treeView = '';
  252. foreach ($tree as $item) {
  253. if ($item=='#') $item = $root;
  254. $this->prepare("SELECT * FROM dr_partner_csoportok WHERE pcs_id = ?");
  255. $this->execute($item);
  256. $result = $this->fetch();
  257. $treeView.= $result['pcs_name']."/";
  258. }
  259. return rtrim($treeView,"/");
  260. }
  261. public function getPartnersGroups($data) {
  262. $partners = array();
  263. foreach ($data['items'] as $item) {
  264. $this->prepare("SELECT * FROM dr_partnerek WHERE partner_id = ?");
  265. $this->execute($item);
  266. $partner = $this->fetch();
  267. $this->prepare("SELECT * FROM dr_partner_csoport_index WHERE pcsi_partner_id = ? AND pcsi_status <> ?");
  268. $this->execute($item,'0');
  269. $result = $this->fetchAll();
  270. if (sizeof($result)>0) {
  271. foreach ($result as $row) {
  272. $row['tree'] = $this->getTreeNames(array_reverse(explode(",",$row['tree'])),$row['pcsi_pcs_id']);
  273. $partner['groups'][] = $row;
  274. }
  275. }
  276. $partners[] = $partner;
  277. }
  278. return $partners;
  279. }
  280. public function checkPartnerInGroup($partnerid,$groupid) {
  281. if ($partnerid!='' && $groupid!='') {
  282. $this->prepare("SELECT * FROM dr_partner_csoport_index WHERE pcsi_partner_id = ? AND pcsi_pcs_id = ? AND pcsi_status <> ?");
  283. $this->execute($partnerid,$groupid,'0');
  284. $check = $this->fetchAll();
  285. if (sizeof($check)>0) {
  286. return false;
  287. }
  288. else {
  289. return true;
  290. }
  291. }
  292. else {
  293. return false;
  294. }
  295. }
  296. public function appendPartnerToGroup($data) {
  297. foreach ($data['items'] as $item) {
  298. if ($this->checkPartnerInGroup($item,$data['id'])) {
  299. $this->prepare("INSERT INTO dr_partner_csoport_index SET pcsi_partner_id = ?, pcsi_pcs_id = ?, pcsi_createuser = ?, tree = ?");
  300. $tree = implode(',',$data['parents']);
  301. $this->execute($item,$data['id'],$_SESSION['admin']['user_id'],$tree);
  302. }
  303. }
  304. return true;
  305. }
  306. public function movePartnerToGroup($data) {
  307. foreach ($data['items'] as $item) {
  308. $this->prepare("DELETE FROM dr_partner_csoport_index WHERE pcsi_partner_id = ?");
  309. $this->execute($item);
  310. if ($this->checkPartnerInGroup($item,$data['id'])) {
  311. $this->prepare("INSERT INTO dr_partner_csoport_index SET pcsi_partner_id = ?, pcsi_pcs_id = ?, pcsi_createuser = ?, tree = ?");
  312. $tree = implode(',',$data['parents']);
  313. $this->execute($item,$data['id'],$_SESSION['admin']['user_id'],$tree);
  314. }
  315. }
  316. return true;
  317. }
  318. public function deletePartnerFromGroup($id) {
  319. $this->prepare("UPDATE dr_partner_csoport_index SET pcsi_status = ? WHERE pcsi_id = ?");
  320. $this->execute('0',$id);
  321. return true;
  322. }
  323. public function deleteGroup($data) {
  324. $this->prepare("UPDATE dr_partner_csoportok SET pcs_status = ? WHERE pcs_id = ?;");
  325. $this->execute('0',$_REQUEST['id']);
  326. foreach ($_REQUEST['childrens'] as $id) {
  327. $this->prepare("UPDATE dr_partner_csoportok SET pcs_status = ? WHERE pcs_id = ?;");
  328. $this->execute('0',$id);
  329. }
  330. return true;
  331. }
  332. public function deletePartner($partnerid) {
  333. $this->prepare("UPDATE dr_partnerek SET partner_status = ? WHERE partner_id = ?");
  334. $this->execute('0',$partnerid);
  335. return true;
  336. }
  337. public function getCegtipusok() {
  338. $this->prepare("SELECT * FROM dr_cegtipusok WHERE cegtipus_status <> ? ORDER BY cegtipus_id ASC;");
  339. $this->execute('0');
  340. return $this->fetchAll();
  341. }
  342. public function getArtipusok() {
  343. $this->prepare("SELECT * FROM dr_artipusok WHERE artipus_status = ? AND artipus_mod = ? ORDER BY artipus_id ASC;");
  344. $this->execute('1','Partner');
  345. return $this->fetchAll();
  346. }
  347. public function getFizmodtipusok() {
  348. $this->prepare("SELECT * FROM dr_fizetesimodtipusok WHERE fizetesimodtipus_status <> ? ORDER BY fizetesimodtipus_id ASC;");
  349. $this->execute('0');
  350. return $this->fetchAll();
  351. }
  352. public function getNyelvek() {
  353. $this->prepare("SELECT * FROM dr_nyelvek WHERE nyelv_status <> ? ORDER BY nyelv_id ASC;");
  354. $this->execute('0');
  355. return $this->fetchAll();
  356. }
  357. public function getUsers() {
  358. $this->prepare("SELECT * FROM dr_users WHERE user_status <> ? ORDER BY user_name ASC;");
  359. $this->execute('0');
  360. return $this->fetchAll();
  361. }
  362. public function getPartnerCimek($partnerid) {
  363. $this->prepare("SELECT * FROM dr_partner_cimek WHERE pc_partner_id = ? AND pc_status <> ? ORDER BY pc_id ASC;");
  364. $this->execute($partnerid,'0');
  365. return $this->fetchAll();
  366. }
  367. public function getCimByID($cimid) {
  368. $this->prepare("SELECT * FROM dr_partner_cimek WHERE pc_id = ?;");
  369. $this->execute($cimid);
  370. $res = $this->fetch();
  371. return "(".$res['pc_tipus'].")".$res['pc_irsz'].". ".$res['pc_telepules']." ".$res['pc_kozterulet']." ".$res['pc_kozterulet_tipus']." ".$res['pc_hazszam']." ".$res['pc_epulet']." ".$res['pc_emelet']." ".$res['pc_ajto'];
  372. }
  373. public function getPartnerContacts($partnerid) {
  374. $this->prepare("SELECT * FROM dr_partner_kapcsolattartok WHERE pk_partner_id = ? AND pk_status <> ? ORDER BY pk_id ASC;");
  375. $this->execute($partnerid,'0');
  376. $result = $this->fetchAll();
  377. foreach ($result as $row) {
  378. $row['pk_cim_text'] = $this->getCimByID($row['pk_cim']);
  379. $return[] = $row;
  380. }
  381. return $return;
  382. }
  383. public function getCimtipusok() {
  384. $this->prepare("SELECT * FROM dr_cimtipusok WHERE cimtipus_status <> ? ORDER BY cimtipus_id ASC;");
  385. $this->execute('0');
  386. return $this->fetchAll();
  387. }
  388. public function getVarosok() {
  389. $this->prepare("SELECT * FROM dr_varosok WHERE varos_status <> ? ORDER BY varos_id ASC;");
  390. $this->execute('0');
  391. return $this->fetchAll();
  392. }
  393. public function getKoztipusok() {
  394. $this->prepare("SELECT * FROM dr_kozteruletek WHERE kozterulet_status <> ? ORDER BY kozterulet_id ASC;");
  395. $this->execute('0');
  396. return $this->fetchAll();
  397. }
  398. public function getStructures() {
  399. $this->prepare("SELECT ps_id AS id, ps_name AS text, ps_parent AS parent FROM dr_partner_structures WHERE ps_status <> ?;");
  400. $this->execute('0');
  401. $result = $this->fetchAll();
  402. if (sizeof($result)>0) {
  403. foreach ($result as $row) {
  404. if ($row['parent']=='0') {
  405. $row['parent'] = '#';
  406. }
  407. $data[] = $row;
  408. }
  409. return $data;
  410. }
  411. else {
  412. return false;
  413. }
  414. }
  415. public function getStructure($data) {
  416. $this->prepare("SELECT * FROM dr_partner_structures WHERE ps_id = ?;");
  417. $this->execute($data['id']);
  418. return $this->fetch();
  419. }
  420. public function insertStructure($data) {
  421. $this->prepare("INSERT INTO dr_partner_structures SET ps_parent = ?, ps_name = ?, ps_createuser = ?;");
  422. $this->execute($data['parent'],$data['text'],$_SESSION['admin']['user_id']);
  423. return true;
  424. }
  425. public function updateStructure($data) {
  426. $this->prepare("UPDATE dr_partner_structures SET ps_name = ? WHERE ps_id = ?;");
  427. $this->execute($data['name'],$data['id']);
  428. return true;
  429. }
  430. public function getTreeNamesStructure($tree,$root='') {
  431. $treeView = '';
  432. foreach ($tree as $item) {
  433. if ($item=='#') $item = $root;
  434. $this->prepare("SELECT * FROM dr_partner_structures WHERE ps_id = ?");
  435. $this->execute($item);
  436. $result = $this->fetch();
  437. $treeView.= $result['ps_name']."/";
  438. }
  439. return rtrim($treeView,"/");
  440. }
  441. public function getPartnersStructures($data) {
  442. $partners = array();
  443. foreach ($data['items'] as $item) {
  444. $this->prepare("SELECT * FROM dr_partnerek WHERE partner_id = ?");
  445. $this->execute($item);
  446. $partner = $this->fetch();
  447. $this->prepare("SELECT * FROM dr_partner_structure_index WHERE psi_partner_id = ? AND psi_status <> ?");
  448. $this->execute($item,'0');
  449. $result = $this->fetchAll();
  450. if (sizeof($result)>0) {
  451. foreach ($result as $row) {
  452. $row['tree'] = $this->getTreeNamesStructure(array_reverse(explode(",",$row['tree'])),$row['psi_ps_id']);
  453. $partner['structures'][] = $row;
  454. }
  455. }
  456. $partners[] = $partner;
  457. }
  458. return $partners;
  459. }
  460. public function checkPartnerInStructure($partnerid,$structureid) {
  461. if ($partnerid!='' && $structureid!='') {
  462. $this->prepare("SELECT * FROM dr_partner_structure_index WHERE psi_partner_id = ? AND psi_ps_id = ? AND psi_status <> ?");
  463. $this->execute($partnerid,$structureid,'0');
  464. $check = $this->fetchAll();
  465. if (sizeof($check)>0) {
  466. return false;
  467. }
  468. else {
  469. return true;
  470. }
  471. }
  472. else {
  473. return false;
  474. }
  475. }
  476. public function appendPartnerToStructure($data) {
  477. foreach ($data['items'] as $item) {
  478. if ($this->checkPartnerInStructure($item,$data['id'])) {
  479. $this->prepare("INSERT INTO dr_partner_structure_index SET psi_partner_id = ?, psi_ps_id = ?, psi_createuser = ?, tree = ?");
  480. $tree = implode(',',$data['parents']);
  481. $this->execute($item,$data['id'],$_SESSION['admin']['user_id'],$tree);
  482. }
  483. }
  484. return true;
  485. }
  486. public function movePartnerToStructure($data) {
  487. foreach ($data['items'] as $item) {
  488. $this->prepare("DELETE FROM dr_partner_structure_index WHERE psi_partner_id = ?");
  489. $this->execute($item);
  490. if ($this->checkPartnerInStructure($item,$data['id'])) {
  491. $this->prepare("INSERT INTO dr_partner_structure_index SET psi_partner_id = ?, psi_ps_id = ?, psi_createuser = ?, tree = ?");
  492. $tree = implode(',',$data['parents']);
  493. $this->execute($item,$data['id'],$_SESSION['admin']['user_id'],$tree);
  494. }
  495. }
  496. return true;
  497. }
  498. public function deletePartnerFromStructure($id) {
  499. $this->prepare("UPDATE dr_partner_structure_index SET psi_status = ? WHERE psi_id = ?");
  500. $this->execute('0',$id);
  501. return true;
  502. }
  503. public function deleteStructure($data) {
  504. $this->prepare("UPDATE dr_partner_structures SET ps_status = ? WHERE ps_id = ?;");
  505. $this->execute('0',$_REQUEST['id']);
  506. foreach ($_REQUEST['childrens'] as $id) {
  507. $this->prepare("UPDATE dr_partner_structures SET ps_status = ? WHERE ps_id = ?;");
  508. $this->execute('0',$id);
  509. }
  510. return true;
  511. }
  512. public function isPartnerInGroup($groupid) {
  513. if ($groupid!='') {
  514. $this->prepare("SELECT * FROM dr_partner_csoport_index WHERE pcsi_partner_id = ? AND pcsi_pcs_id = ? AND pcsi_status = ?;");
  515. $this->execute($_SESSION['partner_id'],$groupid,'1');
  516. $check = $this->fetch();
  517. if ($check['pcsi_id']!='') {
  518. return ' checked';
  519. }
  520. else {
  521. return '';
  522. }
  523. }
  524. else {
  525. return '';
  526. }
  527. }
  528. public function getGroupsByPartner($partnerid) {
  529. if ($partnerid!='') {
  530. $this->prepare("SELECT * FROM dr_partner_csoport_index
  531. LEFT JOIN dr_partner_csoportok ON pcs_id=pcsi_pcs_id
  532. WHERE pcsi_partner_id = ? AND pcsi_status = ?;");
  533. $this->execute($partnerid,'1');
  534. $res = $this->fetchAll();
  535. $result = '';
  536. foreach ($res as $row) {
  537. $result.= $row['pcs_name'].',';
  538. }
  539. return trim($result,',');
  540. }
  541. else {
  542. return false;
  543. }
  544. }
  545. public function getGroupsJSON() {
  546. $this->prepare("SELECT pcs_id AS id, pcs_name AS text, pcs_parent AS parent_id FROM dr_partner_csoportok WHERE pcs_status <> ?;");
  547. $this->execute('0');
  548. $result = $this->fetchAll();
  549. $data = array();
  550. if (sizeof($result)>0) {
  551. foreach ($result as $row) {
  552. $tmp = array();
  553. $tmp['id'] = $row['id'];
  554. $tmp['check'] = $this->isPartnerInGroup($row['id']);
  555. $tmp['title'] = $row['text'];
  556. $tmp['parent_id'] = $row['parent_id'];
  557. array_push($data, $tmp);
  558. }
  559. $itemsByReference = array();
  560. foreach($data as $key => &$item) {
  561. $itemsByReference[$item['id']] = &$item;
  562. $itemsByReference[$item['id']]['subs'] = array();
  563. }
  564. foreach($data as $key => &$item) {
  565. if($item['parent_id'] && isset($itemsByReference[$item['parent_id']])) {
  566. $itemsByReference[$item['parent_id']]['subs'][] = &$item;
  567. }
  568. }
  569. $i=0;
  570. foreach ($data as $sor) {
  571. if ($sor['parent_id']!='0') {
  572. unset($data[$i]);
  573. }
  574. $i++;
  575. }
  576. return $data;
  577. }
  578. else {
  579. return false;
  580. }
  581. }
  582. public function getStructuresJSON() {
  583. $this->prepare("SELECT ps_id AS id, ps_name AS text, ps_parent AS parent_id FROM dr_partner_structures WHERE ps_status <> ?;");
  584. $this->execute('0');
  585. $result = $this->fetchAll();
  586. $data = array();
  587. if (sizeof($result)>0) {
  588. foreach ($result as $row) {
  589. $tmp = array();
  590. $tmp['id'] = $row['id'];
  591. $tmp['title'] = $row['text'];
  592. $tmp['parent_id'] = $row['parent_id'];
  593. array_push($data, $tmp);
  594. }
  595. $itemsByReference = array();
  596. foreach($data as $key => &$item) {
  597. $itemsByReference[$item['id']] = &$item;
  598. $itemsByReference[$item['id']]['subs'] = array();
  599. }
  600. foreach($data as $key => &$item) {
  601. if($item['parent_id'] && isset($itemsByReference[$item['parent_id']])) {
  602. $itemsByReference[$item['parent_id']]['subs'][] = &$item;
  603. }
  604. }
  605. $i=0;
  606. foreach ($data as $sor) {
  607. if ($sor['parent_id']!='0') {
  608. unset($data[$i]);
  609. }
  610. $i++;
  611. }
  612. return $data;
  613. }
  614. else {
  615. return false;
  616. }
  617. }
  618. public function getCegek() {
  619. $this->prepare("SELECT ceg_id,ceg_name FROM dr_cegek WHERE ceg_status <> ?;");
  620. $this->execute('0');
  621. return $this->fetchAll();
  622. }
  623. public function addPartner() {
  624. $this->prepare("INSERT INTO dr_partnerek SET partner_createuser = ?, partner_ceg = ?;");
  625. $this->execute($_SESSION['admin']['user_id'],$_SESSION['user_company_id']);
  626. return $this->lastInsertID();
  627. }
  628. public function addCim($data) {
  629. $this->prepare("INSERT INTO dr_partner_cimek SET
  630. pc_partner_id = ?,
  631. pc_tipus = ?,
  632. pc_telepules = ?,
  633. pc_irsz = ?,
  634. pc_kozterulet = ?,
  635. pc_kozterulet_tipus = ?,
  636. pc_hazszam = ?,
  637. pc_epulet = ?,
  638. pc_lepcsohaz = ?,
  639. pc_emelet = ?,
  640. pc_ajto = ?,
  641. pc_hrsz = ?,
  642. pc_telefon = ?,
  643. pc_email = ?,
  644. pc_createuser = ?;");
  645. $this->execute(
  646. $_SESSION['partner_id'],
  647. $data['pc_tipus'],
  648. $data['pc_telepules'],
  649. $data['pc_irsz'],
  650. $data['pc_kozterulet'],
  651. $data['pc_kozterulet_tipus'],
  652. $data['pc_hazszam'],
  653. $data['pc_epulet'],
  654. $data['pc_lepcsohaz'],
  655. $data['pc_emelet'],
  656. $data['pc_ajto'],
  657. $data['pc_hrsz'],
  658. $data['pc_telefon'],
  659. $data['pc_email'],
  660. $_SESSION['admin']['user_id']
  661. );
  662. return true;
  663. }
  664. public function updateCim($data) {
  665. $this->prepare("UPDATE dr_partner_cimek SET
  666. pc_tipus = ?,
  667. pc_telepules = ?,
  668. pc_irsz = ?,
  669. pc_kozterulet = ?,
  670. pc_kozterulet_tipus = ?,
  671. pc_hazszam = ?,
  672. pc_epulet = ?,
  673. pc_lepcsohaz = ?,
  674. pc_emelet = ?,
  675. pc_ajto = ?,
  676. pc_hrsz = ?,
  677. pc_telefon = ?,
  678. pc_email = ? WHERE pc_id = ?;");
  679. $this->execute(
  680. $data['pc_tipus'],
  681. $data['pc_telepules'],
  682. $data['pc_irsz'],
  683. $data['pc_kozterulet'],
  684. $data['pc_kozterulet_tipus'],
  685. $data['pc_hazszam'],
  686. $data['pc_epulet'],
  687. $data['pc_lepcsohaz'],
  688. $data['pc_emelet'],
  689. $data['pc_ajto'],
  690. $data['pc_hrsz'],
  691. $data['pc_telefon'],
  692. $data['pc_email'],
  693. $data['pc_id']
  694. );
  695. return true;
  696. }
  697. public function deleteCim($data) {
  698. $this->prepare("UPDATE dr_partner_cimek SET pc_status = ? WHERE pc_id = ?");
  699. $this->execute('0',$data['pc_id']);
  700. return true;
  701. }
  702. public function getPartnerCim($pc_id) {
  703. $this->prepare("SELECT * FROM dr_partner_cimek WHERE pc_id = ?");
  704. $this->execute($pc_id);
  705. return $this->fetch();
  706. }
  707. public function addContact($data) {
  708. $this->prepare("INSERT INTO dr_partner_kapcsolattartok SET
  709. pk_partner_id = ?,
  710. pk_nev = ?,
  711. pk_titulus = ?,
  712. pk_tel = ?,
  713. pk_mobil = ?,
  714. pk_email = ?,
  715. pk_cim = ?,
  716. pk_createuser = ?;");
  717. $this->execute(
  718. $_SESSION['partner_id'],
  719. $data['pk_nev'],
  720. $data['pk_titulus'],
  721. $data['pk_tel'],
  722. $data['pk_mobil'],
  723. $data['pk_email'],
  724. $data['pk_cim'],
  725. $_SESSION['admin']['user_id']
  726. );
  727. return true;
  728. }
  729. public function updateContact($data) {
  730. $this->prepare("UPDATE dr_partner_kapcsolattartok SET
  731. pk_nev = ?,
  732. pk_titulus = ?,
  733. pk_tel = ?,
  734. pk_mobil = ?,
  735. pk_email = ?,
  736. pk_cim = ? WHERE pk_id = ?;");
  737. $this->execute(
  738. $data['pk_nev'],
  739. $data['pk_titulus'],
  740. $data['pk_tel'],
  741. $data['pk_mobil'],
  742. $data['pk_email'],
  743. $data['pk_cim'],
  744. $data['pk_id']
  745. );
  746. return true;
  747. }
  748. public function deleteContact($data) {
  749. $this->prepare("UPDATE dr_partner_kapcsolattartok SET pk_status = ? WHERE pk_id = ?");
  750. $this->execute('0',$data['pk_id']);
  751. return true;
  752. }
  753. public function getPartnerContact($pk_id) {
  754. $this->prepare("SELECT * FROM dr_partner_kapcsolattartok WHERE pk_id = ?");
  755. $this->execute($pk_id);
  756. return $this->fetch();
  757. }
  758. public function getMetaFields($id,$module) {
  759. if ($module!='') {
  760. $this->prepare("SELECT * FROM dr_meta_fields WHERE meta_module = ? AND meta_status = ? ORDER BY meta_order ASC;");
  761. $this->execute($module,'1');
  762. $metas = $this->fetchAll();
  763. if (count($metas)>0) {
  764. foreach ($metas as $meta) {
  765. $hash = md5($id.$module.$meta['meta_id']);
  766. $this->prepare("SELECT * FROM dr_meta_values WHERE mv_meta_id = ? AND mv_hash = ? AND mv_status = ?;");
  767. $this->execute($meta['meta_id'],$hash,'1');
  768. $value = $this->fetch();
  769. if ($value['mv_meta_id']!='') {
  770. $meta['mv_value'] = $value['mv_value'];
  771. $meta['mv_id'] = $value['mv_id'];
  772. }
  773. $result[] = $meta;
  774. }
  775. return $result;
  776. }
  777. else {
  778. return false;
  779. }
  780. }
  781. else {
  782. return false;
  783. }
  784. }
  785. public function getCikkek($partnerid) {
  786. $this->prepare("SELECT * FROM dr_cikkek WHERE cikk_status <> ? ORDER BY cikk_name ASC;");
  787. $this->execute('0');
  788. $result = $this->fetchAll();
  789. if (sizeof($result)>0) {
  790. foreach ($result as $row) {
  791. $this->prepare("SELECT * FROM dr_cikk_partners_index WHERE cpi_cikk_id = ? AND cpi_partner_id = ? AND cpi_status = ?;");
  792. $this->execute($row['cikk_id'],$partnerid,'1');
  793. $check = $this->fetch();
  794. if ($check['cpi_id']!='') {
  795. $row['checked'] = ' checked';
  796. }
  797. else {
  798. $row['checked'] = '';
  799. }
  800. $return[] = $row;
  801. }
  802. return $return;
  803. }
  804. else {
  805. return false;
  806. }
  807. }
  808. public function addCikkView($data) {
  809. $this->prepare("INSERT INTO dr_cikk_partners_index SET
  810. cpi_cikk_id = ?,
  811. cpi_partner_id = ?,
  812. cpi_create_user = ?;");
  813. $this->execute($data['cikk_id'],$data['partner_id'],$_SESSION['admin']['user_id']);
  814. return true;
  815. }
  816. public function deleteCikkView($data) {
  817. $this->prepare("DELETE FROM dr_cikk_partners_index WHERE
  818. cpi_cikk_id = ? AND
  819. cpi_partner_id = ? AND
  820. cpi_status = ?;");
  821. $this->execute($data['cikk_id'],$data['partner_id'],'1');
  822. return true;
  823. }
  824. public function getRaktarak($partnerid) {
  825. $this->prepare("SELECT * FROM dr_raktarak WHERE raktar_status <> ? ORDER BY raktar_name ASC;");
  826. $this->execute('0');
  827. $result = $this->fetchAll();
  828. if (sizeof($result)>0) {
  829. foreach ($result as $row) {
  830. $this->prepare("SELECT * FROM dr_raktar_partners_index WHERE rpi_raktar_id = ? AND rpi_partner_id = ? AND rpi_status = ?;");
  831. $this->execute($row['raktar_id'],$partnerid,'1');
  832. $check = $this->fetch();
  833. if ($check['rpi_id']!='') {
  834. $row['checked'] = ' checked';
  835. }
  836. else {
  837. $row['checked'] = '';
  838. }
  839. $return[] = $row;
  840. }
  841. return $return;
  842. }
  843. else {
  844. return false;
  845. }
  846. }
  847. public function addRaktarView($data) {
  848. $this->prepare("INSERT INTO dr_raktar_partners_index SET
  849. rpi_raktar_id = ?,
  850. rpi_partner_id = ?,
  851. rpi_create_user = ?;");
  852. $this->execute($data['raktar_id'],$data['partner_id'],$_SESSION['admin']['user_id']);
  853. return true;
  854. }
  855. public function deleteRaktarView($data) {
  856. $this->prepare("DELETE FROM dr_raktar_partners_index WHERE
  857. rpi_raktar_id = ? AND
  858. rpi_partner_id = ? AND
  859. rpi_status = ?;");
  860. $this->execute($data['raktar_id'],$data['partner_id'],'1');
  861. return true;
  862. }
  863. public function copyPartnerToClient($id) {
  864. $this->prepare("SELECT * FROM dr_partnerek WHERE partner_id = ?;");
  865. $this->execute($id);
  866. $adat = $this->fetch();
  867. $this->prepare("SELECT * FROM dr_partner_cimek WHERE pc_partner_id = ? AND pc_tipus = ? AND pc_status = ?;");
  868. $this->execute($id,'Székhely','1');
  869. $cim = $this->fetch();
  870. $address = $cim['pc_irsz'].'. '.$cim['pc_telepules'].', '.$cim['pc_kozterulet'].' '.$cim['pc_kozterulet_tipus'].' '.$cim['pc_hazszam'].' '.$cim['pc_epulet'];
  871. $this->prepare("INSERT INTO dr_customers SET
  872. customer_name='".$adat['partner_name']."',
  873. customer_age='0',
  874. customer_status='1',
  875. customer_createuser='".$adat['partner_createuser']."',
  876. customer_email='".$adat['partner_email']."',
  877. customer_phone='".$adat['partner_telefon']."',
  878. customer_origin='partners',
  879. cim='".$address."';");
  880. $this->execute();
  881. $newid = $this->lastInsertID();
  882. $this->generateCustomerNumber($newid);
  883. $this->prepare("INSERT INTO dr_customer_cimek SET
  884. cc_customer_id='".$newid."',
  885. cc_tipus='Számlázási cím',
  886. cc_telepules='".$cim['pc_telepules']."',
  887. cc_irsz='".$cim['pc_irsz']."',
  888. cc_kozterulet='".$cim['pc_kozterulet']."',
  889. cc_kozterulet_tipus='".$cim['pc_kozterulet_tipus']."',
  890. cc_hazszam='".$cim['pc_hazszam']."',
  891. cc_epulet='".$cim['pc_epulet']."',
  892. cc_emelet='".$cim['pc_emelet']."',
  893. cc_ajto='".$cim['pc_ajto']."',
  894. cc_hrsz='".$cim['pc_hrsz']."',
  895. cc_lepcsohaz='".$cim['pc_lepcsohaz']."',
  896. cc_createuser='".$_SESSION['admin']['user_id']."';");
  897. $this->execute();
  898. $this->prepare("UPDATE dr_partnerek SET partner_converted='1', partner_customer_id='".$newid."' WHERE partner_id='".$id."';");
  899. $this->execute();
  900. return $newid;
  901. }
  902. public function generateCustomerNumber($id) {
  903. $this->prepare("SELECT REPLACE(REPLACE(customer_code,'R',''),'D','') AS szam FROM dr_customers WHERE customer_code LIKE 'D%' OR customer_code LIKE 'R%' ORDER BY CAST(szam AS DECIMAL) DESC;");
  904. $this->execute();
  905. $row = $this->fetch();
  906. $lastCode = intval($row['szam']);
  907. $nextCode = $lastCode+1;
  908. if ($_SESSION['trvtype']=='reg') {
  909. $customerCode = 'R'.$nextCode;
  910. }
  911. else {
  912. $customerCode = 'D'.$nextCode;
  913. }
  914. $this->prepare("UPDATE dr_customers SET customer_code='".$customerCode."' WHERE customer_id='".$id."';");
  915. $this->execute();
  916. return $customerCode;
  917. }
  918. }
  919. ?>