Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/ContentBundle/Services/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/ContentBundle/Services/FormItemCompletedManager.php

<?php

namespace App\ContentBundle\Services;

use Symfony\Component\DependencyInjection\ContainerInterface;
use Monolog\Logger;
use App\ContentBundle\Entity\FormItemCompleted;
use App\ContentBundle\Entity\FormCompleted;

/**
 * Form Item Completed manager
 *
 * @author Otto Saayman <otto@igotafrica.com>
 * @package ContentBundle
 * @subpackage FormItemCompleted
 * @version 0.0.1
 */
final class FormItemCompletedManager {

    /**
     * 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 completed form
     *
     * @param string $id
     * @return FormCompleted
     */
    public function find($id) {
        return $this->getEm()->getRepository(FormCompletedItem::class)->find($id);
    }

    /**
     * Get a completed form item
     *
     * @param array $params
     * @return FormItemCompleted
     */
    public function findOneBy($params) {
        return $this->getEm()->getRepository(FormItemCompleted::class)->findOneBy($params);
    }

    /**
     * Get a completed form items list
     *
     * @param array $params
     * @return array
     */
    public function findBy($params, $orderBy = array()) {
        return $this->getEm()->getRepository(FormItemCompleted::class)->findBy($params, $orderBy);
    }

    /**
     * Get a completed form items list ordered
     *
     * @param array $params
     * @return array
     */
    public function findByFormCompleted(FormCompleted $formCompleted, $dataFieldsOnly = false) {

        if ($dataFieldsOnly) {

            $systemSettingManager = $this->getContainer()->get('system_setting.manager');

            $excludeFormItemTypes = array(
                $systemSettingManager->getSetting('heading_form_item_type'),
            );
        } else {
            $excludeFormItemTypes = array();
        }

        return $this->getEm()->getRepository(FormItemCompleted::class)->findByFormCompleted($formCompleted, $excludeFormItemTypes);
    }

    /**
     * Save completed form completed item object
     *
     * @param FormItemCompleted $formItemCompleted
     * @return void
     */
    public function save(FormItemCompleted &$formItemCompleted) {
        $this->getEm()->persist($formItemCompleted);
        $this->getEm()->flush();
    }

    /**
     * Get value
     *
     * @param FormCompletedItem $formCompletedItem
     * @return string
     */
    public function getValueString($formCompletedItem) {

        $systemSettingManager = $this->getContainer()->get('system_setting.manager');
        $return = '';

        $value = $formCompletedItem->getValueString();

        if ($systemSettingManager->getSetting('dealership_form_item_type') == $formCompletedItem->getFormItem()->getFormItemType()->getId() ||
                $systemSettingManager->getSetting('dealership_prepop_form_item_type') == $formCompletedItem->getFormItem()->getFormItemType()->getId()) {

            if (is_array($value)) {
                foreach ($value as $valueOne) {

                    if (strlen($return) > 0) {
                        $return .= ' ';
                    }

                    $company = $this->getContainer()->get('companies.manager')->find($valueOne);

                    if (is_object($company)) {
                        $return .= $company->getName();
                    }
                }
            } else {
                $company = $this->getContainer()->get('companies.manager')->find($formCompletedItem->getValueString());

                if (is_object($company)) {
                    $return = $company->getName();
                }
            }
        } elseif ($systemSettingManager->getSetting('position_form_item_type') == $formCompletedItem->getFormItem()->getFormItemType()->getId()) {

            $userTypeTypes = $this->getContainer()->get('user_type_types.manager')->find(trim($formCompletedItem->getValueString()));

            if (is_object($userTypeTypes)) {
                $return = $userTypeTypes->getUserTypeTypeString();
            }
        } else {

            if (is_array($value)) {
                foreach ($value as $valueOne) {

                    if (strlen($return) > 0) {
                        $return .= ' ';
                    }

                    $return .= $valueOne;
                }
            } else {
                $return = $value;
            }
        }

        return $return;
    }
}