def payslip_autonomo_report(pool, cr, uid, local_context, context): payslip_autonomo_pool = pool['hr.payslip.autonomo'] payslip_id = payslip_autonomo_pool.browse(cr, uid, context['active_id']) print("\n\n\n Vai report") company_logo = payslip_id.company_id.logo company_nfe_logo = payslip_id.company_id.nfe_logo local_context['company_logo'] = \ company_nfe_logo if company_nfe_logo else company_logo local_context['company_logo2'] = \ company_nfe_logo if company_nfe_logo else company_logo # CPF DO Autonomo if payslip_id.employee_id.cpf: local_context['cpf'] = formata_cpf(payslip_id.employee_id.cpf) else: local_context['cpf'] = '' # Formatar Data da emissao do do RG local_context['rg_emission'] = \ formata_data(payslip_id.employee_id.rg_emission) # Campo de conta bancária no formato para exibição do relatório conta_bancaria = '' if payslip_id.employee_id.address_home_id.bank_ids: conta_bancaria_id = payslip_id.employee_id.address_home_id.bank_ids[0] conta_bancaria = conta_bancaria_id.bank.bic + ' / ' + \ conta_bancaria_id.bra_number + ' / ' + \ conta_bancaria_id.acc_number local_context['conta_bancaria'] = conta_bancaria # Data de pagamento if payslip_id.data_pagamento_autonomo: local_context['data_pagamento'] = \ 'Data de Pagamento: ' + \ formata_data(payslip_id.data_pagamento_autonomo) else: local_context['data_pagamento'] = '' # Numero maximo de linhas por holerites, se ultrapassar esse limite será # dividido em 2 grupos para ser exibido em uma segunda pagina max_linhas = 10 local_context['grupo_rubricas_1'] = payslip_id.line_resume_ids[:max_linhas] local_context['grupo_rubricas_2'] = False if len(payslip_id.line_resume_ids) > max_linhas: local_context['grupo_rubricas_2'] = \ payslip_id.line_resume_ids[max_linhas:]
def _valida_cnpj_cpf(self): self.ensure_one() valores = {} res = {'value': valores} if not self.cnpj_cpf: return res cnpj_cpf = limpa_formatacao(self.cnpj_cpf or '') if cnpj_cpf[:2] != 'EX': if not valida_cnpj(cnpj_cpf) and not valida_cpf(cnpj_cpf): raise ValidationError(_(u'CNPJ/CPF inválido')) if len(cnpj_cpf) == 14: valores['cnpj_cpf'] = formata_cnpj(cnpj_cpf) valores['tipo_pessoa'] = TIPO_PESSOA_JURIDICA valores['regime_tributario'] = REGIME_TRIBUTARIO_SIMPLES valores['contribuinte'] = INDICADOR_IE_DESTINATARIO_ISENTO else: valores['cnpj_cpf'] = formata_cpf(cnpj_cpf) valores['tipo_pessoa'] = TIPO_PESSOA_FISICA valores['regime_tributario'] = REGIME_TRIBUTARIO_LUCRO_PRESUMIDO valores['contribuinte'] = \ INDICADOR_IE_DESTINATARIO_NAO_CONTRIBUINTE if cnpj_cpf[:2] == 'EX': valores['tipo_pessoa'] = TIPO_PESSOA_ESTRANGEIRO valores['regime_tributario'] = REGIME_TRIBUTARIO_LUCRO_PRESUMIDO valores['contribuinte'] = \ INDICADOR_IE_DESTINATARIO_NAO_CONTRIBUINTE if self.id: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('id', '!=', self.id), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) else: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) if len(cnpj_ids) > 0: raise ValidationError(_(u'CNPJ/CPF já existe no cadastro!')) return res
def _check_certificado(self): for certificado in self: if certificado.tipo != TIPO_CERTIFICADO_A1: continue cert = certificado.certificado_nfe() certificado.numero_serie = str(cert.numero_serie) certificado.data_inicio_validade = str(cert.data_inicio_validade) certificado.data_fim_validade = str(cert.data_fim_validade) certificado.proprietario = cert.proprietario_nome if valida_cpf(cert.proprietario_cnpj): certificado.cnpj_cpf = formata_cpf(cert.proprietario_cnpj) elif valida_cnpj(cert.proprietario_cnpj): certificado.cnpj_cpf = formata_cnpj(cert.proprietario_cnpj) else: certificado.cnpj_cpf = cert.proprietario_cnpj
def _valida_cnpj_cpf(self): self.ensure_one() valores = {} res = {'value': valores} if not self.cnpj_cpf: return res cnpj_cpf = limpa_formatacao(self.cnpj_cpf or '') if cnpj_cpf[:2] != 'EX': if not valida_cnpj(cnpj_cpf) and not valida_cpf(cnpj_cpf): raise ValidationError('CNPJ/CPF inválido') if len(cnpj_cpf) == 14: valores.update(cnpj_cpf=formata_cnpj(cnpj_cpf)) valores.update(tipo_pessoa='J') valores.update(regime_tributario='1') else: valores.update(cnpj_cpf=formata_cpf(cnpj_cpf)) valores.update(tipo_pessoa='F') valores.update(regime_tributario='3') if cnpj_cpf[:2] == 'EX': valores.update(tipo_pessoa='E') valores.update(regime_tributario='3') if self.id: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('id', '!=', self.id), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) else: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) if len(cnpj_ids) > 0: raise ValidationError(u'CNPJ/CPF já existe no cadastro!') return res
def constrains_certificado(self): if self.tipo != TIPO_CERTIFICADO_A1: return open('/tmp/cert.pfx', 'w').write(self.arquivo.decode('base64')) cert = pysped.xml_sped.certificado.Certificado() cert.arquivo = '/tmp/cert.pfx' cert.senha = self.senha cert.prepara_certificado_arquivo_pfx() self.numero_serie = str(cert.numero_serie) self.data_inicio_validade = str(cert.data_inicio_validade) self.data_fim_validade = str(cert.data_fim_validade) self.proprietario = cert.proprietario_nome if valida_cpf(cert.proprietario_cnpj): self.cnpj_cpf = formata_cpf(cert.proprietario_cnpj) elif valida_cnpj(cert.proprietario_cnpj): self.cnpj_cpf = formata_cnpj(cert.proprietario_cnpj) else: self.cnpj_cpf = cert.proprietario_cnpj