def update(): data = json.loads(request.data) venda = VendaModel.find_by_id(data['id']) if not venda: return responseError( f"message: Não há uma venda cadastrada com este id") if venda.status != "Em validação": return responseError( f"Venda não pode ser alterada, status = {venda.status}") cpf = re.sub('[^0-9]', '', data['cpf_revendedor']) revendedor = RevendedorModel.find_by_cpf(cpf) if not revendedor: return responseError( f"message: revendedor com cpf {data['cpf_revendedor']} não cadastrado" ) data['revendedor'] = revendedor.id try: data['dataVenda'] = datetime.strptime(data['dataVenda'], '%d/%m/%Y') except: return responseError(f"A data {data['dataVenda']} é inválida") venda = Venda() result = venda.update(data) return responseSuccess('body', result)
def listCashBack(): totalCashback = 0 vendas = VendaModel.listAll() for venda in vendas: cpf = re.sub('[^0-9]', '', venda.revendedor.cpf) credit = ApiBoticario.get(cpf=cpf) totalCashback += credit return responseSuccess('body', {"total_cashback": totalCashback})
def create(): data = json.loads(request.data) cpf = re.sub('[^0-9]', '', data['cpf']) RevendedorModel.find_by_email(data['email']) if RevendedorModel.find_by_email(data['email']): return responseError( f"Já existe um revendedor com email '{data['email']}'") if RevendedorModel.find_by_cpf(cpf): return responseError(f"Já existe um revendedor com o cpf '{cpf}'") revendedor = Revendedor() result = revendedor.insert(data=data) return responseSuccess("body", result)
def list(): result = [] vendas = VendaModel.listAll() for venda in vendas: vendaJson = venda.json() cpf = re.sub('[^0-9]', '', venda.revendedor.cpf) credit = ApiBoticario.get(cpf=cpf) try: percent = round(((venda.valor / credit) * 100), 2) except: percent = 0 vendaJson['cashback'] = credit vendaJson['percent_cashback'] = percent result.append(vendaJson) return responseSuccess('body', result)
def delete(): data = json.loads(request.data) venda = VendaModel.find_by_id(data['id']) if not venda: return responseError( f"message: Não há uma venda cadastrada com este id") if venda.status != "Em validação": return responseError( f"Venda não pode ser excluida, status = {venda.status}") try: venda.delete_from_db() return responseSuccess(field='body', message="Venda excluida com sucesso") except: return responseError("Ocorreu um erro ao excluir o registro")
def create(): data = json.loads(request.data) cpf = re.sub('[^0-9]', '', data['cpf_revendedor']) revendedor = RevendedorModel.find_by_cpf(cpf) if not revendedor: return responseError( f"revendedor com cpf {data['cpf_revendedor']} não cadastrado") data[ 'status'] = "Em validação" if revendedor.cpf != "15350946056" else "Aprovado" try: data['dataVenda'] = datetime.strptime(data['dataVenda'], '%d/%m/%Y') except: return responseError(f"A data {data['dataVenda']} é inválida") data['revendedor'] = revendedor.id del data['cpf_revendedor'] venda = Venda() result = venda.insert(data) return responseSuccess('body', result)
def login(): data = json.loads(request.data) revendedor = Revendedor() sts, result = revendedor.login(data['email'], data['password']) if sts: return responseSuccess("body", result) else: return responseError(result)