<?php

class Safra14_Lvp001Controller extends Agro_Controller_Action {
	private $__params;
	public $_backAfterSave = false;
	
	public function init() {
		$Model = new Sistema_Model_Empresas();
		$this->id_empresa = $Model->getIdEmpresaUsuarioCorrente();
		$this->__params = $this->getRequest()->getParams();
	}
	
	public function getModel() {
		return new Safra14_Model_Lvp001();
	}
	
	public function getModelPrevia() {
		return new Seguro_Model_VistoriaPreviaEmpresa();
	}	
	
	public function getForm($dados = array()) {
		return new Safra14_Form_Lvp001(array('dados'=>$dados));
	}
	
	/**
	 * Monta a tela de digitação de laudo.
	*/
	public function formAction() {	
		$this->view->jQuery()->addJavascriptFile('/resources/jquery/jquery.MultiFile.js');
        $this->view->jQuery()->addStylesheet('/resources/css/seguro/laudoview.css');
        //$this->view->jQuery()->addStylesheet('/resources/css/seguro/laudoprint.css');		
        
		$Model = $this->getModel();
		$dados = $this->getRequest()->getParams();

		$this->view->dados = $this->getModelPrevia()->getDadosProposta($dados['id_proposta']);
		$this->view->id_proposta_vistoria = $dados['id_proposta_vistoria'];
		
		if($this->getRequest()->isPost()){
	    	$Form = $this->getForm(array('dados'=>$dados));
	        $Form->populate($this->__params);

			if($Form->isValid($Form->getValues())) {
				
				$id_laudo = $Model->save($this->__params);
				
				if($id_laudo){
					$url = $this->__params['module'].'/'.$this->__params['controller'].'/'.$this->__params['action'].'/id_laudo/'.$id_laudo.'/id_proposta_vistoria/'.$this->__params['id_proposta_vistoria'].'/id_proposta/'.$this->__params['id_proposta'].'/popup/1';
					$this->_redirect($url);
					$this->view->showMessage($Model->getMessages(), "success");
				}else{
					$this->view->showMessage($Model->getMessages(), "error");
				}				
        	} else {
        		$this->view->showMessage($this->getAllFormErros(array($Form),$_POST), 'error');
        	}

		}
		$this->view->readonly = $dados['readonly'];
		
		$this->populate();
	}

			

	
    public function populate(){

    	$ProcessosEmpresas = new Sinistro_Model_ProcessosEmpresas();

    	$Model = $this->getModel();
    	$ModelLvp001IS = new Safra14_Model_Lvp001ItensSegurados();
		$ModelProposta = new Seguro_Model_Propostas();
    	
    	if ($this->__params["id_proposta_vistoria"]){   		
    		$this->__params = $Model->getDadosLaudo($this->__params["id_proposta_vistoria"])  ? array_merge($this->__params, $Model->getDadosLaudo($this->__params["id_proposta_vistoria"])) : $this->__params;
    		$this->__params = $this->__params['id_laudo'] ? array_merge($this->__params, $ModelLvp001IS->get($this->__params)) : $this->__params;
			$this->view->proposta = $ModelProposta->find($this->__params['id_proposta'])->current();
    	}

    	$Form = $this->getForm(array('dados'=>$this->__params));
        $Form->populate($this->__params);

		$this->view->form = $Form;

		if(!array_key_exists("amostras", $this->__params)){
			$this->__params = $Model->__prepararDados($this->__params);		
		}

		$dadosProposta = $this->getModelPrevia()->getDadosProposta($this->__params['id_proposta']);	
		
		
		$User = Zend_Auth::getInstance()->getIdentity();
		
		if($User->tp_usuario == 'F'){
	    	if(array_key_exists("amostras", $this->__params)){

	    		//zoneamento
				$idValidacao = null;
				$idProduto = $dadosProposta['id_produto'];
				$idMunicipio = $dadosProposta['id_municipio'];
		
		    	foreach ($this->__params['amostras'] as $key => $amostra){
					
		    		//variedade não existe
		    		if($amostra['id_variedade'] == 6971){
		    			$this->__params['amostras'][$key]['foraZoneamento'] = true;
		    		}
		    		
		    		$idTipoSolo = $amostra['tipo_solo'];
		    		$idCiclo = $amostra['id_ciclo'];
					$dtInicioSemeadura = $amostra['dt_inicio_semeadura'];
					$dtFimSemeadura = $amostra['dt_final_semeadura'];

					$Validacoes = new Produto_Model_Validacoes();
					if(!$Validacoes->verificaDataSemeadura($idValidacao, $idTipoSolo, $idProduto, $idCiclo, $idMunicipio, $dtInicioSemeadura) || !$Validacoes->verificaDataSemeadura($idValidacao, $idTipoSolo, $idProduto, $idCiclo, $idMunicipio, $dtFimSemeadura)){
						$this->__params['amostras'][$key]['foraZoneamento'] = true;
					}
		    	}
	    	}
		}

		$this->view->dados = array_merge($this->__params, $dadosProposta);	

    }	

}
