<?php
/**
 * @name Safra15_Model_Lf001
 * @desc Model do Laudo final Itens Segurados Tipo LF003 / Safra15 
 * @author Vinicius Marconi Vasconcelos Berni
 * @since 27/04/2011 14:43
 * @see Agro_Db_Table_Abstract
 */
class Safra15_Model_Lf003ItensSegurados extends Agro_Db_Table_Abstract {
	protected $_schema 	= 'safra15';
	protected $_name 	= 'lf003_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->fl_amostragem_maquina 		= $dados["fl_amostragem_maquina"];
				$Row->fl_danos_nao_cobertos_pragas	= $dados['fl_danos_nao_cobertos_pragas'] ? $dados['fl_danos_nao_cobertos_pragas'] : 0;
				$Row->fl_danos_nao_cobertos_doencas = $dados['fl_danos_nao_cobertos_doencas'] ? $dados['fl_danos_nao_cobertos_doencas'] : 0;
    			$Row->fl_danos_nao_cobertos_outros 	= $dados['fl_danos_nao_cobertos_outros'] ? $dados['fl_danos_nao_cobertos_outros'] : 0;
    			$Row->vl_danos_nao_cobertos 		= $dados['vl_danos_nao_cobertos'] ? $dados['vl_danos_nao_cobertos'] : 0;
    			$Row->vl_graos_podres 				= $dados['vl_graos_podres'] ? $dados['vl_graos_podres'] : 0;
    			$Row->vl_graos_brotados 			= $dados['vl_graos_brotados'] ? $dados['vl_graos_brotados'] : 0;
    			$Row->vl_pragas_doencas_outros 		= $dados['vl_pragas_doencas_outros'] ? $dados['vl_pragas_doencas_outros'] : 0;

    			$Row->save();

    			return $idLaudoFinalItemSegurado;
    		} catch (Exception $e) {
    		    $this->setMessage($e->getMessage());
    		    return false;
    		}
	    } else {
	    	$this->setMessage($Model_LaudosFinaisItensSegurados->getMessages());
	        return false;
	    }
	}

	public function delete($id_laudo_final) {
		parent::delete($id_laudo_final, "id_laudo_final");
	}
	
	public function tipoAmostragem($idVistoria){
		
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('lf003is'=>'safra15.'.$this->_name),'fl_amostragem_maquina');
		$select->join(array('lfis'=>'sinistro.laudos_finais_itens_segurados'),'lfis.id = lf003is.id_laudo_final_item_segurado', false);
		$select->join(array('vlf'=>'sistema.vistorias_laudos_finais'), 'vlf.id_laudo_final = lfis.id_laudo_final', false);
		$select->where('vlf.id_vistoria = ?', $idVistoria);

		$tipoAmostragem = $this->fetchAll($select);
		
		if(count($tipoAmostragem)){
		
			$mecanizada = false;
			$manual = false;
			foreach($tipoAmostragem as $amostragem){
				if($amostragem['fl_amostragem_maquina'] == true){
					$mecanizada = true;
					$grupoVistoria = 7; 
				}else{
					$manual = true;
					$grupoVistoria = 6;
				}
			}
	
			if($mecanizada && $manual){
				$grupoVistoria = 0;
			}
		}else{
			//não tem ítens (pode não ter detectado sinistro ou não ter sido vistoriado)
			$grupoVistoria = 6;	
		}
		
		return $grupoVistoria;	
	}
	
	

}
