<?php
/**
 * @name Safra17_Model_Lf003ItensSeguradosAmostras
 * @desc Model das amostras do Laudo final Itens Segurados Tipo LF003 / Safra17 
 * @author Vinicius Marconi Vasconcelos Berni
 * @since 27/04/2011 16:17
 * @see Agro_Db_Table_Abstract
 */
class Safra17_Model_Lf003ItensSeguradosAmostras extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Safra17_Model_Row_Lf003ItemSeguradoAmostras';
	protected $_schema 	= 'safra17';
	protected $_name 	= 'lf003_itens_segurados_amostras';
	protected $_primary = 'id';
	public 	  $_order 	= 'id_laudo_final';
		
	public function __beforeSave($dados){
		$params = $this->montaArray($dados);
		$params  = $this->__valida($params);
		if ($params){
			$params  = $this->__calcula($params);
		}
		return $params;
	}
	
	public function save($dados){
				
		$params = $this->__beforeSave($dados);
		 
		if (is_array($params)){
		    $Model_Lf003ItensSegurados = new Safra17_Model_Lf003ItensSegurados();
		    
		    $idLaudoFinalItemSegurado = $Model_Lf003ItensSegurados->save($params);
		    
		    if($idLaudoFinalItemSegurado){
	    		$this->getDefaultAdapter()->beginTransaction();
		    	
		    	try {
	    		    $this->delete($idLaudoFinalItemSegurado, 'id_laudo_final_item_segurado');

	    		    foreach ($params["amostras"] as $amostra) {
	    		    	$values = $amostra;
	    		    	$values["id_laudo_final_item_segurado"] = $idLaudoFinalItemSegurado;
	    		    	
	    		    	$this->insert($values);
	    		    }
	    		    
	    		    $this->getDefaultAdapter()->commit();
	    		    
	    		    $this->setMessage("Operação realizada com sucesso.");
	    		    
	    			return $idLaudoFinalItemSegurado;
	    			
	    		} catch (Exception $e) {
	    		    $this->getDefaultAdapter()->rollBack();
	    			$this->setMessage($e->getMessage().'<br><pre>'.$e->getTraceAsString().'</pre>');
	    		    return false;
	    		}
		    } else {
		    	$this->setMessage($Model_Lf003ItensSegurados->getMessages());
		        return false;
		    }
		} else {
			return false;
		}
	}
	
	public function montaArray($dados){

		$params = array(
			"id_laudo_final_item_segurado" 	=> $dados["id_laudo_final_item_segurado"],
			"id_laudo_final" 				=> $dados["id_laudo_final"],
			"id_item_segurado" 				=> $dados["id_item_segurado"],
		    "id_proposta" 					=> $dados["id_proposta"],
		    "id_processo" 					=> $dados["id_processo"],
		    "id_cobertura"					=> $dados["id_cobertura"],
		    "id_vistoria"					=> $dados["id_vistoria"],
		    "fl_vistoria_preliminar"        => $dados["fl_vistoria_preliminar"],
		    "dt_vistoria_data" 				=> $dados["dt_vistoria_data"],
		    "dt_vistoria_hora" 				=> $dados["dt_vistoria_hora"],
		    "dt_vistoria_minutos" 			=> $dados["dt_vistoria_minutos"],
		    "vl_area_sinistrada" 			=> $dados["vl_area_sinistrada"],
		    "vl_percent_colhido" 			=> $dados["vl_percent_colhido"],
		    "ds_coordenadas_geograficas" 	=> $dados["ds_coordenadas_geograficas"],
		    "dt_vistoria" 					=> Agro_Util::joinDtVistoria($dados["dt_vistoria_data"], $dados["dt_vistoria_hora"], $dados["dt_vistoria_minutos"]),
		    "fl_amostragem_maquina" 		=> $dados["fl_amostragem_maquina"],
		    "ds_observacao" 				=> $dados["ds_observacao"],
		    "fl_assinatura_segurado" 		=> $dados["fl_assinatura_segurado"],
		    "fl_assinatura_regulador" 		=> $dados["fl_assinatura_regulador"],
		    "vistoriadores" 				=> $dados["vistoriadores"],
			"vl_rendimento_final_lavoura" 	=> $dados["vl_rendimento_final_lavoura"],
			"vl_graos_podres"				=> $dados["vl_graos_podres"],
			"vl_graos_brotados"				=> $dados["vl_graos_brotados"],
			"vl_pragas_doencas_outros"		=> $dados["vl_pragas_doencas_outros"],
			"amostras"						=> array()
		);
	
		if ($params["fl_amostragem_maquina"]){

			$params["amostras"]['maq'] = array(
				"id_laudo_final_item_segurado" 		=> 0,
				"nr_amostra" 						=> 1,
				"vl_espacamento_entre_linhas" 		=> 0,
				"vl_metros_linhas_colhidos" 		=> 0,
				"vl_producao_colhida_amostra" 		=> $dados["vl_producao_colhida_amostra"],
				"vl_producao_kilos_hectare" 		=> 0,
				"vl_perda_colheita" 				=> $dados["vl_perda_colheita"],
				"vl_umidade_graos" 					=> $dados["vl_umidade_graos"],
				"vl_desconto_umidade_graos" 		=> $dados["vl_desconto_umidade_graos"],
				"vl_producao_bruta" 				=> 0,
				"vl_desconto" 						=> 0,
				"vl_producao_liquida" 				=> 0,
				"vl_area_colhida" 					=> $dados['vl_area_colhida'],
				"vl_largura_plataforma" 			=> $dados["vl_largura_plataforma"],
				"vl_distancia_percorrida" 			=> $dados["vl_distancia_percorrida"],
				"vl_impurezas"						=> $dados["vl_impurezas"],
			);

			$params["fl_amostragem_maquina"] = 1;
			
		} else {
			for ($i=1;$i<=10;$i++){
				if ($dados["vl_espacamento_entre_linhas_$i"] > 0){
					$params["amostras"][$i] = array(
						"id_laudo_final_item_segurado" => 0,
						"nr_amostra" => $i,
						"vl_espacamento_entre_linhas" => $dados["vl_espacamento_entre_linhas_$i"],
						"vl_metros_linhas_colhidos" => $dados["vl_metros_linhas_colhidos_$i"],
						"vl_producao_colhida_amostra" => $dados["vl_producao_colhida_amostra_$i"],
						"vl_producao_kilos_hectare" => $dados["vl_producao_kilos_hectare_$i"],
						"vl_perda_colheita" => 0.02,
						"vl_umidade_graos" => $dados["vl_umidade_graos_$i"],
						"vl_desconto_umidade_graos" => $dados["vl_desconto_umidade_graos_$i"],
						"vl_producao_bruta" => $dados["vl_producao_bruta_$i"],
						"vl_desconto" => $dados["vl_desconto_$i"],
						"vl_producao_liquida" => $dados["vl_producao_liquida_$i"],
						"vl_area_colhida" => null,
						"vl_producao_kilos_hectare_com_perda" => null,
						"vl_producao_bruta_kilos_hectare" => $dados["vl_producao_bruta_kilos_hectare_$i"],
					);
				}
			}
			
			$params["fl_amostragem_maquina"] = 0;
		}

		return $params;
	}
	
	public function __valida($dados){
		$result = $dados;

		$Model_Vistorias = new Sinistro_Model_VistoriasAvisos();
		$dtVistoria = new Zend_Date($dados['dt_vistoria_data'].' '.$dados['dt_vistoria_hora'].':'.$dados['dt_vistoria_minutos'], 'dd/MM/yyyy HH:mm');
		if (!$Model_Vistorias->verifyVistoriaFinalAvisos($dados['id_proposta'], $dados['id_vistoria'], $dtVistoria->toString('yyyy-MM-dd HH:mm'), $dados['id_cobertura'])) {
			$this->setMessage("Não existe sinistro disponível anterior a data de vistoria informada");
			$result = false;
		}
		
		// Caso o produto/cobertura possua vistoria preliminar, verifica se a data de vistoria informada está de acordo com o período da vistoria
        if ($dados['fl_vistoria_preliminar']) {
            $Model_LaudosFinaisItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
            $periodoVistoria = $Model_LaudosFinaisItensSegurados->getMinMaxDtVistoriaByIdLaudoFinal($dados['id_laudo_final'], $dados['id_laudo_final_item_segurado']);
            
            if ($periodoVistoria['min_dt_vistoria'] || $periodoVistoria['max_dt_vistoria']) {
                if ($periodoVistoria['min_dt_vistoria']) {
                    
                    $min_dt_vistoria = new Zend_Date($periodoVistoria['min_dt_vistoria'], 'yyyy-MM-dd HH:mm');
                    if ($min_dt_vistoria->isEarlier($dtVistoria)) {
                        $diff = ($dtVistoria->getTimestamp() - $min_dt_vistoria->getTimestamp()) / (3600 * 24);
                        if ($diff > 4) {
                            $this->setMessage("Data de vistoria fora do período para esta vistoria. Insira uma nova vistoria para este item.");
                            $result = false;
                        }
                    }
                }
                
                if ($periodoVistoria['max_dt_vistoria']) {
                    $max_dt_vistoria = new Zend_Date($periodoVistoria['max_dt_vistoria'], 'yyyy-MM-dd HH:mm');
                    if ($max_dt_vistoria->isLater($dtVistoria)) {
                        $diff = ($max_dt_vistoria->getTimestamp() - $dtVistoria->getTimestamp()) / (3600 * 24);
                        if ($diff > 4) {
                            $this->setMessage("Data de vistoria fora do período para esta vistoria. Insira uma nova vistoria para este item.");
                            $result = false;
                        }
                    }
                }
                
            }
        }
		
		if (!is_array($dados["vistoriadores"])){
			$this->setMessage("É necessário selecionar ao menos 1 vistoriador");
			$result = false;
		}
		
		if (!$dados["vl_percent_colhido"]){
			$this->setMessage("Percentual colhido é de preenchimento obrigatório");
			$result = false;
		}
		
		if (!$dados["ds_coordenadas_geograficas"]){
			$this->setMessage("Coordenadas geográficas são de preenchimento obrigatório");
			$result = false;
		}
		
		if (!$dados["fl_amostragem_maquina"]){

			$campos = array(
				"vl_espacamento_entre_linhas" => "Espaçamento entre linhas",
				"vl_metros_linhas_colhidos" => "Metros de linha colhidos",
				"vl_producao_colhida_amostra" => "Produção colhida na amostra",
				"vl_umidade_graos" => "Umidade dos grãos"
			);
			
			if (count($dados["amostras"]) > 0){
				foreach ($dados["amostras"] as $amostra){
					$campos_vazios = array();
					
					if ($amostra["vl_espacamento_entre_linhas"] > 0){
						foreach ($campos as $key => $label){
							if(!$amostra[$key]){
								$campos_vazios[] = $campos[$key];
							}
						}	
					}
					
					if (count($campos_vazios)){
						$this->setMessage("Amostra {$amostra["nr_amostra"]}, campos não preenchidos:<ul><li>".implode("</li><li>", $campos_vazios)."</li></ul>");
						$result=false;
					}
				}
			} else {
				$this->setMessage("Preencher todos os campos de pelo menos uma amostra");
				$result=false;
			}
			
		} else {
			$campos = array(
				"vl_producao_colhida_amostra" => "Produção colhida na amostra",
				"vl_perda_colheita" => "Perda de colheita (%)",
				"vl_umidade_graos" => "Umidade dos Graos (%)",
				"vl_largura_plataforma" => "Largura da plataforma",
				"vl_distancia_percorrida" => "Distância percorrida"
			);
			
			foreach ($campos as $key => $label){
				if (!$dados["amostras"]['maq'][$key]){
					$this->setMessage("O campo '{$campos[$key]}' é de preenchimento obrigatório.");
					$result=false;
				}
			}
		}

		return $result;
		
	}
	
	public function __calcula($dados){ 
		$Cultura = new Seguro_Model_Propostas();
		$cultura = $Cultura->getCulturaProduto($dados['id_proposta']);

		if(!count($dados['amostras']['maq'])){

			for ($i=1; $i <= count($dados["amostras"]);$i++){
	
				$dados['amostras'][$i]['vl_desconto_umidade_graos'] = $this->calculaDescontoUmidade($dados['amostras'][$i], $cultura['ds_chave_cultura']);
				
			}
		}		
	
		
		if ($dados["fl_amostragem_maquina"]){

			$dados['amostras']['maq']['vl_desconto_umidade_graos'] = $this->calculaDescontoUmidade($dados['amostras']['maq'], $cultura['ds_chave_cultura']);
			
			$dados["amostras"]['maq']["vl_area_colhida"] = (($dados['amostras']['maq']["vl_largura_plataforma"]*$dados['amostras']['maq']["vl_distancia_percorrida"]) / 10000); 
					
			if($dados['amostras']['maq']['vl_perda_colheita'] >= 2){
	
				$rendimento = (((($dados['amostras']['maq']['vl_producao_colhida_amostra'] / $dados["amostras"]['maq']["vl_area_colhida"]) + ($dados['amostras']['maq']['vl_producao_colhida_amostra'] / $dados["amostras"]['maq']["vl_area_colhida"]) * (($dados['amostras']['maq']['vl_perda_colheita'] / 100) - 0.02)) * (1 - ($dados['amostras']['maq']['vl_desconto_umidade_graos'] / 100)) * (1 - ($dados['amostras']['maq']['vl_impurezas']) / 100)) / 1000);
	
			}else{
				
				$rendimento = (($dados['amostras']['maq']['vl_producao_colhida_amostra'] / $dados["amostras"]['maq']["vl_area_colhida"]) * (1 - ($dados['amostras']['maq']['vl_desconto_umidade_graos'] / 100)) * (1 - ($dados['amostras']['maq']['vl_impurezas'] / 100)) / 1000);
			}
	
			$dados["amostras"]['maq']["vl_area_colhida"] = Agro_Util::round($dados["amostras"]['maq']["vl_area_colhida"], 3);
			
			$dados["vl_rendimento_final_lavoura"] = Agro_Util::round($rendimento, 3);
			
		} else {
			
			//amostragens manuais
			for ($i=1;$i <= count($dados["amostras"]);$i++){
	
				//fixo
				$dados["amostras"][$i]["vl_perda_colheita"] = 0.02;
				//
				$dados["amostras"][$i]["vl_producao_liquida"] = (($dados["amostras"][$i]["vl_producao_colhida_amostra"] / $dados["amostras"][$i]["vl_metros_linhas_colhidos"]) * (10000 / $dados["amostras"][$i]["vl_espacamento_entre_linhas"])) * (1 - $dados["amostras"][$i]["vl_perda_colheita"]) * (1 - ($dados['amostras'][$i]['vl_desconto_umidade_graos']/100));
			  				
			}
			//dump($dados["amostras"]['maq']["vl_espacamento_entre_linhas"]);
			//if ($dados["amostras"]['maq']["vl_espacamento_entre_linhas"] > 0){
				$rendimento = 0.0;
				
				$total_producao_liquida = $this->__somaAmostra("vl_producao_liquida", $dados); 
				
				if ($total_producao_liquida["valor"] > 0){
					$rendimento = ($total_producao_liquida["valor"] / $total_producao_liquida["count"]) / 1000;
				}

				$dados["vl_rendimento_final_lavoura"] = Agro_Util::round($rendimento, 3);
			//} else {
				//$dados["vl_rendimento_final_lavoura"] = null;	
			//}
		}		
		
		
		return $dados;
	}
	
	
	public function calculaDescontoUmidade($amostra, $cultura){
		
		if($amostra['vl_umidade_graos'] < 14.00){
			$descontoUmidade = 0;
				
		}else if($amostra['vl_umidade_graos'] >= 14.00 && $amostra['vl_umidade_graos'] < 15.00){
		
			if($cultura == 'SOJA' || $cultura == 'MILHO'){
				$descontoUmidade = 1.50;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 1.60;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 15.00 && $amostra['vl_umidade_graos'] < 16.00){
				
			if($cultura == 'SOJA' || $cultura == 'MILHO'){
				$descontoUmidade = 3.00;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 2.80;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 16.00 && $amostra['vl_umidade_graos'] < 17.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 4.20;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 5.20;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 4.00;
			}
		
		}else if($amostra['vl_umidade_graos'] >= 17.00 && $amostra['vl_umidade_graos'] < 18.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 5.50;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 6.80;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 5.20;
			}
		
			////////////ajuste conforme excel (somente safra 14)/////////////////
		}else if($amostra['vl_umidade_graos'] == 18.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 6.75;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 8.40;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 6.40;
			}
		
		}else if($amostra['vl_umidade_graos'] > 18.00 && $amostra['vl_umidade_graos'] < 19.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 7.85; //ajustado conforme excel (somente safra 14)
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 10.00;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 7.60;
			}
			/////////////////////////////
		}else if($amostra['vl_umidade_graos'] >= 19.00 && $amostra['vl_umidade_graos'] < 20.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 7.85;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 10.00;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 7.60;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 20.00 && $amostra['vl_umidade_graos'] < 21.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 9.05;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 11.60;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 8.80;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 21.00 && $amostra['vl_umidade_graos'] < 22.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 10.31;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 13.20;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 10.10;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 22.00 && $amostra['vl_umidade_graos'] < 23.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 11.33;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 14.80;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 11.40;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 23.00 && $amostra['vl_umidade_graos'] < 24.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 12.85;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 16.40;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 12.70;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 24.00 && $amostra['vl_umidade_graos'] < 25.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 13.69;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 18.00;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 14.00;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 25.00 && $amostra['vl_umidade_graos'] < 26.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 15.05;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 19.60;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 15.40;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 26.00 && $amostra['vl_umidade_graos'] < 27.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 17.48;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 21.26;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 16.80;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 27.00 && $amostra['vl_umidade_graos'] < 28.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 18.84;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 23.99;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 18.20;
			}
				
		}else if($amostra['vl_umidade_graos'] >= 28.00 && $amostra['vl_umidade_graos'] < 29.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 20.10;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 26.04;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 19.60;
			}
		
		}else if($amostra['vl_umidade_graos'] >= 29.00 && $amostra['vl_umidade_graos'] < 30.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 21.18;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 27.30;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 21.00;
			}
				
		}else if($amostra['vl_umidade_graos'] == 30.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = 22.78;
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = 28.98;
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = 22.40;
			}
				
		}else if($amostra['vl_umidade_graos'] > 30.00){
				
			if($cultura == 'SOJA'){
				$descontoUmidade = (((($amostra['vl_umidade_graos'] / 100) - 0.3) * 0.015) + 0.2278);
		
			}else if($cultura == 'MILHO'){
				$descontoUmidade = (((($amostra['vl_umidade_graos'] / 100) - 0.3) * 0.015) + 0.2898);
		
			}else if($cultura == 'TRIGO' || $cultura == 'CEVADA'){
				//trigo/cevada
				$descontoUmidade = (((($amostra['vl_umidade_graos'] / 100) - 0.3) * 0.015) + 0.2240);
			}

			$descontoUmidade = ($descontoUmidade * 100);

		}	

		return $descontoUmidade;
		
	}
	
	
	public function __somaAmostra($nomeAmostra, $dados){
		$somatorio = array(
			"valor" => 0.0,
			"count" => 0
		);
		
		for($i=1;$i<=10;$i++){
			if ($dados["amostras"][$i][$nomeAmostra] >= '0'){
				$somatorio["valor"] += $dados["amostras"][$i][$nomeAmostra];
				$somatorio["count"] += 1;
			}
		}

		return $somatorio;
	}
	
	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.lf003_itens_segurados") , array('fl_amostragem_maquina', 'fl_danos_nao_cobertos_pragas', 'fl_danos_nao_cobertos_doencas', 'fl_danos_nao_cobertos_outros', 'vl_danos_nao_cobertos'));
            $select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);
   
            $new = $this->fetchRow($select);
            
            if ($new){
            	$new = $new->toArray();
            	
            } else {
            	$new = array();
            }

            $dados = array_merge($dados, $new);
        }
        
        /*
         * Busca Amostras
         */
        $dados["amostras"] = array();

        if (!$dados['fl_nao_vistoriada']) {
            $amostras = $this->fetchAll("id_laudo_final_item_segurado = $idLaudoFinalItemSegurado")->toArray();
            
            foreach ($amostras as $amostra){
            	
            	if($dados['fl_amostragem_maquina'] == 1){
            		$dados["amostras"]['maq'] = $amostra;
            	}else{
            		$dados["amostras"][$amostra["nr_amostra"]] = $amostra;
            	}
            }
        }
      
        return $dados;
    }
}