<?php

class Formulario extends TRecord
{
    const TABLENAME  = 'formulario';
    const PRIMARYKEY = 'id';
    const IDPOLICY   =  'serial'; // {max, serial}

    

    /**
     * Constructor method
     */
    public function __construct($id = NULL, $callObjectLoad = TRUE)
    {
        parent::__construct($id, $callObjectLoad);
        parent::addAttribute('nome');
        parent::addAttribute('ativo');
        parent::addAttribute('ordem');
            
    }

    /**
     * Method getQuestaos
     */
    public function getQuestaos()
    {
        $criteria = new TCriteria;
        $criteria->add(new TFilter('formulario_id', '=', $this->id));
        return Questao::getObjects( $criteria );
    }
    /**
     * Method getRespostaFormularios
     */
    public function getRespostaFormularios()
    {
        $criteria = new TCriteria;
        $criteria->add(new TFilter('formulario_id', '=', $this->id));
        return RespostaFormulario::getObjects( $criteria );
    }

    public function set_questao_formulario_to_string($questao_formulario_to_string)
    {
        if(is_array($questao_formulario_to_string))
        {
            $values = Formulario::where('id', 'in', $questao_formulario_to_string)->getIndexedArray('nome', 'nome');
            $this->questao_formulario_to_string = implode(', ', $values);
        }
        else
        {
            $this->questao_formulario_to_string = $questao_formulario_to_string;
        }

        $this->vdata['questao_formulario_to_string'] = $this->questao_formulario_to_string;
    }

    public function get_questao_formulario_to_string()
    {
        if(!empty($this->questao_formulario_to_string))
        {
            return $this->questao_formulario_to_string;
        }
    
        $values = Questao::where('formulario_id', '=', $this->id)->getIndexedArray('formulario_id','{formulario->nome}');
        return implode(', ', $values);
    }

    public function set_resposta_formulario_formulario_to_string($resposta_formulario_formulario_to_string)
    {
        if(is_array($resposta_formulario_formulario_to_string))
        {
            $values = Formulario::where('id', 'in', $resposta_formulario_formulario_to_string)->getIndexedArray('nome', 'nome');
            $this->resposta_formulario_formulario_to_string = implode(', ', $values);
        }
        else
        {
            $this->resposta_formulario_formulario_to_string = $resposta_formulario_formulario_to_string;
        }

        $this->vdata['resposta_formulario_formulario_to_string'] = $this->resposta_formulario_formulario_to_string;
    }

    public function get_resposta_formulario_formulario_to_string()
    {
        if(!empty($this->resposta_formulario_formulario_to_string))
        {
            return $this->resposta_formulario_formulario_to_string;
        }
    
        $values = RespostaFormulario::where('formulario_id', '=', $this->id)->getIndexedArray('formulario_id','{formulario->nome}');
        return implode(', ', $values);
    }

    public function set_resposta_formulario_atendimento_to_string($resposta_formulario_atendimento_to_string)
    {
        if(is_array($resposta_formulario_atendimento_to_string))
        {
            $values = Atendimento::where('id', 'in', $resposta_formulario_atendimento_to_string)->getIndexedArray('id', 'id');
            $this->resposta_formulario_atendimento_to_string = implode(', ', $values);
        }
        else
        {
            $this->resposta_formulario_atendimento_to_string = $resposta_formulario_atendimento_to_string;
        }

        $this->vdata['resposta_formulario_atendimento_to_string'] = $this->resposta_formulario_atendimento_to_string;
    }

    public function get_resposta_formulario_atendimento_to_string()
    {
        if(!empty($this->resposta_formulario_atendimento_to_string))
        {
            return $this->resposta_formulario_atendimento_to_string;
        }
    
        $values = RespostaFormulario::where('formulario_id', '=', $this->id)->getIndexedArray('atendimento_id','{atendimento->id}');
        return implode(', ', $values);
    }

    
}

