vrsao api_farmacia funcional
This commit is contained in:
parent
b22ca586e5
commit
0f9e159b87
4
app.py
4
app.py
@ -24,6 +24,8 @@ from routes.service_instance import service_instance_bp
|
|||||||
from routes.reports import employee_bp
|
from routes.reports import employee_bp
|
||||||
from routes.shift import shift_bp
|
from routes.shift import shift_bp
|
||||||
from routes.time_schedules import time_schedule_bp
|
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.record import record_bp
|
||||||
import logging
|
import logging
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
@ -128,6 +130,8 @@ def create_app():
|
|||||||
app.register_blueprint(shift_bp)
|
app.register_blueprint(shift_bp)
|
||||||
app.register_blueprint(time_schedule_bp)
|
app.register_blueprint(time_schedule_bp)
|
||||||
app.register_blueprint(record_bp)
|
app.register_blueprint(record_bp)
|
||||||
|
app.register_blueprint(holiday_bp)
|
||||||
|
app.register_blueprint(company_bp)
|
||||||
|
|
||||||
# Testa a conexão com o banco de dados
|
# Testa a conexão com o banco de dados
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
|
|||||||
@ -28,6 +28,7 @@ class Company(db.Model):
|
|||||||
|
|
||||||
#relacionamento
|
#relacionamento
|
||||||
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False)
|
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False)
|
||||||
|
parent_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=True)
|
||||||
|
|
||||||
#historico
|
#historico
|
||||||
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
||||||
|
|||||||
@ -11,6 +11,10 @@ class User(db.Model):
|
|||||||
password = db.Column(db.String(256), nullable=False)
|
password = db.Column(db.String(256), nullable=False)
|
||||||
profile_image = db.Column(db.String(255), nullable=True)
|
profile_image = db.Column(db.String(255), nullable=True)
|
||||||
birth_date = db.Column(db.Date, nullable=True)
|
birth_date = db.Column(db.Date, nullable=True)
|
||||||
|
|
||||||
|
status = db.Column(db.String(120), nullable=False, default="ativo")
|
||||||
|
|
||||||
|
|
||||||
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
||||||
updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
|
updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ from models.company import Company
|
|||||||
from models.user import db
|
from models.user import db
|
||||||
from models.service_instance import ServiceInstance
|
from models.service_instance import ServiceInstance
|
||||||
|
|
||||||
|
|
||||||
company_bp = Blueprint('company', __name__, url_prefix='/company')
|
company_bp = Blueprint('company', __name__, url_prefix='/company')
|
||||||
|
|
||||||
@company_bp.route('/', methods=['POST'])
|
@company_bp.route('/', methods=['POST'])
|
||||||
@ -31,12 +32,11 @@ def create_company():
|
|||||||
complemento = data.get('complemento')
|
complemento = data.get('complemento')
|
||||||
cep = data.get('cep')
|
cep = data.get('cep')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#relacao
|
#relacao
|
||||||
service_instance_id = data.get('service_instance_id')
|
service_instance_id = data.get('service_instance_id')
|
||||||
|
parent_id = data.get('parent_id')
|
||||||
|
|
||||||
# Cria um novo ServiceRole
|
# Criando
|
||||||
company = Company(
|
company = Company(
|
||||||
name=name,
|
name=name,
|
||||||
fantasy_name = fantasy_name,
|
fantasy_name = fantasy_name,
|
||||||
@ -56,7 +56,8 @@ def create_company():
|
|||||||
estado=estado,
|
estado=estado,
|
||||||
cidade=cidade,
|
cidade=cidade,
|
||||||
|
|
||||||
service_instance_id=service_instance_id
|
service_instance_id=service_instance_id,
|
||||||
|
parent_id=parent_id
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -64,7 +65,7 @@ def create_company():
|
|||||||
db.session.add(company)
|
db.session.add(company)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
return jsonify({'message': 'empresa criada com sucesso', 'feriado_id': company.id}), 201
|
return jsonify({'message': 'empresa criada com sucesso', 'company_id': company.id}), 201
|
||||||
|
|
||||||
@company_bp.route('/<int:company_id>', methods=['PUT'])
|
@company_bp.route('/<int:company_id>', methods=['PUT'])
|
||||||
@swag_from('../docs/company/update.yml')
|
@swag_from('../docs/company/update.yml')
|
||||||
@ -121,12 +122,13 @@ def update_company(company_id):
|
|||||||
@company_bp.route('/', methods=['GET'])
|
@company_bp.route('/', methods=['GET'])
|
||||||
@swag_from('../docs/company/list.yml')
|
@swag_from('../docs/company/list.yml')
|
||||||
def list_company():
|
def list_company():
|
||||||
"""Lista todos os turnos, opcionalmente filtrando por instância de serviço."""
|
"""Lista todos as empresas, opcionalmente filtrando por parent_id."""
|
||||||
service_instance_id = request.args.get('service_instance_id')
|
#service_instance_id = request.args.get('service_instance_id')
|
||||||
|
parent_id = request.args.get('parent_id')
|
||||||
|
|
||||||
if service_instance_id:
|
if parent_id:
|
||||||
# Filtrar por service_instance_id
|
# Filtrar por service_instance_id
|
||||||
company = Company.query.filter_by(service_instance_id=service_instance_id).all()
|
company = Company.query.filter_by(parent_id=parent_id).all()
|
||||||
else:
|
else:
|
||||||
# Retornar todos os turnos
|
# Retornar todos os turnos
|
||||||
companys = Company.query.all()
|
companys = Company.query.all()
|
||||||
@ -150,7 +152,8 @@ def list_company():
|
|||||||
"complemento": company.complemento,
|
"complemento": company.complemento,
|
||||||
"estado": company.estado,
|
"estado": company.estado,
|
||||||
"cidade": company.cidade,
|
"cidade": company.cidade,
|
||||||
'service_instance_id': company.service_instance_id
|
'service_instance_id': company.service_instance_id,
|
||||||
|
"parent_id":company.parent_id
|
||||||
} for company in companys]
|
} for company in companys]
|
||||||
|
|
||||||
return jsonify(company_list), 200
|
return jsonify(company_list), 200
|
||||||
@ -182,7 +185,8 @@ def get_company_id(company_id):
|
|||||||
"complemento": company.complemento,
|
"complemento": company.complemento,
|
||||||
"estado": company.estado,
|
"estado": company.estado,
|
||||||
"cidade": company.cidade,
|
"cidade": company.cidade,
|
||||||
'service_instance_id': company.service_instance_id
|
'service_instance_id': company.service_instance_id,
|
||||||
|
"parent_id":company.parent_id
|
||||||
}),200
|
}),200
|
||||||
|
|
||||||
#deletar
|
#deletar
|
||||||
|
|||||||
@ -81,13 +81,14 @@ def list_holiday():
|
|||||||
else:
|
else:
|
||||||
# Retornar todos os turnos
|
# Retornar todos os turnos
|
||||||
holidays = Holiday.query.all()
|
holidays = Holiday.query.all()
|
||||||
|
print(holidays)
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'holiday_list' : [{
|
'holiday_list' : [{
|
||||||
'id': holiday.id,
|
'id': holiday.id,
|
||||||
'name': holiday.name,
|
'name': holiday.name,
|
||||||
'estado': holiday.estado,
|
'estado': holiday.estado,
|
||||||
"date": holiday.date.strftime("%H:%M"),
|
"date": holiday.date.strftime("%Y-%m-%d"),
|
||||||
"municipio": holiday.municipio,
|
"municipio": holiday.municipio,
|
||||||
'parent_id' : holiday.parent_id,
|
'parent_id' : holiday.parent_id,
|
||||||
'service_instance_id': holiday.service_instance_id
|
'service_instance_id': holiday.service_instance_id
|
||||||
@ -96,7 +97,7 @@ def list_holiday():
|
|||||||
#Get
|
#Get
|
||||||
@holiday_bp.route('/<int:holiday_id>', methods=['GET'])
|
@holiday_bp.route('/<int:holiday_id>', methods=['GET'])
|
||||||
@swag_from('../docs/holiday/get.yml')
|
@swag_from('../docs/holiday/get.yml')
|
||||||
def get_shift_id(holiday_id):
|
def get_holiday_id(holiday_id):
|
||||||
holiday = Holiday.query.get(holiday_id)
|
holiday = Holiday.query.get(holiday_id)
|
||||||
if not holiday:
|
if not holiday:
|
||||||
return jsonify({'error': 'Escala não encontrada'}), 404
|
return jsonify({'error': 'Escala não encontrada'}), 404
|
||||||
@ -106,7 +107,8 @@ def get_shift_id(holiday_id):
|
|||||||
'name': holiday.name,
|
'name': holiday.name,
|
||||||
'estado': holiday.estado,
|
'estado': holiday.estado,
|
||||||
'municipio': holiday.municipio,
|
'municipio': holiday.municipio,
|
||||||
"date": holiday.date.strftime("%H:%M"),
|
'type':holiday.type,
|
||||||
|
"date": holiday.date.strftime("%Y-%m-%d"),
|
||||||
'parent_id' : holiday.parent_id,
|
'parent_id' : holiday.parent_id,
|
||||||
'service_instance_id': holiday.service_instance_id}),200
|
'service_instance_id': holiday.service_instance_id}),200
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ def create_user():
|
|||||||
birth_date = data.get('birth_date')
|
birth_date = data.get('birth_date')
|
||||||
parent_id = data.get('parent_id')
|
parent_id = data.get('parent_id')
|
||||||
service_instance_id = data.get('service_instance_id')
|
service_instance_id = data.get('service_instance_id')
|
||||||
|
status = data.get('status')
|
||||||
|
|
||||||
|
|
||||||
# Verifica se o usuário já existe
|
# Verifica se o usuário já existe
|
||||||
@ -41,7 +42,8 @@ def create_user():
|
|||||||
profile_image=profile_image,
|
profile_image=profile_image,
|
||||||
birth_date=birth_date,
|
birth_date=birth_date,
|
||||||
parent_id=parent_id,
|
parent_id=parent_id,
|
||||||
service_instance_id=service_instance_id
|
service_instance_id=service_instance_id,
|
||||||
|
status=status
|
||||||
)
|
)
|
||||||
user.set_password(password)
|
user.set_password(password)
|
||||||
|
|
||||||
@ -70,6 +72,7 @@ def create_subordinate(logged_user_id):
|
|||||||
profile_image = data.get('profile_image')
|
profile_image = data.get('profile_image')
|
||||||
birth_date = data.get('birth_date')
|
birth_date = data.get('birth_date')
|
||||||
service_instance_id = data.get('service_instance_id')
|
service_instance_id = data.get('service_instance_id')
|
||||||
|
status = data.get('status')
|
||||||
|
|
||||||
existing_user = User.query.filter_by(username=username).first()
|
existing_user = User.query.filter_by(username=username).first()
|
||||||
if existing_user:
|
if existing_user:
|
||||||
@ -82,7 +85,8 @@ def create_subordinate(logged_user_id):
|
|||||||
profile_image=profile_image,
|
profile_image=profile_image,
|
||||||
birth_date=birth_date,
|
birth_date=birth_date,
|
||||||
parent_id=parent_id,
|
parent_id=parent_id,
|
||||||
service_instance_id=service_instance_id
|
service_instance_id=service_instance_id,
|
||||||
|
status=status
|
||||||
)
|
)
|
||||||
subordinate.set_password(password)
|
subordinate.set_password(password)
|
||||||
|
|
||||||
@ -111,7 +115,8 @@ def list_hierarchy(user_id):
|
|||||||
'email': child.email,
|
'email': child.email,
|
||||||
'birth_date':child.birth_date,
|
'birth_date':child.birth_date,
|
||||||
'phone':child.phone,
|
'phone':child.phone,
|
||||||
'service_instance_id':child.service_instance_id
|
'service_instance_id':child.service_instance_id,
|
||||||
|
'status':child.status
|
||||||
})
|
})
|
||||||
# Verifica recursivamente os filhos (subordinados dos subordinados)
|
# Verifica recursivamente os filhos (subordinados dos subordinados)
|
||||||
flat_list.extend(flatten_hierarchy(child))
|
flat_list.extend(flatten_hierarchy(child))
|
||||||
@ -142,7 +147,8 @@ def list_hierarchy_by_id():
|
|||||||
'birth_date':user.birth_date,
|
'birth_date':user.birth_date,
|
||||||
'phone':user.phone,
|
'phone':user.phone,
|
||||||
'subordinates': [build_hierarchy(sub) for sub in user.children],
|
'subordinates': [build_hierarchy(sub) for sub in user.children],
|
||||||
'service_instance_id':user.service_instance_id
|
'service_instance_id':user.service_instance_id,
|
||||||
|
'status':user.status
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,6 +191,9 @@ def update_user(user_id):
|
|||||||
|
|
||||||
if 'password' in data:
|
if 'password' in data:
|
||||||
user.set_password(data['password'])
|
user.set_password(data['password'])
|
||||||
|
|
||||||
|
if 'status' in data:
|
||||||
|
user.status = data['status']
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
return jsonify({'message': 'Usuário atualizado com sucesso'}), 200
|
return jsonify({'message': 'Usuário atualizado com sucesso'}), 200
|
||||||
@ -260,6 +269,7 @@ def get_user(user_id):
|
|||||||
'birth_date':user.birth_date,
|
'birth_date':user.birth_date,
|
||||||
'phone':user.phone,
|
'phone':user.phone,
|
||||||
'service_role_id':user.service_role_id,
|
'service_role_id':user.service_role_id,
|
||||||
|
'status':user.status,
|
||||||
'licenses': [
|
'licenses': [
|
||||||
{
|
{
|
||||||
'license_key': license.license_key,
|
'license_key': license.license_key,
|
||||||
@ -301,8 +311,11 @@ def get_user(user_id):
|
|||||||
def delete_user(user_id):
|
def delete_user(user_id):
|
||||||
user = User.query.get_or_404(user_id)
|
user = User.query.get_or_404(user_id)
|
||||||
|
|
||||||
# Antes de excluir, você pode adicionar validações adicionais se necessário
|
# Verifica se já está inativo
|
||||||
|
if user.status.lower() == "inativo":
|
||||||
|
return jsonify({'message': 'Usuário já está inativo'}), 400
|
||||||
|
|
||||||
db.session.delete(user)
|
# Atualiza o status para inativo
|
||||||
|
user.status = "inativo"
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
return jsonify({'message': 'Usuário excluído com sucesso'}), 200
|
return jsonify({'message': 'Usuário excluído com sucesso'}), 200
|
||||||
@ -20,7 +20,8 @@ def seed_company():
|
|||||||
"complemento": "Bloco A",
|
"complemento": "Bloco A",
|
||||||
"estado": "SP",
|
"estado": "SP",
|
||||||
"cidade": "São Paulo",
|
"cidade": "São Paulo",
|
||||||
'service_instance_id': 1
|
'service_instance_id': 1,
|
||||||
|
"parent_id":1
|
||||||
},
|
},
|
||||||
|
|
||||||
# Empresa 2
|
# Empresa 2
|
||||||
@ -40,7 +41,8 @@ def seed_company():
|
|||||||
"complemento": "Sala 305",
|
"complemento": "Sala 305",
|
||||||
"estado": "RJ",
|
"estado": "RJ",
|
||||||
"cidade": "Rio de Janeiro",
|
"cidade": "Rio de Janeiro",
|
||||||
'service_instance_id': 1
|
'service_instance_id': 1,
|
||||||
|
"parent_id":2
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -66,7 +68,8 @@ def seed_company():
|
|||||||
complemento=company_data['complemento'],
|
complemento=company_data['complemento'],
|
||||||
estado=company_data['estado'],
|
estado=company_data['estado'],
|
||||||
cidade=company_data['cidade'],
|
cidade=company_data['cidade'],
|
||||||
service_instance_id=company_data['service_instance_id']
|
service_instance_id=company_data['service_instance_id'],
|
||||||
|
parent_id=company_data['parent_id']
|
||||||
)
|
)
|
||||||
db.session.add(company)
|
db.session.add(company)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user