def save(self, request, *args, **kwargs): organization = super(RegistrationForm, self).save(False, *args, **kwargs) # send_email = False # add phone number to 'first' professional registered if self.cleaned_data['phone']: p = Phone() p.area = self.cleaned_data['phone'][1:3] p.phoneNumber = self.cleaned_data['phone'][5:15] p.phoneType_id = 2 person = organization.care_professionals()[0] person.phones.add(p) # add cpf number to 'first' professional registered if self.cleaned_data['cpf']: d = Document() t = TypeDocument.objects.get(description='CPF') d.typeDocument_id = t.id d.document = self.cleaned_data['cpf'] person.document.add(d) # add address to 'first' professional registered if self.cleaned_data['address']: a = Address() at = AddressType.objects.get(description='Comercial') a.addressType_id = at.id a.addressLine1 = self.cleaned_data['address'] a.addressNumber = self.cleaned_data['address_number'] a.zipCode = self.cleaned_data['zipcode'] a.city_id = request.POST.get('city') person.address.add(a)
class DocumentViewsTest(TestCase): def setUp(self): self.typeDocument = TypeDocument(description="test") self.typeDocument.save() self.validDocumentName = "Valid Test Document" self.invalidDocumentName = "Invalid Test Document" self.validDocument = Document(typeDocument=self.typeDocument, document=self.validDocumentName) self.validDocument.content_type = ContentType.objects.get( app_label="document", model="Document") self.invalidDocument = Document(typeDocument=self.typeDocument, document=self.invalidDocumentName) self.invalidDocument.content_type = ContentType.objects.get( app_label="document", model="Document") self.validDocument.save() def testIsEqual(self): result = is_equal(self.validDocument) self.assertTrue(result) def testNotIsEqual(self): result = is_equal(self.invalidDocument) self.assertFalse(result)
def document_list( ids, type_documents, documents, document_identifiers, issuers, states): objs = [] for i in range(0, len(documents)): if len(type_documents[i]): td = TypeDocument.objects.get(pk=type_documents[i]) else: td = None if len(issuers[i]): iss = Issuer.objects.get(pk=issuers[i]) else: iss = None if len(states[i]): st = State.objects.get(pk=states[i]) else: st = None objs.append(Document( id=ids[i], typeDocument=td, document=documents[i], document_identifier=document_identifiers[i], issuer=iss, state=st)) return objs
def setUp(self): self.typeDocument = TypeDocument(description="test") self.typeDocument.save() self.validDocumentName = "Valid Test Document" self.invalidDocumentName = "Invalid Test Document" self.validDocument = Document(typeDocument=self.typeDocument, document=self.validDocumentName) self.validDocument.content_type = ContentType.objects.get( app_label="document", model="Document") self.invalidDocument = Document(typeDocument=self.typeDocument, document=self.invalidDocumentName) self.invalidDocument.content_type = ContentType.objects.get( app_label="document", model="Document") self.validDocument.save()
def gera_boleto_bradesco(resp_usuario_id, invoice, days=7, second_copy=False): ''' Receives a dict filled with the data that will be sent to the billet generator and returns a permalink to the billet generated. ''' user = User.objects.get( pk=int(resp_usuario_id) ) profile = user.get_profile() person = profile.person d = Document() t = TypeDocument.objects.get(description='CPF') try: cpf = person.document.get(typeDocument__id=t.id).document except: cpf = '' try: addr = endereco = person.address.all()[0] except: addr = endereco = None data = BradescoBilletData.objects.all()[0] org = Organization.objects.filter(organization__isnull=True).filter(person__profile__user=user)[0] inv = invoice org.current_invoice = inv org.save() if inv.billet_url is not None and len(inv.billet_url) > 5 and not second_copy: return inv.billet_url else: dados = {} #INFORMANDO DADOS SOBRE O CEDENTE (quem vai receber). dados['cedente_nome'] = data.cedente_nome dados['cedente_cnpj'] = data.cedente_cnpj #INFORMANDO DADOS SOBRE O SACADO (quem vai pagar). dados['sacado_nome'] = person.name dados['sacado_cpf'] = cpf #Informando o endereço do sacado. try: dados['enderecosac_uf'] = str(endereco.city.state.shortName) except: dados['enderecosac_uf'] = '' try: dados['enderecosac_localidade'] = endereco.city.name except: dados['enderecosac_localidade'] = '' try: dados['enderecosac_cep'] = endereco.zipCode except: dados['enderecosac_cep'] = '' try: dados['enderecosac_bairro'] = str(endereco.neighborhood) except: dados['enderecosac_bairro'] = '' try: dados['enderecosac_logradouro'] = endereco.addressLine1 except: dados['enderecosac_logradouro'] = '' try: dados['enderecosac_numero'] = endereco.addressNumber except: dados['enderecosac_numero'] = '' #INFORMANDO DADOS SOBRE O SACADOR AVALISTA (aquele que é contactado em caso de problemas). dados['sacadoravalista_nome'] = data.sacadoravalista_nome dados['sacadoravalista_cnpj'] = data.sacadoravalista_cnpj #Informando o endereço do sacador avalista. dados['enderecosacaval_uf'] = data.enderecosacaval_uf.shortName dados['enderecosacaval_localidade'] = data.enderecosacaval_localidade dados['enderecosacaval_cep'] = data.enderecosacaval_cep dados['enderecosacaval_bairro'] = data.enderecosacaval_bairro dados['enderecosacaval_logradouro'] = data.enderecosacaval_logradouro dados['enderecosacaval_numero'] = data.enderecosacaval_numero #INFORMANDO OS DADOS SOBRE O TÍTULO. #Informando dados sobre a conta bancaria do titulo. dados['contabancaria_numerodaconta'] = data.contabancaria_numerodaconta dados['contabancaria_numerodaconta_digito'] = data.contabancaria_numerodaconta_digito dados['contabancaria_carteira'] = data.contabancaria_carteira dados['contabancaria_agencia'] = data.contabancaria_agencia dados['contabancaria_agencia_digito'] = data.contabancaria_agencia_digito #Código fornecido pelo Banco para identificação do título ou identificação #do título atribuído pelo emissor do título de cobrança. dados['titulo_nossonumero'] = ("%0.11d") % inv.id digito = 0 for p in str(inv.id): digito += int(p) digito = digito % 10 dados['titulo_digitodonossonumero'] = str(digito) dados['titulo_deducao'] = "0.00" dados['titulo_mora'] = "0.00" dados['titulo_acrecimo'] = "0.00" dados['titulo_valorcobrado'] = "0.00" dados['titulo_desconto'] = "0.00" dados['titulo_valor'] = str(inv.ammount) dados['titulo_datadodocumento'] = str(inv.date) dados['titulo_datadovencimento'] = str(inv.due_date) #INFORMANDO OS DADOS SOBRE O BOLETO. dados['boleto_localpagamento'] = "Pagável preferencialmente no Bradesco." dados['boleto_instrucaoaosacado'] = "Pode ser pago em quaisquer agências." dados['boleto_instrucao1'] = "Após vencimento cobrar 50% de multa e 100% de juros ao dia." #dados['boleto_instrucao2'] = "PARA PAGAMENTO 2 até Amanhã Não cobre!" #dados['boleto_instrucao3'] = "PARA PAGAMENTO 3 até Depois de amanhã, OK, não cobre." #dados['boleto_instrucao4'] = "PARA PAGAMENTO 4 até 04/xx/xxxx de 4 dias atrás COBRAR O VALOR DE: R$ 01,00" #dados['boleto_instrucao5'] = "PARA PAGAMENTO 5 até 05/xx/xxxx COBRAR O VALOR DE: R$ 02,00" #dados['boleto_instrucao6'] = "PARA PAGAMENTO 6 até 06/xx/xxxx COBRAR O VALOR DE: R$ 03,00" #dados['boleto_instrucao7'] = "PARA PAGAMENTO 7 até xx/xx/xxxx COBRAR O VALOR QUE VOCÊ QUISER!" #dados['boleto_instrucao8'] = "APÓS o Vencimento, Pagável Somente na Rede X." for p in dados.keys(): dados[p] = smart_str(dados[p]) url = URL_GERADOR_BOLETOS data = urllib.urlencode(dados) #print datetime.now().strftime("%y-%m-%d %H:%M:%S") #raise Exception(url) req = urllib2.Request(url, data) #if the data parameter is here, it's a POST request response = urllib2.urlopen(req) the_page = response.read() if len(the_page) == 40: inv.billet_url = url+the_page inv.save() return url+the_page else: return False