<?
class Safra12_LfalhocebolagranizoController extends Agro_Controller_Action{

	private $errorMessage = false;
		
	public function init() {
 		$this->session = new Zend_Session_Namespace('laudo_final');
		$this->session->idVistoria = $this->session->idRevistoria ? $this->session->idRevistoria : $this->session->idVistoria;
	
		$this->view->title = "Sinistro » Laudo Final Cebola / Alho » Granizo";
	}

	public function formAction() {

	    $dados = $this->getRequest()->getParams();
	    
        $this->session->idVistoria = $dados['id_vistoria'];
        $this->session->idRevistoria = $dados['id_revistoria'];
        $this->session->idCobertura = $dados['id_cobertura'];
        $this->session->idProposta = $dados['id_proposta'];
        $this->session->idProcesso = $dados['id_processo'];
        
        $this->view->title .= ($dados['id_revistoria'] ? " » Revistoria » Formulário" : " » Formulário");
        $this->view->back = "/sinistro/processo/view/id/{$dados['id_processo']}";
	    
 		$this->view->idVistoria  = $this->session->idVistoria;
 		$this->view->idRevistoria = $this->session->idRevistoria;
		$this->view->idCobertura = $this->session->idCobertura;
		$this->view->idProposta  = $this->session->idProposta;
		$this->view->idProcesso  = $this->session->idProcesso;

        $this->view->jQuery()->addJavascriptFile('/resources/javascript/sinistro/sinistro_lf.js');
        
		if ($dados['id_laudo_final']){
			$this->view->idLaudoFinal = $dados['id_laudo_final'];
			$this->session->idLaudoFinal = $dados['id_laudo_final'];
		
		} else {		
			$this->view->idLaudoFinal = $this->saveLaudoFinal($dados);
			$this->session->idLaudoFinal = $this->view->idLaudoFinal;
			$this->_redirect($this->getRequest()->getRequestUri()."/id_laudo_final/".$this->view->idLaudoFinal);
		}
                
        $this->view->laudoSalvo = ($dados['laudoSalvo'] ? 1 : 0);
     
        $Safra = new Produto_Model_Safras();
				
		$this->view->listDadosItens = array();

		$User = Zend_Auth::getInstance()->getIdentity();
		
		$this->session->userVistoriaMesmaEmpresa = true;
		if ($User->tp_usuario != 'F') {
			$Funcionario = new Sistema_Model_Funcionarios();
			$f = $Funcionario->fetchRow('id_usuario = '.$User->id);
			$idEmpresaUserLogado = $f['id_empresa'];
	
			$VistoriaEmpresa = new Sistema_Model_VistoriasEmpresas();
			$idEmpresaVistoria = $VistoriaEmpresa->getEmpresaByVistoria($this->session->idVistoria);
			
			$this->session->userVistoriaMesmaEmpresa = $idEmpresaUserLogado == $idEmpresaVistoria ? true : false;
		}
		$this->view->userVistoriaMesmaEmpresa = $this->session->userVistoriaMesmaEmpresa;

		$RevistoriaVistoria = new Sistema_Model_RevistoriasVistorias();
		$this->session->hasRevistoria = $RevistoriaVistoria->hasRevistoria($this->session->idVistoria);
		$this->view->hasRevistoria = $this->session->hasRevistoria;
		
		
		// Inicio POST
		if ($this->getRequest()->isPost()) {
			
			$errorMsg = '';
			if ($this->getRequest()->getParam('fl_realizada') != 'N') {
				$forms = array();
	
				$camposAdicionais = array();
				
				if (!$this->getRequest()->getParam('fl_evento_nao_constatado')) {
					
					$camposAdicionais[] = array(
						'type'	  => 'text',
						'fields'   => 'fl_acompanhado_vento',
						'label'   => 'Acompanhado de Vento',
						'message' => MSG_ERROR_EMPTY
					);
	
					$camposAdicionais[] = array(
						'type'	  => 'text',
						'fields'   => 'fl_acompanhado_chuva',
						'label'   => 'Acompanhado de Chuva',
						'message' => MSG_ERROR_EMPTY
					);
	
					$camposAdicionais[] = array(
						'type'	  => 'text',
						'fields'   => 'fl_area_atingida',
						'label'   => 'Área atingida',
						'message' => MSG_ERRO_LP_AREA_ATINGIDA
					);
				}
	
				$errorMsg = $this->getAllFormErros($forms, $this->getRequest()->getPost(), $camposAdicionais);
				
				$this->view->laudoSalvo = 0;
			}
			
			if ($errorMsg) {
				$this->populaCampos($this->getRequest()->getParams());
				$this->view->showMessage($errorMsg, 'error');
			} else {
				try {
					$this->save($this->getRequest()->getParams());
					//$this->verificaAvisos('saveLaudo');
					$this->populaDadosTela();

					if (!$this->view->idLaudoFinal) {
						$this->view->idLaudoFinal = $this->session->idLaudoFinal;
					}

					$this->view->showMessage(MSG_SUCCESS, 'success');
					
					$this->view->laudoSalvo = 1;
					
				} catch (Exception $e) {
					$this->populaCampos($this->getRequest()->getParams());
					
					$this->view->laudoSalvo = 0;
					
					if ($this->errorMessage) {
						$this->view->showMessage($e->getMessage(), 'error');
					} else {
						$this->view->showMessage(MSG_ERROR, 'error');
					}
				}
			}
			
		// Fim POST	
		} else if ($this->session->idLaudoFinal) {
			$this->populaDadosTela();
		}

		if ($this->session->idRevistoria) {
			$Revistoria = new Sistema_Model_Revistorias();
			$rs = $Revistoria->find($this->session->idRevistoria)->current();

			$this->view->ds_motivo = $rs['ds_motivo'];
			$this->view->fl_realizada = $rs['fl_realizada'] ? 'S' : 'N';
			$this->view->ds_motivo_nao_realizada = $rs['ds_motivo_nao_realizada'];
		}
	} 

