			<?php
/**
 * Model
 *
 * Laudo final Tipo LF023 / Safra15 - Trigo/Cevada/Aveia/Triticale/Centeio - Granizo
 *
 * @author Samir Ortiz
 * @date 26/09/2012
 *
 */
class Safra15_Model_Lf023ItensSeguradosAmostras extends Agro_Db_Table_Abstract {
	protected $_schema 	= 'safra15';
	protected $_name 	= 'lf023_itens_segurados_amostras';
	protected $_primary = 'id';
	public 	  $_order 	= 'nr_amostra';

	public function save($dados) {
		$ModelIS = new Safra15_Model_Lf023ItensSegurados();

		$dados = $this->prepararDados($dados);

		if ($this->validar($dados)){

			$dados = $this->calcular($dados);

			$dados["id_laudo_final_item_segurado"] = $ModelIS->save($dados);

			if ($dados["id_laudo_final_item_segurado"]){
				try {
					$this->delete($dados["id_laudo_final_item_segurado"], "id_laudo_final_item_segurado");

					foreach ($dados["amostras"] as $key => $amostra) {
						$amostra["nr_amostra"] = $key;
						$amostra["id_laudo_final_item_segurado"] = $dados["id_laudo_final_item_segurado"];

						$this->insert($amostra);
					}

					$this->setMessage("Laudo salvo com sucesso.");

					return $dados["id_laudo_final_item_segurado"];

				} catch (Exception $e) {
					$this->setMessage($e->getMessage());
					return false;
				}
			} else {
				$this->setMessage($ModelIS->getMessages());
				return false;
			}
		}
	}

	public function validar($dados){
		$messages = array();

		if(count($dados['amostras']) < 1){
			$messages[] = "Preencha ao menos uma amostra.";
		}

		foreach($dados['amostras'] as $chave => $valor){
			if($valor['populacao_stand_inicial'] < $valor['populacao_plantas_destruidas']){
				$messages[] = "O valor de Plantas Destruídas não pode ser maior que o Stand Inicial - Amostra ".$chave;
			}
		}

		if($dados['vl_area'] < $dados['vl_ha_area_afetada']){
			$messages[] = "Tamanho da área afetada não pode ultrapassar a área total.";
		}


		if (count($messages)){
			$this->setMessage("Os itens citados abaixo são de preenchimento obrigatório:<ul><li>".implode("</li><li>", $messages)."</li></ul>");
			return false;

		} else {
			return true;
		}
	}


	public function calcular($dados){

		for ($i = 1; $i < 11; $i++) {
			if($dados['amostras'][$i]['vl_stand_perda_dano'] != null){
				//stand
				$somaStandPerdaDano += $dados['amostras'][$i]['vl_stand_perda_dano'];
				$qtdStand += 1;
			}

			if($dados['amostras'][$i]['vl_panicula_perda_dano'] != null){
				//paniculas
				$somaPaniculaPerdaDano 	+= $dados['amostras'][$i]['vl_panicula_perda_dano'];
				$qtdPanicula += 1;
			}

			if($dados['amostras'][$i]['vl_colmo_perda_dano'] != null){
				//colmo
				$somaColmoPerdaDano += $dados['amostras'][$i]['vl_colmo_perda_dano'];
				$qtdColmo += 1;
			}

			if($dados['amostras'][$i]['vl_desfolhamento_perda_dano'] != null){
				//desfolhamento
 				$somaDesfolhamentoPerdaDano	+= $dados['amostras'][$i]['vl_desfolhamento_perda_dano'];
 				$qtdDesfolhamento += 1;
			}

		}

		//área afetada
		$dados['vl_percent_area_afetada'] = (($dados['vl_ha_area_afetada']/$dados['vl_area'])*100);
		$dados['vl_ha_area_afetada'] = $dados['vl_ha_area_afetada'];

		//médias

		$dados['vl_media_stand_perda'] = $qtdStand ? ($somaStandPerdaDano/$qtdStand) : null;
		$dados['vl_media_panicula_perda'] = $qtdPanicula ? ($somaPaniculaPerdaDano/$qtdPanicula) : null;
		$dados['vl_media_colmo_perda'] = $qtdColmo ? ($somaColmoPerdaDano/$qtdColmo) : null;
		$dados['vl_media_desfolhamento_perda'] = $qtdDesfolhamento ? ($somaDesfolhamentoPerdaDano/$qtdDesfolhamento) : null;

		//$dados['vl_percent_total_perda_final'] = ($dados['vl_media_stand_perda']/100+((1-($dados['vl_media_stand_perda']/100))*($dados['vl_media_espiga_perda']/100))+((1-$dados['vl_media_stand_perda']/100)*(1-($dados['vl_media_espiga_perda']/100)) * $dados['vl_media_colmo_perda']/100)+((1-($dados['vl_media_stand_perda']/100))*(1-($dados['vl_media_espiga_perda']/100))*(1-($dados['vl_media_colmo_perda']/100))*($dados['vl_media_desfolhamento_perda']/100)))*100;
		$pStand = $dados['vl_media_stand_perda']/100;
		$pPanicula = $dados['vl_media_panicula_perda']/100;
		$pColmo = $dados['vl_media_colmo_perda']/100;
		$pDesfolhamento = $dados['vl_media_desfolhamento_perda']/100;

		$dados['vl_percent_total_perda_final'] = number_format(100*round($pStand + ((1-$pStand) * $pPanicula) + (((1-$pStand) * (1-$pPanicula) * $pColmo) + (((1-$pStand) * (1-$pPanicula) * (1-$pColmo) * $pDesfolhamento))),4), 2, '.','');

		return $dados;
	}


