Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
 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()
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
 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()
Ejemplo n.º 8
0
 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()
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
 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()
Ejemplo n.º 11
0
 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()
Ejemplo n.º 12
0
 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()
Ejemplo n.º 13
0
 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()
Ejemplo n.º 14
0
 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()
Ejemplo n.º 15
0
 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()
Ejemplo n.º 16
0
 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()
Ejemplo n.º 17
0
 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()
Ejemplo n.º 18
0
 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()
Ejemplo n.º 19
0
 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()
Ejemplo n.º 20
0
 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()
Ejemplo n.º 21
0
 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
Ejemplo n.º 22
0
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)
Ejemplo n.º 23
0
 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()
Ejemplo n.º 24
0
 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()
Ejemplo n.º 25
0
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()
Ejemplo n.º 26
0
 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
Ejemplo n.º 27
0
 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()
Ejemplo n.º 28
0
 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
         ]
Ejemplo n.º 29
0
 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()