	public function populaDadosTela() {
		$row = $this->getRow();

		$this->view->fl_evento_nao_constatado = $row['fl_evento_nao_constatado'];
		
		if (!$this->view->fl_evento_nao_constatado) {
			
			$this->view->ds_direcao_evento    = $row['ds_direcao_evento'];
			$this->view->ds_diametro_medio_granizo = $row['ds_diametro_medio_granizo']; 
			$this->view->fl_acompanhado_chuva = $row['fl_acompanhado_chuva'] ? 'S' : 'N';
			$this->view->fl_acompanhado_vento = $row['fl_acompanhado_vento'] ? 'S' : 'N';
			$this->view->fl_area_atingida     = $row['fl_area_atingida'];
			$this->view->ds_coordenadas_geograficas_sede = $row['ds_coordenadas_geograficas_sede'];
		}
		$this->view->ds_observacao = $row['ds_observacao'];
	}

	public function getRow() {
		if ($this->session->idLaudoFinal) {
		    $Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizo');
			$Model = new $nomeModel;
			
			$row = $Model->getDataLaudoFinal($this->session->idLaudoFinal);

			return $row;
		}
	}

	public function formdadosquadraAction() {
		$this->getHelper('layout')->disableLayout();
		
		$ModelVistoriasLaudos = new Sistema_Model_VistoriasLaudosFinais();
		
		$idItem = $this->getRequest()->getParam('idItem');
		$this->view->idItem = $idItem;
		$this->view->idRevistoria = $this->session->idRevistoria;
		$this->view->idProposta = $this->getRequest()->getParam('idProposta');
		$this->view->idLaudoFinal = $this->session->idLaudoFinal;
		$this->view->hasRevistoria = $this->session->hasRevistoria;
		$this->view->idProcesso  = $this->session->idProcesso;
		$this->view->userVistoriaMesmaEmpresa = $this->session->userVistoriaMesmaEmpresa;
		
		$this->view->existeVinculo = $ModelVistoriasLaudos->existeVinculo($this->session->idVistoria, $this->session->idLaudoFinal);
		
		$this->view->formDadosVistoriaLF = new Sistema_Form_DadosVistoriaLaudoFinal;
		$this->view->formAssinatura = new Sinistro_Form_AssinaturaLaudoPreliminar;

		$this->view->amostras = array();
		
		$ItemSegurado = new Seguro_Model_ItensSegurados();
		$this->view->item = $ItemSegurado->getItemSeguradoById($idItem);
		
		$this->view->vistoriadores = array();

		$Proposta = new Seguro_Model_Propostas();
		$cultura = $Proposta->getCulturaProduto($this->session->idProposta);
		$this->idCultura = $cultura['id_cultura'];
		$this->view->dsChaveCultura = $cultura['ds_chave_cultura'];
		
		
		$ModelCultura = new Produto_Model_Culturas();
    	$Cultura = $ModelCultura->find($cultura['id_cultura'])->current();
    	
    	if ($Cultura->ds_chave_cultura == "ALHO"){
    		$combo = array("", "1", "2", "3", "4", "5", "6", "7", "8", "9");	
    	} else {
    		$combo = array("", "1", "2", "3", "4", "5", "6.2", "6.1", "7", "8");
    	}
		
		foreach ($combo as $item) {
			$html .= '<option value="'.$item.'">'.$item.'</option>';
		} 
		$this->view->comboEstadio = $html;
		
    	if ($this->session->idLaudoFinal) {
    		
	    	$Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
			$LaudoFinalItemSegurado = new $nomeModel;
			
			$rs = $LaudoFinalItemSegurado->find($this->session->idLaudoFinal, $idItem);

			$timestampVistoria = $rs['dt_vistoria'];
			$this->session->dtVistoria = $rs['dt_vistoria'];
			$this->view->item['ds_coordenadas_geograficas'] = $rs['ds_coordenadas_geograficas'];
			$this->view->item['vl_percent_colhido']         = $rs['vl_percent_colhido'];
			$this->view->item['vl_percent_perdas']          = number_format($rs['vl_percent_perdas'], 2, '.', '') . '%';
			$this->view->item['vl_percent_total_perdas']    = number_format($rs['vl_percent_total_perdas'], 2, '.', '') . '%';
			$this->view->item['nr_medio_diametro_bulbo']    = $rs['nr_medio_diametro_bulbo'];
			$this->view->item['nr_amostras']                = $rs['nr_amostras'];
			$this->view->item['vl_area_sinistrada']         = $rs['vl_area_sinistrada'];
			$this->view->item['vl_percent_area_afetada']    = $rs['vl_percent_area_afetada'];
			$this->view->item['ds_observacao']              = $rs['ds_observacao'];

			$arrayVistoria = array();
			$dtVistoria = explode(' ', $timestampVistoria);

			$arrayVistoria['dt_vistoria']  = Agro_Util::formatDate($dtVistoria[0], 'dd/MM/yyyy'); 
			$this->session->dtVistoria = $arrayVistoria['dt_vistoria']; 
			$arrayVistoria['hr_vistoria']  = substr($dtVistoria[1], 0, 2);
			$arrayVistoria['min_vistoria'] = substr($dtVistoria[1], 3, 2);
			$this->view->formDadosVistoriaLF->populate($arrayVistoria);
			
			$arrayAssintura = array();
			$arrayAssintura['fl_assinatura_regulador'] = $rs['fl_assinatura_regulador'];
			$arrayAssintura['fl_assinatura_segurado']  = $rs['fl_assinatura_segurado'];
			$this->view->formAssinatura->populate($arrayAssintura);

			$this->session->idLaudoFinalItemSegurado = $rs['id_laudo_final_item_segurado'];
			$this->view->idLaudoFinalItemSegurado = $this->session->idLaudoFinalItemSegurado;
			if ($this->session->idLaudoFinalItemSegurado) {
				$ItemSeguradoFuncionario = new Sinistro_Model_LaudosFinaisItensSeguradosFuncionarios();
				$this->view->vistoriadores = $ItemSeguradoFuncionario->getVistoriadoresByItemSegurado($this->session->idLaudoFinalItemSegurado);

				if ($this->session->idRevistoria) {
					$ItemRevistoria = new Sinistro_Model_LaudosFinaisItensSeguradosRevistoria();
					$rs = $ItemRevistoria->find($this->session->idLaudoFinalItemSegurado);
					
					$this->view->fl_substitui_laudo_anterior = $rs['fl_substitui_laudo_anterior'] ? 'S' : 'N';
				}
			}

			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSeguradosAmostras');
			$LaudoFinalItemSeguradoAmostras = new $nomeModel;
			$rs = $LaudoFinalItemSeguradoAmostras->getAmostrasByItem($this->session->idLaudoFinal, $idItem);
	
			$aux = array();
			if (count($rs) > 0) {
				foreach ($rs as $it) {
					$aux[$it['nr_amostra']]['ds_estadio']                               = $it['ds_estadio'];
					$aux[$it['nr_amostra']]['vl_percent_plantas_mortas']                = $it['vl_percent_plantas_mortas'];
					$aux[$it['nr_amostra']]['vl_percent_populacao_remanescente']        = $it['vl_percent_populacao_remanescente'] . '%';
					$aux[$it['nr_amostra']]['vl_percent_bulbos_danificados']            = $it['vl_percent_bulbos_danificados'];
					$aux[$it['nr_amostra']]['vl_percent_total_dano_bulbo']              = $it['vl_percent_total_dano_bulbo'] . '%';
					$aux[$it['nr_amostra']]['vl_percent_total_dano_direto']             = $it['vl_percent_total_dano_direto'] . '%';
					$aux[$it['nr_amostra']]['vl_percent_capacidade_produtiva_restante'] = $it['vl_percent_capacidade_produtiva_restante'] . '%';
					$aux[$it['nr_amostra']]['vl_percent_desfolhamento']                 = $it['vl_percent_desfolhamento'];
					$aux[$it['nr_amostra']]['vl_percent_dano_bruto']                    = $it['vl_percent_dano_bruto'];
					$aux[$it['nr_amostra']]['vl_percent_dano']                          = $it['vl_percent_dano'] . '%';
					$aux[$it['nr_amostra']]['vl_percent_total_dano_granizo']            = $it['vl_percent_total_dano_granizo'] . '%';
				}				
			}
			$this->view->amostras = $aux;
    	}
  	}

