def complete_checktout_random(request, portes_pagos=False):

    user = request.user.email
    metodo = None
    codigo = None

    allowed_metodo = [
        'Internacional', 'Internacional Rastreio', 'Azul', 'Registado'
    ]

    try:
        metodo = request.POST['option']
    except:
        return "Tem de selecionar um modo de envio"

    #porque o correio internacional com rastreio vem com "_" mas no model nao suporta essa string
    metodo = metodo.replace("_", " ")

    if metodo not in allowed_metodo:
        return "Modo de envio incorrecto"

    if portes_pagos == False and not change_saldo_user_checkout_by_metodo(
            user, metodo):
        return "Saldo insuficiente para o modo de envio selecionado"

    last = Historico.all().order('-date').get()

    if last == None:
        codigo = 1
    else:
        codigo = last.codigo + 1

    cartas = compras_historico_utils.return_and_delete_list_of_cards_by_user(
        user)

    if cartas == None:
        return "Tem de ter cartas no seu carrinho para completar uma compra"

    user_info = get_user_info(user)

    historico = Historico(user=user,
                          codigo=codigo,
                          cartas=cartas,
                          morada=user_info.morada,
                          codigopostal=user_info.codigopostal,
                          telefone=user_info.telefone,
                          pais=user_info.pais,
                          metodo=metodo)

    historico.put()

    return "Success"
Exemple #2
0
 def add_history(self):
     history = Historico()
     history.tipo_busca = self.search_type
     history.termo_busca = self.search_term
     current_app.db.session.add(history)
     current_app.db.session.commit()
def complete_checktout_store(request):

    user = request.user.email
    metodo = None
    codigo = None

    allowed_metodo = [
        'Internacional', 'Internacional Rastreio', 'Azul', 'Registado'
    ]

    try:
        metodo = request.POST['option']
    except:
        return "Tem de selecionar um modo de envio"

    #porque o correio internacional com rastreio vem com "_" mas no model nao suporta essa string
    metodo = metodo.replace("_", " ")

    if metodo not in allowed_metodo:
        return "Modo de envio incorrecto"

    last = Historico.all().order('-date').get()

    if last == None:
        codigo = 1
    else:
        codigo = last.codigo + 1

    ####################################GUITA##########################################
    #store card list
    card_list_store = compras_historico_utils.return_list_of_cards_from_request(
        request)
    total_price = compras_historico_utils.get_total_price_cart(card_list_store)

    if metodo == 'Internacional':
        total_price = total_price + constants.CORREIO_INTERNACIONAL
    elif metodo == 'Registado':
        total_price = total_price + constants.CORREIO_REGISTADO
    elif metodo == 'Internacional Rastreio':
        total_price = total_price + constants.CORREIO_INTERNACIONAL_COM_RASTREIO
    elif metodo == 'Azul':
        total_price = total_price + constants.CORREIO_AZUL

    update_saldo_from_user(request.user.email, total_price * -1)

    cartas = compras_historico_utils.return_list_of_cards_from_request(request)

    if cartas == None:
        return "Tem de ter cartas no seu carrinho para completar uma compra"

    real_cartas_order = []
    for carta in cartas:
        toAdd = carta.nome + "###" + carta.raridade + "###" + carta.edicao + " x " + str(
            carta.quantity)
        real_cartas_order.append(toAdd)
        #####################################STOCK - RETIRAR"###########################################
        card_database_utils.decrement_card_stock_store(carta.nome,
                                                       carta.edicao,
                                                       carta.quantity)

    user_info = get_user_info(user)

    historico = Historico(user=user,
                          codigo=codigo,
                          cartas=real_cartas_order,
                          morada=user_info.morada,
                          codigopostal=user_info.codigopostal,
                          telefone=user_info.telefone,
                          pais=user_info.pais,
                          metodo=metodo)

    historico.put()

    compras_historico_utils.empty_store_cart(request)

    return "Success"