<?php
class Agro_View_Helper_MontaQuetionario extends Zend_View_Helper_Abstract {
	
	public function montaQuetionario($questoes, $respostas, $arrayIgnore=false, $preposto=null, $propriedades=null) {
		
		self::montaQuestoes($questoes, $respostas, false, $arrayIgnore, $preposto, $propriedades);
	}
	
	public function montaQuestoes($questoes, $respostas, $parent=false, $arrayIgnore=false, $preposto=null, $propriedades=null) {
		$i = 1;
		
		if ($questoes) {
			foreach ($questoes as $questao) {
				//valida a apresentação da questão de declaração
				//valida se foi passado parametro
				$validaDeclaracaoPreposto = $questao['ds_chave_rn'] == 'QUEST_DECLARACAO_SUBLOGIN' && is_null($preposto) && isset($preposto);
				//valida se foi informado a declaração no login do preposto
				$validaDeclaracaoPreposto = $validaDeclaracaoPreposto || ($questao['ds_chave_rn'] == 'QUEST_DECLARACAO_SUBLOGIN' && (!$preposto['ds_vinculo_declaraco'] || !$preposto['id_prepostos_frase_declaracao']));
				//valida dse foi selecionada a inclusão da declaração na configuração das propriedades
				$validaDeclaracaoPreposto = $validaDeclaracaoPreposto || ($questao['ds_chave_rn'] == 'QUEST_DECLARACAO_SUBLOGIN' && (!$propriedades['PROD_DECLARACAO_SUBLOGIN']));
				
				if (in_array($questao['ds_chave_rn'], $arrayIgnore) || $validaDeclaracaoPreposto){
					continue;
				}
				
				if ($parent) {
					if ($respostas[$parent['ds_chave_rn']] == $questao['ds_parent_value']) {
						$display = '';
					} else {
						$display = 'none';
					}
				} else {
					$display = '';
				}
				
				if (($questao['ds_chave_rn'] == 'QUEST_DECLARACAO_SUBLOGIN')) {
					$frase = $preposto['ds_frase'];
					$frase = str_replace('{X}', $preposto['ds_vinculo_declaraco'], $frase);
					$questao['ds_descricao_atributo'] = $frase;
				}

				echo "<fieldset style='display:$display' class='q-{$questao['ds_chave_rn']}' id='q-{$questao['ds_chave_rn']}'>";
				if($questao['ds_parent_value']){
					echo "<legend>{$questao['ds_descricao_atributo']}</legend>";					
				} else {
					echo "<legend>$i) {$questao['ds_descricao_atributo']}</legend>";
				}

				if ($questao['ds_chave_rn'] == 'QUEST_LOCALIZACAO_TALHAO') {
					echo "<span style='font-size:10px; display:block;margin-bottom:5px;'>
						“Estas informações são <b>relevantes</b> para a <b>aceitação</b> e <b>precificação</b> (art. 44 da Lei 15.040/24). <b>Omissões ou inexatidões</b> podem implicar <b>recusa da proposta</b>, <b>revisão de condições</b> ou outras medidas previstas em lei e no contrato.” 
					</span>";
				}

				/*
				 * Se a pergunta for relativo ao quest QUEST_PRODUTIVIDADE_DECLARADA (e não tiver resposta ainda) marca default = 'Sim'
				 * Se a pergunta for relativo ao quest QUEST_ENQUADRADO_PRONAMP (e não tiver resposta ainda) marca default = 'Não'
				 * Se a pergunta for relativo ao quest QUEST_PRODUTOR_ORGANICO (e não tiver resposta ainda) marca default = 'Não'
				 */
				if (!$respostas[$questao['ds_chave_rn']] && ($questao['ds_chave_rn'] == 'QUEST_PRODUTIVIDADE_DECLARADA')) {
					echo Agro_Util::montaElemento($questao, 1);
				} elseif (!$respostas[$questao['ds_chave_rn']] && ($questao['ds_chave_rn'] == 'QUEST_ENQUADRADO_PRONAMP')) {
					echo Agro_Util::montaElemento($questao, 0);
				} elseif (!$respostas[$questao['ds_chave_rn']] && ($questao['ds_chave_rn'] == 'QUEST_PRODUTOR_ORGANICO')) {
					echo Agro_Util::montaElemento($questao, 0);
				} elseif (!$respostas[$questao['ds_chave_rn']] && ($questao['ds_chave_rn'] == 'QUEST_ENQUADRADO_PIN')) {
					echo Agro_Util::montaElemento($questao, 0);
				} else {
					echo Agro_Util::montaElemento($questao, $respostas[$questao['ds_chave_rn']]);
				}
				
				if (count($questao['ds_chave_rn'])) {
					self::montaQuestoes($questao['chields'], $respostas, $questao);
				}
				
				echo "</fieldset>";
				
				$i++;
			}
		}
	}
}