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})
Exemple #3
0
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)
Exemple #7
0
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)