	public function prepararDados($dados){

		$return = array();

		$return["id_laudo_final"] 						= $dados["id_laudo_final"];
    	$return["id_vistoria"] 							= $dados["id_vistoria"];
    	$return["id_cobertura"] 						= $dados["id_cobertura"];
    	$return["fl_vistoria_preliminar"] 				= $dados["fl_vistoria_preliminar"];
	    $return["id_item_segurado"] 					= $dados["id_item_segurado"];
	    $return["id_proposta"] 							= $dados["id_proposta"];
	    $return["id_processo"]							= $dados["id_processo"];
	    $return["fl_nao_vistoriada"] 					= $dados["fl_nao_vistoriada"];
	    $return["id_motivo_quadra_nao_vistoriada"] 		= $dados["id_motivo_quadra_nao_vistoriada"];
	    $return["id_laudo_final_item_segurado"]	 		= $dados["id_laudo_final_item_segurado"];
	    $return["fl_avalia_danos_anteriores"] 			= $dados["fl_avalia_danos_anteriores"];
	    $return["vl_percent_colhido"] 					= $dados["vl_percent_colhido"];
	    $return["ds_coordenadas_geograficas"] 			= $dados["ds_coordenadas_geograficas"];
	    $return["fl_assinatura_segurado"] 				= $dados["fl_assinatura_segurado"];
	    $return["ds_observacao_assinatura_segurado"]	= $dados["ds_observacao_assinatura_segurado"];
    	$return["fl_assinatura_regulador"] 				= $dados["fl_assinatura_regulador"];
	    $return["ds_observacao_assinatura_regulador"]	= $dados["ds_observacao_assinatura_regulador"];
	    $return["ds_observacao"]						= $dados["ds_observacao"];
	    $return["dt_vistoria_data"] 					= $dados["dt_vistoria_data"];
	    $return["dt_vistoria_hora"] 					= $dados["dt_vistoria_hora"];
	    $return["dt_vistoria_minutos"] 					= $dados["dt_vistoria_minutos"];
	    $return["dt_vistoria"] 							= Agro_Util::joinDtVistoria($dados["dt_vistoria_data"], $dados["dt_vistoria_hora"], $dados["dt_vistoria_minutos"]);
	    $return["vistoriadores"] 						= $dados["vistoriadores"];
		$return['id_estadio_fenologico'] 				= $dados['id_estadio_fenologico'];
		$return['vl_percent_area_afetada'] 				= $dados['vl_percent_area_afetada'];
		$return['vl_ha_area_afetada'] 					= $dados['vl_ha_area_afetada'];
		$return['vl_area'] 								= $dados['vl_area'];

		$return["amostras"] = array();

		for ($i = 1; $i < 11; $i++) {
			if($dados["vl_stand-".$i] != null || $dados["vl_stand_perda-".$i] != null || $dados["vl_stand_perda_dano-".$i] != null || $dados["vl_panicula_perda_dano-".$i] != null || $dados["vl_colmo_perda-".$i] != null || $dados["vl_colmo_perda_dano-".$i] != null || $dados["vl_desfolhamento_perda_dano-".$i] != null){
				$return["amostras"][$i] = array(
					"vl_stand" 				      => ($dados["vl_stand-".$i] ? $dados["vl_stand-".$i] : null),
					"vl_stand_perda" 	          => ($dados["vl_stand_perda-".$i] ? $dados["vl_stand_perda-".$i] : null),
					"vl_stand_perda_dano" 	      => ($dados["vl_stand_perda_dano-".$i] ? $dados["vl_stand_perda_dano-".$i] : null),
					"vl_panicula_perda_dano"      => ($dados["vl_panicula_perda_dano-".$i] ? $dados["vl_panicula_perda_dano-".$i] : null),
					"vl_colmo_perda" 	          => ($dados["vl_colmo_perda-".$i] ? $dados["vl_colmo_perda-".$i] : null),
					"vl_colmo_perda_dano" 	      => ($dados["vl_colmo_perda_dano-".$i] ? $dados["vl_colmo_perda_dano-".$i] : null),
					"vl_desfolhamento_perda" 	  => ($dados["vl_desfolhamento_perda-".$i] ? $dados["vl_desfolhamento_perda-".$i] : null),
					"vl_desfolhamento_perda_dano" => ($dados["vl_desfolhamento_perda_dano-".$i] ? $dados["vl_desfolhamento_perda_dano-".$i] : null),
				);
			}
		}

		return $return;
	}


