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)
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