<?php
/**
 * Model
 * 
 * Laudo final Tipo LF019 / Safra14 - Trigo/Cevada - Geada
 * 
 * @author Samir Ortiz
 * @date 30/07/2012
 *
 */
class Safra14_Model_Lf019ItensSegurados extends Agro_Db_Table_Abstract {
	protected $_schema 	= 'safra14';
	protected $_name 	= 'lf019_itens_segurados';
	protected $_primary = 'id_laudo_final_item_segurado';
	public 	  $_order 	= 'id_laudo_final_item_segurado';
		
	public function save($dados) {

	    $Model_LaudosFinaisItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();

	    	$dados['vl_percent_perdas'] = $dados['vl_percent_total_perda_final'];
	    	$dados['vl_percent_perdas_chocho'] = $dados['vl_percent_total_perda_final_chocho'] >= 0 ? $dados['vl_percent_total_perda_final_chocho'] : null;
	    	$dados['vl_percent_colhido_chocho'] = $dados['vl_percent_colhido_chocho'] ? $dados['vl_percent_colhido_chocho'] : null;
	    	$idLaudoFinalItemSegurado = $Model_LaudosFinaisItensSegurados->save($dados);

	    	if($idLaudoFinalItemSegurado) {
    			try {

	    		    $Row = $this->getRow($idLaudoFinalItemSegurado);
	    		    
	    		    $Row->id_laudo_final_item_segurado = $idLaudoFinalItemSegurado;
	    		    
	    		    if(!$dados['vl_percent_colhido_chocho']){		    
		    		    $Row->vl_media_stand_perda = $dados['vl_media_stand_perda'];
		    		    $Row->vl_media_espiga_perda = $dados['vl_media_espiga_perda'];
		    		    $Row->vl_media_colmo_perda = $dados['vl_media_colmo_perda'];
		    		    $Row->vl_percent_total_perda_final = $dados['vl_percent_total_perda_final'];
		    		    
	    		    }
	    		    
	    		    $Row->id_estadio_fenologico = $dados['id_estadio_fenologico'];
	    		    $Row->vl_percent_total_perda_final_chocho = $dados['vl_percent_perdas_chocho'];
					$Row->vl_percent_colhido_chocho = $dados['vl_percent_colhido_chocho'];
	    		    
	    			$Row->save();
					
	    			return $idLaudoFinalItemSegurado;
		    			
		    	} catch (Exception $e) {
					$this->setMessage($e->getMessage());
					return false;
				}
			} else {
				$this->setMessage($Model_LaudosFinaisItensSegurados->getMessages());
			    return false;
			}    	

	}

    public function getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado) {
        
        $Model_LaudosFinaisItensSegurados = new Sinistro_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('lfis019'=>$this->_schema.'.'.$this->_name), array('vl_percent_total_perda_final','vl_percent_media_perda_espiga','vl_percent_media_perda_stand','id_estadio_fenologico','vl_percent_total_perda_final_chocho','vl_percent_colhido_chocho'));
            $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']);
        
		$data = array_merge($DataGeneralizacao, $DataEspecializacao); 
		
		return $data;
        
    }
	
	public function delete($id_laudo_final){
		parent::delete($id_laudo_final, "id_laudo_final");
	}


}
