예제 #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 finalizarCompra():
    username = session['username']
    print(username)
    solicitud = request.get_json(force=True)
    user = User.query.filter_by(username=username).first()
    libros = Carrito.query.join(Books).filter(
        Carrito.usuario_id == user.id).add_columns(Books.id, Books.titulo,
                                                   Books.portada,
                                                   Books.precio).all()
    monto = solicitud['total']
    compra = Compra(user.id, monto, "rfc")
    for libro in libros:
        compra.libroCliente.append(LibroCliente(libro.id, 1, libro.precio))
        print(compra.libroCliente)
    compra.envio = [
        Envio(user.pais, user.direccion, user.cp, user.ciudad, user.estado,
              user.telefono)
    ]
    db.session.add(compra)
    db.session.query(Carrito).filter(Carrito.usuario_id == user.id).delete()
    db.session.commit()
    return "ok"
예제 #3
0
arq = open(config_path, 'r')
config = arq.read().splitlines()

inicio = datetime.strptime(config[0], '%d/%m/%Y')
fim = datetime.strptime(config[1], '%d/%m/%Y')

fim += timedelta(
    days=1)  # para, na hora de filtrar, incluir o dia inteiro referente ao fim

int_bool = lambda x: x == 1

compras = []
cursor.execute('SELECT * FROM compra')
for l in cursor.fetchall():
    c = Compra(l[0], l[1], l[2], l[3],
               datetime.strptime(l[4], '%d/%m/%Y %H:%M:%S'), l[5],
               int_bool(l[6]), l[7], int_bool(l[8]), int_bool(l[9]))

    if (c.data >= inicio
            and c.data <= fim) and not (c.entrega and not c.entregaValidada):
        compras.append(c)

import pizza_totais, pizza_entregas, stacked_clientes, stacked_vendas_por_dia, stacked_vendas_por_horario

stacked_vendas_por_horario.gerar_imagem(deepcopy(compras))
'''
stacked_vendas_por_dia.gerar_imagem(deepcopy(compras))
stacked_clientes.gerar_imagem(deepcopy(compras))

pizza_totais.gerar_imagem(deepcopy(compras))
pizza_entregas.gerar_imagem(deepcopy(compras))
예제 #4
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)