<?php
namespace OfficeBrain\Bundle\TaxBundle\Manager\Service;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Translation\Translator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use OfficeBrain\Bundle\TaxBundle\Manager\Extended as TaxManager;

class ShippingTaxService
{
    public static function initFactory($entityManager, $request, $productDetailManager, $twig, $commonLibraryManager,$twigExtension,$userContactBookManager,$coreManager,$session,$paginatorManager)
    {
        $projectSetting = $request->get('project_setting');
        $userId = $projectSetting['user_id'];

        if ($userId>0) {
            $classInstance = new TaxManager\ShippingTaxRegisterExtended($entityManager, $request, $productDetailManager, $twig, $commonLibraryManager,$twigExtension,$userContactBookManager,$coreManager,$session,$paginatorManager);
        } else {
            $classInstance = new TaxManager\ShippingTaxGuestExtended($entityManager, $request, $productDetailManager, $twig, $commonLibraryManager,$twigExtension,$userContactBookManager,$coreManager,$session,$paginatorManager);
        }
        
        unset($userId);
        unset($projectSetting);
        return $classInstance;
    }
}
