Example #1
0
def create_request(dados):

    from emensageriapro.mensageiro.functions.funcoes import ler_arquivo, salvar_arquivo_efdreinf

    if dados['service'] == 'RecepcaoLoteReinf':

        xml_temp = ''
        eventos = TransmissorEventosEfdreinf.objects. \
            filter(transmissor_lote_efdreinf_id=dados['transmissor_id'],
                   status=STATUS_EVENTO_AGUARD_ENVIO).all()

        for e in eventos:
            dados_evento = e.__dict__
            xml_temp += '<evento id="%(identidade)s">' % dados_evento
            xml_temp += ler_arquivo(
                '/arquivos/Eventos/%(tabela)s/%(identidade)s.xml' %
                dados_evento)
            xml_temp += '</evento>'

        text = REQUEST_RECEBER_LOTE_EVENTOS_EFDREINF.replace(
            '<!--You may enter ANY elements at this point-->', xml_temp)

    elif dados['service'] == 'ConsultasReinf':
        a = TransmissorLoteEfdreinf.objects. \
            get(id=dados['transmissor_id'])

        text = REQUEST_CONSULTA_INFORMACOES_CONSOLIDADES_EFDREINF % a.__dict__

    salvar_arquivo_efdreinf(dados['request'], text, 0)
Example #2
0
def gerar_xml_assinado(request, pk):

    from emensageriapro.settings import BASE_DIR
    from emensageriapro.mensageiro.functions.funcoes import salvar_arquivo_efdreinf
    from emensageriapro.mensageiro.functions.funcoes_efdreinf import assinar_efdreinf

    r1000_evtinfocontri = get_object_or_404(r1000evtInfoContri, id=pk)

    if not r1000_evtinfocontri.identidade:
        from emensageriapro.functions import identidade_evento
        ident = identidade_evento(r1000_evtinfocontri, 'efdreinf')
        r1000_evtinfocontri = get_object_or_404(r1000evtInfoContri, id=pk)

    if r1000_evtinfocontri.arquivo_original:
        xml = ler_arquivo(r1000_evtinfocontri.arquivo)

    else:
        xml = gerar_xml_r1000(request, pk)

    STATUS_ANT = [
        STATUS_EVENTO_CADASTRADO, STATUS_EVENTO_IMPORTADO,
        STATUS_EVENTO_DUPLICADO, STATUS_EVENTO_GERADO
    ]

    if 'Signature' in xml and r1000_evtinfocontri.status in STATUS_ANT:

        xml_assinado = xml
        r1000evtInfoContri.objects.\
            filter(id=pk).update(status=STATUS_EVENTO_ASSINADO)

    else:

        if not r1000_evtinfocontri.transmissor_lote_efdreinf:

            from emensageriapro.mapa_processamento.views.funcoes_automaticas_efdreinf \
                import vincular_transmissor_efdreinf, criar_transmissor_efdreinf, get_grupo

            grupo = get_grupo(r1000evtInfoContri)

            criar_transmissor_efdreinf(request, grupo,
                                       r1000_evtinfocontri.nrinsc,
                                       r1000_evtinfocontri.tpinsc)

            vincular_transmissor_efdreinf(request, grupo, r1000evtInfoContri,
                                          r1000_evtinfocontri)

        r1000_evtinfocontri = get_object_or_404(r1000evtInfoContri, id=pk)

        xml_assinado = assinar_efdreinf(
            request, xml, r1000_evtinfocontri.transmissor_lote_efdreinf_id)

        if 'Signature' in xml_assinado and r1000_evtinfocontri.status in STATUS_ANT:

            r1000evtInfoContri.objects.\
                filter(id=pk).update(status=STATUS_EVENTO_ASSINADO)

        elif s1000evtInfoEmpregador.status in STATUS_ANT:

            r1000evtInfoContri.objects.\
                filter(id=pk).update(status=STATUS_EVENTO_GERADO)

    arquivo = '/arquivos/Eventos/r1000_evtinfocontri/%s.xml' % (
        r1000_evtinfocontri.identidade)
    os.system('mkdir -p %s/arquivos/Eventos/r1000_evtinfocontri/' % BASE_DIR)

    if not os.path.exists(BASE_DIR + arquivo):

        salvar_arquivo_efdreinf(arquivo, xml_assinado, 1)

    xml_assinado = ler_arquivo(arquivo)

    return xml_assinado