<?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;
}
}
//Департамент продаж: 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;
}
class Calculator
{ public function keyInfo($quest)
{
//echo "Общая зарплата сотрудника {$quest->workers[2]->endStavka}";
$countOfWorker = count($quest->workers); for ($i=0; $i<$countOfWorker; $i++) // считает бабло,коффе и документы
{
$rate = $quest->workers[$i]->endStavka;
$totalRate= $totalRate+$rate; //выплаченное бабло всем сотрудником
$coffe = $quest->workers[$i]->$dicrementcoffe;
$totalCoffe=$totalCoffe+$coffe;
$document = $quest->workers[$i]->$mainingDocument;
$totalDocument = $totalDocument + $document;
}
echo "всего {$totalRate} выплачено тугриков";
echo "всего {$totalCoffe} выпито кофе";
echo "всего создано {$totalDocument} документа";
}
}
$quest= new ProcurementDivision;
function keyInfo($quest)