PageRenderTime 48ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/webservice_test/1.1.6/mls_queries.php

https://bitbucket.org/jv-cortez/test-environment
PHP | 475 lines | 339 code | 113 blank | 23 comment | 48 complexity | 3717c8e611646c18427495cc1cb2919d MD5 | raw file
  1. <?php
  2. //error_reporting(E_ALL);
  3. //ini_set('display_errors', 1);
  4. require_once('../../require/db_conn.php');
  5. // require_once('../../require/core.php');
  6. /* ------------------------------ SHARED FUNCTIONS ------------------------------*/
  7. function syncCRMLSListings($mlsID, $managerID) {
  8. $collection_managers = Db_Conn::getInstance()->getConnection()->managers;
  9. $collection_properties = Db_Conn::getInstance()->getConnection()->properties;
  10. $collection_counter = Db_Conn::getInstance()->getConnection()->id_counter;
  11. $manager_result = $collection_managers->findOne(array('_id' => new MongoDB\BSON\ObjectID($managerID)));
  12. $config = new \PHRETS\Configuration;
  13. $config->setLoginUrl('https://pt.rets.crmls.org/contact/rets/login');
  14. $config->setUsername('SPACIO');
  15. $config->setPassword('?8gtWT&W');
  16. // optional. value shown below are the defaults used when not overridden
  17. $config->setRetsVersion('1.7.2'); // see constants from \PHRETS\Versions\RETSVersion
  18. $config->setHttpAuthenticationMethod('digest'); // or 'basic' if required
  19. $config->setOption('use_post_method', true); // boolean
  20. $config->setOption('disable_follow_location', false); // boolean
  21. $rets = new \PHRETS\Session($config);
  22. $bulletin = $rets->Login();
  23. $results = $rets->Search("Property", "Residential", '(ListAgentMlsId='.$mlsID.'),(StandardStatus=X)', ['Limit' => 100]);
  24. $count = 0;
  25. foreach ($results as $r) {
  26. $property = array();
  27. $date = new DateTime();
  28. $timeStamp = $date->getTimestamp() * 1000;
  29. $currentTime = new MongoDB\BSON\UTCDateTime($timeStamp);
  30. $randnum = rand ( 1 , 10 );
  31. $image = "http://www.spac.io/assets/img/stock/".$randnum.".jpg";
  32. $property["mls"] = "crmls";
  33. $property["mlsID"] = $r['ListingId'];
  34. $property["photo"] = $image;
  35. $streetNumber = $r['StreetNumberNumeric'];
  36. $streetName = $r['StreetName'];
  37. $streetName = ucwords(strtolower($streetName));
  38. $streetSuffix = $r['StreetSuffix'];
  39. $streetPrefix = $r['StreetDirPrefix'];
  40. $unitNumber = $r['UnitNumber'];
  41. $city = $r['City'];
  42. $state = $r['StateOrProvince'];
  43. $postalCode = $r['PostalCode'];
  44. $size = $r['LivingArea'];
  45. $price = $r['ListPrice'];
  46. $baths = $r['BathroomsTotalInteger'];
  47. $beds = $r['BedroomsTotal'];
  48. $addr1 = "";
  49. $addr2 = $city.", ".$state." ".$postalCode;
  50. $addr1 = $streetNumber;
  51. if($streetPrefix != "" && $streetPrefix != NULL) {
  52. $addr1 = $addr1." ".$streetPrefix;
  53. }
  54. $addr1 = $addr1." ".$streetName;
  55. if($streetSuffix != "" && $streetSuffix != NULL) {
  56. $addr1 = $addr1." ".$streetSuffix;
  57. }
  58. if($unitNumber != "" && $unitNumber != NULL) {
  59. $addr1 = $addr1." Unit ".$unitNumber;
  60. }
  61. $property["addr1"] = $addr1;
  62. $property["addr2"] = $addr2;
  63. $property["price"] = $price;
  64. $property["size"] = $size;
  65. $property["baths"] = $baths;
  66. $property["beds"] = $beds;
  67. $photos = $rets->Search("Media", "Media", 'ResourceRecordKeyNumeric='.$r['ListingKeyNumeric'], ['Limit' => 1]);
  68. foreach ($photos as $photo) {
  69. $property["photo"] = $photo["MediaURL"];
  70. }
  71. $property_result = $collection_properties->findOne(array('mlsnum' => $property["mlsID"], "mls" => $property["mls"], "managerID" => $managerID));
  72. if(is_null($property_result)) {
  73. $nextseq = $collection_counter->findOneAndUpdate(
  74. array("desc" => "propertyID"),
  75. array('$inc' => array('maxCount' => 1))//,
  76. // null,
  77. // array(
  78. // "new" => true
  79. // )
  80. );
  81. $questions = array();
  82. if($manager_result["brokerageID"] != "N/A") {
  83. $collection_brokerages = Db_Conn::getInstance()->getConnection()->brokerages;
  84. $brokerage_result = $collection_brokerages->findOne(array("brokerageID" => $manager_result["brokerageID"]));
  85. $questions = $brokerage_result["questions"];
  86. $autoEmail = "YES";
  87. }
  88. $document_property = array(
  89. "propertyID" => $nextseq["maxCount"],
  90. "mls" => $property["mls"],
  91. "mlsnum" => $property["mlsID"],
  92. "url" => "",
  93. "title"=> $property["addr1"] ,
  94. "addr1"=> $property["addr1"] ,
  95. "addr2"=> $property["addr2"] ,
  96. "image"=> $property["photo"] ,
  97. "price" => $property["price"] ,
  98. "beds" => $property["beds"] ,
  99. "baths" => $property["baths"] ,
  100. "dimens" => $property["size"] ,
  101. "desc" => "",
  102. //"note" => $note,
  103. "currency" => "USD",
  104. "measurement" => "sqft",
  105. "dateCreated" => $currentTime,
  106. "lastEdited" => $currentTime,
  107. "tlc" => "N/A",
  108. "questions" => $questions,
  109. "managerID"=>$managerID,
  110. "brokerageID"=>$manager_result["brokerageID"],
  111. "anon"=>"NO",
  112. "autoEmail" => "NO",
  113. "cnEnabled" => "NO",
  114. "brokersEnabled" => "NO",
  115. "disabled" => "NO",
  116. "mobile" => true,
  117. "editable"=>true,
  118. "sample" => false);
  119. $result = $collection_properties->insertOne($document_property);
  120. $count++;
  121. }
  122. }
  123. $rets->Disconnect();
  124. return $count;
  125. }
  126. function getCRMLSListing($listingID) {
  127. $config = new \PHRETS\Configuration;
  128. $config->setLoginUrl('https://pt.rets.crmls.org/contact/rets/login');
  129. $config->setUsername('SPACIO');
  130. $config->setPassword('?8gtWT&W');
  131. // optional. value shown below are the defaults used when not overridden
  132. $config->setRetsVersion('1.7.2'); // see constants from \PHRETS\Versions\RETSVersion
  133. $config->setHttpAuthenticationMethod('digest'); // or 'basic' if required
  134. $config->setOption('use_post_method', true); // boolean
  135. $config->setOption('disable_follow_location', false); // boolean
  136. $rets = new \PHRETS\Session($config);
  137. $bulletin = $rets->Login();
  138. $results = $rets->Search("Property", "Residential", 'ListingId='.$listingID, ['Limit' => 1]);
  139. $property = array();
  140. foreach ($results as $r) {
  141. $randnum = rand ( 1 , 10 );
  142. $image = "http://www.spac.io/assets/img/stock/".$randnum.".jpg";
  143. $property["mlsID"] = $r['ListingId'];
  144. $property["photo"] = $image;
  145. $streetNumber = $r['StreetNumberNumeric'];
  146. $streetName = $r['StreetName'];
  147. $streetName = ucwords(strtolower($streetName));
  148. $streetSuffix = $r['StreetSuffix'];
  149. $streetPrefix = $r['StreetDirPrefix'];
  150. $unitNumber = $r['UnitNumber'];
  151. $city = $r['City'];
  152. $state = $r['StateOrProvince'];
  153. $postalCode = $r['PostalCode'];
  154. $size = $r['LivingArea'];
  155. $price = $r['ListPrice'];
  156. $baths = $r['BathroomsTotalInteger'];
  157. $beds = $r['BedroomsTotal'];
  158. $addr1 = "";
  159. $addr2 = $city.", ".$state." ".$postalCode;
  160. $addr1 = $streetNumber;
  161. if($streetPrefix != "" && $streetPrefix != NULL) {
  162. $addr1 = $addr1." ".$streetPrefix;
  163. }
  164. $addr1 = $addr1." ".$streetName;
  165. if($streetSuffix != "" && $streetSuffix != NULL) {
  166. $addr1 = $addr1." ".$streetSuffix;
  167. }
  168. if($unitNumber != "" && $unitNumber != NULL) {
  169. $addr1 = $addr1." Unit ".$unitNumber;
  170. }
  171. $property["addr1"] = $addr1;
  172. $property["addr2"] = $addr2;
  173. $property["price"] = $price;
  174. $property["size"] = $size;
  175. $property["baths"] = $baths;
  176. $property["beds"] = $beds;
  177. $photos = $rets->Search("Media", "Media", 'ResourceRecordKeyNumeric='.$r['ListingKeyNumeric'], ['Limit' => 1]);
  178. foreach ($photos as $photo) {
  179. $property["photo"] = $photo["MediaURL"];
  180. }
  181. //var_dump($r);
  182. //echo "\n\n";
  183. }
  184. $rets->Disconnect();
  185. return $property;
  186. }
  187. function verifyCRMLSMember($mlsID, $managerID) {
  188. $collection_managers = Db_Conn::getInstance()->getConnection()->managers;
  189. $collection_properties = Db_Conn::getInstance()->getConnection()->properties;
  190. $collection_counter = Db_Conn::getInstance()->getConnection()->id_counter;
  191. $manager_result = $collection_managers->findOne(array('_id' => new MongoDB\BSON\ObjectID($managerID)));
  192. $authorized = false;
  193. if($mlsID == "") {
  194. $mlsID = "NA";
  195. }
  196. $config = new \PHRETS\Configuration;
  197. $config->setLoginUrl('https://pt.rets.crmls.org/contact/rets/login');
  198. $config->setUsername('SPACIO');
  199. $config->setPassword('?8gtWT&W');
  200. // optional. value shown below are the defaults used when not overridden
  201. $config->setRetsVersion('1.7.2'); // see constants from \PHRETS\Versions\RETSVersion
  202. $config->setHttpAuthenticationMethod('digest'); // or 'basic' if required
  203. $config->setOption('use_post_method', true); // boolean
  204. $config->setOption('disable_follow_location', false); // boolean
  205. $rets = new \PHRETS\Session($config);
  206. $bulletin = $rets->Login();
  207. $results = $rets->Search("Member", "Member", '(MemberLoginId='.$mlsID.')', ['Limit' => 1]);
  208. foreach ($results as $r) {
  209. $authorized = true;
  210. }
  211. $results2 = $rets->Search("Property", "Residential", '(ListAgentMlsId='.$mlsID.'),(StandardStatus=A)', ['Limit' => 10]);
  212. foreach ($results2 as $r) {
  213. $property = array();
  214. $date = new DateTime();
  215. $timeStamp = $date->getTimestamp() * 1000;
  216. $currentTime = new MongoDB\BSON\UTCDateTime($timeStamp);
  217. $randnum = rand ( 1 , 10 );
  218. $image = "http://www.spac.io/assets/img/stock/".$randnum.".jpg";
  219. $property["mls"] = "crmls";
  220. $property["mlsID"] = $r['ListingId'];
  221. $property["photo"] = $image;
  222. $streetNumber = $r['StreetNumberNumeric'];
  223. $streetName = $r['StreetName'];
  224. $streetName = ucwords(strtolower($streetName));
  225. $streetSuffix = $r['StreetSuffix'];
  226. $streetPrefix = $r['StreetDirPrefix'];
  227. $unitNumber = $r['UnitNumber'];
  228. $city = $r['City'];
  229. $state = $r['StateOrProvince'];
  230. $postalCode = $r['PostalCode'];
  231. $size = $r['LivingArea'];
  232. $price = $r['ListPrice'];
  233. $baths = $r['BathroomsTotalInteger'];
  234. $beds = $r['BedroomsTotal'];
  235. $addr1 = "";
  236. $addr2 = $city.", ".$state." ".$postalCode;
  237. $addr1 = $streetNumber;
  238. if($streetPrefix != "" && $streetPrefix != NULL) {
  239. $addr1 = $addr1." ".$streetPrefix;
  240. }
  241. $addr1 = $addr1." ".$streetName;
  242. if($streetSuffix != "" && $streetSuffix != NULL) {
  243. $addr1 = $addr1." ".$streetSuffix;
  244. }
  245. if($unitNumber != "" && $unitNumber != NULL) {
  246. $addr1 = $addr1." Unit ".$unitNumber;
  247. }
  248. $property["addr1"] = $addr1;
  249. $property["addr2"] = $addr2;
  250. $property["price"] = $price;
  251. $property["size"] = $size;
  252. $property["baths"] = $baths;
  253. $property["beds"] = $beds;
  254. $photos = $rets->Search("Media", "Media", 'ResourceRecordKeyNumeric='.$r['ListingKeyNumeric'], ['Limit' => 1]);
  255. foreach ($photos as $photo) {
  256. $property["photo"] = $photo["MediaURL"];
  257. }
  258. $property_result = $collection_properties->findOne(array('mlsnum' => $property["mlsID"], "mls" => $property["mls"], "managerID" => $managerID));
  259. if(is_null($property_result)) {
  260. $nextseq = $collection_counter->findOneAndUpdate(
  261. array("desc" => "propertyID"),
  262. array('$inc' => array('maxCount' => 1))//,
  263. // null,
  264. // array(
  265. // "new" => true
  266. // )
  267. );
  268. $questions = array();
  269. if($manager_result["brokerageID"] != "N/A") {
  270. $collection_brokerages = Db_Conn::getInstance()->getConnection()->brokerages;
  271. $brokerage_result = $collection_brokerages->findOne(array("brokerageID" => $manager_result["brokerageID"]));
  272. $questions = $brokerage_result["questions"];
  273. $autoEmail = "YES";
  274. }
  275. $document_property = array(
  276. "propertyID" => $nextseq["maxCount"],
  277. "mls" => $property["mls"],
  278. "mlsnum" => $property["mlsID"],
  279. "url" => "",
  280. "title"=> $property["addr1"] ,
  281. "addr1"=> $property["addr1"] ,
  282. "addr2"=> $property["addr2"] ,
  283. "image"=> $property["photo"] ,
  284. "price" => $property["price"] ,
  285. "beds" => $property["beds"] ,
  286. "baths" => $property["baths"] ,
  287. "dimens" => $property["size"] ,
  288. "desc" => "",
  289. //"note" => $note,
  290. "currency" => "USD",
  291. "measurement" => "sqft",
  292. "dateCreated" => $currentTime,
  293. "lastEdited" => $currentTime,
  294. "tlc" => "N/A",
  295. "questions" => $questions,
  296. "managerID"=>$managerID,
  297. "brokerageID"=>$manager_result["brokerageID"],
  298. "anon"=>"NO",
  299. "autoEmail" => "NO",
  300. "cnEnabled" => "NO",
  301. "brokersEnabled" => "NO",
  302. "disabled" => "NO",
  303. "mobile" => true,
  304. "editable"=>true,
  305. "sample" => false);
  306. $result = $collection_properties->insertOne($document_property);
  307. $count++;
  308. }
  309. }
  310. $rets->Disconnect();
  311. return $authorized;
  312. }
  313. function getRALDListing($listingID) {
  314. $config = new \PHRETS\Configuration;
  315. $config->setLoginUrl('http://rets-rald.realtyserver.com:6103/saskatchewan/rets/login');
  316. $config->setUsername('rald_spacio');
  317. $config->setPassword('seXQG4mUPX');
  318. // optional. value shown below are the defaults used when not overridden
  319. $config->setRetsVersion('1.7.2'); // see constants from \PHRETS\Versions\RETSVersion
  320. $config->setHttpAuthenticationMethod('digest'); // or 'basic' if required
  321. $config->setOption('use_post_method', true); // boolean
  322. $config->setOption('disable_follow_location', false); // boolean
  323. $rets = new \PHRETS\Session($config);
  324. $bulletin = $rets->Login();
  325. $results = $rets->Search("Property", "ResidentialProperty", 'id='.$listingID, ['Limit' => 1]);
  326. $property = array();
  327. foreach ($results as $r) {
  328. $randnum = rand ( 1 , 10 );
  329. $image = "http://www.spac.io/assets/img/stock/".$randnum.".jpg";
  330. $property["mlsID"] = $r['id'];
  331. $property["photo"] = $image;
  332. $streetNumber = $r['street_number'];
  333. $streetName = $r['street_name'];
  334. $streetName = ucwords(strtolower($streetName));
  335. $unitNumber = $r['unit_number'];
  336. $state = "Saskatchewan";
  337. $postalCode = $r['postal_code'];
  338. $size = $r['sqft_finished'];
  339. $price = $r['price_current'];
  340. $baths = $r['bathrooms'];
  341. $beds = $r['bedrooms'];
  342. $addr1 = "";
  343. $addr2 = $state." ".$postalCode;
  344. $addr1 = $streetNumber." ".$streetName;
  345. if($unitNumber != "" && $unitNumber != NULL) {
  346. $addr1 = $addr1." Unit ".$unitNumber;
  347. }
  348. $property["addr1"] = $addr1;
  349. $property["addr2"] = $addr2;
  350. $property["price"] = $price;
  351. $property["size"] = $size;
  352. $property["baths"] = $baths;
  353. $property["beds"] = $beds;
  354. //$photos = $rets->Search("Media", "Media", 'ResourceRecordKeyNumeric='.$r['ListingKeyNumeric'], ['Limit' => 1]);
  355. $property["photo"] = $image;
  356. //var_dump($r);
  357. //echo "\n\n";
  358. }
  359. $rets->Disconnect();
  360. return $property;
  361. }
  362. ?>