	public function formquadrasnaosalvasAction() {
		$this->getHelper('layout')->disableLayout();
		
		$idItem = $this->getRequest()->getParam('idItem');
		$idItensSelecionados = $this->getRequest()->getParam('idItensSelecionados');
		
    	$Safra = new Produto_Model_Safras();
		$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
		$ItensAlhoCebolaGranizo = new $nomeModel;
		
		
		if ($this->session->idRevistoria) {
			$this->view->itensSegurados = $ItensAlhoCebolaGranizo->getItensRevistoriadosNaoSalvos($this->session->idProposta, $idItem, $this->session->idRevistoria, $idItensSelecionados);
		} else {
			if ($idItensSelecionados) {
				$this->view->itensSegurados = $ItensAlhoCebolaGranizo->getItensNaoSalvos($this->session->idProposta, $idItensSelecionados, $idItem, $this->session->idLaudoFinal);
			} else {
				$this->view->itensSegurados = array();
			}
		}
	}

	public function calculapercentuaisAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		
		$data = array();
		$amostras = array();
		$percentuais = array();

    	$Safra = new Produto_Model_Safras();
		$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
		$Safra12ItemSegurado = new $nomeModel;
		
		$idItem = $this->getRequest()->getParam('idItem');
		$vlPercentColhido = $this->getRequest()->getParam('vl_percent_colhido');
		
		$vlMaiorPercentColhidoLF = $Safra12ItemSegurado->getMaiorPercentColhidoLF($this->session->idProposta, $this->session->idCobertura, $idItem, Agro_Util::formatDate($this->getRequest()->getParam('dt_vistoria'), 'yyyyMMdd'));
		$vlMaiorPercentColhidoRevistoria = $Safra12ItemSegurado->getMaiorPercentColhidoRevistoria($this->session->idProposta, $this->session->idCobertura, $idItem, Agro_Util::formatDate($this->getRequest()->getParam('dt_vistoria'), 'yyyyMMdd'));

		$percentColhidos = array();
		$percentColhidos[] = $vlMaiorPercentColhidoLF ? $vlMaiorPercentColhidoLF : 0; 
		$percentColhidos[] = $vlMaiorPercentColhidoRevistoria ? $vlMaiorPercentColhidoRevistoria : 0; 
		rsort($percentColhidos);
		
		$data['error'] = null;
		if ($percentColhidos[0] > $vlPercentColhido) {
			$data['error'] = 'O percentual colhido não pode ser menor do que no laudo anterior (' . $percentColhidos[0] . '%).'; 			
		} else {
			$Proposta = new Seguro_Model_Propostas();
			$cultura = $Proposta->getCulturaProduto($this->session->idProposta);
			$this->idCultura = $cultura['id_cultura'];
			$this->dsChaveCultura = $cultura['ds_chave_cultura'];
	
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'AvaliacaoDanosDesfolhamento');
			$AvaliacaoDanos = new $nomeModel;
	
			$nrDiametroMedioBulbo = $this->getRequest()->getParam('nr_medio_diametro_bulbo');
			$vlTotalPerdas = 0;
			
