Example #1
0
 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;
 }