예제 #1
0
파일: views.py 프로젝트: danigbt/electiva3
def comprar(request, producto_pk):
    template = 'productos/comprar.html'
    producto_seleccionado = Producto.objects.get(pk=producto_pk)
    

    if Compra.objects.filter(comfirmada=False).exists():
        compra = Compra.objects.get(comfirmada=False)
        compra.producto.add(producto_seleccionado)
        compra.save()
    else:
        compra = Compra()
        compra.save()
        compra.producto.add(producto_seleccionado)
        compra.save()

    lista_productos = compra.producto.all()
    total = 0
    for i in lista_productos:
        total = total + i.precio

    if request.method == 'POST':
        form = CompraForm(request.POST, instance=compra)

        if form.is_valid():
            compra.total = total
            compra.comfirmada = True
            compra.save()
            form.save()
            #se envia el email al usuario y se redirige a la pagina de exito de compra
            template_email = get_template('productos/compra_template.txt')
            mensaje = "<strong>" + compra.usuario + "</strong> - email: " + compra.email
            mensaje = mensaje + " <br> Usted realizo la compra de:<ul> "
            for producto in compra.producto.all():
                mensaje = mensaje + "<li>" + producto.nombre + " - &#8370; " + str(intcomma(producto.precio)) + "</li>"
            mensaje = mensaje +"</ul>"
            mensaje = mensaje + "Total: &#8370; " + str(intcomma(compra.total)) 

            send_mail('Compra desde la web de Gonzalez Gimenez % s' % (datetime.datetime.now().strftime('%d-%m-%Y %H:%M:%S')),
                'Notificacion de compra:',
                '*****@*****.**', [compra.email], fail_silently=False, html_message=mensaje)
            
            return HttpResponseRedirect('/productos/compra_exitosa/')
    else:
        form = CompraForm(instance=compra)

    return render(request, template, locals())
예제 #2
0
def compra(request):
	context = {}
	
	camisas = Camisa.objects.all()
	operadoras = Operadora.objects.all()
	contas = FormaPagamento.objects.all()
	
	context['camisas'] = camisas
	context['operadoras'] = operadoras
	context['contas'] = contas

	if request.method == 'POST':
		erro = False
		operadora = request.POST.get('operadora')
		email = request.POST.get('email')
		nome = request.POST.get('nome')
		ciente = request.POST.get('ciente')
		celular = request.POST.get('celular')
		facebook = request.POST.get('facebook')
		conta = request.POST.get('conta')

		if 'comprovante' not in request.FILES:
			context['msg'] = 'Por favor, anexe o seu comprovante!'
			erro = True

		if not operadora:
			erro = True
			context['msg'] = 'Por favor, escolha uma operadora!'

		if not email:
			erro = True
			context['msg'] = 'O email é obrigatório!'

		if not nome:
			erro = True
			context['msg'] = 'O nome é obrigatório!'

		if not conta:
			erro = True
			context['msg'] = 'Escolha a conta em que fez o depósito!'


		if not erro:
			user, create = User.objects.get_or_create(username=email[:29])

			if create:
				#user.first_name = nome
				user.email = email
				user.save()
				
				userp, createp = Usuario.objects.get_or_create(user=user)
				
				if createp:
					userp.user = user
					userp.nome = nome
					userp.ciente = ciente
					userp.facebook = facebook

					celular = Celular(numero=celular, operadora_id=operadora)
					celular.save()

					userp.celular = celular
					userp.save()

			compra = Compra()
			compra.usuario = userp
			compra.formaPagamento_id = conta
			compra.save()

			for camisa in [x for x in request.POST if x.startswith('camisa_')]:
				if request.POST[camisa] != '0':
					item = Item()
					item.camisa_id = camisa[7:]
					item.quantidade = request.POST[camisa]
					item.save()
					compra.itens.add(item)

			handle_uploaded_file(request.FILES['comprovante'], '%s_%s'%(user.email, userp.id), 'comprovantes')
			context['sucesso'] = 'Compra registrada.'

		else: # Caso tenha dado erro
			context['operadora'] = operadora
			context['email'] = email
			context['nome'] = nome
			context['ciente'] = ciente
			context['celular'] = celular
			context['facebook'] = facebook
			context['conta_id'] = int(conta)

	return render(request, 'form_compra.html', context)