コード例 #1
0
ファイル: forms.py プロジェクト: GestorPsi-MES/gestorpsi
    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)
コード例 #2
0
ファイル: tests.py プロジェクト: GestorPsi-MES/gestorpsi
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)
コード例 #3
0
ファイル: views.py プロジェクト: GestorPsi-MES/gestorpsi
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
コード例 #4
0
ファイル: tests.py プロジェクト: GestorPsi-MES/gestorpsi
    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()
コード例 #5
0
ファイル: functions.py プロジェクト: GestorPsi-MES/gestorpsi
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