<?php
// archive-ipq-co.narod.ru
abstract class Worker
{
public $rang; // Ранг сотрудника 1-3
public $dicrementcoffe; // выжрано кофе
public $stavka; // начальная ставка
public $mainingDocument; // Произвел документов
public $endStavka; // окончательная ставка, вычисляется через функцию EndStavka
public $boss = false; // является ли сотрудник начальником
public function __construct(){$this->endStavka=$this->getendStavka();}
public function getendStavka()
{ $percent=1;
if ($this->rang==2)
{
$percent=1.25;
}
elseif ($this->rang==3)
{
$percent=1.5;
}
else
{
$percent=1;
}
$endStavkaB = $this->stavka * $percent;
if ($this->boss)
{
$endStavkaB *= 1.5;
}
return $endStavkaB;
}
}
class Menedger extends Worker
{
public $dicrementcoffe = 20;
public $stavka = 500;
public $mainingDocument = 200;
}
class Market extends Worker
{
public $dicrementcoffe = 15;
public $stavka = 400;
public $mainingDocument = 150;
}
class Engeener extends Worker
{
public $dicrementcoffe = 5;
public $stavka = 200;
public $mainingDocument = 50;
}
class Analitic extends Worker
{
public $dicrementcoffe = 50;
public $stavka = 800;
public $mainingDocument = 5;
}
class Departament // возвращает массив с работниками в каждом департаменте
{
public $name;
public $workers;
public $menedgerA; //1 rang
public $menedgerB; //2 rang
public $menedgerC; //3 rang
public $menedgerBoss;
public $menedgerthere_Boss=0;//Руководитель
// инженеры
public $engeenerA; //1 rang
public $engeenerB; //2 rang
public $engeenerC; //3 rang
public $engeenerBoss;
public $engeenerthere_Boss=0;//Руководитель
//маркетологи
public $marketA;//1 rang
public $marketB;//2 rang
public $marketC;//3 rang
public $marketBoss;
public $marketthere_Boss=0;//Руководитель (его ранг)
//аналитики
public $analiticA; //1 rang
public $analiticB; //2 rang
public $analiticC; //3 rang
public $analiticBoss;
public $analiticthere_Boss=0;
public function __construct(){$this->workers=$this->quantityWorker();}
public function quantityWorker () // Возвращает массив с сотрудниками
{
for ($i=0; $i<$this->menedgerA; $i++) // заносим в массив менеджеров 1й ранг
{
$w = new Menedger;
$w->rang = 1;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->menedgerB; $i++) // заносим в массив менеджеров 2й ранг
{
$w = new Menedger;
$w->rang = 2;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->menedgerC; $i++) // заносим в массив менеджеров 1й ранг
{
$w = new Menedger;
$w->rang = 3;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->menedgerthere_Boss; $i++) // заносим в массив менеджеров руководителей
{
$w = new Menedger;
$w->rang = $this->menedgerBoss;
$w->boss = true;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->engeenerA; $i++) // заносим в массив инженеров 1й ранг
{
$w = new Engeener;
$w->rang = 1;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->engeenerB; $i++) // заносим в массив инжей 2й ранг
{
$w = new Engeener;
$w->rang = 2;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->engeenerC; $i++) // заносим в массив инжей 3й ранг
{
$w = new Engeener;
$w->rang = 3;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->engeenerthere_Boss; $i++) // заносим в массив инжей боссов
{
$w = new Engeener;
$w->rang =$this->engeenerBoss;
$w->boss = true;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->marketA; $i++) // заносим в массив маркетологов 1
{
$w = new Market;
$w->rang = 1;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->marketB; $i++) // заносим в массив маркетологов 2
{
$w = new Market;
$w->rang = 2;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->marketC; $i++) // заносим в массив мfhrtnjkjujd 3
{ $w = new Market;
$w->rang = 3;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->marketthere_Boss; $i++) // заносим в массив Boss Market
{
$w = new Market;
$w->rang =$this->marketBoss;
$w->boss = true;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->analiticA; $i++) // заносим в массив Analitic 1
{
$w = new Analitic;
$w->rang = 1;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->analiticB; $i++) // заносим в массив Analitic 2
{
$w = new Analitic;
$w->rang = 2;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}for ($i=0; $i<$this->analiticC; $i++) // Analitic 3
{
$w = new Analitic;
$w->rang = 3;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
for ($i=0; $i<$this->analiticthere_Boss; $i++) // Analitic BoSS
{
$w = new Analitic;
$w->rang = $this->analiticBoss;
$w->boss = true;
$w->getendStavka();
$w->__construct();
$workers[] = $w;
}
return $workers;
}
}
class ProcurementDivision extends Departament
{
public $name = "Закупок";
public $menedgerA=9;
public $menedgerB=3;
public $menedgerC=2;
public $marketA=2;
public $menedgerBoss=2; //Ранг руководителя
public $menedgerthere_Boss=1;
}
$quest = new ProcurementDivision;
$countOfWorker = count($quest->workers); echo "всего {$countOfWorker} сотрудников";
foreach ($quest->workers->w as $w->endStavka = $value)
{
$wotkerRate+=$value;
}
echo "Общая зарплата {$wotkerRate}";