<?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;
}
public function totalcalc()
{
$totalCoffe=0;
$totalDocument=0;
$totalRate=0;
$countOfWorker = count($this->workers); for ($i=0; $i<$countOfWorker; $i++) // считает бабло,коффе и документы
{
$rate = $this->workers[$i]->endStavka;
$totalRate = $totalRate + $rate; //выплаченное бабло всем сотрудником
$coffe = $this->workers[$i]->dicrementcoffe;
$totalCoffe = $totalCoffe + $coffe; //всего кофе выпито в департаменте
$document = $this->workers[$i]->mainingDocument;
$totalDocument = $totalDocument + $document;
}
return [$totalRate, $totalCoffe, $totalDocument,$countOfWorker];
}
}
//Департамент продаж: 12×ме1, 6×ма1, 3×ан1, 2×ан2 + руководитель ма2
//Департамент рекламы: 15×ма1, 10×ма2, 8×ме1, 2×ин1 + руководитель ма3
//Департамент логистики: 13×ме1, 5×ме2, 5×ин1 + руководитель ме1
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;
}
class MarketDivision extends Departament
{
public $name = "Рекламы";
public $menedgerA=8;
public $engeenerA=2;
public $marketA=15;
public $marketB=10;
public $marketBoss=3; //Ранг руководителя
public $marketthere_Boss=1;
}
class SellerDivision extends Departament
{ public $name = "Продаж";
public $menedgerA=12;
public $marketA=6;
public $analiticA=3;
public $marketBoss=2; //Ранг руководителя
public $marketthere_Boss=1;
}
class LogisticDivision extends Departament
{ public $name = "Логистики";
public $menedgerA=13;
public $menedgerB=5;
public $engeenerA=5;
public $menedgerBoss=1;
public $menedgerthere_Boss=1;
}
$quest = new ProcurementDivision;
list($quest->totalRate, $quest->totalCoffe, $quest->totalDocument,$quest->countOfWorker)=$quest->totalcalc(); $quest1 = new MarketDivision;
list($quest1->totalRate, $quest1->totalCoffe, $quest1->totalDocument,$quest1->countOfWorker)=$quest1->totalcalc(); $quest2 = new SellerDivision;
list($quest2->totalRate, $quest2->totalCoffe, $quest2->totalDocument,$quest2->countOfWorker)=$quest2->totalcalc(); $quest3 = new LogisticDivision;
list($quest3->totalRate, $quest3->totalCoffe, $quest3->totalDocument,$quest3->countOfWorker)=$quest3->totalcalc();
echo '<html>
<head>
<meta charset="utf-8">
<title>Тег table</title>
</head>
<body>
<table border="1">
<tr>
<th>Департамент</th>
<th>Сотрудников</th>
<th>Тугриков</th>
<th>Кофе</th>
<th>Страниц</th>
<th>Кофе/страниц</th>
</tr>
<tr>
<td> '.$quest->name.' </td>
<td>'.$quest->countOfWorker.'</td>
<td>'.$quest->totalRate.'</td>
<td>'.$quest->totalCoffe.'</td>
<td>'.$quest->totalDocument.'</td>
<td>Ячейка 4</td>
</tr>
<tr>
<td> '.$quest2->name.' </td>
<td>'.$quest2->countOfWorker.'</td>
<td>'.$quest2->totalRate.'</td>
<td>'.$quest2->totalCoffe.'</td>
<td>'.$quest2->totalDocument.'</td>
<td>Ячейка 4</td>
</tr>
<tr>
<td> '.$quest3->name.' </td>
<td>'.$quest3->countOfWorker.'</td>
<td>'.$quest3->totalRate.'</td>
<td>'.$quest3->totalCoffe.'</td>
<td>'.$quest3->totalDocument.'</td>
<td>Ячейка 4</td>
</tr>
<tr>
<td> '.$quest1->name.' </td>
<td>'.$quest1->countOfWorker.'</td>
<td>'.$quest1->totalRate.'</td>
<td>'.$quest1->totalCoffe.'</td>
<td>'.$quest1->totalDocument.'</td>
<td>Ячейка 4</td>
</tr>
</table>
</body>
</html>';