<?

class Regulacao_Lf042itemseguradoController 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_Lf042ItensSeguradosAmostras();
    }

    public function getModelItemSegurado()
    {
        return new Regulacao_Model_Lf042ItensSegurados();
    }

    public function getForm($dados = array())
    {
        return new Regulacao_Form_Lf042ItemSegurado(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 . "/lf042/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));

        $modelCulturas = new Produto_Model_Culturas();
        $this->view->id_cultura = $this->__params['id_cultura'] = $dadosForm['id_cultura'] = $modelCulturas->getCulturaByProposta($this->__params['id_proposta']);

        if ($this->getRequest()->isPost()) {
            $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"));
        }

        $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->montaArray($this->__params);
        }

        $this->view->dados = $this->__params;
    }
}
