Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @login_required
- @csrf_protect
- def cadastro_contatos(request,id_pessoa,id_contato = -1,flag = False):
- '''
- Cadastra ou edita contatos para pessoas jurídicas
- slug_pesoa_juridica: Slug da pessoa jurídica para pesquisar no banco de dados
- id_contato: Chave primária do contato cadastrado, de modo a editar um contato salvo
- a url irá ficar no formato: cadastro-contato/analise-informatica/
- ou então: editar-contato/analise-informatica/23/
- **Context**
- ``form`` instância de :forms: `institucional.forms.FormCadastroContatos`
- ``pessoa_juridica`` instância de :model: `institucional.models.Fornecedores`
- ``pessoa_juridica`` instância de :model: `institucional.models.PessoasJuridicas`
- ``contato`` instância de :model: `institucional.models.ContatosPessoasJuridicas`
- ``flag`` booleano para informar ao template se acabou de editar ou não, de modo a apresentar uma mensage para não confundir o usuário
- '''
- if not request.user.has_perm("institucional.change_pessoasjuridicas"):#se a pessoa não possui permissão para editar ou alterar contatos
- raise PermissionDenied
- pessoa_juridica = get_object_or_404(PessoasJuridicas,pk=retornar_inteiro(id_pessoa,False))
- queryset = ContatosPessoasJuridicas.objects.filter(idPessoaJuridica=pessoa_juridica)
- url_voltar = reverse('institucional:editar_fornecedor',kwargs={'pk':pessoa_juridica.pk})
- tabela = TabelaContatosPessoasJuridicas(queryset)
- contato = ContatosPessoasJuridicas.objects.filter(pk=id_contato)
- title = "Cadastro de contato para {0}".format(pessoa_juridica)
- if contato.count() > 0:
- contato = contato[0]
- initial={'id_pessoa_juridica':pessoa_juridica.pk,
- 'id_pessoa_fisica':contato.idPessoaFisica.pk,
- 'id_contato':contato.pk,
- 'nome':contato.idPessoaFisica.Nome,
- 'telefone':contato.idPessoaFisica.Telefone,
- 'celular':contato.idPessoaFisica.Celular,
- 'email':contato.idPessoaFisica.Email,
- 'ramal':contato.Ramal,
- 'setor':contato.Setor,
- }
- title = "Edição do contato {0}".format(contato.idPessoaFisica)
- else:
- contato = ContatosPessoasJuridicas()
- initial={'id_pessoa_juridica':pessoa_juridica.pk}
- form = FormCadastroContatos(initial=initial)
- if request.method == "POST":
- #Se o método da view foi um post...
- form = FormCadastroContatos(request.POST)
- if form.is_valid():
- id_pessoa_juridica = form.cleaned_data['id_pessoa_juridica']
- if int(id_pessoa_juridica) != int(pessoa_juridica.pk):#se a chave primária enviada for diferente da atual, existe um problema aqui...
- raise SuspiciousOperation('estranho a pessoa jurídica estar diferente as chaves')
- id_pessoa_fisica = retornar_inteiro(form.cleaned_data['id_pessoa_fisica'],False)
- nome = form.cleaned_data['nome']
- telefone = form.cleaned_data['telefone']
- celular = form.cleaned_data['celular']
- ramal = form.cleaned_data['ramal']
- email = form.cleaned_data['email']
- setor = form.cleaned_data['setor']
- observacoes = form.cleaned_data['observacoes']
- pessoa_fisica = PessoasFisicas.objects.filter(pk=id_pessoa_fisica)
- if pessoa_fisica.count() > 0:
- pessoa_fisica = pessoa_fisica[0]
- else:
- pessoa_fisica = PessoasFisicas()
- pessoa_fisica.Nome = nome
- pessoa_fisica.Telefone = telefone
- pessoa_fisica.Celular = celular
- pessoa_fisica.Email = email
- pessoa_fisica.Observacoes = observacoes
- pessoa_fisica.save()
- contato.idPessoaJuridica = pessoa_juridica
- contato.idPessoaFisica = pessoa_fisica
- contato.Setor = setor
- contato.Ramal = ramal
- contato.save()
- url = reverse('institucional:editar_contato',kwargs={'id_contato':contato.pk,'id_pessoa':pessoa_juridica.pk})
- return HttpResponseRedirect(url)
- else:
- context = {
- 'form':form,
- 'pessoa_juridica':pessoa_juridica,
- 'contato':contato,
- 'flag':flag,
- 'title':title,
- 'titulo':title,
- 'table':tabela,
- 'url_voltar':url_voltar,
- }
- return render(request,'institucional/add_contacts.html',context)
- context = {
- 'form':form,
- 'pessoa_juridica':pessoa_juridica,
- 'contato':contato,
- 'flag':flag,
- 'title':title,
- 'titulo':title,
- 'table':tabela,
- 'url_voltar':url_voltar,
- }
- return render(request,'institucional/add_contacts.html',context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement