<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Banco extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('configuracion/Banco_model');
    }

    public function index() {
        $this->validar_permiso('banco_ver');

        $data['titulo'] = 'Bancos';
        $data['bancos'] = $this->Banco_model->listar();

        $this->layout('configuracion/banco/index', $data);
    }

    public function create() {
        $this->validar_permiso('banco_crear');

        $data['titulo'] = 'Nuevo Banco';
        $this->layout('configuracion/banco/create', $data);
    }

    public function store() {
        $this->validar_permiso('banco_crear');

        $this->form_validation->set_rules('codigo', 'Código', 'required|trim');
        $this->form_validation->set_rules('nombre', 'Nombre', 'required|trim');

        if ($this->form_validation->run() == FALSE) {
            return $this->create();
        }

        $data = array(
            'codigo' => trim($this->input->post('codigo', TRUE)),
            'nombre' => trim($this->input->post('nombre', TRUE)),
            'estado' => $this->input->post('estado') ? 1 : 0,
            'created_by' => $this->session->userdata('id')
        );

        if ($this->Banco_model->insertar($data)) {
            $this->session->set_flashdata('success', 'Banco registrado correctamente');
        } else {
            $this->session->set_flashdata('error', 'No se pudo registrar el banco');
        }

        redirect('configuracion/banco');
    }

    public function edit($id) {
        $this->validar_permiso('banco_editar');

        $banco = $this->Banco_model->obtener($id);

        if (!$banco) {
            show_404();
        }

        $data['titulo'] = 'Editar Banco';
        $data['banco'] = $banco;

        $this->layout('configuracion/banco/edit', $data);
    }

    public function update($id) {
        $this->validar_permiso('banco_editar');

        $banco = $this->Banco_model->obtener($id);

        if (!$banco) {
            show_404();
        }

        $this->form_validation->set_rules('codigo', 'Código', 'required|trim');
        $this->form_validation->set_rules('nombre', 'Nombre', 'required|trim');

        if ($this->form_validation->run() == FALSE) {
            return $this->edit($id);
        }

        $data = array(
            'codigo'        => trim($this->input->post('codigo', TRUE)),
            'nombre'        => trim($this->input->post('nombre', TRUE)),
            'estado'        => $this->input->post('estado') ? 1 : 0,
            'updated_at'    => date('Y-m-d H:i:s'),
            'updated_by'    => $this->session->userdata('id')
        );

        if ($this->Banco_model->actualizar($id, $data)) {
            $this->session->set_flashdata('success', 'Banco actualizado correctamente');
        } else {
            $this->session->set_flashdata('error', 'No se pudo actualizar el banco');
        }

        redirect('configuracion/banco');
    }
}