			$nr_amostras = 0;
			for ($i = 1; $i < 12; $i++) {
	
			 	$dsEstadio = $this->getRequest()->getParam('ds_estadio-' . $i);
				$vlPlantasMortas = $this->getRequest()->getParam('vl_percent_plantas_mortas-' . $i);
				$vlBulbosDanificados = $this->getRequest()->getParam('vl_percent_bulbos_danificados-' . $i);
				$vlPercentDesfolhamento = $this->getRequest()->getParam('vl_percent_desfolhamento-' . $i);
				
				if ($dsEstadio && $vlPlantasMortas && $vlBulbosDanificados && $vlPercentDesfolhamento) {
					$nr_amostras+=1;
					
					$amostras[$i]['nr_amostra'] = $i;
					$amostras[$i]['ds_estadio'] = number_format($dsEstadio, 2);
					$amostras[$i]['vl_percent_plantas_mortas'] = $vlPlantasMortas;
		
					$vlPopulacaoRemanescente = 100 - $vlPlantasMortas;
					$data[$i]['vlPopulacaoRemanescente'] = $vlPopulacaoRemanescente . '%';
					$amostras[$i]['vl_percent_populacao_remanescente'] = $vlPopulacaoRemanescente;
					$amostras[$i]['vl_percent_bulbos_danificados'] = $vlBulbosDanificados;
		
					$vlTotalDanoBulbo = ($vlBulbosDanificados * $vlPopulacaoRemanescente) / 100;
					$vlTotalDanoBulbo = number_format(Agro_Util::round($vlTotalDanoBulbo, 2), 2, '.', '');
					$data[$i]['vlTotalDanoBulbo'] = $vlTotalDanoBulbo . '%';
		  			$amostras[$i]['vl_percent_total_dano_bulbo'] = $vlTotalDanoBulbo;
		
					$vlTotalDanoDireto = $vlPlantasMortas + $vlTotalDanoBulbo;
					$vlTotalDanoDireto = number_format(Agro_Util::round($vlTotalDanoDireto, 2), 2, '.', '');
					$data[$i]['vlTotalDanoDireto'] = $vlTotalDanoDireto . '%';
		  			$amostras[$i]['vl_percent_total_dano_direto'] = $vlTotalDanoDireto;
		
					$vlCPR = 100 - $vlTotalDanoDireto;
					$vlCPR = number_format(Agro_Util::round($vlCPR, 2), 2, '.', '');
					$data[$i]['vlCPR'] = $vlCPR . '%';
		  			$amostras[$i]['vl_percent_capacidade_produtiva_restante'] = $vlCPR;
		  			$amostras[$i]['vl_percent_desfolhamento'] = $vlPercentDesfolhamento;
		
					if (($this->dsChaveCultura == 'CEBOLA') && ($dsEstadio == '6')) {
						if ($nrDiametroMedioBulbo >= 50) {
							$dsEstadio .= 'A';
						} else if ($nrDiametroMedioBulbo >= 30 && $nrDiametroMedioBulbo < 50) {
							$dsEstadio .= 'B';
						}
					}
					$item = $AvaliacaoDanos->find($this->idCultura, $dsEstadio, $vlPercentDesfolhamento);
					
					$vlDanoBruto = $this->getRequest()->getParam('vl_percent_dano_bruto-' . $i);
					
		  			$amostras[$i]['vl_percent_dano_bruto'] = $this->getRequest()->getParam('vl_percent_dano_bruto-' . $i);
					
					$vlDano = ($vlDanoBruto * $vlCPR) / 100;
					$data[$i]['vlDano'] = number_format(Agro_Util::round($vlDano, 2), 2, '.', '') . '%';
		  			$amostras[$i]['vl_percent_dano'] = number_format(Agro_Util::round($vlDano, 2), 2, '.', '');
					
					$vlTotalDanoGranizo = $vlTotalDanoDireto + $vlDano;
					$data[$i]['vlTotalDanoGranizo'] = number_format(Agro_Util::round($vlTotalDanoGranizo, 2), 2, '.', '') . '%';
		  			$amostras[$i]['vl_percent_total_dano_granizo'] = number_format(Agro_Util::round($vlTotalDanoGranizo, 2), 2, '.', '');
					
					$vlTotalPerdas += $vlTotalDanoGranizo;
					
					
				} else {
					$data[$i]['vlPopulacaoRemanescente'] = '';
					$data[$i]['vlTotalDanoGranizo'] = '';
					$data[$i]['vlTotalDanoDireto'] = '';
					$data[$i]['vlTotalDanoBulbo'] = '';
					$data[$i]['vlDanoBruto'] = '';
					$data[$i]['vlDano'] = '';
					$data[$i]['vlCPR'] = '';
					
				}
			}	
			$data['vlPercentTotalPerdas'] = number_format(Agro_Util::round($vlTotalPerdas, 2), 2, '.', '') . '%';
			$percentuais['vlPercentTotalPerdas'] = number_format(Agro_Util::round($vlTotalPerdas, 2), 2, '.', '');
			
			$percentuais['nr_amostras'] = $nr_amostras;
			
			$vlPercentPerdas = $data['vlPercentTotalPerdas'] / $nr_amostras;
			
			$data['vlPercentPerdas'] = number_format(Agro_Util::round($vlPercentPerdas, 2), 2, '.', '') . '%';
			$percentuais['vlPercentPerdas'] = number_format(Agro_Util::round($vlPercentPerdas, 2), 2, '.', '');
			
