<?php
 
// archive-ipq-co.narod.ru
error_reporting(-1);
 
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>';

