HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/MdnDirecteur/hours.komma.cloud/app/Komma/Companies/CompanyService.php
<?php

namespace App\Komma\Companies;


use App\Komma\Projects\ProjectService;

class CompanyService
{

    private $companyRepository;
    private $projectService;

    public function __construct(CompanyRepository $companyRepository, ProjectService $projectService)
    {
        $this->companyRepository = $companyRepository;
        $this->projectService = $projectService;
    }


    /**
     * @param $action
     * @param $search
     * @return mixed
     */
    public function action($action, $search)
    {
        //total objects per page
        $paginate = 8;

        // Load companies with all relations
        $companies = $this->companyRepository->allCompanies($search);

        // Get all companies
        if ($action == "all") {
            return $companies->withTrashed()->paginate($paginate);
        } // Get all deleted companies
        elseif ($action == "deleted") {
            return $companies->onlyTrashed()->paginate($paginate);
        } // Get all companies
        else {
            return $companies->paginate($paginate);
        }

    }


    /**
     * @param $company
     * @param $budgets
     * @return number
     */
    public function getCompanyInformation($company, $budgets)
    {
        //make empty arrays
        $volume = [];
        $meanHourlyRate = [];
        //make empty counter
        $i = 1;

        //if company has projects
        if (count($company->Projects)) {
            //create integer
            $i = 0;
            //loop trough projects
            foreach ($company->Projects as $index => $project) {

                //put volume (omzet) of project in array
                $volume[] = intval($budgets[$index]->projectHours['totalHours']) * $project->hourly_rate;
                //put mean hourly rate in array
                $meanHourlyRate[] = $project->hourly_rate;
                $i++;
            }
        }
        //sum all arrays
        $volume = array_sum($volume);
        $meanHourlyRate = array_sum($meanHourlyRate) / $i;
        
        //return
        return compact('meanHourlyRate', 'volume');
    }

    /**
     * @return array
     */
    public function getCountCompanies()
    {
        //get all projects
        $companies = $this->companyRepository->allCompanies('');

        //count all projects
        $countAll = $companies->withTrashed()->count();
        //count all deleted projects
        $countDeleted = $companies->onlyTrashed()->count();
        //count all active projects
        $countActive = $countAll-$countDeleted;

        return compact('countAll', 'countActive', 'countDeleted');

    }
}