tabela de configurações gerais
This commit is contained in:
parent
1bff849684
commit
57e0047cc0
3
app.py
3
app.py
@ -27,6 +27,7 @@ from routes.time_schedules import time_schedule_bp
|
||||
from routes.holiday import holiday_bp
|
||||
from routes.company import company_bp
|
||||
from routes.record import record_bp
|
||||
from routes.settings_gerais import settings_gerais_bp
|
||||
import logging
|
||||
from dotenv import load_dotenv
|
||||
from werkzeug.exceptions import BadRequest
|
||||
@ -132,6 +133,8 @@ def create_app():
|
||||
app.register_blueprint(record_bp)
|
||||
app.register_blueprint(holiday_bp)
|
||||
app.register_blueprint(company_bp)
|
||||
app.register_blueprint(settings_gerais_bp)
|
||||
|
||||
|
||||
# Testa a conexão com o banco de dados
|
||||
with app.app_context():
|
||||
|
||||
97
docs/settings_gerais/create.yml
Normal file
97
docs/settings_gerais/create.yml
Normal file
@ -0,0 +1,97 @@
|
||||
tags:
|
||||
- Settings Gerais
|
||||
summary: Cria uma nova configuração geral
|
||||
description: >
|
||||
Essa rota permite criar uma configuração geral associada a uma instância de serviço.
|
||||
parameters:
|
||||
- in: body
|
||||
name: body
|
||||
description: Dados para a criação de uma nova configuração.
|
||||
required: true
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
tolerancia_entrada:
|
||||
type: integer
|
||||
description: Tolerância de entrada em minutos
|
||||
example: 10
|
||||
tolerancia_saida:
|
||||
type: integer
|
||||
description: Tolerância de saída em minutos
|
||||
example: 5
|
||||
limite_diario_he:
|
||||
type: integer
|
||||
description: Limite diário de horas extras em minutos
|
||||
example: 120
|
||||
limite_mensal_he:
|
||||
type: integer
|
||||
description: Limite mensal de horas extras em minutos
|
||||
example: 2400
|
||||
limite_banco_horas_positivo:
|
||||
type: integer
|
||||
description: Limite positivo do banco de horas
|
||||
example: 800
|
||||
limite_banco_horas_negativo:
|
||||
type: integer
|
||||
description: Limite negativo do banco de horas
|
||||
example: -400
|
||||
validacao_reconhecimento_facial:
|
||||
type: string
|
||||
description: Habilita ou não a validação facial
|
||||
example: "True"
|
||||
registro_remoto:
|
||||
type: string
|
||||
description: Permite ou não o registro remoto
|
||||
example: "True"
|
||||
ajuste_colaborador:
|
||||
type: string
|
||||
description: Permite ou não o ajuste pelo colaborador
|
||||
example: "False"
|
||||
dias_aprovacao_automatica:
|
||||
type: integer
|
||||
description: Número de dias para aprovação automática
|
||||
example: 3
|
||||
service_instance_id:
|
||||
type: integer
|
||||
description: ID da instância de serviço associada
|
||||
example: 4
|
||||
responses:
|
||||
201:
|
||||
description: Configuração criada com sucesso
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
settings_id:
|
||||
type: integer
|
||||
examples:
|
||||
application/json:
|
||||
message: "Configuração criada com sucesso"
|
||||
settings_id: 1
|
||||
400:
|
||||
description: Requisição inválida (dados incorretos ou ausentes)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Campos obrigatórios ausentes ou inválidos."
|
||||
401:
|
||||
description: Token inválido ou ausente
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Token inválido ou ausente"
|
||||
48
docs/settings_gerais/delete.yml
Normal file
48
docs/settings_gerais/delete.yml
Normal file
@ -0,0 +1,48 @@
|
||||
tags:
|
||||
- Settings Gerais
|
||||
summary: Remove uma configuração geral
|
||||
description: >
|
||||
Essa rota permite deletar uma configuração geral específica pelo seu ID.
|
||||
parameters:
|
||||
- in: path
|
||||
name: settings_id
|
||||
required: true
|
||||
description: ID da configuração geral que será removida
|
||||
type: integer
|
||||
responses:
|
||||
200:
|
||||
description: Configuração removida com sucesso
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
message: "Configuração deletada com sucesso"
|
||||
401:
|
||||
description: Token inválido ou ausente
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Token inválido ou ausente"
|
||||
404:
|
||||
description: Configuração não encontrada
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Configuração não encontrada"
|
||||
81
docs/settings_gerais/get.yml
Normal file
81
docs/settings_gerais/get.yml
Normal file
@ -0,0 +1,81 @@
|
||||
tags:
|
||||
- Settings Gerais
|
||||
summary: Busca os detalhes de uma configuração geral
|
||||
description: >
|
||||
Essa rota permite obter os dados de uma configuração geral específica a partir do seu ID.
|
||||
parameters:
|
||||
- in: path
|
||||
name: settings_id
|
||||
required: true
|
||||
description: ID da configuração geral
|
||||
type: integer
|
||||
responses:
|
||||
200:
|
||||
description: Detalhes da configuração retornados com sucesso
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
tolerancia_entrada:
|
||||
type: integer
|
||||
tolerancia_saida:
|
||||
type: integer
|
||||
limite_diario_he:
|
||||
type: integer
|
||||
limite_mensal_he:
|
||||
type: integer
|
||||
limite_banco_horas_positivo:
|
||||
type: integer
|
||||
limite_banco_horas_negativo:
|
||||
type: integer
|
||||
validacao_reconhecimento_facial:
|
||||
type: string
|
||||
registro_remoto:
|
||||
type: string
|
||||
ajuste_colaborador:
|
||||
type: string
|
||||
dias_aprovacao_automatica:
|
||||
type: integer
|
||||
service_instance_id:
|
||||
type: integer
|
||||
examples:
|
||||
application/json:
|
||||
id: 1
|
||||
tolerancia_entrada: 10
|
||||
tolerancia_saida: 5
|
||||
limite_diario_he: 120
|
||||
limite_mensal_he: 2400
|
||||
limite_banco_horas_positivo: 800
|
||||
limite_banco_horas_negativo: -400
|
||||
validacao_reconhecimento_facial: "True"
|
||||
registro_remoto: "True"
|
||||
ajuste_colaborador: "False"
|
||||
dias_aprovacao_automatica: 3
|
||||
service_instance_id: 4
|
||||
401:
|
||||
description: Token inválido ou ausente
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Token inválido ou ausente"
|
||||
404:
|
||||
description: Configuração não encontrada
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Configuração não encontrada"
|
||||
76
docs/settings_gerais/list.yml
Normal file
76
docs/settings_gerais/list.yml
Normal file
@ -0,0 +1,76 @@
|
||||
tags:
|
||||
- Settings Gerais
|
||||
summary: Lista todas as configurações gerais
|
||||
description: >
|
||||
Essa rota permite listar todas as configurações gerais cadastradas.
|
||||
Pode-se filtrar por uma instância de serviço específica.
|
||||
parameters:
|
||||
- in: query
|
||||
name: service_instance_id
|
||||
required: false
|
||||
description: ID da instância de serviço para filtrar as configurações
|
||||
type: integer
|
||||
responses:
|
||||
200:
|
||||
description: Lista de configurações retornada com sucesso
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
settings_gerais_list:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
tolerancia_entrada:
|
||||
type: integer
|
||||
tolerancia_saida:
|
||||
type: integer
|
||||
limite_diario_he:
|
||||
type: integer
|
||||
limite_mensal_he:
|
||||
type: integer
|
||||
limite_banco_horas_positivo:
|
||||
type: integer
|
||||
limite_banco_horas_negativo:
|
||||
type: integer
|
||||
validacao_reconhecimento_facial:
|
||||
type: string
|
||||
registro_remoto:
|
||||
type: string
|
||||
ajuste_colaborador:
|
||||
type: string
|
||||
dias_aprovacao_automatica:
|
||||
type: integer
|
||||
service_instance_id:
|
||||
type: integer
|
||||
examples:
|
||||
application/json:
|
||||
settings_gerais_list:
|
||||
- id: 1
|
||||
tolerancia_entrada: 10
|
||||
tolerancia_saida: 5
|
||||
limite_diario_he: 120
|
||||
limite_mensal_he: 2400
|
||||
limite_banco_horas_positivo: 800
|
||||
limite_banco_horas_negativo: -400
|
||||
validacao_reconhecimento_facial: "True"
|
||||
registro_remoto: "True"
|
||||
ajuste_colaborador: "False"
|
||||
dias_aprovacao_automatica: 3
|
||||
service_instance_id: 4
|
||||
401:
|
||||
description: Token inválido ou ausente
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Token inválido ou ausente"
|
||||
111
docs/settings_gerais/update.yml
Normal file
111
docs/settings_gerais/update.yml
Normal file
@ -0,0 +1,111 @@
|
||||
tags:
|
||||
- Settings Gerais
|
||||
summary: Atualiza uma configuração geral existente
|
||||
description: >
|
||||
Essa rota permite atualizar os dados de uma configuração geral específica, associada a uma instância de serviço.
|
||||
parameters:
|
||||
- in: path
|
||||
name: settings_id
|
||||
required: true
|
||||
description: ID da configuração geral que será atualizada
|
||||
type: integer
|
||||
- in: body
|
||||
name: body
|
||||
description: Dados para atualização da configuração.
|
||||
required: true
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
tolerancia_entrada:
|
||||
type: integer
|
||||
description: Tolerância de entrada em minutos
|
||||
example: 10
|
||||
tolerancia_saida:
|
||||
type: integer
|
||||
description: Tolerância de saída em minutos
|
||||
example: 5
|
||||
limite_diario_he:
|
||||
type: integer
|
||||
description: Limite diário de horas extras em minutos
|
||||
example: 120
|
||||
limite_mensal_he:
|
||||
type: integer
|
||||
description: Limite mensal de horas extras em minutos
|
||||
example: 2400
|
||||
limite_banco_horas_positivo:
|
||||
type: integer
|
||||
description: Limite positivo do banco de horas
|
||||
example: 800
|
||||
limite_banco_horas_negativo:
|
||||
type: integer
|
||||
description: Limite negativo do banco de horas
|
||||
example: -400
|
||||
validacao_reconhecimento_facial:
|
||||
type: string
|
||||
description: Habilita ou não a validação facial
|
||||
example: "True"
|
||||
registro_remoto:
|
||||
type: string
|
||||
description: Permite ou não o registro remoto
|
||||
example: "True"
|
||||
ajuste_colaborador:
|
||||
type: string
|
||||
description: Permite ou não o ajuste pelo colaborador
|
||||
example: "False"
|
||||
dias_aprovacao_automatica:
|
||||
type: integer
|
||||
description: Número de dias para aprovação automática
|
||||
example: 3
|
||||
service_instance_id:
|
||||
type: integer
|
||||
description: ID da instância de serviço associada
|
||||
example: 4
|
||||
responses:
|
||||
200:
|
||||
description: Configuração atualizada com sucesso
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
message: "Configuração atualizada com sucesso"
|
||||
400:
|
||||
description: Requisição inválida (dados incorretos ou ausentes)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Campos obrigatórios ausentes ou inválidos."
|
||||
401:
|
||||
description: Token inválido ou ausente
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Token inválido ou ausente"
|
||||
404:
|
||||
description: Configuração não encontrada
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
type: string
|
||||
examples:
|
||||
application/json:
|
||||
error: "Configuração não encontrada"
|
||||
25
models/settings_gerais.py
Normal file
25
models/settings_gerais.py
Normal file
@ -0,0 +1,25 @@
|
||||
from extensions import db
|
||||
|
||||
class SettingsGerais(db.Model):
|
||||
__tablename__ = "settings_gerais"
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
tolerancia_entrada = db.Column(db.Integer, nullable=True) # Tolerância de entrada em minutos
|
||||
tolerancia_saida = db.Column(db.Integer, nullable=True) # Tolerância de saída em minutos
|
||||
limite_diario_he = db.Column(db.Integer, nullable=True) # Limite diário de horas extras
|
||||
limite_mensal_he = db.Column(db.Integer, nullable=True) # Limite mensal de horas extras
|
||||
limite_banco_horas_positivo = db.Column(db.Integer, nullable=True) # Limite de banco de horas positivo
|
||||
limite_banco_horas_negativo = db.Column(db.Integer, nullable=True) # Limite de banco de horas negativo
|
||||
validacao_reconhecimento_facial = db.Column(db.String(255), default=False) # Validação de reconhecimento facial
|
||||
registro_remoto = db.Column(db.String(255), default=False) # Registro remoto
|
||||
ajuste_colaborador = db.Column(db.String(255), default=False) # Ajuste colaborador
|
||||
dias_aprovacao_automatica = db.Column(db.Integer, nullable=True) # Dias para aprovação automática
|
||||
|
||||
|
||||
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False)
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return f"<SettingsGerais id={self.id} service_instance_id={self.service_instance_id}>"
|
||||
|
||||
|
||||
|
||||
140
routes/settings_gerais.py
Normal file
140
routes/settings_gerais.py
Normal file
@ -0,0 +1,140 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from flask_jwt_extended import jwt_required
|
||||
from flasgger.utils import swag_from
|
||||
from models.user import db
|
||||
from models.settings_gerais import SettingsGerais
|
||||
|
||||
settings_gerais_bp = Blueprint('settings_gerais', __name__, url_prefix='/settings_gerais')
|
||||
|
||||
# Criar configurações gerais
|
||||
@settings_gerais_bp.route('/', methods=['POST'])
|
||||
@jwt_required()
|
||||
@swag_from('../docs/settings_gerais/create.yml')
|
||||
def create_settings_gerais():
|
||||
data = request.get_json()
|
||||
tolerancia_entrada = data.get('tolerancia_entrada')
|
||||
tolerancia_saida = data.get('tolerancia_saida')
|
||||
limite_diario_he = data.get('limite_diario_he')
|
||||
limite_mensal_he = data.get('limite_mensal_he')
|
||||
limite_banco_horas_positivo = data.get('limite_banco_horas_positivo')
|
||||
limite_banco_horas_negativo = data.get('limite_banco_horas_negativo')
|
||||
validacao_reconhecimento_facial = data.get('validacao_reconhecimento_facial', False)
|
||||
registro_remoto = data.get('registro_remoto', False)
|
||||
ajuste_colaborador = data.get('ajuste_colaborador', False)
|
||||
dias_aprovacao_automatica = data.get('dias_aprovacao_automatica')
|
||||
service_instance_id = data.get('service_instance_id')
|
||||
|
||||
settings = SettingsGerais(
|
||||
tolerancia_entrada=tolerancia_entrada,
|
||||
tolerancia_saida=tolerancia_saida,
|
||||
limite_diario_he=limite_diario_he,
|
||||
limite_mensal_he=limite_mensal_he,
|
||||
limite_banco_horas_positivo=limite_banco_horas_positivo,
|
||||
limite_banco_horas_negativo=limite_banco_horas_negativo,
|
||||
validacao_reconhecimento_facial=validacao_reconhecimento_facial,
|
||||
registro_remoto=registro_remoto,
|
||||
ajuste_colaborador=ajuste_colaborador,
|
||||
dias_aprovacao_automatica=dias_aprovacao_automatica,
|
||||
service_instance_id=service_instance_id
|
||||
)
|
||||
|
||||
db.session.add(settings)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify({'message': 'Configuração criada com sucesso', 'settings_id': settings.id}), 201
|
||||
|
||||
# Atualizar configurações gerais
|
||||
@settings_gerais_bp.route('/<int:settings_id>', methods=['PUT'])
|
||||
@jwt_required()
|
||||
@swag_from('../docs/settings_gerais/update.yml')
|
||||
def update_settings_gerais(settings_id):
|
||||
data = request.get_json()
|
||||
settings = SettingsGerais.query.get_or_404(settings_id)
|
||||
|
||||
if 'tolerancia_entrada' in data:
|
||||
settings.tolerancia_entrada = data['tolerancia_entrada']
|
||||
if 'tolerancia_saida' in data:
|
||||
settings.tolerancia_saida = data['tolerancia_saida']
|
||||
if 'limite_diario_he' in data:
|
||||
settings.limite_diario_he = data['limite_diario_he']
|
||||
if 'limite_mensal_he' in data:
|
||||
settings.limite_mensal_he = data['limite_mensal_he']
|
||||
if 'limite_banco_horas_positivo' in data:
|
||||
settings.limite_banco_horas_positivo = data['limite_banco_horas_positivo']
|
||||
if 'limite_banco_horas_negativo' in data:
|
||||
settings.limite_banco_horas_negativo = data['limite_banco_horas_negativo']
|
||||
if 'validacao_reconhecimento_facial' in data:
|
||||
settings.validacao_reconhecimento_facial = data['validacao_reconhecimento_facial']
|
||||
if 'registro_remoto' in data:
|
||||
settings.registro_remoto = data['registro_remoto']
|
||||
if 'ajuste_colaborador' in data:
|
||||
settings.ajuste_colaborador = data['ajuste_colaborador']
|
||||
if 'dias_aprovacao_automatica' in data:
|
||||
settings.dias_aprovacao_automatica = data['dias_aprovacao_automatica']
|
||||
if 'service_instance_id' in data:
|
||||
# Verifica se a nova instância de serviço existe
|
||||
from models import ServiceInstance # Evita import circular se necessário
|
||||
ServiceInstance.query.get_or_404(data['service_instance_id'])
|
||||
settings.service_instance_id = data['service_instance_id']
|
||||
|
||||
db.session.commit()
|
||||
return jsonify({'message': 'Configuração atualizada com sucesso'}), 200
|
||||
|
||||
# Listar configurações gerais
|
||||
@settings_gerais_bp.route('/', methods=['GET'])
|
||||
@jwt_required()
|
||||
@swag_from('../docs/settings_gerais/list.yml')
|
||||
def list_settings_gerais():
|
||||
service_instance_id = request.args.get('service_instance_id')
|
||||
|
||||
if service_instance_id:
|
||||
settings_list = SettingsGerais.query.filter_by(service_instance_id=service_instance_id).all()
|
||||
else:
|
||||
settings_list = SettingsGerais.query.all()
|
||||
|
||||
return jsonify({
|
||||
'settings_gerais_list': [{
|
||||
'id': settings.id,
|
||||
'tolerancia_entrada': settings.tolerancia_entrada,
|
||||
'tolerancia_saida': settings.tolerancia_saida,
|
||||
'limite_diario_he': settings.limite_diario_he,
|
||||
'limite_mensal_he': settings.limite_mensal_he,
|
||||
'limite_banco_horas_positivo': settings.limite_banco_horas_positivo,
|
||||
'limite_banco_horas_negativo': settings.limite_banco_horas_negativo,
|
||||
'validacao_reconhecimento_facial': settings.validacao_reconhecimento_facial,
|
||||
'registro_remoto': settings.registro_remoto,
|
||||
'ajuste_colaborador': settings.ajuste_colaborador,
|
||||
'dias_aprovacao_automatica': settings.dias_aprovacao_automatica,
|
||||
'service_instance_id': settings.service_instance_id
|
||||
} for settings in settings_list]
|
||||
}), 200
|
||||
|
||||
|
||||
@settings_gerais_bp.route('/<int:id>', methods=['GET'])
|
||||
@jwt_required()
|
||||
@swag_from('../docs/settings_gerais/get.yml')
|
||||
def get_settings_by_id(id):
|
||||
s = SettingsGerais.query.get_or_404(id)
|
||||
return jsonify({
|
||||
'id': s.id,
|
||||
'tolerancia_entrada': s.tolerancia_entrada,
|
||||
'tolerancia_saida': s.tolerancia_saida,
|
||||
'limite_diario_he': s.limite_diario_he,
|
||||
'limite_mensal_he': s.limite_mensal_he,
|
||||
'limite_banco_horas_positivo': s.limite_banco_horas_positivo,
|
||||
'limite_banco_horas_negativo': s.limite_banco_horas_negativo,
|
||||
'validacao_reconhecimento_facial': s.validacao_reconhecimento_facial,
|
||||
'registro_remoto': s.registro_remoto,
|
||||
'ajuste_colaborador': s.ajuste_colaborador,
|
||||
'dias_aprovacao_automatica': s.dias_aprovacao_automatica,
|
||||
'service_instance_id': s.service_instance_id
|
||||
}), 200
|
||||
|
||||
@settings_gerais_bp.route('/<int:id>', methods=['DELETE'])
|
||||
@jwt_required()
|
||||
@swag_from('../docs/settings_gerais/delete.yml')
|
||||
def delete_settings(id):
|
||||
s = SettingsGerais.query.get_or_404(id)
|
||||
db.session.delete(s)
|
||||
db.session.commit()
|
||||
return jsonify({'message': 'Configuração deletada com sucesso.'}), 200
|
||||
@ -16,6 +16,7 @@ from .reports_seed import reports_seed
|
||||
from .shifts_times_seed import seed_shifts_and_schedules
|
||||
from .company_seed import seed_company
|
||||
from .time_schedule import seed_time_schedules
|
||||
from .settings_gerais_seed import seed_settings_gerais
|
||||
from extensions import db
|
||||
|
||||
|
||||
@ -40,6 +41,7 @@ def run_all_seeds():
|
||||
# seed_cameras()
|
||||
#seed_shifts_and_schedules()
|
||||
seed_time_schedules()
|
||||
seed_settings_gerais()
|
||||
|
||||
print("Seeds executados com sucesso!")
|
||||
except Exception as e:
|
||||
|
||||
44
seeds/settings_gerais_seed.py
Normal file
44
seeds/settings_gerais_seed.py
Normal file
@ -0,0 +1,44 @@
|
||||
from extensions import db
|
||||
from models.settings_gerais import SettingsGerais
|
||||
|
||||
def seed_settings_gerais():
|
||||
settings_data = [
|
||||
{
|
||||
"service_instance_id": 1,
|
||||
"tolerancia_entrada": 10,
|
||||
"tolerancia_saida": 5,
|
||||
"limite_diario_he": 120, # minutos
|
||||
"limite_mensal_he": 2400, # minutos
|
||||
"limite_banco_horas_positivo": 800, # minutos
|
||||
"limite_banco_horas_negativo": -400, # minutos
|
||||
"validacao_reconhecimento_facial": "True",
|
||||
"registro_remoto": "True",
|
||||
"ajuste_colaborador": "False",
|
||||
"dias_aprovacao_automatica": 3
|
||||
}
|
||||
]
|
||||
|
||||
for setting in settings_data:
|
||||
existing = db.session.query(SettingsGerais).filter_by(
|
||||
service_instance_id=setting["service_instance_id"]
|
||||
).first()
|
||||
|
||||
if not existing:
|
||||
new_setting = SettingsGerais(
|
||||
service_instance_id=setting["service_instance_id"],
|
||||
tolerancia_entrada=setting["tolerancia_entrada"],
|
||||
tolerancia_saida=setting["tolerancia_saida"],
|
||||
limite_diario_he=setting["limite_diario_he"],
|
||||
limite_mensal_he=setting["limite_mensal_he"],
|
||||
limite_banco_horas_positivo=setting["limite_banco_horas_positivo"],
|
||||
limite_banco_horas_negativo=setting["limite_banco_horas_negativo"],
|
||||
validacao_reconhecimento_facial=setting["validacao_reconhecimento_facial"],
|
||||
registro_remoto=setting["registro_remoto"],
|
||||
ajuste_colaborador=setting["ajuste_colaborador"],
|
||||
dias_aprovacao_automatica=setting["dias_aprovacao_automatica"]
|
||||
)
|
||||
print("antes do banco")
|
||||
db.session.add(new_setting)
|
||||
print("adicionei no banco")
|
||||
|
||||
db.session.commit()
|
||||
Loading…
Reference in New Issue
Block a user