	public function calculaDanoColmos($idEstadio, $dano){
		if($dano < 5){
			$dano = 0;

		}else if($dano <= 7.5){
			switch($idEstadio){
				case 80:
					$dano = 4;
					break;
				case 81:
					$dano = 3;
					break;
				case 82:
					$dano = 2;
					break;
				case 83:
					$dano = 1;
					break;
				case 149:
					$dano = 0;
					break;
				case 84:
					$dano = 0;
					break;
			}

		}else if($dano <= 12.5){
					switch($idEstadio){
				case 80:
					$dano = 8;
					break;
				case 81:
					$dano = 6;
					break;
				case 82:
					$dano = 4;
					break;
				case 83:
					$dano = 3;
					break;
				case 149:
					$dano = 2;
					break;
				case 84:
					$dano = 1;
					break;
			}
		}else if($dano <= 17.5){
					switch($idEstadio){
				case 80:
					$dano = 12;
					break;
				case 81:
					$dano = 9;
					break;
				case 82:
					$dano = 6;
					break;
				case 83:
					$dano = 4;
					break;
				case 149:
					$dano = 3;
					break;
				case 84:
					$dano = 1;
					break;
			}
		}else if($dano <= 22.5){
					switch($idEstadio){
				case 80:
					$dano = 16;
					break;
				case 81:
					$dano = 12;
					break;
				case 82:
					$dano = 8;
					break;
				case 83:
					$dano = 6;
					break;
				case 149:
					$dano = 4;
					break;
				case 84:
					$dano = 2;
					break;
			}
		}else if($dano <= 27.5){
					switch($idEstadio){
				case 80:
					$dano = 20;
					break;
				case 81:
					$dano = 15;
					break;
				case 82:
					$dano = 10;
					break;
				case 83:
					$dano = 7;
					break;
				case 149:
					$dano = 5;
					break;
				case 84:
					$dano = 2;
					break;
			}
		}else if($dano <= 32.5){
					switch($idEstadio){
				case 80:
					$dano = 24;
					break;
				case 81:
					$dano = 18;
					break;
				case 82:
					$dano = 12;
					break;
				case 83:
					$dano = 9;
					break;
				case 149:
					$dano = 6;
					break;
				case 84:
					$dano = 3;
					break;
			}
		}else if($dano <= 37.5){
					switch($idEstadio){
				case 80:
					$dano = 28;
					break;
				case 81:
					$dano = 21;
					break;
				case 82:
					$dano = 14;
					break;
				case 83:
					$dano = 10;
					break;
				case 149:
					$dano = 7;
					break;
				case 84:
					$dano = 3;
					break;
			}

		}else if($dano <= 42.5){
					switch($idEstadio){
				case 80:
					$dano = 32;
					break;
				case 81:
					$dano = 24;
					break;
				case 82:
					$dano = 16;
					break;
				case 83:
					$dano = 12;
					break;
				case 149:
					$dano = 8;
					break;
				case 84:
					$dano = 4;
					break;
			}
		}else if($dano <= 47.5){
					switch($idEstadio){
				case 80:
					$dano = 36;
					break;
				case 81:
					$dano = 27;
					break;
				case 82:
					$dano = 18;
					break;
				case 83:
					$dano = 13;
					break;
				case 149:
					$dano = 9;
					break;
				case 84:
					$dano = 4;
					break;
			}
		}else if($dano <= 52.5){
					switch($idEstadio){
				case 80:
					$dano = 40;
					break;
				case 81:
					$dano = 30;
					break;
				case 82:
					$dano = 20;
					break;
				case 83:
					$dano = 15;
					break;
				case 149:
					$dano = 10;
					break;
				case 84:
					$dano = 5;
					break;
			}
		}else if($dano <= 57.5){
					switch($idEstadio){
				case 80:
					$dano = 44;
					break;
				case 81:
					$dano = 33;
					break;
				case 82:
					$dano = 22;
					break;
				case 83:
					$dano = 16;
					break;
				case 149:
					$dano = 11;
					break;
				case 84:
					$dano = 5;
					break;
			}
		}else if($dano <= 62.5){
					switch($idEstadio){
				case 80:
					$dano = 48;
					break;
				case 81:
					$dano = 36;
					break;
				case 82:
					$dano = 24;
					break;
				case 83:
					$dano = 18;
					break;
				case 149:
					$dano = 12;
					break;
				case 84:
					$dano = 6;
					break;
			}
		}else if($dano <= 67.5){
					switch($idEstadio){
				case 80:
					$dano = 52;
					break;
				case 81:
					$dano = 39;
					break;
				case 82:
					$dano = 26;
					break;
				case 83:
					$dano = 19;
					break;
				case 149:
					$dano = 13;
					break;
				case 84:
					$dano = 6;
					break;
			}
		}else if($dano <= 72.5){
					switch($idEstadio){
				case 80:
					$dano = 56;
					break;
				case 81:
					$dano = 42;
					break;
				case 82:
					$dano = 28;
					break;
				case 83:
					$dano = 21;
					break;
				case 149:
					$dano = 14;
					break;
				case 84:
					$dano = 7;
					break;
			}
		}else if($dano <= 77.5){
					switch($idEstadio){
				case 80:
					$dano = 60;
					break;
				case 81:
					$dano = 45;
					break;
				case 82:
					$dano = 30;
					break;
				case 83:
					$dano = 22;
					break;
				case 149:
					$dano = 15;
					break;
				case 84:
					$dano = 7;
					break;
			}
		}else if($dano <= 82.5){
					switch($idEstadio){
				case 80:
					$dano = 64;
					break;
				case 81:
					$dano = 48;
					break;
				case 82:
					$dano = 32;
					break;
				case 83:
					$dano = 24;
					break;
				case 149:
					$dano = 16;
					break;
				case 84:
					$dano = 8;
					break;
			}
		}else if($dano <= 87.5){
					switch($idEstadio){
				case 80:
					$dano = 68;
					break;
				case 81:
					$dano = 51;
					break;
				case 82:
					$dano = 34;
					break;
				case 83:
					$dano = 25;
					break;
				case 149:
					$dano = 17;
					break;
				case 84:
					$dano = 8;
					break;
			}
		}else if($dano <= 92.5){
					switch($idEstadio){
				case 80:
					$dano = 72;
					break;
				case 81:
					$dano = 54;
					break;
				case 82:
					$dano = 36;
					break;
				case 83:
					$dano = 27;
					break;
				case 149:
					$dano = 18;
					break;
				case 84:
					$dano = 9;
					break;
			}
		}else if($dano <= 97.5){
					switch($idEstadio){
				case 80:
					$dano = 76;
					break;
				case 81:
					$dano = 57;
					break;
				case 82:
					$dano = 38;
					break;
				case 83:
					$dano = 28;
					break;
				case 149:
					$dano = 19;
					break;
				case 84:
					$dano = 9;
					break;
			}
		}else if($dano <= 100){
			switch($idEstadio){
				case 80:
					$dano = 80;
					break;
				case 81:
					$dano = 60;
					break;
				case 82:
					$dano = 40;
					break;
				case 83:
					$dano = 30;
					break;
				case 149:
					$dano = 20;
					break;
				case 84:
					$dano = 10;
					break;
			}
		}

		return $dano;
	}


