<?php
/**
 * Model
 * 
 * Laudo final Tipo LF005 / Safra17 - Item Segurado (Totalização de Perdas)
 * 
 * @author Fernando Nunes
 * @date 28/02/2011
 *
 */
class Safra17_Model_Lf005ItensSeguradosAmostras extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Safra17_Model_Row_Lf005ItemSeguradoAmostras';
	protected $_schema 	= 'safra17';
	protected $_name 	= 'lf005_itens_segurados_amostras';
	protected $_primary = 'id';
	public 	  $_order 	= 'id_laudo_final';
		
	public function save($dados){
	    $Model_Lf005ItensSegurados = new Safra17_Model_Lf005ItensSegurados();
	    
	    $idLaudoFinalItemSegurado = $Model_Lf005ItensSegurados->save($dados);
	    
	    if($idLaudoFinalItemSegurado) {
    		try {
    		    
    		    $this->delete($idLaudoFinalItemSegurado, 'id_laudo_final_item_segurado');
    		    
    		    $nrAmostra = 1;
		        foreach ($dados['amostras_validas'] as $Amostra) {
		            $dadosInsert = array();
		            $dadosInsert['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado;    		            
		            $dadosInsert['nr_amostra'] = $nrAmostra;
		            $dadosInsert = array_merge($dadosInsert, $Amostra);
		            $this->insert($dadosInsert);
		            $nrAmostra++;
		        }
    		    
    			return $idLaudoFinalItemSegurado;
    			
    		} catch (Exception $e) {
    		    $this->setMessage($e->getMessage().'<br><pre>'.$e->getTraceAsString().'</pre>');
    		    return false;
    		}
	    } else {
	        return false;
	    }
	}
	
	public function getAmostras($idLaudoFinalItemSegurado) {
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('lf'=>$this->_schema . '.' . $this->_name), '*');
		$select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);
		
		$Amostras = $this->fetchAll($select)->toArray();
		$AmostrasNumeradas = array();
		foreach($Amostras as $Amostra) {
		    $AmostrasNumeradas[$Amostra['nr_amostra']] = $Amostra;
		}
		
		return $AmostrasNumeradas;
	}
}