fior-analytics 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
fior/__init__.py ADDED
@@ -0,0 +1,74 @@
1
+ """
2
+ Fator de Impacto Operacional no Recebimento (FIOR)
3
+ Módulo Central do Pacote Analítico
4
+
5
+ Autor: Robespierre Santana Silva
6
+ Ano: 2026
7
+ Licença: MIT
8
+ """
9
+
10
+ import pandas as pd
11
+ import os
12
+ from datetime import datetime
13
+
14
+ # Define o que será exportado publicamente quando alguém usar: from fior import *
15
+ __all__ = ['calcular_fior_unidade', 'mapear_zona_criticidade', 'processar_fior_lote']
16
+ __version__ = "1.0.0"
17
+
18
+ def calcular_fior_unidade(urgencia, divergencia, qualidade, ambiente):
19
+ """
20
+ Executa a computação matemática isolada da fórmula ponderada do FIOR.
21
+ Notas de entrada devem ser inteiros ou floats entre 1 e 5.
22
+ """
23
+ for nota in [urgencia, divergencia, qualidade, ambiente]:
24
+ if not (1 <= nota <= 5):
25
+ raise ValueError("As notas de entrada devem obedecer ao intervalo discreto de 1 a 5.")
26
+
27
+ # Pesos Oficiais da Metodologia FIOR
28
+ w = [0.4, 0.3, 0.2, 0.1]
29
+ fior_calculado = (urgencia * w[0]) + (divergencia * w[1]) + (qualidade * w[2]) + (ambiente * w[3])
30
+ return round(fior_calculado, 2)
31
+
32
+
33
+ def mapear_zona_criticidade(score_fior):
34
+ """Mapeia o resultado numérico contínuo nas zonas discretas de impacto."""
35
+ if 1.0 <= score_fior <= 2.2:
36
+ return "🟢 Zona Verde (Baixo Impacto)"
37
+ elif 2.3 <= score_fior <= 3.7:
38
+ return "🟡 Zona Amarela (Médio Impacto)"
39
+ else:
40
+ return "🔴 Zona Vermelha (Gestão de Crise)"
41
+
42
+
43
+ def processar_fior_lote(caminho_planilha_entrada):
44
+ """
45
+ Carrega banco de dados em lote (.xlsx ou .csv), aplica a equação matemática
46
+ vetorizada via Pandas e exporta o consolidado analítico.
47
+ """
48
+ if not os.path.exists(caminho_planilha_entrada):
49
+ raise FileNotFoundError(f"Arquivo '{caminho_planilha_entrada}' não localizado.")
50
+
51
+ if caminho_planilha_entrada.endswith('.xlsx'):
52
+ df = pd.read_excel(caminho_planilha_entrada)
53
+ else:
54
+ df = pd.read_csv(caminho_planilha_entrada, sep=';', encoding='utf-8')
55
+
56
+ colunas_obrigatorias = ['F_urg', 'F_div', 'F_qual', 'F_amb']
57
+ if not all(col in df.columns for col in colunas_obrigatorias):
58
+ raise KeyError(f"A planilha deve conter as colunas: {colunas_obrigatorias}")
59
+
60
+ w_urg, w_div, w_qual, w_amb = 0.4, 0.3, 0.2, 0.1
61
+
62
+ df['Resultado_FIOR'] = (
63
+ (df['F_urg'] * w_urg) +
64
+ (df['F_div'] * w_div) +
65
+ (df['F_qual'] * w_qual) +
66
+ (df['F_amb'] * w_amb)
67
+ ).round(2)
68
+
69
+ df['Classificacao_FIOR'] = df['Resultado_FIOR'].apply(mapear_zona_criticidade)
70
+ df['Timestamp_Processamento'] = datetime.now().strftime('%d/%m/%Y %H:%M:%S')
71
+
72
+ arquivo_saida = "fior_resultados_consolidados.xlsx"
73
+ df.to_excel(arquivo_saida, index=False)
74
+ return arquivo_saida
@@ -0,0 +1,56 @@
1
+ Metadata-Version: 2.4
2
+ Name: fior-analytics
3
+ Version: 1.0.0
4
+ Summary: Indicador analítico e modelo matemático para impacto operacional no recebimento de materiais.
5
+ Home-page: https://github.com/pierre1567/fior
6
+ Author: Pierre
7
+ Author-email: seu_email@exemplo.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.7
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE.txt
14
+ Requires-Dist: pandas>=1.0.0
15
+ Requires-Dist: openpyxl>=3.0.0
16
+ Dynamic: license-file
17
+
18
+ # FIOR - Fator de Impacto Operacional no Recebimento 📊🚚
19
+
20
+ O **FIOR** é uma metodologia analítica e matemática autoral desenvolvida para quantificar a complexidade operacional instantânea enfrentada por equipes de recebimento e conferência de materiais em almoxarifados industriais e centros de distribuição.
21
+
22
+ Ao contrário de indicadores tradicionais como o OTIF (que avalia o fornecedor) ou o Tempo de Ciclo (que apenas cobra velocidade da equipe), o FIOR mede o grau de impacto que variáveis externas e imprevistos têm sobre a eficiência do setor.
23
+
24
+ ---
25
+
26
+ ## 📐 A Formulação Matemática
27
+
28
+ O modelo utiliza a abordagem de Análise Multicritério de Decisão (MCDM) com uma estrutura de ponderação linear restrita:
29
+
30
+ $$FIOR = (F_{urg} \times 0.4) + (F_{div} \times 0.3) + (F_{qual} \times 0.2) + (F_{amb} \times 0.1)$$
31
+
32
+ Onde cada fator recebe uma nota discreta de 1 a 5 com base no cenário real do pátio:
33
+ * **F_urg (Urgência):** Severidade da demanda (ex: item de máquina parada ou estoque de rotina).
34
+ * **F_div (Divergência):** Complexidade fiscal, cadastral ou documental da Nota Fiscal.
35
+ * **F_qual (Qualidade):** Nível de exigência na conferência física (itens sem identificação, avarias).
36
+ * **F_amb (Ambiente):** Estado da infraestrutura e estresse físico (chuva, queda de sistema, pátio saturado).
37
+
38
+ ---
39
+
40
+ ## 🟢 Matriz de Criticidade (Zonas de Impacto)
41
+
42
+ O resultado final do FIOR varia de **1.0 a 5.0**, classificando a operação em três zonas de criticidade:
43
+
44
+ * **De 1.0 a 2.2 | Zona Verde (Baixo Impacto):** Fluxo padrão, sem gargalos.
45
+ * **De 2.3 a 3.7 | Zona Amarela (Médio Impacto):** Operação impactada, exigindo tratativas burocráticas ou esforço extra de conferência.
46
+ * **De 3.8 a 5.0 | Zona Vermelha (Gestão de Crise):** Caos operacional. Justifica quedas bruscas na produtividade e exige atuação da liderança.
47
+
48
+ ---
49
+
50
+ ## 💻 Implementação Automatizada com Python (`pandas`)
51
+
52
+ O projeto conta com um script em Python que automatiza o cálculo em lote. Ele lê uma planilha comum do Excel contendo os registros de Notas Fiscais e as respectivas notas dos fatores, injeta a lógica matemática e gera um relatório consolidado com os resultados e classificações.
53
+
54
+ ### Pré-requisitos
55
+ ```bash
56
+ pip install pandas openpyxl
@@ -0,0 +1,6 @@
1
+ fior/__init__.py,sha256=3KUkMb5zgpYXLO0qDHB3T-Z3rNvHQCRI--6BuAABsQI,2772
2
+ fior_analytics-1.0.0.dist-info/licenses/LICENSE.txt,sha256=_isfZKL9AliWTUSB5DM2XWLSM4d2hBW3ZGHexC7RGuM,1101
3
+ fior_analytics-1.0.0.dist-info/METADATA,sha256=dhxODrndu9oUHWvzekYVDTW3oq98YpaTYncjHnj57JQ,2910
4
+ fior_analytics-1.0.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
5
+ fior_analytics-1.0.0.dist-info/top_level.txt,sha256=5gXrGRTGkZA3hq6VSZLf8J2n_3e13MCbJPuFzcWA8vM,5
6
+ fior_analytics-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Robespierre Santana Silva
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ fior