<?php
/**
 * Model
 * 
 * Laudo final Tipo LF014 / Safra17 - Item Segurado
 * 
 * @author Samir Ortiz
 * @date 14/02/2012
 *
 */
class Safra17_Model_Lf014ItensSegurados extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Safra17_Model_Row_Lf014ItemSegurado';
	protected $_schema 	= 'safra17';
	protected $_name 	= 'lf014_itens_segurados';
	protected $_primary = 'id_laudo_final_item_segurado';
	public 	  $_order 	= 'id_laudo_final_item_segurado';
		
	public function save($dados) {
	    $Model_LaudosFinaisItensSegurados = new Sinistro2_Model_LaudosFinaisItensSegurados();
	    
	    $idLaudoFinalItemSegurado = $Model_LaudosFinaisItensSegurados->save($dados);

	    if($idLaudoFinalItemSegurado) {
    		try {
    		    
    		    $Row = $this->getRow($idLaudoFinalItemSegurado);
    		    
    		    if(!$Row) {
    		        $Row = $this->createRow();
    		    }
    		    
    		    $Row->id_laudo_final_item_segurado = $idLaudoFinalItemSegurado;
    		    $Row->tp_plantio = $dados['tp_plantio'];
    		    
                if (array_key_exists('fl_classificacao_frutos', $dados)) {
        			$Row->fl_classificacao_frutos = ($dados['fl_classificacao_frutos'] ? 1 : 0);
        			if ($Row->fl_classificacao_frutos) {
        			    $Row->vl_percent_perda_qualidade = $dados['vl_percent_perda_qualidade'];
        			} else {
        			    $Row->vl_percent_perda_qualidade = 0;
        			}
                }
    			
    			$Row->save();

    			return $idLaudoFinalItemSegurado;
    			
    		} catch (Exception $e) {
    			$this->setMessage($e->getMessage());
    		    return false;
    		}
	    } else {
	        return false;
	    }
	}

    public function getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado) {
        
        $Model_LaudosFinaisItensSegurados = new Sinistro2_Model_LaudosFinaisItensSegurados();
		$Model_ItensSegurados = new Seguro_Model_ItensSegurados();
        $DataGeneralizacao = $Model_LaudosFinaisItensSegurados->getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado);
        
        if (!$DataGeneralizacao['fl_nao_vistoriada']) {
            $select = $this->select()->setIntegrityCheck(false);
            $select->from(array('lfis014'=>$this->_schema.'.'.$this->_name), array('fl_classificacao_frutos','vl_percent_perda_qualidade','tp_plantio'));
            $select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);
        }
        
        $DataEspecializacao = $this->fetchRow($select)->toArray();
		
		// Nesse laudo o valor do campo vl_area_sinistrada deve ser igual a área total da quadra
		$DataGeneralizacao['vl_area_sinistrada'] = $Model_ItensSegurados->getArea($DataGeneralizacao['id_item_segurado']);
        
        return array_merge($DataGeneralizacao, $DataEspecializacao);
    }
	
	public function delete($id_laudo_final){
		parent::delete($id_laudo_final, "id_laudo_final");
	}


}
