From 2ff4a45492dc7544a207c2c3a1744cab170b3c24 Mon Sep 17 00:00:00 2001 From: Lincoln de Sousa Date: Wed, 26 Sep 2007 01:40:51 -0300 Subject: [PATCH] =?utf8?q?adicionando=20view=20e=20url=20para=20gera=C3=A7?= =?utf8?q?=C3=A3o=20do=20boleto?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- urls.py | 1 + views.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/urls.py b/urls.py index 5d87e46..1ebcff7 100644 --- a/urls.py +++ b/urls.py @@ -32,6 +32,7 @@ urlpatterns = patterns('', (r'^inscricao/', views.inscricao), (r'^inscricao_individual/', views.inscricao_individual), (r'^inscricao_caravana/', views.inscricao_caravana), + (r'^boleto/', views.inscricao_boleto), (r'^submeter_trabalho/', views.submeter_trabalho), (r'^cadastro_palestrante/', views.cadastro_palestrante), diff --git a/views.py b/views.py index 791951d..010afaf 100644 --- a/views.py +++ b/views.py @@ -26,11 +26,14 @@ from django.newforms import form_for_instance from django.core.mail import EmailMessage from django.db import transaction from django.http import get_host +from django.conf import settings from eventmanager.decorators import enable_login_form -from eventmanager.forms import * from eventmanager.conteudo.models import Noticia, Menu, Secao from eventmanager.eventos.models import * +from eventmanager.forms import * + +from datetime import datetime import sha FROM_EMAIL = 'Emsl 2007 ' @@ -151,7 +154,6 @@ def inscricao_individual(request): user.is_active = False user.save() user.groups.add(group) - p = Participante() p.usuario = user p.nome = cd['nome_completo'] @@ -162,6 +164,8 @@ def inscricao_individual(request): p.bairro = cd['bairro'] p.cidade = cd['cidade'] p.uf = cd['uf'] + p.cep = cd['cep'] + p.refbanco = 0 p.telefone = cd['telefone'] p.home_page = cd['home_page'] p.save() @@ -200,6 +204,8 @@ def inscricao_caravana(request): p.bairro = cd['bairro'] p.cidade = cd['cidade'] p.uf = cd['uf'] + p.cep = cd['cep'] + p.refbanco = 0 p.telefone = cd['telefone'] p.home_page = cd['home_page'] p.save() @@ -218,6 +224,59 @@ def inscricao_caravana(request): return build_response(request, 'inscricao_caravana.html', c) +@enable_login_form +def inscricao_boleto(request): + # dynamic values of the form + now = datetime.now() + today = datetime.date(now) + first_date = datetime.date(datetime(2007, 10, 12)) + c = {} + + p = request.user.participante_set.get() + ca = p.caravana_set.all() and p.caravana_set.get() + + initial = {} + + if p.refbanco == 0: + # o número refran deve ser gerado a cada novo boleto e deve ser único, + # mesmo para os testes + refs = [x.refbanco for x in Participante.objects.all()] + new_ref = len(refs) + while new_ref in refs or new_ref <= settings.MIN_REF_TRAN: + new_ref += 1 + + # este dado precisa ser persistente para que possa ser comparado logo acima + p.refbanco = new_ref + p.save() + else: + new_ref = p.refbanco + + initial['refTran'] = '1458197%s' % str(new_ref).zfill(10) + if today < first_date: + initial['valor'] = '3500' + initial['dtVenc'] = '12102007' + + # caso seja uma caravana... + if ca and len(ca.parsed_participantes()) >= 10: + # sim, o valor aqui é 25 -- Desconto + initial['valor'] = '%s00' % (len(ca.parsed_participantes()) * 25) + c.update({'caravana': 1}) + else: + initial['valor'] = '5000' + initial['dtVenc'] = '17102007' + + initial['nome'] = p.nome + initial['endereco'] = '%s, %s - %s' % (p.rua, p.numero, p.bairro) + initial['cidade'] = p.cidade + initial['uf'] = p.uf + initial['cep'] = p.cep + + form = Boleto(request.POST or None, initial=initial) + c.update({'form': form}) + c.update(initial) + return build_response(request, 'inscricao_boleto.html', c) + + @login_required @user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/') def submeter_trabalho(request): -- 2.20.1