<?php

class Comercializacao_RelacionartaxaorcamentoController extends Agro_Controller_TaxaAgrupamento
{
    public function getForm()
    {
        return new Comercializacao_Form_RelacionarTaxaOrcamento();
    }

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

        if ($this->getRequest()->getParam('id')) {
            $TaxaAgrupamento = new Comercializacao_Model_TaxasAgrupamentos();
            $Agrupamento = $TaxaAgrupamento->find($this->getRequest()->getParam('id'))->current();
            $this->view->taxa = $Agrupamento['ds_nome_agrupamento_taxas'];
            $this->view->title = "Gerência de Taxas » Relacionar Orçamentos";
        }

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

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

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

        $modelTaxaAgrupamentoOrcamento = new Comercializacao_Model_TaxasAgrupamentoOrcamentos();
        $row = $modelTaxaAgrupamentoOrcamento->getTaxaAgrupamento($this->getRequest()->getParam('id'));

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

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

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

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

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

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

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

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

    public function settaxaAction()
    {
        $session = new Zend_Session_Namespace('agrupamento');
        $session->id = $this->getRequest()->getParam('id');
        $this->_redirect('/comercializacao/relacionartaxaorcamento');
    }
}
