<?php

class Comercializacao_RelacionarorcamentoController extends Agro_Controller_TaxaAgrupamento
{
    public function getForm()
    {
        return new Comercializacao_Form_RelacionarOrcamento();
    }

    public function init()
    {
        ini_set('memory_limit', '1024M');
        ini_set('max_input_vars', '10000');

        if ($this->getRequest()->getParam('id')) {
            $comercializacoes = new Comercializacao_Model_Comercializacoes();
            $comercializacao = $comercializacoes->find($this->getRequest()->getParam('id'))->current();
            $this->view->comercializacao = $comercializacao['ds_nome_comercializacao'];
            $this->view->title = "Gerência de Comercializações » Relacionar Orçamentos";
        }

        $this->view->back = 'javascript:history.back();';
    }

    public function indexAction()
    {
        if ($this->getRequest()->isPost()) {
            $this->save();
        }

        $this->view->form = $this->getForm();

        $modelComercializacoes = new Comercializacao_Model_ComercializacoesOrcamentos();
        $row = $modelComercializacoes->getComercializacao($this->getRequest()->getParam('id'));

        if ($row) {
            $dadosForm = ['id_proposta' => $row->id_proposta];
            $this->view->form->populate($dadosForm);
        }

        $this->view->back = "/comercializacao/orcamento";
    }

    public function save()
    {
        $parametros = $this->getRequest()->getParams();

        if (empty($parametros['id']) || empty($parametros['id_proposta'])) {
            throw new Exception('Parâmetros não informados.');
        }

        try {
            $dados = [
              'id_comercializacao' => $parametros['id'],
              'id_proposta'        => $parametros['id_proposta'],
            ];

            $model = new Comercializacao_Model_ComercializacoesOrcamentos();
            $model->save($dados);

            $this->view->id_proposta = $dados['id_proposta'];
            $mensagem = 'Orçamento salvo com sucesso.';
            $class = 'success';
        } catch (Exception $exception) {
            $mensagem = $exception->getMessage();
            $class = 'error';
        }

        $this->view->showMessage($mensagem, $class);
    }
}
