public function getAmount(array $params) { if ($_GET['tz_offset'] != 0) { $dateFrom = date('Y-m-d H:i', strtotime($_GET['start']) + $_GET['tz_offset'] * 60); $dateTill = date('Y-m-d H:i', strtotime($_GET['end']) + $_GET['tz_offset'] * 60); } else { $dateFrom = $_GET['start']; $dateTill = $_GET['end']; } $date = ['period[startdate]' => $dateFrom, 'period[enddate]' => $dateTill]; $rate = Capsule::table('tblcurrencies')->where('id', $params['clientsdetails']['currency'])->select('rate', 'prefix', 'suffix')->first(); $result = new stdClass(); $this->moneyFormat = $this->loadLang()->Money; $this->moneyFormat->Symbol = $rate->{$this->moneyFormat->Symbol}; if ($params['configoption7'] == 1) { # single org $data = self::getResourcesData($params, $date); if (!$data) { return false; } $data = $data->user_stat; $result->cost = $this->formatAmount($data->total_cost * $rate->rate); $module = new self($params); $module = $module->getObject('VirtualMachine'); foreach ($data->vm_stats as $vm) { $tmp = ['label' => $module->load($vm->virtual_machine_id)->label, 'cost' => $this->formatAmount($vm->total_cost * $rate->rate)]; $result->vms[] = $tmp; } } else { # multiple orgs $tmp = ['configoption1' => $params['configoption1'], 'serverusername' => $params['username'], 'serverpassword' => $params['password'], 'serverhttpprefix' => $params['serverhttpprefix'], 'serverip' => $params['serverip'], 'serverhostname' => $params['serverhostname']]; $module = new self($tmp); $vdcs = $module->getObject('VDCS')->getList(); $result->cost = 0; foreach ($vdcs as $vdc) { $tmp = 0; $stats = $module->getObject('VDCS_Statistics')->getList($vdc->id, $date); foreach ($stats as $stat) { $tmp += $stat->cost; } $result->cost += $tmp; $result->pools[] = ['label' => $vdc->label, 'cost' => $this->formatAmount($tmp * $rate->rate)]; } $result->cost = $this->formatAmount($result->cost * $rate->rate); } return $result; }