def get_a_vendor(tipo, id): item = '%{}%'.format(id) if tipo == 'id': return Fornecedor.query.filter_by(id=id).first() if tipo == 'nome': filter1 = unaccent(Fornecedor.nome).ilike(item) filter2 = Fornecedor.nome.ilike(item) return Fornecedor.query.filter(db.or_(filter1, filter2)).all() if tipo == 'cnpj': return Fornecedor.query.filter_by(cnpj=id).first() if tipo == 'bairro': return Fornecedor.query.filter( unaccent(Fornecedor.bairro).ilike(item)).all() if tipo == 'cidade': return Fornecedor.query.filter( unaccent(Fornecedor.cidade).ilike(item)).all() if tipo == 'estado': return Fornecedor.query.filter( unaccent(Fornecedor.estado).ilike(item)).all() if tipo == 'cep': return Fornecedor.query.filter_by(cep=id).all() if tipo == 'ativo': return Fornecedor.query.filter_by(ativo=id).all()
def save_new_vendor(data: Dict[str, str]) -> Tuple[Dict[str, str], int]: fornecedor = Fornecedor.query.filter( db.or_(Fornecedor.cnpj == data['cnpj'], )).first() if not fornecedor: novo_fornecedor = Fornecedor( cnpj=data['cnpj'], nome=data['nome'], logradouro=data['logradouro'], numero=data['numero'], complemento=data.get('complemento', ''), bairro=data['bairro'], cidade=data['cidade'], estado=data['estado'], cep=data['cep'], ativo=True, ) save_changes(novo_fornecedor) response_object = { 'status': 'Sucesso', 'message': 'Fornecedor registrado com sucesso.', 'id': novo_fornecedor.id } return response_object, 201 # return generate_token(new_user) else: response_object = { 'status': 'Falha', 'message': 'CNPJ já existe.', } return response_object, 400
def save_new_product(data: Dict[str, str], authenticate: Authenticate) -> Tuple[Dict[str, str], int]: if not authenticate.perfil in ('admin', 'estoque'): response_object = { 'status': 'Falha', 'message': 'Não autorizado, verifique com o administrador.', } return response_object, 400 produto = Produto.query.filter( db.or_(Produto.nome == data['nome'], Produto.codigo_barra == data['codigo_barra'])).first() fornecedor = Fornecedor.query.filter_by(id=data['fornecedor_id']).first() if not fornecedor: response_object = { 'status': 'Falha', 'message': 'Fornecedor não encontrado.', } return response_object, 404 if fornecedor.ativo == False: response_object = { 'status': 'Falha', 'message': 'Não é possível incluir o produto de um fornecedor inativo.', } return response_object, 404 if not produto: novo_produto = Produto( nome=data['nome'], codigo_barra=data['codigo_barra'], fornecedor_id=data['fornecedor_id'], ) save_changes(novo_produto) if data.get('preco_venda'): novo_preco = Preco( preco_venda=data['preco_venda'], data_emissao=datetime.datetime.today(), ativo=True, usuario_id=authenticate.uid, produto_id=novo_produto.id, ) save_price(novo_preco) response_object = { 'status': 'Sucesso', 'message': 'Produto registrado com sucesso.', 'id': novo_produto.id, } return response_object, 201 else: response_object = { 'status': 'Falha', 'message': 'Produto já existe. Tente novamente.', } return response_object, 409
def get_a_product(tipo, id): if tipo == 'id': return Produto.query.filter_by(id=id).first() if tipo == 'nome': item = '%{}%'.format(id) filter1 = unaccent(Produto.nome).ilike(item) filter2 = Produto.nome.ilike(item) return Produto.query.filter(db.or_(filter1, filter2)).all() if tipo == 'codigo_barra': return Produto.query.filter_by(codigo_barra=id).all() if tipo == 'fornecedor_id': return Produto.query.filter_by(fornecedor_id=id).all() if tipo == 'ativo': return Produto.query.filter_by(ativo=id).all()