def test_minhas_fichas(self): self.unauthorized('/api/minhas_fichas/ghost') self.login() self._case('GET', '/api/minhas_fichas/ghost', status_code=404, headers=self.headers) usuario = Usuario() usuario.cpf = 'ficha_test' ovr = OVR() ovr.responsavel_cpf = usuario.cpf self.db_session.add(usuario) self.db_session.add(ovr) self.db_session.commit() self._case('GET', '/api/minhas_fichas/ficha_test', status_code=400, headers=self.headers) ovr.datahora = datetime.today() self.db_session.add(ovr) self.db_session.commit() self._case('GET', '/api/minhas_fichas/ficha_test', status_code=200, headers=self.headers)
def create_ovr(self, numero): ovr = OVR() ovr.numero = numero self.db_session.add(ovr) self.db_session.commit() self.db_session.refresh(ovr) return ovr
def test23_get_ovr_empresa(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_empresa = get_ovr_empresa(session=session, cnpj=new_ovr.cnpj_fiscalizado, datainicio=new_ovr.datahora) assert len(ovr_empresa) == 1 session.delete(new_ovr) session.commit()
def test21_get_ovr_due(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_due = get_ovr_due(session=session, numero=new_ovr.numerodeclaracao) assert len(ovr_due) is not None session.delete(new_ovr) session.commit()
def test20_get_ovr_conhecimento(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_conhecimento = get_ovr_conhecimento(session=session, numero=new_ovr.numeroCEmercante) assert len(ovr_conhecimento) is not None session.delete(new_ovr) session.commit()
def test16_get_ovr_passagem(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) ovr_passagem = get_ovr_passagem(session=session, user_name=new_ovr.responsavel_cpf, datainicio=new_ovr.datahora, datafim=datetime.now()) assert len(ovr_passagem) == 0 session.delete(new_ovr) session.commit()
def test35_valida_mesmo_responsavel(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf valida = valida_mesmo_responsavel(session=session, params={'ovr_id': new_ovr.id, 'user_name': new_ovr.responsavel_cpf}) assert valida is None session.delete(new_ovr) session.commit()
def test26_inclui_flag_ovr(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf new_flag_ovr = inclui_flag_ovr(session=session, ovr_id=new_ovr.id, flag_nome='Perecível', user_name=new_ovr.responsavel_cpf) assert len(new_flag_ovr) == 1 session.delete(new_ovr) session.commit()
def test22_get_ovr_container(self): # Incompleto new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_container = get_ovr_container(session=session, numerolote='CCNU7654321', datainicio=new_ovr.datahora, datafim=datetime.now()) assert len(ovr_container) is not None session.delete(new_ovr) session.commit()
def test18_get_ovr_visao_usuario(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_visao_usuario = get_ovr_visao_usuario(session=session, datainicio=new_ovr.datahora, datafim=datetime.now(), usuario_cpf=new_ovr.responsavel_cpf) assert len(ovr_visao_usuario) == 1 session.delete(new_ovr) session.commit()
def test17_get_ovr_criadaspor(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf ovr_criadaspor = get_ovr_criadaspor(session=session, user_name=new_ovr.responsavel_cpf, datainicio=new_ovr.datahora, datafim=datetime.now()) assert len(ovr_criadaspor) == 1 session.delete(new_ovr) session.commit()
def test29_atribui_responsavel_ovr(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) responsavel = '68068220291' responsavel_ovr = atribui_responsavel_ovr(session=session, ovr_id=new_ovr.id, responsavel=responsavel, user_name=new_ovr.user_name) assert new_ovr.responsavel_cpf == '68068220291' session.delete(new_ovr) session.commit()
def test38_get_processo(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf new_processo = ProcessoOVR(id=1, ovr_id=new_ovr.id, ovr=new_ovr, tipoprocesso_id=1, numero='9999888877', numerolimpo='9999888877') processo = get_processo(session=session, processo_id=new_processo.id) assert processo is not None session.delete(new_ovr) session.commit()
def test31_informa_lavratura_auto(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf responsavel = '68068220291' lavratura_auto = informa_lavratura_auto(session=session, ovr_id=new_ovr.id, responsavel=responsavel, user_name=new_ovr.user_name) assert new_ovr.responsavel_cpf == '68068220291' session.delete(new_ovr) session.commit()
def test27_exclui_flag_ovr(self): flag1 = Flag(id=8, nome='Perecível') flag2 = Flag(id=9, nome='Alto valor agregado') new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf new_ovr.flags = [flag1, flag2] flag_ovr = exclui_flag_ovr(session=session, ovr_id=new_ovr.id, flag_id=new_ovr.flags[0].id) assert len(flag_ovr) == 1 session.delete(new_ovr) session.commit()
def test14_get_ovr_responsavel_setores(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) setor1 = gera_objeto(Setor(), session=session, params=self.params_setor) setor2 = gera_objeto(Setor(), session=session, params={'id': 2, 'nome': 'Setor2'}) setores = [setor1, setor2] ovr_responsavel_setores = get_ovr_responsavel_setores(session, new_ovr.responsavel_cpf, setores) assert ovr_responsavel_setores is not None session.delete(new_ovr) session.delete(setor1) session.delete(setor2) session.commit()
def test33_valida_mesmo_responsavel_ovr_user_name(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf try: valida = valida_mesmo_responsavel_ovr_user_name(session=session, ovr=new_ovr, user_name=new_ovr.responsavel_cpf) except ESomenteUsuarioResponsavel: self.assertRaises(valida) assert valida is None session.delete(new_ovr) session.commit()
def test30_muda_setor_ovr(self): setor1 = Setor(id='1', nome='Setor 1', cod_unidade='1', pai_id='1') setor2 = Setor(id='2', nome='Setor 2', cod_unidade='2', pai_id='1') new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf new_ovr.setor = setor1 new_setor_ovr = muda_setor_ovr(session=session, ovr_id=new_ovr.id, setor_id=setor2.id, user_name=new_ovr.user_name) assert new_ovr.setor_id == '2' session.delete(new_ovr) session.commit()
def test39_excluir_processo(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf new_processo = ProcessoOVR(id=2, ovr_id=new_ovr.id, ovr=new_ovr, tipoprocesso_id=1, numero='9999888877', numerolimpo='9999888877') new_processo.user_name = new_ovr.user_name session.add(new_processo) session.commit() exclui_processo = excluir_processo(session=session, processo=new_processo, user_cpf=new_ovr.responsavel_cpf) assert not new_ovr.processos session.delete(new_ovr) session.commit()
def test40_excluir_evento(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) responsavel = '68068220291' responsavel_ovr = atribui_responsavel_ovr(session=session, ovr_id=new_ovr.id, responsavel=responsavel, user_name=new_ovr.user_name) new_evento = EventoOVR(id=9, ovr_id=new_ovr.id, ovr=new_ovr, tipoevento_id=2, fase=1, motivo='um motivo', excluido=False, meramente_informativo=False) new_evento.user_name = responsavel session.add(new_evento) session.commit() exclui_evento = excluir_evento(session=session, evento_id=new_evento.id, user_cpf=new_evento.user_name) assert new_ovr.tipoevento_id == 13 session.delete(new_ovr) session.commit()
def test_visualizacoes(self): ce1 = mercante.Conhecimento() ce1.numeroCEmercante = '1234' item1 = mercante.Item() item1.numeroCEmercante = '1234' item1.codigoConteiner = 'ABCD' ovr = OVR() ovr.numeroCEmercante = '1234' ovr.responsavel_cpf = 'ivan' self.session.add(ce1) self.session.add(item1) self.session.add(ovr) self.session.commit() self.login('ivan', 'ivan') # Testar as várias visualizações. # Por enquanto vai testar apenas se não dá erro e se retorna títulos dos campos. # Depois precisa alimentar uma base de testes e testar retorno quanto a conteúdo rv = self.app.get('/minhas_ovrs') token_text = self.get_token(str(rv.data)) payload = {'csrf_token': token_text, 'tipoexibicao': 1} rv = self.app.post('/minhas_ovrs', data=payload, follow_redirects=True) assert rv.status_code == 200 print(rv.data) assert b'Alertas' in rv.data payload['tipoexibicao'] = 2 rv = self.app.post('/minhas_ovrs', data=payload, follow_redirects=True) assert rv.status_code == 200 assert b'Declara' in rv.data payload['tipoexibicao'] = 3 rv = self.app.post('/minhas_ovrs', data=payload, follow_redirects=True) assert rv.status_code == 200 assert b'Infra' in rv.data payload['tipoexibicao'] = 4 rv = self.app.post('/minhas_ovrs', data=payload, follow_redirects=True) assert rv.status_code == 200 assert b'CNPJ/Nome' in rv.data
def processa_dirs(): listadir = os.listdir(RAIZ) # print(listadir) validos = 0 invalidos = 0 for arq in listadir: if arq[:2] == 'TG': # print(caminho) caminho_tgs = os.path.join(RAIZ, arq) for subarq in sorted(os.listdir(caminho_tgs)): caminho_tg = os.path.join(caminho_tgs, subarq) if os.path.isdir(caminho_tg): pdf = pegaarquivo_dirTG(caminho_tg, ['pdf'], 'CE') planilha = pegaarquivo_dirTG(caminho_tg, ['ods', 'xls', 'xlsx']) print(caminho_tg, pdf, planilha) if not pdf: continue ce = '' ce, cnpj = processa_PDF_CE(os.path.join(caminho_tg, pdf)) print(ce, cnpj) if not ce.isnumeric(): print(f'Erro para processar CE no caminho: {caminho_tg} CE: {ce}') invalidos += 1 ce = f'Inválido {invalidos}' # Cria Ficha e TG tgovr = db_session.query(TGOVR).filter(TGOVR.numerolote == ce).one_or_none() if not tgovr: ovr = db_session.query(OVR).filter(OVR.numeroCEmercante == ce). \ one_or_none() if not ovr: ovr = OVR() ovr.numeroCEmercante = ce ovr.cnpj_fiscalizado = ''.join([s for s in cnpj if s.isnumeric()]) db_session.add(ovr) create_time = datetime.fromtimestamp(os.path.getmtime( os.path.join(caminho_tg, pdf))) ovr.datahora = create_time ovr.create_date = create_time ovr.setor_id = '1' db_session.commit() db_session.refresh(ovr) tgovr = TGOVR() tgovr.ovr_id = ovr.id tgovr.numerolote = ce create_time = datetime.fromtimestamp(os.path.getmtime( os.path.join(caminho_tg, planilha))) tgovr.create_date = create_time tgovr.descricao = 'Importado automaticamente' db_session.add(tgovr) db_session.commit() db_session.refresh(tgovr) if len(tgovr.itenstg) > 0: print(f'Pulando TG {tgovr.id} OVR {tgovr.ovr_id} porque já possui itens') continue if planilha: alertas = importa_planilha_tg(db_session, tgovr, os.path.join(caminho_tg, planilha)) if alertas: print(alertas) invalidos += 1 else: print(f'Criou ItensTG no OVR id {tgovr.ovr_id}') validos += 1 print(validos, invalidos)
def test13_get_ovr_responsavel(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) ovr_responsavel = get_ovr_responsavel(session, new_ovr.responsavel_cpf) assert ovr_responsavel is not None session.delete(new_ovr) session.commit()
def test15_get_ovr_auditor(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) ovr_auditor = get_ovr_auditor(session, new_ovr.responsavel_cpf) assert len(ovr_auditor) == 0 session.delete(new_ovr) session.commit()
def processa_fma(session, fma: dict): ovr = session.query(OVR).filter(OVR.numero == fma['Numero_FMA']).filter( OVR.recinto_id == int(fma['Cod_Recinto'])).filter( OVR.ano == fma['Ano_FMA']).first() if ovr is not None: logger.info('FMA %s - %s já existente, pulando... ' % (fma['Cod_Recinto'], fma['Numero_FMA'])) return ovr = OVR() ovr.numero = fma['Numero_FMA'] ovr.ano = fma['Ano_FMA'] try: ovr.datahora = datetime.strptime(fma['Data_Emissao'], '%Y-%m-%d') except Exception as err: print(err) ovr.datahora = datetime.now() try: ovr.dataentrada = datetime.strptime(fma['Data_Entrada_Recinto'], '%Y-%m-%d') except Exception as err: print(err) ovr.dataentrada = ovr.datahora - timedelta(days=90) ovr.recinto_id = int(fma['Cod_Recinto']) ovr.setor_id = 4 # EQMAB ovr.numeroCEmercante = fma['CE_Mercante'] try: conhecimento = get_conhecimento(session, ovr.numeroCEmercante) if conhecimento: ovr.cnpj_fiscalizado = conhecimento.consignatario except Exception as err: logger.error(str(err), exc_info=True) ovr.tipooperacao = 0 ovr.fase = 0 ovr.tipoevento_id = 30 try: session.add(ovr) logger.info('Inserindo OVR Recinto %s Numero %s ' % (fma['Cod_Recinto'], fma['Numero_FMA'])) session.commit() except Exception as err: print(err) session.rollback()
def test32_gera_eventoovr(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) new_ovr.user_name = new_ovr.responsavel_cpf session.delete(new_ovr) session.commit() pass
def test12_get_ovr_one(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) ovr = get_ovr_one(session, new_ovr.id) assert ovr.id == 1 session.delete(new_ovr) session.commit()
def get_linha(self, ovr: OVR) -> Tuple[int, bool, List]: recinto_nome = self.get_recinto_nome(ovr) evento_user, tipo_evento_nome, data_evento, motivo, ind = self.evento_campos( ovr) campos_ultimo_evento = [ f'<b>{tipo_evento_nome}</b>', evento_user, datetime.strftime(data_evento, '%d/%m/%Y %H:%M'), motivo ] html_ultimo_evento = '<br>'.join(campos_ultimo_evento) evento_user2, tipo_evento_nome2, data_evento2, motivo2, ind2 = \ self.evento_campos(ovr, ind + 1) campos_penultimo_evento = [ f'<b>{tipo_evento_nome2}</b>', evento_user2, datetime.strftime(data_evento2, '%d/%m/%Y %H:%M'), motivo2 ] html_penultimo_evento = '<br>'.join(campos_penultimo_evento) # user_descricao = self.usuario_name(ovr.user_name) auditor_descricao = self.usuario_name(ovr.cpfauditorresponsavel) visualizado = self.get_visualizado_pelo_usuario(ovr, data_evento) fiscalizado = self.get_fiscalizado(ovr) responsavel_descricao = 'Nenhum' if ovr.responsavel: responsavel_descricao = ovr.responsavel.nome if self.tipo == TipoExibicao.FMA: alertas = [flag.nome for flag in ovr.flags] return ovr.id, visualizado, [ ovr.datahora, ovr.get_tipooperacao(), recinto_nome, ovr.get_ano(), ovr.numero, ovr.numeroCEmercante, ', '.join(alertas), html_ultimo_evento, html_penultimo_evento, responsavel_descricao, auditor_descricao ] if self.tipo == TipoExibicao.Descritivo: return ovr.id, visualizado, [ ovr.datahora, ovr.get_tipooperacao(), ovr.numeroCEmercante, ovr.numerodeclaracao, fiscalizado, ovr.observacoes, responsavel_descricao, html_ultimo_evento, html_penultimo_evento ] if (self.tipo == TipoExibicao.Ocorrencias or self.tipo == TipoExibicao.Empresa): infracoes, marcas = self.get_infracoes_e_marcas(ovr) if self.tipo == TipoExibicao.Ocorrencias: campo_comum = ovr.observacoes else: campo_comum = fiscalizado return ovr.id, visualizado, [ ovr.datahora, ovr.numeroCEmercante, campo_comum, ', '.join(infracoes), ', '.join(marcas), responsavel_descricao, html_ultimo_evento, html_penultimo_evento ] if self.tipo == TipoExibicao.Resultado: infracoes, marcas = self.get_infracoes_e_marcas(ovr) peso_apreensoes = self.get_peso_apreensoes(ovr) valor_tgs = self.get_valor_tgs(ovr) return ovr.id, visualizado, [ ovr.datahora, ovr.numeroCEmercante, fiscalizado, ', '.join(infracoes), ', '.join(marcas), '{:0.2f}'.format(peso_apreensoes), '{:0.2f}'.format(valor_tgs), responsavel_descricao, auditor_descricao ] if self.tipo == TipoExibicao.Resumo: resumo = self.get_OVR_resumo_html(ovr) return ovr.id, visualizado, [ ovr.datahora, auditor_descricao, html_ultimo_evento, html_penultimo_evento, fiscalizado, resumo ]
def test11_get_ovr(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) ovr = get_ovr(session, new_ovr.id) assert ovr is not None session.delete(ovr) session.commit()