A Payroll API é um projeto desenvolvido em Go, utilizando o framework GinGonic, para realizar cálculos trabalhistas, incluindo remuneração mensal, horas extras, adicional noturno e adicional de periculosidade. Esta API é projetada para calcular a folha de pagamento com base nas regras trabalhistas vigentes na CLT (Consolidação das Leis do Trabalho) do Brasil.
O objetivo principal deste projeto é auxiliar pequenas e médias empresas a lidar com a complexidade dos cálculos da folha de pagamento, reduzindo a necessidade de contratar contadores e minimizando os riscos de erros e processos trabalhistas.
Com essa API, é possível automatizar e garantir a precisão dos cálculos de folha de pagamento, economizando tempo e minimizando erros. A flexibilidade da linguagem Go permite que a API seja escalável e eficiente, proporcionando um desempenho rápido e confiável.
Além disso, a API pode ser integrada diretamente com o Excel, permitindo que os resultados dos cálculos sejam recebidos diretamente nas células do Excel, facilitando a geração das folhas de pagamento.
A estrutura do projeto é organizada conforme abaixo:
/payroll-api
|-- /cmd
----|-- main.go
|-- /internal
----|--/api
-------|-- /handlers
-----------|-- calculations.go
-------/middleware
------- routes.go
|-- /pkg
----|-- /calculations
--------|-- data.go
--------|-- inss.go
--------|-- irrf.go
--------|-- salario.go
|-- go.mod
-
/cmd: Contém o ponto de entrada da aplicação.
main.go
: Inicializa o servidor e define a rota principal da API.
-
/internal: Contém a lógica interna da aplicação.
- /api
- /handlers
calculations.go
: Implementa o handler para a rota de cálculo da folha de pagamento.
routes.go
: Configura as rotas da API.
- /handlers
- /middleware: (Atualmente vazio, mas preparado para adição de middlewares no futuro).
- /api
-
/pkg: Contém bibliotecas e pacotes reutilizáveis.
- /calculations
data.go
: Define estruturas e funções relacionadas ao período trabalhado.inss.go
: Contém a lógica para cálculo do INSS.irrf.go
: Contém a lógica para cálculo do IRRF.salario.go
: Contém a lógica para cálculo de salário e adicionais.
- /calculations
- Cálculo do salário base, adicionais e total devido.
- Cálculo de horas extras (diurnas, noturnas e em domingos/feriados).
- Cálculo de adicional noturno.
- Cálculo de reflexo das horas extras e adicional noturno no Descanso Semanal Remunerado (DSR).
- Cálculo dos descontos de INSS e IRRF.
- Retorno do valor total a pagar ao empregado.
Calcula a folha de pagamento de um empregado para um determinado período.
Request:
{
"colaborador": {
"nome": "João da Silva",
"salario_mensal": 3000.00,
"horas_trabalhadas": 160,
"horas_extras_diurnas": 10,
"horas_extras_noturnas": 5,
"horas_extras_dom_feriado": 2,
"horas_noturnas": 15,
"adicional_periculosidade": true
},
"inicio_periodo": "01/06/2024",
"fim_periodo": "30/06/2024",
"jornada_semanal": 44
}
Response:
{
"salario_base": 3000,
"adicional": 900,
"salario_total": 3900,
"salario_hora": 17.727272727272727,
"adicional_noturno": 53.18181818181818,
"hora_extra_diurna": 265.9090909090909,
"hora_extra_noturna": 159.54545454545456,
"hora_extra_dom_fer": 70.9090909090909,
"reflexo_horas_extras_dsr": 82.72727272727273,
"reflexo_adicional_noturno_dsr": 8.863636363636363,
"total_devido": 4541.136363636364,
"inss": 454.5780909090909,
"irrf": 267.7466113636364,
"total_pagar": 3818.8116613636366
}
- Clone o repositório:
git clone https://github.com/seu-usuario/payroll-api.git
cd payroll-api
- Instale as dependências:
go mod tidy
- Execute a aplicação:
go run cmd/main.go
A API estará disponível em http://localhost:8080
.
Define os dados do empregado necessários para o cálculo da folha de pagamento.
type Colaborador struct {
Nome string `json:"nome"`
SalarioMensal float64 `json:"salario_mensal"`
HorasTrabalhadas float64 `json:"horas_trabalhadas"`
HorasExtrasDiurnas float64 `json:"horas_extras_diurnas"`
HorasExtrasNoturnas float64 `json:"horas_extras_noturnas"`
HorasExtrasDomFer float64 `json:"horas_extras_dom_feriado"`
HorasNoturnas float64 `json:"horas_noturnas"`
AdicionalPericulosidade bool `json:"adicional_periculosidade"`
}
Realiza o cálculo completo da folha de pagamento.
func CalcularSalario(colaborador Colaborador, inicioPeriodo, fimPeriodo string, jornadaSemanal int) (ResultadoCalculo, error)
Calcula o desconto de INSS baseado no salário bruto.
func CalcularINSS(salarioBruto float64) float64
Calcula o desconto de IRRF baseado no salário bruto e no valor do INSS.
func CalcularIRRF(salarioBruto, inss float64) float64
Calcula o valor das horas extras e adicionais noturnos.
func CalcularHorasExtrasEAdicionais(
salarioHora float64, horasExtrasDiurnas, horasExtrasNoturnas, horasExtrasDomFer, horasNoturnas float64,
) (float64, float64, float64, float64, float64, float64)
A API pode ser integrada diretamente com o Excel, permitindo que os resultados dos cálculos sejam recebidos diretamente nas células do Excel. Isso facilita a geração das folhas de pagamento, economizando tempo e garantindo a precisão dos cálculos.
Para integrar com o Excel, você pode usar o recurso de consulta de dados externos do Excel e configurar uma conexão HTTP para fazer chamadas à API. Assim, você pode preencher automaticamente as células com os resultados dos cálculos trabalhistas.
Este projeto está licenciado - veja o arquivo LICENSE para mais detalhes.