<?php

namespace OfficeBrain\Bundle\ServiceGroupBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Validator\Constraints\NotBlank;

class RewardRuleMappingType extends AbstractType
{
    public function __construct(ContainerInterface $container, array $fromAdmin = array())
    {
        $this->container = $container;

        $this->formMode = (isset($fromAdmin ['mode'])) ? $fromAdmin ['mode'] : 'add';
    }

    /**
     * @param FormBuilderInterface $builder
     * @param array                $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $ruleService = $this->container->get('office_brain_service_group_rule_manager');
        $country = $ruleService->getSelectedCultures();

        $builder->add('id', 'hidden', array('required' => false));
        $builder->add('isReward', 'hidden', array('required' => false, 'data' => 1));

        $builder->add('isActive', 'choice', array(
            'required' => false,
            'multiple' => false,
            'choices' => $this->getStatus(),
        ));

        if ($this->formMode == 'add') {
            $builder->add('cultureId', 'choice', array(
                    'empty_value' => false,
                    'label' => 'Culture',
                    'choices' => $country,
                    'required' => false,
                    //'constraints' => array(new NotBlank(array('message' => 'reward_rulemapping.culture.not_blank'))),
                    'expanded' => true,
            ));
        } else {
            $builder->add('cultureId', 'choice', array(
                    'label' => 'Culture',
                    'choices' => $country,
                    'required' => false,
                    'disabled' => true,
                    'empty_value' => false,
                    'multiple' => false,
                    'expanded' => true,
            ));
        }
    }

    /**
     * @return string
     */
    public function getName()
    {
        // return 'office_brain_bundle_servicegroupbundle_servicegroup';
        return 'service_group_data';
    }

    /**
     * @author Employee Id: 4589
     * Description : bind status dropdown
     *
     * @return array
     **/
    public function getStatus()
    {
        return array(1 => 'Active',0 => 'In Active');
    }
}