	public function calculaDesfolhamento($idEstadio, $dano){
		if($dano < 5){
			$dano = 0;

		}else if($dano <= 7.5){
			switch($idEstadio){
				case 80:
					$dano = 3;
					break;
				case 81:
					$dano = 2;
					break;
				case 82:
					$dano = 1;
					break;
				case 83:
					$dano = 0;
					break;
				case 149:
					$dano = 0;
					break;
				case 84:
					$dano = 0;
					break;
			}

		}else if($dano <= 12.5){
					switch($idEstadio){
				case 80:
					$dano = 6;
					break;
				case 81:
					$dano = 4;
					break;
				case 82:
					$dano = 3;
					break;
				case 83:
					$dano = 2;
					break;
				case 149:
					$dano = 1;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 17.5){
					switch($idEstadio){
				case 80:
					$dano = 9;
					break;
				case 81:
					$dano = 6;
					break;
				case 82:
					$dano = 4;
					break;
				case 83:
					$dano = 3;
					break;
				case 149:
					$dano = 1;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 22.5){
					switch($idEstadio){
				case 80:
					$dano = 12;
					break;
				case 81:
					$dano = 8;
					break;
				case 82:
					$dano = 6;
					break;
				case 83:
					$dano = 4;
					break;
				case 149:
					$dano = 2;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 27.5){
					switch($idEstadio){
				case 80:
					$dano = 15;
					break;
				case 81:
					$dano = 10;
					break;
				case 82:
					$dano = 7;
					break;
				case 83:
					$dano = 5;
					break;
				case 149:
					$dano = 2;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 32.5){
					switch($idEstadio){
				case 80:
					$dano = 18;
					break;
				case 81:
					$dano = 12;
					break;
				case 82:
					$dano = 9;
					break;
				case 83:
					$dano = 6;
					break;
				case 149:
					$dano = 3;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 37.5){
					switch($idEstadio){
				case 80:
					$dano = 21;
					break;
				case 81:
					$dano = 14;
					break;
				case 82:
					$dano = 10;
					break;
				case 83:
					$dano = 7;
					break;
				case 149:
					$dano = 3;
					break;
				case 84:
					$dano = 0;
					break;
			}

		}else if($dano <= 42.5){
					switch($idEstadio){
				case 80:
					$dano = 24;
					break;
				case 81:
					$dano = 16;
					break;
				case 82:
					$dano = 12;
					break;
				case 83:
					$dano = 8;
					break;
				case 149:
					$dano = 4;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 47.5){
					switch($idEstadio){
				case 80:
					$dano = 27;
					break;
				case 81:
					$dano = 19;
					break;
				case 82:
					$dano = 13;
					break;
				case 83:
					$dano = 9;
					break;
				case 149:
					$dano = 4;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 52.5){
					switch($idEstadio){
				case 80:
					$dano = 30;
					break;
				case 81:
					$dano = 20;
					break;
				case 82:
					$dano = 15;
					break;
				case 83:
					$dano = 10;
					break;
				case 149:
					$dano = 5;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 57.5){
					switch($idEstadio){
				case 80:
					$dano = 33;
					break;
				case 81:
					$dano = 22;
					break;
				case 82:
					$dano = 16;
					break;
				case 83:
					$dano = 11;
					break;
				case 149:
					$dano = 5;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 62.5){
					switch($idEstadio){
				case 80:
					$dano = 36;
					break;
				case 81:
					$dano = 24;
					break;
				case 82:
					$dano = 18;
					break;
				case 83:
					$dano = 12;
					break;
				case 149:
					$dano = 6;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 67.5){
					switch($idEstadio){
				case 80:
					$dano = 39;
					break;
				case 81:
					$dano = 26;
					break;
				case 82:
					$dano = 19;
					break;
				case 83:
					$dano = 13;
					break;
				case 149:
					$dano = 6;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 72.5){
					switch($idEstadio){
				case 80:
					$dano = 42;
					break;
				case 81:
					$dano = 28;
					break;
				case 82:
					$dano = 21;
					break;
				case 83:
					$dano = 14;
					break;
				case 149:
					$dano = 7;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 77.5){
					switch($idEstadio){
				case 80:
					$dano = 45;
					break;
				case 81:
					$dano = 30;
					break;
				case 82:
					$dano = 22;
					break;
				case 83:
					$dano = 15;
					break;
				case 149:
					$dano = 7;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 82.5){
					switch($idEstadio){
				case 80:
					$dano = 48;
					break;
				case 81:
					$dano = 32;
					break;
				case 82:
					$dano = 24;
					break;
				case 83:
					$dano = 16;
					break;
				case 149:
					$dano = 8;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 87.5){
					switch($idEstadio){
				case 80:
					$dano = 51;
					break;
				case 81:
					$dano = 34;
					break;
				case 82:
					$dano = 25;
					break;
				case 83:
					$dano = 17;
					break;
				case 149:
					$dano = 8;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 92.5){
					switch($idEstadio){
				case 80:
					$dano = 54;
					break;
				case 81:
					$dano = 36;
					break;
				case 82:
					$dano = 27;
					break;
				case 83:
					$dano = 18;
					break;
				case 149:
					$dano = 9;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 97.5){
					switch($idEstadio){
				case 80:
					$dano = 57;
					break;
				case 81:
					$dano = 38;
					break;
				case 82:
					$dano = 28;
					break;
				case 83:
					$dano = 19;
					break;
				case 149:
					$dano = 9;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}else if($dano <= 100){
			switch($idEstadio){
				case 80:
					$dano = 60;
					break;
				case 81:
					$dano = 40;
					break;
				case 82:
					$dano = 30;
					break;
				case 83:
					$dano = 20;
					break;
				case 149:
					$dano = 10;
					break;
				case 84:
					$dano = 0;
					break;
			}
		}

		return $dano;
	}


	public function get($idLaudoFinalItemSegurado){
	 	$ModelLfIS = new Sinistro_Model_LaudosFinaisItensSegurados();
		$ModelIS = new Seguro_Model_ItensSegurados();

		/*
		 * Busca dados globais
		 */
		$dados = $ModelLfIS->getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado);

		/*
		 * Busca dados especialização
		 */
		if (!$dados['fl_nao_vistoriada']) {
    		$select = $this->select()->setIntegrityCheck(false);
            $select->from(array("lfisX" => "$this->_schema.lf023_itens_segurados") , array('vl_percent_total_perda_final',
            																			   'vl_media_stand_perda',
            																			   'vl_media_panicula_perda',
            																			   'vl_media_desfolhamento_perda',
            																			   'vl_media_colmo_perda',
            																			   'id_estadio_fenologico')
            		);
            $select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);

            $especializacao = $this->fetchRow($select);
            $especializacao = ($especializacao ? $especializacao->toArray() : array());

            $dados = array_merge($dados, $especializacao);
        }

        /*
         * Busca Amostras
         */
        $dados["amostras"] = array();

        if (!$dados['fl_nao_vistoriada']) {
            $amostras = $this->fetchAll("id_laudo_final_item_segurado = $idLaudoFinalItemSegurado");

            $amostras = ($amostras ? $amostras->toArray() : array());

            foreach ($amostras as $amostra){

            	$dados["amostras"][$amostra["nr_amostra"]] = $amostra;
            }
        }

        return $dados;
	}
}
