<?php
/**
 * Model
 * 
 * Laudo final Tipo LF005 / Safra16 - Item Segurado
 * 
 * @author Fernando Nunes
 * @date 21/07/2011
 *
 */
class Safra16_Model_Lf005ItensSegurados extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Safra16_Model_Row_Lf005ItemSegurado';
	protected $_schema 	= 'safra16';
	protected $_name 	= 'lf005_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();
	    
	    $idLaudoFinalItemSegurado = $Model_LaudosFinaisItensSegurados->save($dados);
	    if($idLaudoFinalItemSegurado) {
    		try {
    		    
    		    $Row = $this->getRow($idLaudoFinalItemSegurado);
    		    
    		    $Row->id_laudo_final_item_segurado = $idLaudoFinalItemSegurado;
                $Row->nr_amostras = $dados['nr_amostras'];
                $Row->fl_floracao = $dados['fl_floracao'];
                $Row->id_estadio_fenologico = $dados['id_estadio_fenologico'];
                $Row->fl_indenizacao_fitossanitaria = $dados['fl_indenizacao_fitossanitaria'];
                
                
                if ($dados['nr_cachos_percent_perda_0']) { $Row->nr_cachos_percent_perda_0 = $dados['nr_cachos_percent_perda_0']; }
                if ($dados['nr_cachos_percent_perda_5']) { $Row->nr_cachos_percent_perda_5 = $dados['nr_cachos_percent_perda_5']; }
                if ($dados['nr_cachos_percent_perda_10']) { $Row->nr_cachos_percent_perda_10 = $dados['nr_cachos_percent_perda_10']; }
                if ($dados['nr_cachos_percent_perda_20']) { $Row->nr_cachos_percent_perda_20 = $dados['nr_cachos_percent_perda_20']; }
                if ($dados['nr_cachos_percent_perda_30']) { $Row->nr_cachos_percent_perda_30 = $dados['nr_cachos_percent_perda_30']; }
                if ($dados['nr_cachos_percent_perda_40']) { $Row->nr_cachos_percent_perda_40 = $dados['nr_cachos_percent_perda_40']; }
                if ($dados['nr_cachos_percent_perda_50']) { $Row->nr_cachos_percent_perda_50 = $dados['nr_cachos_percent_perda_50']; }
                if ($dados['nr_cachos_percent_perda_60']) { $Row->nr_cachos_percent_perda_60 = $dados['nr_cachos_percent_perda_60']; }
                if ($dados['nr_cachos_percent_perda_70']) { $Row->nr_cachos_percent_perda_70 = $dados['nr_cachos_percent_perda_70']; }
                if ($dados['nr_cachos_percent_perda_80']) { $Row->nr_cachos_percent_perda_80 = $dados['nr_cachos_percent_perda_80']; }
                if ($dados['nr_cachos_percent_perda_90']) { $Row->nr_cachos_percent_perda_90 = $dados['nr_cachos_percent_perda_90']; }
                if ($dados['nr_cachos_percent_perda_100']) { $Row->nr_cachos_percent_perda_100 = $dados['nr_cachos_percent_perda_100']; }
    			
    			$Row->save();

    			return $idLaudoFinalItemSegurado;
    			
    		} catch (Exception $e) {
    			$this->setMessage($e->getMessage());
    		    return false;
    		}
	    } else {
	        return false;
	    }
	}

    public function getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado) {
        
        $Model_LaudosFinaisItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
		$Model_ItensSegurados = new Seguro_Model_ItensSegurados();
        $DataGeneralizacao = $Model_LaudosFinaisItensSegurados->getDataLaudoFinalItemSegurado($idLaudoFinalItemSegurado);
        
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(
            array(
                'lfis005'=>$this->_schema.'.'.$this->_name
            ), 
            array(
                'nr_amostras',
                'nr_cachos_percent_perda_0',
                '(nr_cachos_percent_perda_0 * 0) as vl_percent_perda_0',
                'nr_cachos_percent_perda_5',
                '(nr_cachos_percent_perda_5 * 5) as vl_percent_perda_5',
                'nr_cachos_percent_perda_10',
                '(nr_cachos_percent_perda_10 * 10) as vl_percent_perda_10',
                'nr_cachos_percent_perda_20',
                '(nr_cachos_percent_perda_20 * 20) as vl_percent_perda_20',
                'nr_cachos_percent_perda_30',
                '(nr_cachos_percent_perda_30 * 30) as vl_percent_perda_30',
                'nr_cachos_percent_perda_40',
                '(nr_cachos_percent_perda_40 * 40) as vl_percent_perda_40',
                'nr_cachos_percent_perda_50',
                '(nr_cachos_percent_perda_50 * 50) as vl_percent_perda_50',
                'nr_cachos_percent_perda_60',
                '(nr_cachos_percent_perda_60 * 60) as vl_percent_perda_60',
                'nr_cachos_percent_perda_70',
                '(nr_cachos_percent_perda_70 * 70) as vl_percent_perda_70',
                'nr_cachos_percent_perda_80',
                '(nr_cachos_percent_perda_80 * 80) as vl_percent_perda_80',
                'nr_cachos_percent_perda_90',
                '(nr_cachos_percent_perda_90 * 90) as vl_percent_perda_90',
                'nr_cachos_percent_perda_100',
                '(nr_cachos_percent_perda_100 * 100) as vl_percent_perda_100',
                '(
                    coalesce(nr_cachos_percent_perda_0, 0) +
                    coalesce(nr_cachos_percent_perda_5, 0) +
                    coalesce(nr_cachos_percent_perda_10, 0) +
                    coalesce(nr_cachos_percent_perda_20, 0) +
                    coalesce(nr_cachos_percent_perda_30, 0) +
                    coalesce(nr_cachos_percent_perda_40, 0) +
                    coalesce(nr_cachos_percent_perda_50, 0) +
                    coalesce(nr_cachos_percent_perda_60, 0) +
                    coalesce(nr_cachos_percent_perda_70, 0) +
                    coalesce(nr_cachos_percent_perda_80, 0) +
                    coalesce(nr_cachos_percent_perda_90, 0) +
                    coalesce(nr_cachos_percent_perda_100, 0)
                ) as nr_total_cachos',
                '(
                    (coalesce(nr_cachos_percent_perda_5, 0) * 5) +
                    (coalesce(nr_cachos_percent_perda_10, 0) * 10) +
                    (coalesce(nr_cachos_percent_perda_20, 0) * 20) +
                    (coalesce(nr_cachos_percent_perda_30, 0) * 30) +
                    (coalesce(nr_cachos_percent_perda_40, 0) * 40) +
                    (coalesce(nr_cachos_percent_perda_50, 0) * 50) +
                    (coalesce(nr_cachos_percent_perda_60, 0) * 60) +
                    (coalesce(nr_cachos_percent_perda_70, 0) * 70) +
                    (coalesce(nr_cachos_percent_perda_80, 0) * 80) +
                    (coalesce(nr_cachos_percent_perda_90, 0) * 90) +
                    (coalesce(nr_cachos_percent_perda_100, 0) * 100)
                ) as vl_percent_perda_soma',
                'fl_indenizacao_fitossanitaria',
                'fl_floracao',
            	'id_estadio_fenologico'
            )
        );
        $select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);

        $Rs = $this->fetchRow($select);
        if($Rs){
        	$DataEspecializacao = $Rs->toArray();
        	return array_merge($DataGeneralizacao, $DataEspecializacao);
        }else{
        	return $DataGeneralizacao;
        }
    }
	
	public function delete($id_laudo_final){
		parent::delete($id_laudo_final, "id_laudo_final");
	}


}