			$ret = $this->saveItensSegurados($this->getRequest()->getParams(), $amostras, $percentuais);
			if ($ret) {
				$data['arrayIdsItens'] = $ret;
			}
			//$this->verificaAvisos('saveItem');
		}

		
		//$this->getResponse()->setBody(Zend_Json::encode($data));
	}
	
	public function verificaAvisos($step = null) {

		try {
			$Db = Agro_Db_Table_Abstract::getDefaultAdapter();
			$Db->beginTransaction();

			$AvisoSinistro = new Sinistro_Model_AvisosSinistro();
			$avisos = $AvisoSinistro->getAvisosByCoberturasSemVistPreliminar($this->session->idProposta, $this->session->idCobertura);
			if (count($avisos) > 0) {
				$ItemSegurado = new Sinistro_Model_LaudosFinaisItensSegurados();
				$rs = $ItemSegurado->getMenorDtVistoria($this->session->idLaudoFinal);
				if ($rs['dt_vistoria']) {
					$dtVistoria = Agro_Util::formatDate($rs['dt_vistoria'], 'yyyyMMdd');
					foreach ($avisos as $it) {
						$dtSinistro = Agro_Util::formatDate($it['dt_sinistro'], 'yyyyMMdd');

						if ($it['id_vistoria'] == $this->session->idVistoria) {
							if ($dtVistoria < $dtSinistro) {
								$this->errorMessage = true;
								throw new Exception('A data da vistoria não pode ser anterior a data do sinistro.');
							}
						} else {
							if (!$it['id_vistoria']) {
								if ($dtVistoria >= $dtSinistro) {
									$item = array();
									$item['id_vistoria'] = $this->session->idVistoria;
									$item['id_aviso'] = $it['id_aviso'];
									
									$VistoriaAviso = new Sinistro_Model_VistoriasAvisos();
									$VistoriaAviso->insert($item);
								}
							}
						}
					}
				}
			}
			$Db->commit();
		} catch (Exception $e) {
			$Db->rollBack();
			if ($step == 'saveItem') {
				echo $e->getMessage();
			} else {
				throw new Exception($e->getMessage());
			}
		}
	}
	
	public function saveLaudoFinal(array $post) {
		
	try {
			$Db = Agro_Db_Table_Abstract::getDefaultAdapter();
			$Db->beginTransaction();

			/****************************************************/
			// Tabela sinistro.laudos_finais
			/***************************************************/
			$LaudosFinais = new Sinistro_Model_LaudosFinais();
			$LaudoFinal = $LaudosFinais->createRow();
			
			$LaudoFinal->id_processo = $post['id_processo'];
			$LaudoFinal->id_cobertura = $post['id_cobertura'];
  			$LaudoFinal->fl_evento_nao_constatado = 0;
  			$LaudoFinal->ds_observacao = '';
			$LaudoFinal->save();
				
			/****************************************************/
			// Tabela sistema.vistorias_laudos_finais
			/***************************************************/
			$VistoriasLaudosFinais = new Sistema_Model_VistoriasLaudosFinais();
			$Row = $VistoriasLaudosFinais->createRow();
			$Row->id_vistoria = $post['id_vistoria'];
			$Row->id_laudo_final = $LaudoFinal->id;
			$Row->save();

			$Db->commit();
			
			return $LaudoFinal->id;

		} catch (Exception $e) {
			$Db->rollBack();
			echo $e->getMessage();
		}
	}

	public function saveItensSegurados(array $post, array $amostras, array $percentuais) {
		try {
			$Db = Agro_Db_Table_Abstract::getDefaultAdapter();
			$Db->beginTransaction();

			$idLaudo = $this->session->idLaudoFinal; 
			$arrayIdsItens = array();
			$cont = 1;

	    	$Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
			$Safra12ItensSegurados = new $nomeModel;
			
				$dtVistoria    = $this->getRequest()->getParam('dt_vistoria');
				$hrVistoria    = $this->getRequest()->getParam('hr_vistoria');
				$minVistoria   = $this->getRequest()->getParam('min_vistoria');
				$idVistoriador = $this->getRequest()->getParam('idVistoriador');
				$dtVistoria = Agro_Util::formatDate($dtVistoria .' '. $hrVistoria .' '. $minVistoria, 'yyyy-MM-dd HH:mm:ss');
			
			foreach ($post as $key => $value) {

				if ((strpos($key, 'item-') > -1) || ($key == 'idItem')) {

					$idItem = $value;

					/****************************************************/
					// Tabela sistema.vistorias_itens_segurados
					/***************************************************/
					$VistoriaItensSegurados = new Sistema_Model_VistoriasItensSegurados();
					$VistoriaItensSegurados->delete($this->session->idVistoria, $idItem);
					
					$itens = array();
					$itens['id_vistoria']      = $this->session->idVistoria;
					$itens['id_item_segurado'] = $idItem;
					$VistoriaItensSegurados->insert($itens);
		
					/****************************************************/
					// Tabela sinistro.laudos_finais_itens_segurados
					/***************************************************/
					$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
					if ($key != 'idItem') {
					   	$rs = $SinistroItensSegurados->find($this->session->idLaudoFinal, $idItem);
					   	if ($rs['fl_nao_vistoriada']) {
						   	$SinistroItensSegurados->delete($this->session->idLaudoFinal, $idItem);
					   	} else {
							$rs = $Safra12ItensSegurados->find($this->session->idLaudoFinal, $idItem);
							if ($rs['id_laudo_final_item_segurado']) {
								$SinistroItensSegurados->deleteItem($rs['id_laudo_final_item_segurado']);
							}
					   	}
					}		
				   	
					$itens = array();
					$itens['id_laudo_final']          = $this->session->idLaudoFinal;
					$itens['id_item_segurado']        = $idItem;
					$itens['dt_vistoria']             = $dtVistoria;  
					$itens['vl_percent_perdas']       = $percentuais['vlPercentPerdas'];
					$itens['vl_area_sinistrada']      = $post['vl_area_sinistrada'];
					$itens['vl_percent_area_afetada'] = $post['vl_percent_area_afetada'];
					$itens['ds_observacao']           = $post['ds_observacao_item'];
					$itens['fl_assinatura_regulador'] = $post['fl_assinatura_regulador'];
					$itens['fl_assinatura_segurado']  = $post['fl_assinatura_segurado'];
					$itens['vl_percent_colhido']      = $post['vl_percent_colhido'];
		
					if ($key != 'idItem') {
					   	$idLaudoFinalItemSegurado = $SinistroItensSegurados->insert($itens);
						$arrayIdsItens[$cont]['itemSecundario']['idItemSegurado'] = $idItem;
						$cont++;
					} else {
					   	$idLaudoFinalItemSegurado = $this->session->idLaudoFinalItemSegurado; 
						$SinistroItensSegurados->update($itens, 'id = ' . $this->session->idLaudoFinalItemSegurado);
						$arrayIdsItens[0]['itemPrincipal']['idItemSegurado'] = $idItem;
					}
					/****************************************************/
					// Tabela safra12.laudos_finais_alho_cebola_granizo_itens_segurados
					/***************************************************/
					
					$itens = array();
					$itens['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado; 
					$itens['nr_amostras']                  = $percentuais['nr_amostras'];
					$itens['ds_coordenadas_geograficas']   = $post['ds_coordenadas_geograficas-' . $idItem];
					$itens['nr_medio_diametro_bulbo']      = $post['nr_medio_diametro_bulbo'] ? $post['nr_medio_diametro_bulbo'] : null;
					$itens['vl_percent_total_perdas']      = $percentuais['vlPercentTotalPerdas'];
					if ($key != 'idItem') {
					   	$Safra12ItensSegurados->insert($itens);
					} else {
					   	$Safra12ItensSegurados->update($itens, 'id_laudo_final_item_segurado = ' . $this->session->idLaudoFinalItemSegurado);
					}
		
					if ($this->session->idRevistoria) {
						/****************************************************/
						// Tabela sinistro.laudos_finais_itens_segurados_revistoria
						/***************************************************/
				    	$ItemRevistoria = new Sinistro_Model_LaudosFinaisItensSeguradosRevistoria();
						
						$itens = array();
						$itens['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado; 
						$itens['fl_substitui_laudo_anterior']  = $post['fl_substitui_laudo_anterior'] == 'S' ? 1 : 0;
						if ($key != 'idItem') {
						   	$ItemRevistoria->insert($itens);
						} else {
						   	$ItemRevistoria->update($itens, 'id_laudo_final_item_segurado = ' . $this->session->idLaudoFinalItemSegurado);
						}
					}

					/****************************************************/
					// Tabela safra12.laudos_finais_alho_cebola_granizo_itens_segurados_amostras
					/***************************************************/
			    	$Safra = new Produto_Model_Safras();
					$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSeguradosAmostras');
					$Safra12ItensSeguradosAmostras = new $nomeModel;
					$Safra12ItensSeguradosAmostras->delete($idLaudoFinalItemSegurado);
		
					foreach ($amostras as $it) {
						
						$itens = array();
						$itens['id_laudo_final_item_segurado']             = $idLaudoFinalItemSegurado;
						$itens['nr_amostra']                               = $it['nr_amostra'];
						$itens['ds_estadio']                               = $it['ds_estadio'];
						$itens['vl_percent_plantas_mortas']                = $it['vl_percent_plantas_mortas'];
						$itens['vl_percent_populacao_remanescente']        = $it['vl_percent_populacao_remanescente'];
						$itens['vl_percent_bulbos_danificados']            = $it['vl_percent_bulbos_danificados'];
						$itens['vl_percent_total_dano_bulbo']              = $it['vl_percent_total_dano_bulbo'];
						$itens['vl_percent_total_dano_direto']             = $it['vl_percent_total_dano_direto'];
						$itens['vl_percent_capacidade_produtiva_restante'] = $it['vl_percent_capacidade_produtiva_restante'];
						$itens['vl_percent_desfolhamento']                 = $it['vl_percent_desfolhamento'];
						$itens['vl_percent_dano_bruto']                    = $it['vl_percent_dano_bruto'];
						$itens['vl_percent_dano']                          = $it['vl_percent_dano'];
						$itens['vl_percent_total_dano_granizo']            = $it['vl_percent_total_dano_granizo'];
		  
						$Safra12ItensSeguradosAmostras->insert($itens);
					}	
					
					if ($key != 'idItem') {
						/****************************************************/
						// Tabela sinistro.laudos_finais_itens_segurados_funcionarios
						/***************************************************/
						$ItensSeguradosFuncionario = new Sinistro_Model_LaudosFinaisItensSeguradosFuncionarios();
						$ItensSeguradosFuncionario->delete($idLaudoFinalItemSegurado);
						
						foreach ($this->session->listFuncionarios as $idFunc) {
							$func = array();
							$func['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado;
							$func['id_funcionario']  = $idFunc;
							
						   	$ItensSeguradosFuncionario->insert($func);
						}
					}
				}
			}
			$Db->commit();

			return $arrayIdsItens;
		} catch (Exception $e) {
			$Db->rollBack();
			echo $e->getMessage().'<br><br><pre>'.$e->getTraceAsString().'</pre>';
		}
	}
	
	public function save(array $post) {
		try {
			$Db = Agro_Db_Table_Abstract::getDefaultAdapter();
			$Db->beginTransaction();

			/****************************************************/
			// Tabela sistema.revistorias
			/***************************************************/
			if ($this->session->idRevistoria) {
				$Revistoria = new Sistema_Model_Revistorias();			
				$data = array();
				if ($post['fl_realizada'] == 'S') {
					$data['fl_realizada']  = 1; 
					$data['ds_motivo_nao_realizada'] = '';
				} else {
					$data['fl_realizada']  = 0;
					$data['ds_motivo_nao_realizada'] = $post['ds_motivo_nao_realizada'];
				}
			   	$Revistoria->update($data, 'id_vistoria = ' . $this->session->idRevistoria);
			}

			/****************************************************/
			// Tabela sinistro.laudos_finais
			/***************************************************/
			$LaudosFinais = new Sinistro_Model_LaudosFinais();

			$laudo = array();
			$laudo['id_processo']              = $post["idProcesso"];
			$laudo['id_cobertura']             = $post["idCobertura"];
			
			if ($post['fl_realizada'] == 'N') {
	  			$laudo['fl_evento_nao_constatado'] = 0;
	  			$laudo['ds_observacao']            = '';
	  			$laudo['fl_area_atingida']		   = '';	
			} else {
	  			$laudo['fl_evento_nao_constatado'] = $post['fl_evento_nao_constatado'] ? 1 : 0;
	  			$laudo['ds_observacao']            = $post['ds_observacao'];
	  			$laudo['fl_area_atingida']         = $post['fl_area_atingida'];
			}
			
			$idLaudoFinal = $post["idLaudoFinal"]; 
			
			$LaudosFinais->update($laudo, "id = $idLaudoFinal");
			$idLaudoFinal = $this->session->idLaudoFinal;
			
			/*
			
			if (!$this->session->idLaudoFinal) {
				$VistoriasLaudosFinais = new Sistema_Model_VistoriasLaudosFinais();
				$Row = $VistoriasLaudosFinais->createRow();
				$Row->id_vistoria    = $this->session->idVistoria;
				$Row->id_laudo_final = $idLaudoFinal;
				$Row->save();

			 	$this->session->idLaudoFinal = $idLaudoFinal;	
			}
			
			*/

			if ($post['saveAction']){ 
				if ($post['fl_realizada'] != 'N') {
					
					if (!$post['fl_evento_nao_constatado']) {
						/****************************************************/
						// Tabela safra12.laudos_finais_alho_cebola_granizo
						/***************************************************/
				    	$Safra = new Produto_Model_Safras();
						$nomeModel = $Safra->getSafraModel($post["idProposta"],'LaudosFinaisAlhoCebolaGranizo');
						$LaudoAlhoCebolaGranizo = new $nomeModel;
						$LaudoAlhoCebolaGranizo->delete($idLaudoFinal);
			
						$laudo = array();
						$laudo['id_laudo_final']            = $idLaudoFinal;
						$laudo['fl_acompanhado_vento']      = $post['fl_acompanhado_vento'] == 'S' ? 1 : 0;
					  	$laudo['ds_direcao_evento']         = $post['ds_direcao_evento'];
					  	$laudo['fl_acompanhado_chuva']      = $post['fl_acompanhado_chuva'] == 'S' ? 1 : 0;
					  	$laudo['ds_diametro_medio_granizo'] = $post['ds_diametro_medio_granizo'];	
					  	$laudo['ds_coordenadas_geograficas_sede'] = $post['ds_coordenadas_geograficas_sede'];	
					  	
						$LaudoAlhoCebolaGranizo->insert($laudo);
						
						if (is_array($post['fl_nao_vistoriada']) && count($post['fl_nao_vistoriada']) > 0) {
							/****************************************************/
							// Tabela sistema.vistorias_itens_segurados
							/***************************************************/
							$VistoriaItensSegurados = new Sistema_Model_VistoriasItensSegurados();
							foreach ($post['fl_nao_vistoriada'] as $item) {
								$idItem = $item;
								$idLaudo = $idLaudoFinal;
			
								/****************************************************/
								// Tabela sistema.vistorias_itens_segurados
								/***************************************************/
								$VistoriaItensSegurados->delete($post["idVistoria"], $idItem);
								
								$itens = array();
								$itens['id_vistoria']      = $post["idVistoria"];
								$itens['id_item_segurado'] = $idItem;
								$VistoriaItensSegurados->insert($itens);
								
								/****************************************************/
								// Tabela sinistro.laudos_finais_itens_segurados
								/***************************************************/
								$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
								$SinistroItensSegurados->delete($idLaudo, $idItem);
								
								$itens = array();
								$itens['id_laudo_final']    = $idLaudo;
								$itens['id_item_segurado']  = $idItem;
								$itens['vl_percent_perdas'] = null;
								$itens['fl_nao_vistoriada'] = 1;
								$itens['id_motivo_quadra_nao_vistoriada'] = $post['id_motivo_quadra_nao_vistoriada-' . $idItem];
								
							   	$SinistroItensSegurados->insert($itens);
							}
						}
					} else {
						/****************************************************/
						// Tabela sinistro.laudos_finais_itens_segurados
						/***************************************************/
						$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
						$SinistroItensSegurados->delete($idLaudoFinal);
					}
				} else {
					if ($idLaudoFinal) {
						/****************************************************/
						// Tabela safra12.laudos_finais_alho_cebola_granizo
						/***************************************************/
				    	$Safra = new Produto_Model_Safras();
						$nomeModel = $Safra->getSafraModel($post["idProposta"],'LaudosFinaisAlhoCebolaGranizo');
						$LaudoAlhoCebolaGranizo = new $nomeModel;
						$LaudoAlhoCebolaGranizo->delete($idLaudoFinal);
						
						/****************************************************/
						// Tabela sistema.vistorias_itens_segurados
						/***************************************************/
						$VistoriaItensSegurados = new Sistema_Model_VistoriasItensSegurados();
						$VistoriaItensSegurados->delete($post["idVistoria"]);
	
						/****************************************************/
						// Tabela sinistro.laudos_finais_itens_segurados
						/***************************************************/
						$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
						$SinistroItensSegurados->delete($idLaudoFinal);
					}
				}
			}			
			
			$this->session->laudoSalvo = 1;
			
			$Db->commit();
		} catch (Exception $e) {
			print_r($e->getMessage());
			
			$this->view->showMessage(MSG_ERROR, $e->getMessage());
		
			$Db->rollBack();
		}
	}
	
	public function populaCampos($post) {
		
		$VistoriaFuncionario = new Sistema_Model_VistoriasFuncionarios();
		$this->view->vistoriadores = $VistoriaFuncionario->getVistoriadoresByVistoria($post['idVistoria']);

		if (array_key_exists('fl_evento_nao_constatado', $post)) {
			$this->view->fl_evento_nao_constatado = $post['fl_evento_nao_constatado'];
		} else {
			$this->view->fl_acompanhado_vento      = $post['fl_acompanhado_vento'];
			$this->view->fl_acompanhado_chuva      = $post['fl_acompanhado_chuva'];
			$this->view->ds_coordenadas_geograficas_sede = $post['ds_coordenadas_geograficas_sede'];
			$this->view->ds_direcao_evento         = $post['ds_direcao_evento'];
			$this->view->ds_diametro_medio_granizo = $post['ds_diametro_medio_granizo'];
			$this->view->fl_area_atingida          = $post['fl_area_atingida'];

			foreach ($post['itens_segurados'] as $item) {
				$idItem = $item;
			
				if ($post['fl_nao_vistoriada'] && in_array($idItem, $post['fl_nao_vistoriada'])) {
					$this->view->listDadosItens[$idItem]['fl_nao_vistoriada'] = true;
				} else { 
					$this->view->listDadosItens[$idItem]['fl_nao_vistoriada'] = false;
				}
				$this->view->listDadosItens[$idItem]['id_motivo_quadra_nao_vistoriada'] = $post['id_motivo_quadra_nao_vistoriada-' . $idItem];
				$this->view->listDadosItens[$idItem]['vl_percentual_colhido'] = $post['vl_percentual_colhido-' . $idItem];
				$this->view->listDadosItens[$idItem]['vl_percentual_perdas']  = $post['vl_percentual_perdas-' . $idItem];
			}			
		}	
		$this->view->ds_observacao = $post['ds_observacao'];

		if ($this->session->idRevistoria) {
			$this->view->fl_realizada = $post['fl_realizada'];
			$this->view->ds_motivo_nao_realizada = $post['ds_motivo_nao_realizada'];
		}
	} 

	public function getitenslaudofinalAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();

		$data = array();
		$MotivosQuadraNaoVistoriada = new Sinistro_Model_MotivosQuadraNaoVistoriada();
		$motivos = $MotivosQuadraNaoVistoriada->fetchPairs('id', 'ds_motivo');
		foreach ($motivos as $key => $value) {
			if (!$key) {
				$combo = '<option value="">Selecione o motivo</option>';
			} else {
				$combo .= '<option value='.$key.'>'.$value.'</option>';
			}
		} 
		$data['motivos'] = $combo;
		if ($this->session->idLaudoFinal) {
	    	$Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
			$LaudoItens = new $nomeModel;
			$arrayLaudoItem = $LaudoItens->getItensByLaudo($this->session->idLaudoFinal);
	
			if (count($arrayLaudoItem) > 0) {
				foreach ($arrayLaudoItem as $item) {
					$id = $item['id_item_segurado'];
					
					$data['itensLaudo'][$id]['nr_item_segurado'] = $item['nr_item_segurado'];
					$data['itensLaudo'][$id]['ds_item_segurado'] = $item['ds_item_segurado'];
					$data['itensLaudo'][$id]['vl_area'] = $item['vl_area'];
					$data['itensLaudo'][$id]['vl_lmga'] = $item['vl_lmga'];
					$data['itensLaudo'][$id]['ds_nome_variedade'] = $item['ds_nome_variedade'];
					
					$data['itensLaudo'][$id]['fl_nao_vistoriada']               = $item['fl_nao_vistoriada'];
				  	$data['itensLaudo'][$id]['id_motivo_quadra_nao_vistoriada'] = $item['id_motivo_quadra_nao_vistoriada'];
				  	$data['itensLaudo'][$id]['vl_percent_colhido'] = $item['vl_percent_colhido'] ? $item['vl_percent_colhido'] : '';
				  	$data['itensLaudo'][$id]['vl_percent_perdas']  = $item['vl_percent_perdas'] ? number_format($item['vl_percent_perdas'], 2, '.', '') : '';
				}
			}
		}
		$LaudoFinal = new Sinistro_Model_LaudosFinais();
		if ($this->session->idRevistoria) {
			$data['itensSegurados'] = $LaudoFinal->getItensRevistoria($this->session->idProposta, $this->session->idRevistoria);
		} else {
			$data['itensSegurados'] = $LaudoFinal->getItensDisponiveisLaudoFinal($this->session->idProposta);
		}
		
		$this->getResponse()->setBody(Zend_Json::encode($data));
	}

	public function savedadosvistoriaAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		
		Agro_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
		
		try {
			$result = true;
			
			$idItem        = $this->getRequest()->getParam('idItem');
			$dtVistoria    = $this->getRequest()->getParam('dt_vistoria');
			$hrVistoria    = $this->getRequest()->getParam('hr_vistoria');
			$minVistoria   = $this->getRequest()->getParam('min_vistoria');
			$idVistoriador = $this->getRequest()->getParam('idVistoriador');

			$dtVistoria = Agro_Util::formatDate($dtVistoria .' '. $hrVistoria .' '. $minVistoria, 'yyyy-MM-dd HH:mm:ss');
			$Item = new Sinistro_Model_AvisosEncerramentoItensSegurados();
			
			if (!$this->session->idRevistoria) {
				$hasDtEncerramento = $Item->hasDtEncerramentoColheita($this->session->idProposta, $dtVistoria, $idItem);
				if ($hasDtEncerramento) {
					$result = false;
					
				}
			}

			/**
			 * sinistro.laudos_finais_itens_segurados
			 */
			$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
			$itens = array();
			$itens['id_laudo_final']    = $this->session->idLaudoFinal;
			$itens['id_item_segurado']  = $idItem;
			$itens['vl_percent_perdas'] = 0;
			$itens['fl_nao_vistoriada'] = 0;
			$itens['id_motivo_quadra_nao_vistoriada'] = null;
			$itens['dt_vistoria']       = $dtVistoria;
			$itens['fl_assinatura_regulador'] = 0;
			$itens['fl_assinatura_segurado'] = 0;
			$itens['ds_observacao'] = '';				
			$this->session->dtVistoria = $dtVistoria;  

		   	$rs = $SinistroItensSegurados->find($this->session->idLaudoFinal, $idItem);
		   	
			$idLaudoFinalItemSegurado = '';
		   	if ($rs['id']) {
			   	$SinistroItensSegurados->update($itens, 'id = ' . $rs['id']);
			   	$idLaudoFinalItemSegurado = $rs['id'];
		   	} else {
			   	$idLaudoFinalItemSegurado = $SinistroItensSegurados->insert($itens);
		   	}
		   	
		   	/**
		   	 * safra12.laudos_finais_alho_cebola_granizo_itens_segurados
		   	 */
	    	$Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
			$Safra12ItensSegurados = new $nomeModel;
			$Safra12ItensSegurados->delete($idLaudoFinalItemSegurado);

			$itens = array();
			$itens['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado; 
			$itens['vl_percent_colhido'] = 0;
			$Safra12ItensSegurados->insert($itens);
				
			$this->session->idLaudoFinalItemSegurado = $idLaudoFinalItemSegurado;

			/**
			 * sinistro.laudos_finais_itens_segurados_revistoria
			 */
	    	$ItemRevistoria = new Sinistro_Model_LaudosFinaisItensSeguradosRevistoria();
			$ItemRevistoria->delete($idLaudoFinalItemSegurado);
			
			$itens = array();
			$itens['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado; 
			$itens['fl_substitui_laudo_anterior']  = 1;
			$ItemRevistoria->insert($itens);

			/**
			 * sinistro.laudos_finais_itens_segurados_funcionarios
			 */
			$ItensSeguradosFuncionario = new Sinistro_Model_LaudosFinaisItensSeguradosFuncionarios();
			$ItensSeguradosFuncionario->delete($idLaudoFinalItemSegurado);
			
			$listFunc = explode(',', $idVistoriador);
			$this->session->listFuncionarios = array();
			foreach ($listFunc as $idFunc) {
				$func = array();
				$func['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado;
				$func['id_funcionario']  = $idFunc;
				$this->session->listFuncionarios[] = $idFunc;
				
			   	$ItensSeguradosFuncionario->insert($func);
			}
			Agro_Db_Table_Abstract_Abstract::getDefaultAdapter()->commit();
						
		} catch (Exception $e) {
			Agro_Db_Table_Abstract_Abstract::getDefaultAdapter()->rollback();
			
			$result = false;
		}
		
		$this->getResponse()->setBody(Zend_Json::encode($result));
	}

	public function insereitemAction(){
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		
		$params = $this->getRequest()->getParams();
		
		$Safra = new Produto_Model_Safras();
		$ModelLaudoFinal = new Sinistro_Model_LaudosFinaisItensSegurados();
		
		$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisAlhoCebolaGranizoItensSegurados');
		$AlhoCebolaItensSegurados = new $nomeModel;
	
		$LaudoFinalItemSegurado  = $ModelLaudoFinal->find($params['id_laudo_final'], $params['id_item_segurado']);
		
		//$Row = $AlhoCebolaItensSegurados->find($params['id_laudo_final'], $params['id_item_segurado']);
		
		
		if (!$LaudoFinalItemSegurado){
			$RowLaudoFinal = $ModelLaudoFinal->createRow(
				array("id_laudo_final"=>$params['id_laudo_final'], 
					  "id_item_segurado"=>$params['id_item_segurado']
				)
			);
			
			$RowLaudoFinal->save();
			
		}
		
		return true;
	}
}