| Current Path : /var/www/v3.cesa.co.za/src/MemberBundle/Services/ |
| Current File : /var/www/v3.cesa.co.za/src/MemberBundle/Services/ADecMemberFirmManager.php |
<?php
namespace App\MemberBundle\Services;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Monolog\Logger;
use App\MemberBundle\Entity\ADecMemberFirm;
/**
* Annual Declaration Member Firm List manager
*
* @author Otto Saayman <otto@igotafrica.com>
* @package MemberBundle
* @subpackage ADecMemberFirm
* @version 0.0.1
*/
final class ADecMemberFirmManager
{
/**
* Service Container
* @var object
*/
private $container = null;
/**
* Entity manager
* @var object
*/
private $em;
/**
* Class construct
*
* @param ContainerInterface $container
* @param Logger $logger
* @return void
*/
public function __construct(
ContainerInterface $container
) {
$this->setContainer($container);
$this->setEm($container->get('doctrine')->getManager('default'));
return;
}
/**
* Get Container
*
* @return ContainerInterface $container
*/
public function getContainer()
{
return $this->container;
}
/**
* Set Container
*
* @param ContainerInterface $container
* @return void
*/
public function setContainer($container)
{
$this->container = $container;
}
/**
* Get Entity Manager
*
* @return string
*/
public function getEm()
{
return $this->em;
}
/**
* Set Container
*
* @param string $em
* @return void
*/
public function setEm($em)
{
$this->em = $em;
}
/**
* Get a Member Firm
*
* @return ADecMemberFirm
*/
public function find($id)
{
if (strlen($id) <= 0) {
return null;
}
return $this->em->getRepository(ADecMemberFirm::class)->find($id);
}
/**
* Get a Member Firm by parameters
*
* @param array $params
* @return ADecMemberFirm
*/
public function findOneBy($params)
{
return $this->em->getRepository(ADecMemberFirm::class)->findOneBy($params);
}
/**
* Get a Member Firm by parameters
*
* @param array $params
* @return array
*/
public function findBy($params)
{
return $this->em->getRepository(ADecMemberFirm::class)->findBy($params);
}
/**
* Get all Member Firms
*
* @return array
*/
public function findAll()
{
return $this->em->getRepository(ADecMemberFirm::class)->findAll();
}
/**
* Get all Member Firm IDs
*
* @return array
*/
public function findAllIds()
{
return $this->em->getRepository(ADecMemberFirm::class)->findAllIds();
}
/**
* Save a Member Firm
*
* @return array
*/
public function getLists(&$return)
{
$years = [];
$memberFirmManager = $this->getContainer()->get('member_firm.manager');
$transformationManager = $this->getContainer()->get('adec_member_firm_transformation.manager');
// $return[date('Y')]['member_list'] = $this->em->getRepository(ADecMemberFirm::class)->getList();
// foreach ($return[date('Y')]['member_list'] as $key => $member) {
// $memberFirm = $memberFirmManager->find($member['id']);
// if (is_object($memberFirm)) {
// $memberTransform = $transformationManager->findOneByArray(array('member_firm' => $memberFirm, 'declaration_year' => date('Y')));
// if (is_array($memberTransform) && count($memberTransform) > 0) {
// $return[date('Y')]['member_list'][$key] = array_merge($return[date('Y')]['member_list'][$key], $memberTransform[0]);
// }
// $memberTransform = null;
// $transformationManager->getEm()->clear();
// }
// $memberFirmManager->getEm()->clear();
// }
// $return[date('Y')]['statistics'] = $memberFirmManager->processStats($return[date('Y')]['member_list']);
for ($yCnt = date('Y'); $yCnt >= 2015; $yCnt--) {
$years[] = $yCnt;
}
foreach ($years as $year) {
$return[$year]['member_list'] = $this->em->getRepository(ADecMemberFirm::class)->getList($year);
// foreach ($return[$year]['member_list'] as $key => $member) {
// // var_dump(array_keys($member));
// // echo count($member) . '<br /><br />';
// // exit;
// $memberFirm = $memberFirmManager->find($member['Prev_FirmID']);
// if (is_object($memberFirm)) {
// $memberTransform = $transformationManager->findOneByArray(array('member_firm' => $memberFirm, 'declaration_year' => $year));
// if (is_array($memberTransform) && count($memberTransform) > 0) {
// $return[$year]['member_list'][$key] = array_merge($return[$year]['member_list'][$key], $memberTransform[0]);
// }
// $memberTransform = null;
// $transformationManager->getEm()->clear();
// }
// $memberFirmManager->getEm()->clear();
// }
// echo count($return[$year]['member_list']) . '<br />';
$return[$year]['statistics'] = $memberFirmManager->processStats($return[$year]['member_list']);
// echo $year . '<br /><br />';
}
return $return;
}
}