<?

class Safra12_LfuvageadaController extends Agro_Controller_Action{
	
	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 Uva - Geada";
		
		$this->view->back = "/sinistro/processo/view/id/".$this->getRequest()->getParam('id_processo');
		
	}

	public function formAction() {
		$params = $this->getRequest()->getParams();
		
 		$this->view->idRevistoria = $params['id_revistoria'];
 		$this->view->idLaudoFinal = $params['id_laudo_final'];
		$this->view->idCobertura = $params['id_cobertura'];
		$this->view->idVistoria = $params['id_vistoria'];
		$this->view->idProposta = $params['id_proposta'];
		$this->view->idProcesso = $params['id_processo'];
		
 		$this->session->idRevistoria = $params['id_revistoria'];
 		$this->session->idLaudoFinal = $params['id_laudo_final'];
		$this->session->idCobertura = $params['id_cobertura'];
		$this->session->idVistoria = $params['id_vistoria'];
		$this->session->idProposta = $params['id_proposta'];
		$this->session->idProcesso = $params['id_processo'];
		
		
		if ($this->session->idRevistoria){
			$this->view->title .= " » Formulário de Revistoria";
			
		} else {
			$this->view->title .= " » Formulário";
			
		}

		$this->view->formDadosVistoriaLF = new Sistema_Form_DadosVistoriaLaudoFinal2;
		$this->view->formAssinatura = new Sinistro_Form_AssinaturaLaudoPreliminar;

		$this->view->listDadosItens = array();
		$this->view->vistoriadores = 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;

		
		
		if ($this->getRequest()->isPost()) {

			
			$errorMsg = '';
			if ($this->getRequest()->getParam('fl_realizada') != 'N') {
				$formAssinatura = $this->view->formAssinatura;
				$forms = array($formAssinatura);
				
				$errorMsg = $this->getAllFormErros($forms, $this->getRequest()->getPost(), array());
			}
			
			if ($errorMsg) {
				
				$this->view->formDadosVistoriaLF->populate($this->getRequest()->getParams());
				$this->view->formAssinatura->populate($this->getRequest()->getParams());
				$this->populaCampos($this->getRequest()->getParams());
				$this->view->showMessage($errorMsg, 'error');
			} else {
					
				$this->save($this->getRequest()->getParams());
			}
			
		} 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();
		
		if ($row) {
			$this->view->formDadosVistoriaLF->populate($row);
			$this->session->dtInicioVistoria = $row['dt_inicio'];			
			$this->view->formAssinatura->populate($row);
		}

		$VistoriaFuncionario = new Sistema_Model_VistoriasFuncionarios();
		$this->view->vistoriadores = $VistoriaFuncionario->getVistoriadoresByVistoria($this->session->idVistoria);

		$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,'LaudosFinaisUvaGeada');
			$Safra = new $nomeModel;
			
			$row = $Safra->getDataLaudoFinal($this->session->idLaudoFinal);

			return $row;
		}
	}

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

    	$Safra = new Produto_Model_Safras();
		$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeadaItensSegurados');
		$Safra12ItemSegurado = new $nomeModel;
	
		$post = $this->getRequest()->getParams();
		
		foreach ($post['itens_segurados'] as $value) {
			$idItem = $value;
			
			$vlMaiorPercentColhidoLF = $Safra12ItemSegurado->getMaiorPercentColhidoLF($this->session->idProposta, $this->session->idCobertura, $idItem, Agro_Util::formatDate($post['dt_inicio'], 'yyyyMMdd'));
			$vlMaiorPercentColhidoRevistoria = $Safra12ItemSegurado->getMaiorPercentColhidoRevistoria($this->session->idProposta, $this->session->idCobertura, $idItem, Agro_Util::formatDate($post['dt_inicio'], 'yyyyMMdd'));
	
			$percentColhidos = array();
			$percentColhidos[] = $vlMaiorPercentColhidoLF ? $vlMaiorPercentColhidoLF : 0; 
			$percentColhidos[] = $vlMaiorPercentColhidoRevistoria ? $vlMaiorPercentColhidoRevistoria : 0; 
			rsort($percentColhidos);

			$data['error'] = null;
			if ($percentColhidos[0] > $post['vl_percent_colhido-' . $idItem]) {
				$data['error'] = 'O percentual colhido não pode ser menor do que no laudo anterior (' . $percentColhidos[0] . '%) no item ' . $post['numero_item-' . $idItem] . '.';
				break; 			
			} else {
				$nrTotalBrotosSCacho = $post['nr_total_brotos_s_cacho-' . $idItem]; 			
				$nrTotalBrotosCCacho = $post['nr_total_brotos_c_cacho-' . $idItem]; 			
	
				if ($nrTotalBrotosSCacho != '' && $nrTotalBrotosCCacho != '') {
					
					$nrTotalBrotos = $post['nr_total_brotos-' . $idItem]; 			
					$vlPercentBrotosSCacho = $post['vl_percent_brotos_s_cacho-' . $idItem]; 			
	
					$vlPercentDano = round((($nrTotalBrotos - (($nrTotalBrotos * 25) / 100)) - ($nrTotalBrotosCCacho)) * 100 / ($nrTotalBrotos - (($nrTotalBrotos * 25) / 100)), 2);
									
					$data['itens'][$idItem]['vlPercentDano'] = number_format($vlPercentDano, 2, '.', '');
				}
			}
		}

		$this->getResponse()->setBody(Zend_Json::encode($data));
	}
	
	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
			/***************************************************/
			$laudo = array();			
			$laudo['id_processo'] = $this->session->idProcesso;
			$laudo['id_cobertura'] = $this->session->idCobertura;
  			$laudo['fl_evento_nao_constatado'] = 0;
			if ($post['fl_realizada'] == 'N') {
	  			$laudo['ds_observacao'] = '';
				$laudo['fl_assinatura_regulador'] = 0;
				$laudo['fl_assinatura_segurado']  = 0;
			} else {
	  			$laudo['ds_observacao'] = $post['ds_observacao'];
				$laudo['fl_assinatura_regulador'] = $post['fl_assinatura_regulador'];
				$laudo['fl_assinatura_segurado']  = $post['fl_assinatura_segurado'];
				
			}
			$LaudosFinais = new Sinistro_Model_LaudosFinais();
			$idLaudo = '';
			if ($this->session->idLaudoFinal) {
				$LaudosFinais->update($laudo, 'id = ' . $this->session->idLaudoFinal);
				$idLaudo = $this->session->idLaudoFinal;
			} else {
				$idLaudo = $LaudosFinais->insert($laudo); 
			}
			
			/****************************************************/
			// Tabela sistema.vistorias_laudos_finais
			/***************************************************/
			$VistoriasLaudosFinais = new Sistema_Model_VistoriasLaudosFinais();
			if (!$this->session->idLaudoFinal) {
				$vistoriaLaudo = array();
				$vistoriaLaudo['id_vistoria']    = $this->session->idVistoria;
				$vistoriaLaudo['id_laudo_final'] = $idLaudo;

				$VistoriasLaudosFinais->insert($vistoriaLaudo);
			}

			if ($post['fl_realizada'] != 'N') {
				/****************************************************/
				// Tabela safra12.laudos_finais_uva_geada
				/***************************************************/
		    	$Safra = new Produto_Model_Safras();
				$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeada');
				$LaudoUvaGeada = new $nomeModel;
				$LaudoUvaGeada->delete($idLaudo);
	
				$uvaGeada = array();
				$uvaGeada['id_laudo_final'] = $idLaudo;
				$LaudoUvaGeada->insert($uvaGeada);
	
				/****************************************************/
				// Tabela sistema.vistorias_itens_segurados
				/***************************************************/
				$VistoriaItensSegurados = new Sistema_Model_VistoriasItensSegurados();
				$VistoriaItensSegurados->delete($this->session->idVistoria);
	
				/****************************************************/
				// Tabela sinistro.laudos_finais_itens_segurados
				/***************************************************/
				$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
				if ($this->session->idLaudoFinal) {
					$SinistroItensSegurados->delete($this->session->idLaudoFinal);
				}

				if (is_array($post['itens_segurados']) && count($post['itens_segurados']) > 0) {
			    	$Safra = new Produto_Model_Safras();
					$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeadaItensSegurados');
					$Safra12ItensSegurados = new $nomeModel;
					
					foreach ($post['itens_segurados'] as $value) {
						
						$idItem = $value;
						
						if ($post['fl_nao_vistoriada-' . $idItem] || (!$post['fl_nao_vistoriada-' . $idItem] && $post['vl_percent_dano-' . $idItem])) {
						
							/****************************************************/
							// Tabela sinistro.vistorias_itens_segurados
							/***************************************************/
							$itens = array();
							$itens['id_vistoria']      = $this->session->idVistoria;
							$itens['id_item_segurado'] = $idItem;
							$VistoriaItensSegurados->insert($itens);
									   	
							$itens = array();
							$itens['id_laudo_final']    = $idLaudo;
							$itens['id_item_segurado']  = $idItem;
							$itens['dt_vistoria']       = $this->session->dtInicioVistoria;
							$itens['vl_percent_perdas'] = $post['vl_percent_dano-' . $idItem] ? $post['vl_percent_dano-' . $idItem] : null;
							$itens['vl_percent_colhido']= $post['vl_percent_colhido-' . $idItem];
							$itens['fl_nao_vistoriada'] = $post['fl_nao_vistoriada-' . $idItem] ? 1 : 0;
							$itens['id_motivo_quadra_nao_vistoriada'] = $post['id_motivo_quadra_nao_vistoriada-' . $idItem] ? $post['id_motivo_quadra_nao_vistoriada-' . $idItem] : null;
		
							$idLaudoFinalItemSegurado = $SinistroItensSegurados->insert($itens);	
			
							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-' . $idItem] == 'S' ? 1 : 0;
							   	$ItemRevistoria->insert($itens);
							}
							
							if (!$post['fl_nao_vistoriada-' . $idItem] && $post['vl_percent_dano-' . $idItem]) {
								/****************************************************/
								// Tabela safra12.laudos_finais_uva_geada_itens_segurados
								/***************************************************/
								$itens = array();
								$itens['id_laudo_final_item_segurado'] = $idLaudoFinalItemSegurado; 
								$itens['nr_total_brotos_s_cacho']      = $post['nr_total_brotos_s_cacho-' . $idItem];
								$itens['nr_total_brotos_c_cacho']      = $post['nr_total_brotos_c_cacho-' . $idItem];
								$itens['vl_percent_brotos_s_cacho']    = $post['vl_percent_brotos_s_cacho-' . $idItem];
								$itens['vl_percent_dano']              = $post['vl_percent_dano-' . $idItem];
								$Safra12ItensSegurados->insert($itens);
							}
						}
					}
				}
			} else {
				if ($this->session->idLaudoFinal) {
					/****************************************************/
					// Tabela safra12.laudos_finais_uva_geada
					/***************************************************/
			    	$Safra = new Produto_Model_Safras();
					$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeada');
					$LaudoUvaGeada = new $nomeModel;
					$LaudoUvaGeada->delete($this->session->idLaudoFinal);
	
					/****************************************************/
					// Tabela sistema.vistorias_itens_segurados
					/***************************************************/
					$VistoriaItensSegurados = new Sistema_Model_VistoriasItensSegurados();
					$VistoriaItensSegurados->delete($this->session->idVistoria);
		
					/****************************************************/
					// Tabela sinistro.laudos_finais_itens_segurados
					/***************************************************/
					$SinistroItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();
					$SinistroItensSegurados->delete($this->session->idLaudoFinal);
				}				
			}
			if (!$this->session->idLaudoFinal) {
				$this->session->idLaudoFinal = $idLaudo;
			}
			
			$Db->commit();
			
			$this->populaDadosTela();
			if (!$this->view->idLaudoFinal) {
				$this->view->idLaudoFinal = $this->session->idLaudoFinal;
			}
			$this->view->showMessage(MSG_SUCCESS, 'success');
		} catch (Exception $e) {
			$Db->rollBack();
			$this->populaCampos($post);
			$this->view->showMessage(MSG_ERROR."<br><br>".$e->getMessage(), 'error');
		}
	}

	public function populaCampos($post) {
		
		$VistoriaFuncionario = new Sistema_Model_VistoriasFuncionarios();
		$this->view->vistoriadores = $VistoriaFuncionario->getVistoriadoresByVistoria($this->session->idVistoria);

		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]['nr_total_brotos_s_cacho']         = $post['nr_total_brotos_s_cacho-' . $idItem];
			$this->view->listDadosItens[$idItem]['nr_total_brotos_c_cacho']         = $post['nr_total_brotos_c_cacho-' . $idItem];
			$this->view->listDadosItens[$idItem]['vl_percent_dano']                 = $post['vl_percent_dano-' . $idItem];
			$this->view->listDadosItens[$idItem]['vl_percent_colhido']              = $post['vl_percent_colhido-' . $idItem];
			$this->view->listDadosItens[$idItem]['fl_substitui_laudo_anterior']     = $post['fl_substitui_laudo_anterior-' . $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,'LaudosFinaisUvaGeadaItensSegurados');
			$LaudoItens = new $nomeModel;
			$arrayLaudoItem = $LaudoItens->getItensByLaudo($this->session->idLaudoFinal);

			if (count($arrayLaudoItem) > 0) {
				foreach ($arrayLaudoItem as $item) {
					$id = $item['id'];

					$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_area']                		    = $item['vl_area'];
				  	$data['itensLaudo'][$id]['nr_item_segurado']                = $item['nr_item_segurado'];
					$data['itensLaudo'][$id]['ds_item_segurado']                = $item['ds_item_segurado'];
					$data['itensLaudo'][$id]['ds_nome_variedade']               = $item['ds_nome_variedade'];
		            $data['itensLaudo'][$id]['nr_total_brotos']                 = $item['nr_total_brotos'];
		            $data['itensLaudo'][$id]['nr_total_brotos_c_cacho']         = $item['nr_total_brotos_c_cacho'];
		            $data['itensLaudo'][$id]['nr_total_brotos_s_cacho']         = $item['nr_total_brotos_s_cacho'];
		            $data['itensLaudo'][$id]['vl_percent_dano']                 = $item['vl_percent_dano'];
		            $data['itensLaudo'][$id]['vl_percent_colhido']              = $item['vl_percent_colhido'];
		            $data['itensLaudo'][$id]['fl_substitui_laudo_anterior']     = $item['fl_substitui_laudo_anterior']; 
				}
			}
		}
    	$Safra = new Produto_Model_Safras();
		$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeada');
		$LaudoUvaGeadaItens = new $nomeModel;		
		if ($this->session->idRevistoria) {
			$LaudoFinal = new Sinistro_Model_LaudosFinais();
			$data['itensSegurados'] = $LaudoFinal->getItensRevistoria($this->session->idProposta, $this->session->idRevistoria);
		} else {
			$data['itensSegurados'] = $LaudoUvaGeadaItens->getItensDisponiveisLaudoFinalUvaGeada($this->session->idProposta, $this->session->idVistoria, $this->session->idCobertura);
		}

		$this->getResponse()->setBody(Zend_Json::encode($data));
	}

	public function savedadosvistoriaAction() {
		
		$formDadosVistoriaLF = new Sistema_Form_DadosVistoriaLaudoFinal2;
		$forms = array($formDadosVistoriaLF);

		$camposAdicionais[] = array(
			'type'	  => 'text',
			'fields'   => 'idProposta',
			'label'   => 'Proposta',
			'message' => 'A Proposta deve ser informada.'
		);

		$camposAdicionais[] = array(
			'type'	  => 'text',
			'fields'   => 'idVistoriador',
			'label'   => 'Vistoriadores',
			'message' => MSG_ERRO_LF_VISTORIADOR
		);

		$errorMsg = $this->getAllFormErros($forms, $this->getRequest()->getPost(), $camposAdicionais);

		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		
		if ($errorMsg) {
			$post = $this->getRequest()->getPost();
			$this->getResponse()->setBody($errorMsg);
			
		} else { 		
			$post = $this->getRequest()->getParams();
			
			$post['dt_vistoria'] = Agro_Util::formatDate($post['dt_vistoria'], 'yyyyMMdd');
			
			if (!$this->session->idLaudoFinal) {
				$this->saveLaudoFinal($this->getRequest()->getParams());
			}
		
			$this->saveVistoriaFuncionario($post);
			
	    	$Safra = new Produto_Model_Safras();
	    	
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeada');
			
			$LaudoUvaGeadaItens = new $nomeModel;
			
			if ($this->session->idRevistoria) {
				$itensSegurados = $LaudoUvaGeadaItens->getItensRevistoria($this->session->idProposta, $this->session->idRevistoria);
				
			} else {
				$itensSegurados = $LaudoUvaGeadaItens->getItensDisponiveisLaudoFinalUvaGeada($this->session->idProposta, $this->session->idVistoria, $this->session->idCobertura);
			}

			$this->getResponse()->setBody(Zend_Json::encode($itensSegurados));
		}
	} 

	public function saveVistoriaFuncionario ($post) {
		 			
		try {	
			$Db = Agro_Db_Table_Abstract::getDefaultAdapter();
			$Db->beginTransaction();

			$vistoriador = explode(',', $post['idVistoriador']);
			$VistoriaFuncionarios = new Sistema_Model_VistoriasFuncionarios();
			$VistoriaFuncionarios->delete($post['idVistoria']);
			foreach ($vistoriador as $key => $value) {
				$funcionario = array();
				$funcionario['id_funcionario'] = $value; 
				$funcionario['id_vistoria']    = $post['idVistoria'];
				$VistoriaFuncionarios->insert($funcionario);
			}
			
			/****************************************/
			$vistoria = array();
			$vistoria['dt_inicio']   = Agro_Util::formatDate($post['dt_inicio'], 'yyyyMMdd');
			$this->session->dtInicioVistoria = $post['dt_inicio'];			
			$vistoria['dt_fim']      = Agro_Util::formatDate($post['dt_fim'], 'yyyyMMdd');
			$vistoria['id']          = $post['idVistoria'];
			
			$Vistorias = new Sistema_Model_Vistorias();
			$Vistorias->update($vistoria, 'id = ' . $post['idVistoria']);

			$Db->commit();
		} catch (Exception $e) {
			$Db->rollback();
			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 = $this->session->idProcesso;
			$LaudoFinal->id_cobertura = $this->session->idCobertura;
  			$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 = $this->session->idVistoria;
			$Row->id_laudo_final = $LaudoFinal->id;
			$Row->save();

			/****************************************************/
			// Tabela safra12.laudos_finais_uva_geada
			/***************************************************/
	    	$Safra = new Produto_Model_Safras();
			$nomeModel = $Safra->getSafraModel($this->session->idProposta,'LaudosFinaisUvaGeada');
			$LaudosFinaisUvaGeada = new $nomeModel;

			$Row = $LaudosFinaisUvaGeada->createRow();
			$Row->id_laudo_final = $LaudoFinal->id;
			$Row->save();

			if ($this->session->idRevistoria) {
				$Revistoria = new Sistema_Model_Revistorias();			
				$data = array();
				$data['fl_realizada']  = 1; 
			   	$Revistoria->update($data, 'id_vistoria = ' . $this->session->idRevistoria);
			}

			$Db->commit();

			$this->session->idLaudoFinal = $LaudoFinal->id;
		} catch (Exception $e) {
			$Db->rollBack();
			echo $e->getMessage();
		}
	}
	

	public function getcombomotivosquadranaovistoriadaAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		
		$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>';
			}
		} 

		$this->getResponse()->setBody($combo);
	}
}