Exemplo n.º 1
0
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"
def search_orders_admin(request):
	
	keywords = request.POST['keywords']
	
	order_type = request.POST['order_type']
	
	orders = Historico.search(keywords, estado=order_type)
		
	return HttpResponse(orders_to_table_admin(orders))
def get_cards_from_order(user,codigo):
	history = Historico.all().filter('user =', user).filter('codigo =',codigo).get()
	
	if history == None:
		return history
	
	cards_raw = history.cartas
	
	toReturn = []
	
	for card_raw in cards_raw:
		toReturn.append(transform_string_into_card(card_raw))
		
	return toReturn	
def get_specific_order(request,codigo):
	
	try:
		codigo = int(codigo)
	except:
		return HttpResponse("Encomenda inválida")
	
	order = Historico.all().filter('codigo =',codigo).get()
	
	if order == None:
		return HttpResponse("Encomenda inválida")
	
	
	cards = []
	
	for card_raw in order.cartas:
		cards.append(transform_string_into_card(card_raw))
		
	return HttpResponse(card_list_to_html(cards))
def change_order_state(request):

	try:
		codigo = int(request.POST['order'])
	except:
		return HttpResponse("Encomenda Inválida")
		
	new_state = request.POST['new_state']
	
	
	order = Historico.all().filter('codigo =',codigo).get()
	
	if order == None:
		return HttpResponse("Encomenda Inválida")
		
	order.estado = new_state
	
	order.put()
	
	return HttpResponse("Efectuado com sucesso")
Exemplo n.º 6
0
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"
def get_last_order_by_user(user):
	return Historico.all().filter('user =', user).order('-date').get()
def from_user_get_historico(user):
	return Historico.all().filter('user =', user).fetch(1000)