public function getPaymentHistory() { $paymentHistory = array(); $past = new \DateTime("2013-01-01 00:00:00"); $now = new \DateTime(); foreach ($this->_siteList as $site) { $interval = $past->diff($now); $numberYears = (int) $interval->format('%y') + 1; $auxStartDate = clone $past; for ($i = 0; $i < $numberYears; $i++) { $auxEndData = clone $auxStartDate; $auxEndData = $auxEndData->add(new \DateInterval('P1Y')); $url = "https://reportws.linksynergy.com/downloadreport.php?bdate=" . $auxStartDate->format("Ymd") . "&edate=" . $auxEndData->format("Ymd") . "&token=" . $site->secureToken . "&nid=" . $this->_nid . "&reportid=1"; $result = \file_get_contents($url); if (\preg_match("/You cannot request/", $result)) { throw new \Exception("Reached the limit"); } $paymentLines = \str_getcsv($result, "\n"); $number = \count($paymentLines); for ($j = 1; $j < $number; $j++) { $paymentData = \str_getcsv($paymentLines[$j], ","); $obj = array(); $date = \DateTime::createFromFormat("Y-m-d", $paymentData[1]); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['value'] = \Oara\Utilities::parseDouble($paymentData[5]); $obj['method'] = "BACS"; $obj['pid'] = $paymentData[0]; $paymentHistory[] = $obj; } $auxStartDate->add(new \DateInterval('P1Y')); } } return $paymentHistory; }