<?php

class Sinistro_LaudoController extends Agro_Controller_Laudo {

	public function finalAction() {
		$this->view->title = 'Sinistro » Processo » Editar » Laudo Final » Formulário';

		$LaudosFinais = new Sinistro_Model_LaudosFinais();

		$this->view->laudo = $LaudosFinais->getRow($this->getRequest()->getParam('id'));
		$this->view->revistoria = $this->view->laudo->revistoria();
		$this->view->vistoria = $this->view->laudo->vistoria();
		$this->view->processo = $this->view->laudo->processo();
		$this->view->row = $this->view->laudo->getAll();

		$this->view->back = '/sinistro/processo/edit/id/'.$this->view->laudo->id_processo;
	}

	public function preliminarAction() {
		$this->view->title = 'Sinistro » Processo » Editar » Laudo Preliminar » Formulário';

		$LaudosPreliminares = new Sinistro_Model_LaudosPreliminares();

		$this->view->laudo = $LaudosPreliminares->getRow($this->getRequest()->getParam('id'));
		$this->view->revistoria = $this->view->laudo->revistoria();
		$this->view->vistoria = $this->view->laudo->vistoria();
		$this->view->processo = $this->view->laudo->processo();
		$this->view->row = $this->view->laudo->getAll();
		$this->view->vistoriadores = $this->view->laudo->vistoriadores();

		$this->view->back = '/sinistro/processo/edit/id/'.$this->view->laudo->id_processo;
	}

	public function finalareaatingidaAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$return = array();

		if ($this->getRequest()->getParam('id')) {
			$LaudosFinais = new Sinistro_Model_LaudosFinais();

			$LaudoFinal = $LaudosFinais->getRow($this->getRequest()->getParam('id'));
			$return['html'] = $this->view->quadrasAtingidasLaudoFinal($LaudoFinal);
			$return['area'] = $LaudoFinal->areaAtingida();
		}

		$this->getResponse()->setBody(Zend_Json::encode($return));
	}

	public function setitensatingidosAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();

		if ($this->getRequest()->getParam('id_laudo_final')) {
			$LaudosFinaisItensSegurados = new Sinistro_Model_LaudosFinaisItensSegurados();

			if (is_array($this->getRequest()->getParam('id_item_segurado'))) {
				$LaudosFinaisItensSegurados->setParcial($this->getRequest()->getParam('id_laudo_final'), $this->getRequest()->getParam('id_item_segurado'));
				$this->getResponse()->setBody(Zend_Json::encode(
					array('status' => true, 'closeDialog' => '#listQuadrasAreaAtingida', 'loadItensAtingidos' => true)
				));
			} else {
				$LaudosFinaisItensSegurados->setTotal($this->getRequest()->getParam('id_laudo_final'));
			}
		}
	}

	public function listalaudosAction(){
		$this->getHelper('layout')->disableLayout();

        $ModelProposta = new Seguro_Model_Propostas();
        $Proposta = $ModelProposta->find($this->getRequest()->getParam('id_proposta'))->current();
        $Endossos = $Proposta->buscaPropostasEndosso();

        foreach($Endossos as $proposta){
            $ponteiro                    = opendir(PATH_LAUDOS);
            $ponteiro_safras_anteriores  = opendir(PATH_LAUDOS_SAFRAS_ANTERIORES);

    		// monta os vetores com os itens encontrados na pasta
    		while ($laudo = readdir($ponteiro)){
    			if(substr($laudo,0,6) == $proposta){
    				$tipo_laudo = substr($laudo,7,2);
    		    	switch($tipo_laudo){
    		            case "VF": $VF[] = $laudo; break;
    		            case "VP": $VP[] = $laudo; break;
    		            case "VL": $VL[] = $laudo; break;
    		        }
    		    }
    		}
            closedir($ponteiro);
            
    		// monta os vetores com os itens encontrados na pasta
    		while ($laudo = readdir($ponteiro_safras_anteriores)){
    			if(substr($laudo,0,6) == $proposta){
    				$tipo_laudo = substr($laudo,7,2);
    		    	switch($tipo_laudo){
    		            case "VF": $VF[] = $laudo; break;
    		            case "VP": $VP[] = $laudo; break;
    		            case "VL": $VL[] = $laudo; break;
    		        }
    		    }
    		}
            closedir($ponteiro_safras_anteriores);
        }

		$laudos = array();
		if($this->getRequest()->getParam('tipo')){
			switch($this->getRequest()->getParam('tipo')){
				case 'previa':
					$laudos['previa'] = $VP;
				break;
				case 'preliminar':
					$laudos['preliminar'] = $VL;
				break;
				case 'final':
					$laudos['final'] = $VF;
				break;
			}
		}else{
			$laudos['final'] = $VF;
			$laudos['preliminar'] = $VL;
			$laudos['previa'] = $VP;
		}
		
		
		$this->view->laudos = $laudos;
	}

	public function deletelaudoAction(){
		$this->isAjax();
		$arquivo = $this->getRequest()->getParam('nome');
		if($arquivo){
			$sanitizedPath = realpath(PATH_LAUDOS."/".$arquivo);
			if(file_exists($sanitizedPath) && unlink($sanitizedPath)){
				$return['message'] = 'Laudo excluído com sucesso!';
			}else{
				$return['message'] = 'Erro ao excluir laudo!';
			}

			$this->getResponse()->setBody(Zend_Json::encode($return));
		}

	}

}