<?php

class Pecas extends CI_Controller {
    private $modelPagina = 'pecas_model';
    const TABELA_PECAS = 'tbl_012_pecas';


    function __construct() {
        parent::__construct();
        $this->load->helper(get_helpers_paginas());
        ValidacaoUtils::verificarLoginUtils($this->session);
        ValidacaoUtils::nivelTemAcessoPermitido($this->session->userdata('nivel'), $this->router->class);
        ValidacaoUtils::carregarModelsPagina($this->modelPagina, $this);
    }

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

    public function gerenciar() {
        $this->data['view'] = 'sistema/pecas/listarPecas';
        $this->data['pecas'] = $this->pecas_model->get(self::TABELA_PECAS, '*');
        $this->load->view(DadosPaginas::PG_TOPO_SISTEMA, $this->data);
    }


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

        if ($this->form_validation->run('pecas') == false) {
            $this->data['custom_error'] = (validation_errors() ? true : false);
        } else {
            $this->load->library('encrypt');
            $cpfSemMascara = $cpf = preg_replace("/\D+/", "", $this->input->post('cpfFuncionario'));
            $data = array(
                'DS_DESCRICAO_PECA' => $this->input->post('descricaoPeca'),
                'DS_GRUPO' => $this->input->post('grupo'),
                'DS_FABRICANTE' => $this->input->post('fabricante'),
                'DS_MARCA' => $this->input->post('marca'),
                'NU_MESES_VIDA_UTIL' => $this->input->post('vidaUtil'),
                'NU_MESES_GARANTIA' => $this->input->post('garantia'),
                'DS_REFERENCIA' => $this->input->post('referencia'),
                'DS_UNIDADE_MEDIDA' => $this->input->post('unidadeMedida')
            );

            if (is_numeric($id = $this->pecas_model->add(self::TABELA_PECAS, $data, true))) {
                $this->session->set_flashdata('success', 'Peça cadastrada com sucesso.');

            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
            }
            redirect('pecas');
        }

        $this->data['view'] = 'sistema/pecas/adicionarPecas';
        $this->load->view(DadosPaginas::PG_TOPO_SISTEMA, $this->data);
    }

    function editar() {

        $this->load->library(DadosPaginas::FORM_VALIDATION);
        $this->data['custom_error'] = '';
        $dataReserva = null;

        if ($this->form_validation->run('pecas') == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {
            $data = array(
                'DS_DESCRICAO_PECA' => $this->input->post('descricaoPeca'),
                'DS_GRUPO' => $this->input->post('grupo'),
                'DS_FABRICANTE' => $this->input->post('fabricante'),
                'DS_MARCA' => $this->input->post('marca'),
                'NU_MESES_VIDA_UTIL' => $this->input->post('vidaUtil'),
                'NU_MESES_GARANTIA' => $this->input->post('garantia'),
                'DS_REFERENCIA' => $this->input->post('referencia'),
                'DS_UNIDADE_MEDIDA' => $this->input->post('unidadeMedida')
            );

            if ($this->pecas_model->edit(self::TABELA_PECAS, $data, 'ID_PECA', $this->input->post('idPeca')) == TRUE) {
                $this->session->set_flashdata('success', 'Peça editada com sucesso!');
                redirect('pecas/editar/'.$this->input->post('idPeca'));
            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro</p></div>';
            }
        }

        $this->data['pecas'] = $this->pecas_model->getById($this->uri->segment(3));
        $this->data['view'] = 'sistema/pecas/editarPecas';
        $this->load->view(DadosPaginas::PG_TOPO_SISTEMA, $this->data);

    }

    public function autoCompletePecas() {
        if (isset($_GET['term'])) {
            $q = strtolower($_GET['term']);
            $this->pecas_model->autoCompletePecas($q);
        }
    }

    function excluir() {
        $id = $this->input->post('id');
        $idItemEditar = $this->input->post('idItemEditar');
        if ($id == null) {
            $this->session->set_flashdata('error', 'Erro ao tentar excluir reserva.');
        } else {
            $this->db->where('ID_PECA', $id);
            $this->db->delete(self::TABELA_PECAS);
            $this->session->set_flashdata('success', 'Peça excluída com sucesso!');
        }
        redirect('pecas/');
    }
}