<?php if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}

class Permissoes extends MY_Controller
{

    /**
     * author: Ramon Silva
     * email: silva018-mg@yahoo.com.br
     *
     */

    public function __construct()
    {
        parent::__construct();

        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'cPermissao')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para configurar as permissões no sistema.');
            redirect(base_url());
        }

        $this->load->helper(['form', 'codegen_helper']);
        $this->load->model('permissoes_model');
        $this->data['menuConfiguracoes'] = 'Permissões';
    }

    public function index()
    {
        $this->gerenciar();
    }

    public function gerenciar()
    {
        $this->load->library('pagination');

        $this->data['configuration']['base_url'] = site_url('permissoes/gerenciar/');
        $this->data['configuration']['total_rows'] = $this->permissoes_model->count('permissoes');

        $this->pagination->initialize($this->data['configuration']);

        $this->data['results'] = $this->permissoes_model->get('permissoes', 'idPermissao,nome,data,situacao', '', $this->data['configuration']['per_page'], $this->uri->segment(3));

        $this->data['view'] = 'permissoes/permissoes';
        return $this->layout();
    }

    public function adicionar()
    {
        $this->load->library('form_validation');
        $this->data['custom_error'] = '';

        $this->form_validation->set_rules('nome', 'Nome', 'trim|required');
        if ($this->form_validation->run() == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {
            $nomePermissao = $this->input->post('nome');
            $cadastro = date('Y-m-d');
            $situacao = 1;

            $permissoes = [

                'aCliente' => $this->input->post('aCliente'),
                'eCliente' => $this->input->post('eCliente'),
                'dCliente' => $this->input->post('dCliente'),
                'vCliente' => $this->input->post('vCliente'),
				
				'aFuncionario' => $this->input->post('aFuncionario'),
                'eFuncionario' => $this->input->post('eFuncionario'),
                'dFuncionario' => $this->input->post('dFuncionario'),
                'vFuncionario' => $this->input->post('vFuncionario'),

                'aProduto' => $this->input->post('aProduto'),
                'eProduto' => $this->input->post('eProduto'),
                'dProduto' => $this->input->post('dProduto'),
                'vProduto' => $this->input->post('vProduto'),

                'aServico' => $this->input->post('aServico'),
                'eServico' => $this->input->post('eServico'),
                'dServico' => $this->input->post('dServico'),
                'vServico' => $this->input->post('vServico'),
				
				  'aMarca' => $this->input->post('aMarca'),
                  'eMarca' => $this->input->post('eMarca'),
                  'dMarca' => $this->input->post('dMarca'),
                  'vMarca' => $this->input->post('vMarca'),
				  
				  'aEquipamento' => $this->input->post('aEquipamento'),
                  'eEquipamento' => $this->input->post('eEquipamento'),
                  'dEquipamento' => $this->input->post('dEquipamento'),
                  'vEquipamento' => $this->input->post('vEquipamento'),
				  
				  'aModelo' => $this->input->post('aModelo'),
                  'eModelo' => $this->input->post('eModelo'),
                  'dModelo' => $this->input->post('dModelo'),
                  'vModelo' => $this->input->post('vModelo'),
				  
				  'aFornecedor' => $this->input->post('aFornecedor'),
                  'eFornecedor' => $this->input->post('eFornecedor'),
                  'dFornecedor' => $this->input->post('dFornecedor'),
                  'vFornecedor' => $this->input->post('vFornecedor'),
				  
				  'aStatus' => $this->input->post('aStatus'),
                  'eStatus' => $this->input->post('eStatus'),
                  'dStatus' => $this->input->post('dStatus'),
                  'vStatus' => $this->input->post('vStatus'),
				  
				  'aConta' => $this->input->post('aConta'),
                  'eConta' => $this->input->post('eConta'),
                  'dConta' => $this->input->post('dConta'),
                  'vConta' => $this->input->post('vConta'),
				  
				  'aCategoria' => $this->input->post('aCategoria'),
                  'eCategoria' => $this->input->post('eCategoria'),
                  'dCategoria' => $this->input->post('dCategoria'),
                  'vCategoria' => $this->input->post('vCategoria'),
				
				  'aCompra' => $this->input->post('aCompra'),
				  'eCompra' => $this->input->post('eCompra'),
				  'dCompra' => $this->input->post('dCompra'),
				  'vCompra' => $this->input->post('vCompra'),

                'aOs' => $this->input->post('aOs'),
                'eOs' => $this->input->post('eOs'),
                'dOs' => $this->input->post('dOs'),
                'vOs' => $this->input->post('vOs'),
				'vNps' => $this->input->post('vNps'),

                'aVenda' => $this->input->post('aVenda'),
                'eVenda' => $this->input->post('eVenda'),
                'dVenda' => $this->input->post('dVenda'),
                'vVenda' => $this->input->post('vVenda'),

                'aGarantia' => $this->input->post('aGarantia'),
                'eGarantia' => $this->input->post('eGarantia'),
                'dGarantia' => $this->input->post('dGarantia'),
                'vGarantia' => $this->input->post('vGarantia'),
				
				'aLaudo' => $this->input->post('aLaudo'),
				'eLaudo' => $this->input->post('eLaudo'),
				'dLaudo' => $this->input->post('dLaudo'),
				'vLaudo' => $this->input->post('vLaudo'),

                'aArquivo' => $this->input->post('aArquivo'),
                'eArquivo' => $this->input->post('eArquivo'),
                'dArquivo' => $this->input->post('dArquivo'),
                'vArquivo' => $this->input->post('vArquivo'),

                'aPagamento' => $this->input->post('aPagamento'),
                'ePagamento' => $this->input->post('ePagamento'),
                'dPagamento' => $this->input->post('dPagamento'),
                'vPagamento' => $this->input->post('vPagamento'),

                'aLancamento' => $this->input->post('aLancamento'),
                'eLancamento' => $this->input->post('eLancamento'),
                'dLancamento' => $this->input->post('dLancamento'),
                'vLancamento' => $this->input->post('vLancamento'),

                'cUsuario' => $this->input->post('cUsuario'),
                'cEmitente' => $this->input->post('cEmitente'),
                'cPermissao' => $this->input->post('cPermissao'),
                'cBackup' => $this->input->post('cBackup'),
                'cAuditoria' => $this->input->post('cAuditoria'),
                'cEmail' => $this->input->post('cEmail'),
                'cSistema' => $this->input->post('cSistema'),

                'rCliente' => $this->input->post('rCliente'),
                'rProduto' => $this->input->post('rProduto'),
                'rServico' => $this->input->post('rServico'),
                'rOs' => $this->input->post('rOs'),
                'rVenda' => $this->input->post('rVenda'),
                'rFinanceiro' => $this->input->post('rFinanceiro'),

                'aCobranca' => $this->input->post('aCobranca'),
                'eCobranca' => $this->input->post('eCobranca'),
                'dCobranca' => $this->input->post('dCobranca'),
                'vCobranca' => $this->input->post('vCobranca'),
            ];
            $permissoes = serialize($permissoes);

            $data = [
                'nome' => $nomePermissao,
                'data' => $cadastro,
                'permissoes' => $permissoes,
                'situacao' => $situacao,
            ];

            if ($this->permissoes_model->add('permissoes', $data) == true) {
                $this->session->set_flashdata('success', 'Permissão adicionada com sucesso!');
                log_info('Adicionou uma permissão');
                redirect(site_url('permissoes/adicionar/'));
            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
            }
        }

        $this->data['view'] = 'permissoes/adicionarPermissao';
        return $this->layout();
    }

    public function editar()
    {
        $this->load->library('form_validation');
        $this->data['custom_error'] = '';

        $this->form_validation->set_rules('nome', 'Nome', 'trim|required');
        if ($this->form_validation->run() == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {
            $nomePermissao = $this->input->post('nome');
            $situacao = $this->input->post('situacao');
            $permissoes = [

                'aCliente' => $this->input->post('aCliente'),
                'eCliente' => $this->input->post('eCliente'),
                'dCliente' => $this->input->post('dCliente'),
                'vCliente' => $this->input->post('vCliente'),
				
				'aFuncionario' => $this->input->post('aFuncionario'),
                'eFuncionario' => $this->input->post('eFuncionario'),
                'dFuncionario' => $this->input->post('dFuncionario'),
                'vFuncionario' => $this->input->post('vFuncionario'),

                'aProduto' => $this->input->post('aProduto'),
                'eProduto' => $this->input->post('eProduto'),
                'dProduto' => $this->input->post('dProduto'),
                'vProduto' => $this->input->post('vProduto'),

                'aServico' => $this->input->post('aServico'),
                'eServico' => $this->input->post('eServico'),
                'dServico' => $this->input->post('dServico'),
                'vServico' => $this->input->post('vServico'),
				
				'aMarca' => $this->input->post('aMarca'),
                  'eMarca' => $this->input->post('eMarca'),
                  'dMarca' => $this->input->post('dMarca'),
                  'vMarca' => $this->input->post('vMarca'),
				  
				  'aEquipamento' => $this->input->post('aEquipamento'),
                  'eEquipamento' => $this->input->post('eEquipamento'),
                  'dEquipamento' => $this->input->post('dEquipamento'),
                  'vEquipamento' => $this->input->post('vEquipamento'),
				  
				  'aModelo' => $this->input->post('aModelo'),
                  'eModelo' => $this->input->post('eModelo'),
                  'dModelo' => $this->input->post('dModelo'),
                  'vModelo' => $this->input->post('vModelo'),
				  
				  'aFornecedor' => $this->input->post('aFornecedor'),
                  'eFornecedor' => $this->input->post('eFornecedor'),
                  'dFornecedor' => $this->input->post('dFornecedor'),
                  'vFornecedor' => $this->input->post('vFornecedor'),
				  
				  'aStatus' => $this->input->post('aStatus'),
                  'eStatus' => $this->input->post('eStatus'),
                  'dStatus' => $this->input->post('dStatus'),
                  'vStatus' => $this->input->post('vStatus'),
				  
				  'aConta' => $this->input->post('aConta'),
                  'eConta' => $this->input->post('eConta'),
                  'dConta' => $this->input->post('dConta'),
                  'vConta' => $this->input->post('vConta'),
				  
				  'aCategoria' => $this->input->post('aCategoria'),
                  'eCategoria' => $this->input->post('eCategoria'),
                  'dCategoria' => $this->input->post('dCategoria'),
                  'vCategoria' => $this->input->post('vCategoria'),
				
				'aCompra' => $this->input->post('aCompra'),
				'eCompra' => $this->input->post('eCompra'),
				'dCompra' => $this->input->post('dCompra'),
				'vCompra' => $this->input->post('vCompra'),

                'aOs' => $this->input->post('aOs'),
                'eOs' => $this->input->post('eOs'),
                'dOs' => $this->input->post('dOs'),
                'vOs' => $this->input->post('vOs'),
				'vNps' => $this->input->post('vNps'),

                'aVenda' => $this->input->post('aVenda'),
                'eVenda' => $this->input->post('eVenda'),
                'dVenda' => $this->input->post('dVenda'),
                'vVenda' => $this->input->post('vVenda'),

                'aGarantia' => $this->input->post('aGarantia'),
                'eGarantia' => $this->input->post('eGarantia'),
                'dGarantia' => $this->input->post('dGarantia'),
                'vGarantia' => $this->input->post('vGarantia'),
				
				'aLaudo' => $this->input->post('aLaudo'),
                'eLaudo' => $this->input->post('eLaudo'),
                'dLaudo' => $this->input->post('dLaudo'),
                'vLaudo' => $this->input->post('vLaudo'),

                'aArquivo' => $this->input->post('aArquivo'),
                'eArquivo' => $this->input->post('eArquivo'),
                'dArquivo' => $this->input->post('dArquivo'),
                'vArquivo' => $this->input->post('vArquivo'),

                'aPagamento' => $this->input->post('aPagamento'),
                'ePagamento' => $this->input->post('ePagamento'),
                'dPagamento' => $this->input->post('dPagamento'),
                'vPagamento' => $this->input->post('vPagamento'),

                'aLancamento' => $this->input->post('aLancamento'),
                'eLancamento' => $this->input->post('eLancamento'),
                'dLancamento' => $this->input->post('dLancamento'),
                'vLancamento' => $this->input->post('vLancamento'),

                'cUsuario' => $this->input->post('cUsuario'),
                'cEmitente' => $this->input->post('cEmitente'),
                'cPermissao' => $this->input->post('cPermissao'),
                'cBackup' => $this->input->post('cBackup'),
                'cAuditoria' => $this->input->post('cAuditoria'),
                'cEmail' => $this->input->post('cEmail'),
                'cSistema' => $this->input->post('cSistema'),

                'rCliente' => $this->input->post('rCliente'),
                'rProduto' => $this->input->post('rProduto'),
                'rServico' => $this->input->post('rServico'),
                'rOs' => $this->input->post('rOs'),
                'rVenda' => $this->input->post('rVenda'),
                'rFinanceiro' => $this->input->post('rFinanceiro'),

                'aCobranca' => $this->input->post('aCobranca'),
                'eCobranca' => $this->input->post('eCobranca'),
                'dCobranca' => $this->input->post('dCobranca'),
                'vCobranca' => $this->input->post('vCobranca'),

            ];
            $permissoes = serialize($permissoes);

            $data = [
                'nome' => $nomePermissao,
                'permissoes' => $permissoes,
                'situacao' => $situacao,
            ];

            if ($this->permissoes_model->edit('permissoes', $data, 'idPermissao', $this->input->post('idPermissao')) == true) {
                $this->session->set_flashdata('success', 'Permissão editada com sucesso!');
                log_info('Alterou uma permissão. ID: ' . $this->input->post('idPermissao'));
                redirect(site_url('permissoes/editar/') . $this->input->post('idPermissao'));
            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um errro.</p></div>';
            }
        }

        $this->data['result'] = $this->permissoes_model->getById($this->uri->segment(3));

        $this->data['view'] = 'permissoes/editarPermissao';
        return $this->layout();
    }

    public function desativar()
    {
        $id = $this->input->post('id');
        if (!$id) {
            $this->session->set_flashdata('error', 'Erro ao tentar desativar permissão.');
            redirect(site_url('permissoes/gerenciar/'));
        }
        $data = [
            'situacao' => false,
        ];
        if ($this->permissoes_model->edit('permissoes', $data, 'idPermissao', $id)) {
            log_info('Desativou uma permissão. ID: ' . $id);
            $this->session->set_flashdata('success', 'Permissão desativada com sucesso!');
        } else {
            $this->session->set_flashdata('error', 'Erro ao desativar permissão!');
        }

        redirect(site_url('permissoes/gerenciar/'));
    }
}

/* End of file permissoes.php */
/* Location: ./application/controllers/permissoes.php */
