Пример #1
0
def gerar_xml_assinado(request, pk):

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

    r9011_evttotalcontrib = get_object_or_404(r9011evtTotalContrib, id=pk)

    if r9011_evttotalcontrib.arquivo_original:

        xml = ler_arquivo(r9011_evttotalcontrib.arquivo)

    else:
        xml = gerar_xml_r9011(request, pk)

    if 'Signature' in xml:

        xml_assinado = xml

    else:

        if not r9011_evttotalcontrib.transmissor_lote_efdreinf:

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

            grupo = get_grupo(r9011evtTotalContrib)

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

            vincular_transmissor_efdreinf(request, grupo, r9011evtTotalContrib,
                                          r9011_evttotalcontrib)

        r9011_evttotalcontrib = get_object_or_404(r9011evtTotalContrib, id=pk)

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

    if r9011_evttotalcontrib.status in (STATUS_EVENTO_CADASTRADO,
                                        STATUS_EVENTO_IMPORTADO,
                                        STATUS_EVENTO_DUPLICADO,
                                        STATUS_EVENTO_GERADO):

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

    arquivo = 'arquivos/Eventos/r9011_evttotalcontrib/%s.xml' % (
        r9011_evttotalcontrib.identidade)
    os.system('mkdir -p %s/arquivos/Eventos/r9011_evttotalcontrib/' % 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
Пример #2
0
def gerar_xml_assinado(r5011_evttotalcontrib_id, db_slug):
    import os
    from emensageriapro.mensageiro.functions.funcoes_efdreinf import salvar_arquivo_efdreinf
    from emensageriapro.settings import BASE_DIR
    from emensageriapro.mensageiro.functions.funcoes_efdreinf import assinar_efdreinf

    r5011_evttotalcontrib = get_object_or_404(
        r5011evtTotalContrib.objects.using(db_slug),
        excluido=False,
        id=r5011_evttotalcontrib_id)

    if r5011_evttotalcontrib.arquivo_original:

        xml = ler_arquivo(r5011_evttotalcontrib.arquivo)

    else:

        xml = gerar_xml_r5011(r5011_evttotalcontrib_id, db_slug)

    if 'Signature' in xml:

        xml_assinado = xml

    else:

        xml_assinado = assinar_efdreinf(xml)

    if r5011_evttotalcontrib.status in (0, 1, 2, 11):

        r5011evtTotalContrib.objects.using(db_slug).\
            filter(id=r5011_evttotalcontrib_id,excluido=False).update(status=10)

    arquivo = 'arquivos/Eventos/r5011_evttotalcontrib/%s.xml' % (
        r5011_evttotalcontrib.identidade)

    os.system('mkdir -p %s/arquivos/Eventos/r5011_evttotalcontrib/' % 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