Пример #1
0
def gerar_xml_assinado(s5013_evtfgts_id, db_slug):
    import os
    from emensageriapro.mensageiro.functions.funcoes_esocial import salvar_arquivo_esocial
    from emensageriapro.settings import BASE_DIR
    from emensageriapro.mensageiro.functions.funcoes_esocial import assinar_esocial

    s5013_evtfgts = get_object_or_404(
        s5013evtFGTS.objects.using(db_slug),
        excluido=False,
        id=s5013_evtfgts_id)

    if s5013_evtfgts.arquivo_original:

        xml = ler_arquivo(s5013_evtfgts.arquivo)

    else:

        xml = gerar_xml_s5013(s5013_evtfgts_id, db_slug)

    if 'Signature' in xml:

        xml_assinado = xml

    else:

        xml_assinado = assinar_esocial(xml)

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

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

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

    os.system('mkdir -p %s/arquivos/Eventos/s5013_evtfgts/' % BASE_DIR)

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

        salvar_arquivo_esocial(arquivo, xml_assinado, 1)

    xml_assinado = ler_arquivo(arquivo)

    return xml_assinado
Пример #2
0
def gerar_xml_assinado(request, pk):

    from emensageriapro.settings import BASE_DIR
    from emensageriapro.mensageiro.functions.funcoes_esocial import salvar_arquivo_esocial
    from emensageriapro.mensageiro.functions.funcoes_esocial import assinar_esocial

    s5012_evtirrf = get_object_or_404(
        s5012evtIrrf,
        id=pk)

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

    else:
        xml = gerar_xml_s5012(request, pk)

    if 'Signature' in xml:
    
        xml_assinado = xml

    else:

        if not s5012_evtirrf.transmissor_lote_esocial:

            from emensageriapro.mapa_processamento.views.funcoes_automaticas_esocial \
                import vincular_transmissor_esocial, criar_transmissor_esocial, get_grupo

            grupo = get_grupo(s5012evtIrrf)

            criar_transmissor_esocial(request,
                grupo,
                s5012_evtirrf.nrinsc,
                s5012_evtirrf.tpinsc)

            vincular_transmissor_esocial(request,
                grupo,
                s5012evtIrrf,
                s5012_evtirrf)
        
        s5012_evtirrf = get_object_or_404(
            s5012evtIrrf,
            id=pk)
        
        xml_assinado = assinar_esocial(
            request, 
            xml, 
            s5012_evtirrf.transmissor_lote_esocial_id)
        
    if s5012_evtirrf.status in (
        STATUS_EVENTO_CADASTRADO,
        STATUS_EVENTO_IMPORTADO,
        STATUS_EVENTO_DUPLICADO,
        STATUS_EVENTO_GERADO):

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

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

    if not os.path.exists(BASE_DIR+arquivo):
    
        salvar_arquivo_esocial(arquivo, xml_assinado, 1)

    xml_assinado = ler_arquivo(arquivo)
    
    return xml_assinado