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

class ConfigStock extends MY_Controller {

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

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

        $almacen_id = $this->input->get('almacen_id', TRUE) ?: null;

        $data['titulo']     = 'Configuración de Stock';
        $data['almacenes']  = $this->ConfigStock_model->listar_almacenes();
        $data['productos']  = $this->ConfigStock_model->listar($almacen_id);
        $data['almacen_id'] = $almacen_id;

        $this->layout('almacen/config_stock/index', $data);
    }

    // Actualización via AJAX (edición inline)
    public function actualizar() {
        $this->validar_permiso('config_stock_editar');

        $id           = $this->input->post('id', TRUE);
        $campo        = $this->input->post('campo', TRUE);
        $valor        = $this->input->post('valor', TRUE);

        // Solo permitir campos válidos
        $campos_permitidos = array(
            'cantidad_minima',
            'cantidad_maxima',
            'cantidad_reposicion'
        );

        if (!in_array($campo, $campos_permitidos)) {
            echo json_encode(array('status' => false, 'message' => 'Campo no permitido'));
            exit;
        }

        if (!is_numeric($valor) || (float)$valor < 0) {
            echo json_encode(array('status' => false, 'message' => 'Valor inválido'));
            exit;
        }

        $result = $this->ConfigStock_model->actualizar($id, array(
            $campo       => (float)$valor,
            'updated_at' => date('Y-m-d H:i:s'),
            'updated_by' => $this->session->userdata('id')
        ));

        if ($result) {
            echo json_encode(array('status' => true, 'message' => 'Actualizado correctamente'));
        } else {
            echo json_encode(array('status' => false, 'message' => 'No se pudo actualizar'));
        }
    }
}
