<?
/**
 * Controller
 *
 * Laudo final Tipo LF021 Item Segurado/ Safra17 - Feijão - Granizo
 *
 * @author Samir Ortiz
 * @date 07/08/2013
 */

class Regulacao_Lf021itemseguradoController extends Agro_Controller_Action{
	private $__ModelIS;
	private $__params;
	private $__IS;

	public function init() {
		$ModelLfIS = new Sinistro2_Model_LaudosFinaisItensSegurados();

		$this->__params = $this->getRequest()->getParams();
		$this->__ModelIS = new Seguro_Model_ItensSegurados();
		$this->__IS = $this->__ModelIS->find($this->__params["id_item_segurado"])->current();

		$this->view->title = "Sinistro » Processos » Laudo Final » Item Segurado: {$this->__IS->ds_item_segurado}";

		$LFIS = $ModelLfIS->find($this->__params["id_laudo_final"], $this->__params["id_item_segurado"]);
		$this->__params["id_laudo_final_item_segurado"] = (count($LFIS) ? $LFIS["id"] : false);

	}

	public function getModel() {
		return new Regulacao_Model_Lf021ItensSeguradosAmostras();
	}

	public function getModelItemSegurado() {
	    return new Regulacao_Model_Lf021ItensSegurados();

	}

	public function getForm($dados = array()) {
	    return new Regulacao_Form_Lf021ItemSegurado(array('dados'=>$dados));
	}

    public function formAction() {

    	if($this->__params['fl_item_digitado']){
    		$this->view->back = '/sinistro2/processo/view/id/'.$this->__params["id_processo"].'#regulacao_laudos';
    	} else {
    		$this->view->back = '/'.$this->_request->module."/lf021/form/id_proposta/".$this->__params["id_proposta"]."/id_processo/".$this->__params["id_processo"]."/id_cobertura/".$this->__params["id_cobertura"]."/id_vistoria/".$this->__params["id_vistoria"]."/id_laudo_final/".$this->__params["id_laudo_final"];
    	}    	
    	//$this->view->back = '/'.$this->_request->module."/lf021/form/id_proposta/".$this->__params["id_proposta"]."/id_processo/".$this->__params["id_processo"]."/id_cobertura/".$this->__params["id_cobertura"]."/id_vistoria/".$this->__params["id_vistoria"]."/id_laudo_final/".$this->__params["id_laudo_final"];
		$this->view->jQuery()->addStylesheet('/resources/css/sinistro2/laudo.css');
        $this->view->jQuery()->addJavascriptFile('/resources/javascript/sinistro2/laudofinalitemsegurado.js?nocache='.rand(1,1000));

        $ProcessosEmpresas = new Sinistro2_Model_ProcessosEmpresas();

		$Cultura = new Produto_Model_Culturas();
		$dadosForm['id_cultura'] = $Cultura->getCulturaByProposta($this->__params['id_proposta']);

		$this->view->id_cultura = $dadosForm['id_cultura'];
		$this->__params['id_cultura'] = $dadosForm['id_cultura'];

		if($this->getRequest()->isPost()){

			$dadosForm = array(
				"id_laudo_final" => $this->__params["id_laudo_final"],
				"id_item_segurado" => $this->__params["id_item_segurado"],
				"id_empresa_vistoriadora" => $ProcessosEmpresas->getEmpresaByProcesso($this->__params['id_processo']),
			);

	    	$Form = $this->getForm($dadosForm);

	        $Form->populate($this->__params);

        	if($Form->isValid($Form->getValues())) {
        		$Model = $this->getModel();
				$this->__params["id_laudo_final_item_segurado"] = $Model->save($this->__params);
				$this->view->showMessage($Model->getMessages(), ($this->__params["id_laudo_final_item_segurado"] ? "success" : "error"));

        	} else {
        		$this->view->showMessage($this->getAllFormErros(array($Form),$_POST), 'error');
        	}
        }

        $this->populate();

    }

    public function populate(){

    	$ProcessosEmpresas = new Sinistro2_Model_ProcessosEmpresas();

    	$Model = $this->getModel();

    	if ($this->__params["id_laudo_final_item_segurado"]){
    		$this->__params = array_merge($this->__params, $Model->get($this->__params["id_laudo_final_item_segurado"]));
    	}

    	$dadosForm = array(
			"id_laudo_final" => $this->__params["id_laudo_final"],
			"id_item_segurado" => $this->__params["id_item_segurado"],
			"id_empresa_vistoriadora" => $ProcessosEmpresas->getEmpresaByProcesso($this->__params['id_processo']),
		);

     	$Form = $this->getForm($dadosForm);

        $Form->populate($this->__params);

		$this->view->form = $Form;

		if(!array_key_exists("amostras", $this->__params)){
			$this->__params = $Model->prepararDados($this->__params);
		}

		//$this->__params = $Model->avaliacao($this->__params);

    	$this->view->dados = $this->__params;
    }
}
