<?
/**
 * Controller
 * 
 * Matriz Laudo Final
 * 
 * @author Fernando Nunes
 * @date 02/03/2011
 *
 */
class Sinistro_LfController extends Agro_Controller_Action {
	
    public function init() {
        $this->view->title = 'Sinistro » Processos » Laudo Final';
    }
    
	public function getModel() { }
	
	public function getForm() {	}
	
	public function getModelLaudosFinais() {
	    return new Sinistro_Model_LaudosFinais();
	}
	
	public function formAction() {
		$params = $this->getRequest()->getParams();
	    $Model = $this->getModel();
	    $Model_LaudosFinais = $this->getModelLaudosFinais();
		$Form = $this->getForm();
		if($params['id_laudo_final']) {
			$idLaudoFinal = $params['id_laudo_final'];
			$Form->init($params['id_laudo_final']);
		}
        
		$this->view->data = array();
		
        $this->view->back = '/sinistro/processo/view/id/'.$params['id_processo'];
		
		$this->view->jQuery()->addJavascriptFile('/resources/javascript/sinistro/laudofinal.js');
        $this->view->jQuery()->addStylesheet('/resources/css/sinistro/laudo.css');
		
		if($this->getRequest()->isPost()) {
			
		    $Form->populate($params);
		    
    		Agro_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
    		
    		$dados = $Form->getValues();
			
			if ($params['fl_evento_nao_constatado']) {
				
				$idLaudoFinal = $Model_LaudosFinais->save($dados);
				$Model_LaudosFinais->deleteEventoNaoConstatado($idLaudoFinal, $dados);
				$Model->delete($idLaudoFinal);
				
				Agro_Db_Table_Abstract::getDefaultAdapter()->commit();
        		$this->view->showMessage(MSG_SUCCESS,'success');
				
			} elseif ($Form->isValid($Form->getValues())) {
				
        		if($_POST['itens_segurados_atingidos']) {
        		    $dados['itens_segurados_atingidos'] = $_POST['itens_segurados_atingidos'];
        		}
        		
    		    if($_POST['id_motivo_quadra_nao_vistoriada']) {
        		    $dados['id_motivo_quadra_nao_vistoriada'] = $_POST['id_motivo_quadra_nao_vistoriada'];
        		}
        		
        		$idLaudoFinal = $Model->save($dados);
        		if($idLaudoFinal) {
        		    Agro_Db_Table_Abstract::getDefaultAdapter()->commit();
        		    $this->view->showMessage(MSG_SUCCESS,'success');
        		} else {
        		    Agro_Db_Table_Abstract::getDefaultAdapter()->rollback();
        		    $this->view->showMessage($Model->getMessages(), 'error');
        		}
			} else {
    			$this->view->showMessage($this->getAllFormErros(array($Form),$_POST), 'error');
    		}
 
		}

		if($idLaudoFinal) {
			
		    $params = $Model_LaudosFinais->getLaudoFinal($idLaudoFinal);
			$params['id_laudo_final'] = $idLaudoFinal;
			
			$this->view->data['fl_botao_enviar'] = $Model_LaudosFinais->isComplete($params['id_laudo_final']);			
		}
		
		$Form->populate($params);
		
		$this->view->form = $Form;
	}
}
