Plugin para GLPI 10+ desenvolvido para automatizar a gestão de insumos (consumíveis) associados a chamados. O plugin integra o formulário personalizado do plugin Fields com o módulo nativo de Estoque de Insumos do GLPI.
- Acompanhamento Automático de Vínculo: Registra uma resposta (acompanhamento) no chamado listando os insumos selecionados na aba do Fields.
- Histórico de Remoção: Detecta e registra em tempo real quando um insumo é desvinculado da aba do chamado.
- Alerta de Estoque Zerado: Exibe uma notificação visual em tela no momento em que um insumo com saldo zerado é vinculado ao chamado.
- Baixa Automatizada de Estoque: Realiza a baixa de 1 unidade no estoque nativo do GLPI para cada insumo vinculado assim que o chamado muda para o status Solucionado ou Fechado.
- Proteção contra Baixas Duplicadas: Trava interna para impedir que um mesmo chamado execute a baixa mais de uma vez devido a múltiplos cliques ou atualizações de status.
- GLPI: Versão 10.0 ou superior.
- Plugin Fields: Instalado e configurado com a aba de insumos vinculada aos Chamados (Tickets).
- PHP: Versão compatível com o GLPI em uso (8.1+).
No GLPI, acesse Configurações -> Campos adicionais. Na próxima janela, clique no botão "Adicionar" para criar um novo bloco com as seguintes configurações:
- Etiqueta: Insumos
- Tipo: Adicionar Aba
- Tipo de Item Associado: Chamados
- Ativo: sim
Clique no botão "Adicionar" para salvar o bloco.
Clique no bloco recém criado e vá para a aba "Campos", depois clique em "Adicionar um novo campo" com as seguintes configurações:
- Etiqueta: Insumo utilizado
- Tipo: Modelos de Insumo
- Múltiplos menus suspensos: Sim
- Ativo: Sim
- Somente leitura: Não
- Campo obrigatório: Não
Copie a pasta do plugin para o diretório de plugins do GLPI:
glpi/plugins/controleinsumos/
Para homologar ou implantar o plugin em um novo ambiente do GLPI, é necessário atualizar as variáveis de configuração no código para corresponderem ao nome da tabela e do container criados pelo plugin Fields.
Todas as alterações são feitas no arquivo principal do plugin (setup.php ou hook.php):
Localize a variável $tabela_fields dentro das funções TicketUpdate e FieldsAdd e ajuste com o nome da tabela do seu banco de dados:
// Substitua pelo nome da tabela gerada pelo Fields no banco do novo ambiente
$tabela_fields = 'glpi_plugin_fields_ticketinsumos';No método de inicialização de hooks (plugin_init_controleinsumos), verifique se o nome do container da classe corresponde à tabela do Fields:
// Exemplo: se a tabela for glpi_plugin_fields_ticketmeusinsumos, a classe será PluginFieldsTicketmeusinsumo
$target_class = 'PluginFieldsTicketinsumo';
$PLUGIN_HOOKS['item_add']['controleinsumos'][$target_class] = 'plugin_controleinsumos_FieldsAdd';
$PLUGIN_HOOKS['item_update']['controleinsumos'][$target_class] = 'plugin_controleinsumos_FieldsAdd';O plugin possui leitura dinâmica e varre automaticamente todas as colunas da tabela do Fields. Você só precisa garantir que o nome da tabela ($tabela_fields) e a classe target correspondam ao seu ambiente.
-
Acesse o GLPI no menu Configurar -> Plugins.
-
Localize o Controle de Insumos.
-
Clique em Instalar e, em seguida, em Ativar.
Após realizar todas as configurações, uma nova aba chamada "Insumos" ficará disponível em todos os chamados(tickets) do GLPI. Você deve acessar esta aba e selecionar na lista suspensa o(s) insumo(s) utilizado(s) para solucionar o chamado. Atenção: os insumos devem estar previamente cadastrados em Ativos->Insumos.
Após selecionar os insumos utilizados e clicar em "Salvar", uma resposta é adicionada ao chamado informando quais insumos foram vinculados. Caso um deles seja removido antes do chamado ser encerrado, uma resposta também é adicionada informando o item removido.
Ao finalizar o chamado, o estoque dos insumos é atualizado automaticamente pelo plugin. Ao acessar os insumos, é possível ver em qual chamado cada um dos itens foi vinculado. Atenção: atualmente, só é possível adicionar uma unidade de cada insumo por chamado, fazendo a baixa automática de uma unidade do estoque cadastrado.
Este projeto está sob a licença GPLv2+.