Esempio n. 1
0
def get_schema_name(arquivo):
    from emensageriapro.functions import get_versao_evento, get_evento_nome
    from emensageriapro.padrao import ler_arquivo

    xml = ler_arquivo(arquivo).replace("s:", "")

    if 'eSocial' in xml:
        tipo = 'esocial'

    elif 'Reinf' in xml:
        tipo = 'efdreinf'

    versao = get_versao_evento(xml)

    evento_nome = get_evento_nome(xml)

    schema_filename = '%s/%s/%s.xsd' % (tipo, versao, evento_nome)

    return schema_filename
Esempio n. 2
0
def validar_evento_funcao(request, pk):

    from emensageriapro.padrao import executar_sql
    from emensageriapro.functions import get_versao_evento
    from emensageriapro.settings import BASE_DIR
    from emensageriapro.mensageiro.functions.funcoes_validacoes_precedencia import validar_precedencia
    from emensageriapro.mensageiro.functions.funcoes_validacoes import get_schema_name, validar_schema
    from emensageriapro.esocial.views.s1280_evtinfocomplper_gerar_xml import gerar_xml_assinado

    VERIFICAR_PREDECESSAO_ANTES_ENVIO = config.ESOCIAL_VERIFICAR_PREDECESSAO_ANTES_ENVIO

    lista_validacoes = []
    s1280_evtinfocomplper = get_object_or_404(s1280evtInfoComplPer, id=pk)

    if not s1280_evtinfocomplper.identidade:
        from emensageriapro.functions import identidade_evento
        ident = identidade_evento(s1280_evtinfocomplper, 'esocial')
        s1280_evtinfocomplper = get_object_or_404(s1280evtInfoComplPer, id=pk)

    #
    # Validações internas
    #

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

    os.system('mkdir -p %s/arquivos/Eventos/s1280_evtinfocomplper/' % BASE_DIR)
    lista = []
    tipo = 'esocial'

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

        gerar_xml_assinado(request, pk)

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

        from emensageriapro.esocial.views.s1280_evtinfocomplper_validar import validacoes_s1280_evtinfocomplper

        texto_xml = ler_arquivo(arquivo).replace("s:", "")
        versao = get_versao_evento(texto_xml)
        lista = validacoes_s1280_evtinfocomplper(arquivo)

    for a in lista:

        if a:

            lista_validacoes.append(a)

    #
    # validando schema
    #

    schema_filename = 'esocial/%s/evtInfoComplPer.xsd' % (s1280_evtinfocomplper.versao)
    quant_erros, error_list = validar_schema(request, schema_filename, arquivo, lang='pt')

    for a in error_list:

        if a:

            lista_validacoes.append(a)

    #
    #
    #

    if lista_validacoes:

        validacoes = '<br>'.join(lista_validacoes).replace("'", "''")

        s1280evtInfoComplPer.objects.\
            filter(id=pk).\
            update(validacoes=validacoes,
                   status=STATUS_EVENTO_VALIDADO_ERRO)

        messages.error(request,
            u'Validações foram processadas, porém foram encontrados erros!')

    else:

        from emensageriapro.mensageiro.functions.funcoes_validacoes_precedencia import EVENTOS_SEM_PREDECESSAO, validar_precedencia

        if VERIFICAR_PREDECESSAO_ANTES_ENVIO and 's1280_evtinfocomplper' not in EVENTOS_SEM_PREDECESSAO:

            quant = validar_precedencia('s1280_evtinfocomplper', pk)

            if quant <= 0:

                s1280evtInfoComplPer.objects.\
                    filter(id=pk).\
                    update(validacoes=None,
                           status=STATUS_EVENTO_AGUARD_PRECEDENCIA)

                messages.warning(request,
                    u'Validações foram processadas com sucesso, porém o evento está aguardando envio de sua precedência!')

            else:

                s1280evtInfoComplPer.objects.\
                    filter(id=pk).\
                    update(validacoes=None,
                           status=STATUS_EVENTO_AGUARD_ENVIO)

                messages.success(request,
                    u'Validações foram processadas com sucesso, evento está aguardandando envio!')

        else:

            s1280evtInfoComplPer.objects. \
                filter(id=pk).\
                update(validacoes=None,
                       status=STATUS_EVENTO_AGUARD_ENVIO)

            messages.success(request,
                u'Validações foram processadas com sucesso, evento está aguardandando envio!')

    return lista_validacoes
Esempio n. 3
0
def importar_arquivo(arquivo, request, validar=False):

    import os
    import untangle
    from django.contrib import messages
    from emensageriapro.settings import BASE_DIR
    from emensageriapro.functions import get_versao_evento
    from emensageriapro.padrao import ler_arquivo

    dados = {}

    if not os.path.isfile(BASE_DIR + '/' + arquivo.arquivo):
        messages.error(request, 'Arquivo não encontrado!')
        return dados

    xml = ler_arquivo(arquivo.arquivo).replace("s:", "")

    try:
        doc = untangle.parse(xml)
        dados['status'] = 1

    except:
        messages.error(request, 'Erro na importação. Arquivo XML inválido!')
        dados['status'] = 2
        return dados

    if dados['status'] == 1:

        xmlns = doc.eSocial['xmlns'].split('/')
        dados['versao'] = get_versao_evento(xml)

        if ('evtInfoEmpregador' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1000_evtinfoempregador_importar import read_s1000_evtinfoempregador
            from emensageriapro.esocial.views.s1000_evtinfoempregador_gerar_xml import gerar_xml_assinado
            dados = read_s1000_evtinfoempregador(request, dados, arquivo,
                                                 validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabEstab' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1005_evttabestab_importar import read_s1005_evttabestab
            from emensageriapro.esocial.views.s1005_evttabestab_gerar_xml import gerar_xml_assinado
            dados = read_s1005_evttabestab(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabRubrica' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1010_evttabrubrica_importar import read_s1010_evttabrubrica
            from emensageriapro.esocial.views.s1010_evttabrubrica_gerar_xml import gerar_xml_assinado
            dados = read_s1010_evttabrubrica(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabLotacao' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1020_evttablotacao_importar import read_s1020_evttablotacao
            from emensageriapro.esocial.views.s1020_evttablotacao_gerar_xml import gerar_xml_assinado
            dados = read_s1020_evttablotacao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabCargo' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1030_evttabcargo_importar import read_s1030_evttabcargo
            from emensageriapro.esocial.views.s1030_evttabcargo_gerar_xml import gerar_xml_assinado
            dados = read_s1030_evttabcargo(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabCarreira' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1035_evttabcarreira_importar import read_s1035_evttabcarreira
            from emensageriapro.esocial.views.s1035_evttabcarreira_gerar_xml import gerar_xml_assinado
            dados = read_s1035_evttabcarreira(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabFuncao' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1040_evttabfuncao_importar import read_s1040_evttabfuncao
            from emensageriapro.esocial.views.s1040_evttabfuncao_gerar_xml import gerar_xml_assinado
            dados = read_s1040_evttabfuncao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabHorTur' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1050_evttabhortur_importar import read_s1050_evttabhortur
            from emensageriapro.esocial.views.s1050_evttabhortur_gerar_xml import gerar_xml_assinado
            dados = read_s1050_evttabhortur(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabAmbiente' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1060_evttabambiente_importar import read_s1060_evttabambiente
            from emensageriapro.esocial.views.s1060_evttabambiente_gerar_xml import gerar_xml_assinado
            dados = read_s1060_evttabambiente(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabProcesso' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1070_evttabprocesso_importar import read_s1070_evttabprocesso
            from emensageriapro.esocial.views.s1070_evttabprocesso_gerar_xml import gerar_xml_assinado
            dados = read_s1070_evttabprocesso(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabOperPort' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1080_evttaboperport_importar import read_s1080_evttaboperport
            from emensageriapro.esocial.views.s1080_evttaboperport_gerar_xml import gerar_xml_assinado
            dados = read_s1080_evttaboperport(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtRemun' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1200_evtremun_importar import read_s1200_evtremun
            from emensageriapro.esocial.views.s1200_evtremun_gerar_xml import gerar_xml_assinado
            dados = read_s1200_evtremun(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtRmnRPPS' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1202_evtrmnrpps_importar import read_s1202_evtrmnrpps
            from emensageriapro.esocial.views.s1202_evtrmnrpps_gerar_xml import gerar_xml_assinado
            dados = read_s1202_evtrmnrpps(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtBenPrRP' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1207_evtbenprrp_importar import read_s1207_evtbenprrp
            from emensageriapro.esocial.views.s1207_evtbenprrp_gerar_xml import gerar_xml_assinado
            dados = read_s1207_evtbenprrp(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtPgtos' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1210_evtpgtos_importar import read_s1210_evtpgtos
            from emensageriapro.esocial.views.s1210_evtpgtos_gerar_xml import gerar_xml_assinado
            dados = read_s1210_evtpgtos(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAqProd' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1250_evtaqprod_importar import read_s1250_evtaqprod
            from emensageriapro.esocial.views.s1250_evtaqprod_gerar_xml import gerar_xml_assinado
            dados = read_s1250_evtaqprod(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtComProd' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1260_evtcomprod_importar import read_s1260_evtcomprod
            from emensageriapro.esocial.views.s1260_evtcomprod_gerar_xml import gerar_xml_assinado
            dados = read_s1260_evtcomprod(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtContratAvNP' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1270_evtcontratavnp_importar import read_s1270_evtcontratavnp
            from emensageriapro.esocial.views.s1270_evtcontratavnp_gerar_xml import gerar_xml_assinado
            dados = read_s1270_evtcontratavnp(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtInfoComplPer' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1280_evtinfocomplper_importar import read_s1280_evtinfocomplper
            from emensageriapro.esocial.views.s1280_evtinfocomplper_gerar_xml import gerar_xml_assinado
            dados = read_s1280_evtinfocomplper(request, dados, arquivo,
                                               validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTotConting' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1295_evttotconting_importar import read_s1295_evttotconting
            from emensageriapro.esocial.views.s1295_evttotconting_gerar_xml import gerar_xml_assinado
            dados = read_s1295_evttotconting(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtReabreEvPer' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1298_evtreabreevper_importar import read_s1298_evtreabreevper
            from emensageriapro.esocial.views.s1298_evtreabreevper_gerar_xml import gerar_xml_assinado
            dados = read_s1298_evtreabreevper(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtFechaEvPer' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1299_evtfechaevper_importar import read_s1299_evtfechaevper
            from emensageriapro.esocial.views.s1299_evtfechaevper_gerar_xml import gerar_xml_assinado
            dados = read_s1299_evtfechaevper(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtContrSindPatr' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s1300_evtcontrsindpatr_importar import read_s1300_evtcontrsindpatr
            from emensageriapro.esocial.views.s1300_evtcontrsindpatr_gerar_xml import gerar_xml_assinado
            dados = read_s1300_evtcontrsindpatr(request, dados, arquivo,
                                                validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAdmPrelim' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2190_evtadmprelim_importar import read_s2190_evtadmprelim
            from emensageriapro.esocial.views.s2190_evtadmprelim_gerar_xml import gerar_xml_assinado
            dados = read_s2190_evtadmprelim(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAdmissao' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2200_evtadmissao_importar import read_s2200_evtadmissao
            from emensageriapro.esocial.views.s2200_evtadmissao_gerar_xml import gerar_xml_assinado
            dados = read_s2200_evtadmissao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAltCadastral' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2205_evtaltcadastral_importar import read_s2205_evtaltcadastral
            from emensageriapro.esocial.views.s2205_evtaltcadastral_gerar_xml import gerar_xml_assinado
            dados = read_s2205_evtaltcadastral(request, dados, arquivo,
                                               validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAltContratual' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2206_evtaltcontratual_importar import read_s2206_evtaltcontratual
            from emensageriapro.esocial.views.s2206_evtaltcontratual_gerar_xml import gerar_xml_assinado
            dados = read_s2206_evtaltcontratual(request, dados, arquivo,
                                                validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCAT' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2210_evtcat_importar import read_s2210_evtcat
            from emensageriapro.esocial.views.s2210_evtcat_gerar_xml import gerar_xml_assinado
            dados = read_s2210_evtcat(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtMonit' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2220_evtmonit_importar import read_s2220_evtmonit
            from emensageriapro.esocial.views.s2220_evtmonit_gerar_xml import gerar_xml_assinado
            dados = read_s2220_evtmonit(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtToxic' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2221_evttoxic_importar import read_s2221_evttoxic
            from emensageriapro.esocial.views.s2221_evttoxic_gerar_xml import gerar_xml_assinado
            dados = read_s2221_evttoxic(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAfastTemp' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2230_evtafasttemp_importar import read_s2230_evtafasttemp
            from emensageriapro.esocial.views.s2230_evtafasttemp_gerar_xml import gerar_xml_assinado
            dados = read_s2230_evtafasttemp(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCessao' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2231_evtcessao_importar import read_s2231_evtcessao
            from emensageriapro.esocial.views.s2231_evtcessao_gerar_xml import gerar_xml_assinado
            dados = read_s2231_evtcessao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtExpRisco' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2240_evtexprisco_importar import read_s2240_evtexprisco
            from emensageriapro.esocial.views.s2240_evtexprisco_gerar_xml import gerar_xml_assinado
            dados = read_s2240_evtexprisco(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtInsApo' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2241_evtinsapo_importar import read_s2241_evtinsapo
            from emensageriapro.esocial.views.s2241_evtinsapo_gerar_xml import gerar_xml_assinado
            dados = read_s2241_evtinsapo(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTreiCap' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2245_evttreicap_importar import read_s2245_evttreicap
            from emensageriapro.esocial.views.s2245_evttreicap_gerar_xml import gerar_xml_assinado
            dados = read_s2245_evttreicap(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAvPrevio' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2250_evtavprevio_importar import read_s2250_evtavprevio
            from emensageriapro.esocial.views.s2250_evtavprevio_gerar_xml import gerar_xml_assinado
            dados = read_s2250_evtavprevio(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtConvInterm' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2260_evtconvinterm_importar import read_s2260_evtconvinterm
            from emensageriapro.esocial.views.s2260_evtconvinterm_gerar_xml import gerar_xml_assinado
            dados = read_s2260_evtconvinterm(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtReintegr' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2298_evtreintegr_importar import read_s2298_evtreintegr
            from emensageriapro.esocial.views.s2298_evtreintegr_gerar_xml import gerar_xml_assinado
            dados = read_s2298_evtreintegr(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtDeslig' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2299_evtdeslig_importar import read_s2299_evtdeslig
            from emensageriapro.esocial.views.s2299_evtdeslig_gerar_xml import gerar_xml_assinado
            dados = read_s2299_evtdeslig(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTSVInicio' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2300_evttsvinicio_importar import read_s2300_evttsvinicio
            from emensageriapro.esocial.views.s2300_evttsvinicio_gerar_xml import gerar_xml_assinado
            dados = read_s2300_evttsvinicio(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTSVAltContr' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2306_evttsvaltcontr_importar import read_s2306_evttsvaltcontr
            from emensageriapro.esocial.views.s2306_evttsvaltcontr_gerar_xml import gerar_xml_assinado
            dados = read_s2306_evttsvaltcontr(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTSVTermino' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2399_evttsvtermino_importar import read_s2399_evttsvtermino
            from emensageriapro.esocial.views.s2399_evttsvtermino_gerar_xml import gerar_xml_assinado
            dados = read_s2399_evttsvtermino(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCdBenefIn' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2400_evtcdbenefin_importar import read_s2400_evtcdbenefin
            from emensageriapro.esocial.views.s2400_evtcdbenefin_gerar_xml import gerar_xml_assinado
            dados = read_s2400_evtcdbenefin(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCdBenefAlt' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2405_evtcdbenefalt_importar import read_s2405_evtcdbenefalt
            from emensageriapro.esocial.views.s2405_evtcdbenefalt_gerar_xml import gerar_xml_assinado
            dados = read_s2405_evtcdbenefalt(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCdBenIn' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2410_evtcdbenin_importar import read_s2410_evtcdbenin
            from emensageriapro.esocial.views.s2410_evtcdbenin_gerar_xml import gerar_xml_assinado
            dados = read_s2410_evtcdbenin(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCdBenAlt' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2416_evtcdbenalt_importar import read_s2416_evtcdbenalt
            from emensageriapro.esocial.views.s2416_evtcdbenalt_gerar_xml import gerar_xml_assinado
            dados = read_s2416_evtcdbenalt(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCdBenTerm' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s2420_evtcdbenterm_importar import read_s2420_evtcdbenterm
            from emensageriapro.esocial.views.s2420_evtcdbenterm_gerar_xml import gerar_xml_assinado
            dados = read_s2420_evtcdbenterm(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtExclusao' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s3000_evtexclusao_importar import read_s3000_evtexclusao
            from emensageriapro.esocial.views.s3000_evtexclusao_gerar_xml import gerar_xml_assinado
            dados = read_s3000_evtexclusao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtBasesTrab' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5001_evtbasestrab_importar import read_s5001_evtbasestrab
            from emensageriapro.esocial.views.s5001_evtbasestrab_gerar_xml import gerar_xml_assinado
            dados = read_s5001_evtbasestrab(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtIrrfBenef' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5002_evtirrfbenef_importar import read_s5002_evtirrfbenef
            from emensageriapro.esocial.views.s5002_evtirrfbenef_gerar_xml import gerar_xml_assinado
            dados = read_s5002_evtirrfbenef(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtBasesFGTS' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5003_evtbasesfgts_importar import read_s5003_evtbasesfgts
            from emensageriapro.esocial.views.s5003_evtbasesfgts_gerar_xml import gerar_xml_assinado
            dados = read_s5003_evtbasesfgts(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCS' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5011_evtcs_importar import read_s5011_evtcs
            from emensageriapro.esocial.views.s5011_evtcs_gerar_xml import gerar_xml_assinado
            dados = read_s5011_evtcs(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtIrrf' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5012_evtirrf_importar import read_s5012_evtirrf
            from emensageriapro.esocial.views.s5012_evtirrf_gerar_xml import gerar_xml_assinado
            dados = read_s5012_evtirrf(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtFGTS' in xml) and ('eSocial' in xml):
            from emensageriapro.esocial.views.s5013_evtfgts_importar import read_s5013_evtfgts
            from emensageriapro.esocial.views.s5013_evtfgts_gerar_xml import gerar_xml_assinado
            dados = read_s5013_evtfgts(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtInfoContri' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r1000_evtinfocontri_importar import read_r1000_evtinfocontri
            from emensageriapro.efdreinf.views.r1000_evtinfocontri_gerar_xml import gerar_xml_assinado
            dados = read_r1000_evtinfocontri(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTabProcesso' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r1070_evttabprocesso_importar import read_r1070_evttabprocesso
            from emensageriapro.efdreinf.views.r1070_evttabprocesso_gerar_xml import gerar_xml_assinado
            dados = read_r1070_evttabprocesso(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtServTom' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2010_evtservtom_importar import read_r2010_evtservtom
            from emensageriapro.efdreinf.views.r2010_evtservtom_gerar_xml import gerar_xml_assinado
            dados = read_r2010_evtservtom(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtServPrest' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2020_evtservprest_importar import read_r2020_evtservprest
            from emensageriapro.efdreinf.views.r2020_evtservprest_gerar_xml import gerar_xml_assinado
            dados = read_r2020_evtservprest(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAssocDespRec' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2030_evtassocdesprec_importar import read_r2030_evtassocdesprec
            from emensageriapro.efdreinf.views.r2030_evtassocdesprec_gerar_xml import gerar_xml_assinado
            dados = read_r2030_evtassocdesprec(request, dados, arquivo,
                                               validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtAssocDespRep' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2040_evtassocdesprep_importar import read_r2040_evtassocdesprep
            from emensageriapro.efdreinf.views.r2040_evtassocdesprep_gerar_xml import gerar_xml_assinado
            dados = read_r2040_evtassocdesprep(request, dados, arquivo,
                                               validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtComProd' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2050_evtcomprod_importar import read_r2050_evtcomprod
            from emensageriapro.efdreinf.views.r2050_evtcomprod_gerar_xml import gerar_xml_assinado
            dados = read_r2050_evtcomprod(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtCPRB' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2060_evtcprb_importar import read_r2060_evtcprb
            from emensageriapro.efdreinf.views.r2060_evtcprb_gerar_xml import gerar_xml_assinado
            dados = read_r2060_evtcprb(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtPgtosDivs' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2070_evtpgtosdivs_importar import read_r2070_evtpgtosdivs
            from emensageriapro.efdreinf.views.r2070_evtpgtosdivs_gerar_xml import gerar_xml_assinado
            dados = read_r2070_evtpgtosdivs(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtReabreEvPer' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2098_evtreabreevper_importar import read_r2098_evtreabreevper
            from emensageriapro.efdreinf.views.r2098_evtreabreevper_gerar_xml import gerar_xml_assinado
            dados = read_r2098_evtreabreevper(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtFechaEvPer' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r2099_evtfechaevper_importar import read_r2099_evtfechaevper
            from emensageriapro.efdreinf.views.r2099_evtfechaevper_gerar_xml import gerar_xml_assinado
            dados = read_r2099_evtfechaevper(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtEspDesportivo' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r3010_evtespdesportivo_importar import read_r3010_evtespdesportivo
            from emensageriapro.efdreinf.views.r3010_evtespdesportivo_gerar_xml import gerar_xml_assinado
            dados = read_r3010_evtespdesportivo(request, dados, arquivo,
                                                validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTotal' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r5001_evttotal_importar import read_r5001_evttotal
            from emensageriapro.efdreinf.views.r5001_evttotal_gerar_xml import gerar_xml_assinado
            dados = read_r5001_evttotal(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtTotalContrib' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r5011_evttotalcontrib_importar import read_r5011_evttotalcontrib
            from emensageriapro.efdreinf.views.r5011_evttotalcontrib_gerar_xml import gerar_xml_assinado
            dados = read_r5011_evttotalcontrib(request, dados, arquivo,
                                               validar)
            gerar_xml_assinado(request, dados['id'])

        elif ('evtExclusao' in xml) and ('Reinf' in xml):
            from emensageriapro.efdreinf.views.r9000_evtexclusao_importar import read_r9000_evtexclusao
            from emensageriapro.efdreinf.views.r9000_evtexclusao_gerar_xml import gerar_xml_assinado
            dados = read_r9000_evtexclusao(request, dados, arquivo, validar)
            gerar_xml_assinado(request, dados['id'])

    return dados
Esempio n. 4
0
def scripts_processar_arquivos(request, tab):

    create_import_dirs()

    import os.path
    from emensageriapro.settings import BASE_DIR, VERSOES_EFDREINF, VERSOES_ESOCIAL
    from emensageriapro.functions import get_identidade_evento, get_versao_evento
    from emensageriapro.mensageiro.functions.funcoes_importacao import importar_arquivo

    arquivos_lista = ImportacaoArquivos.objects.all()
    ImportacaoArquivosEventos.objects.\
        exclude(importacao_arquivos__in=arquivos_lista).delete()

    arquivos = ImportacaoArquivosEventos.objects.\
        filter(status=STATUS_IMPORT_AGUARDANDO).exclude(id=0).all()

    for arquivo in arquivos:

        filename = arquivo.arquivo
        dados_eventos = {}

        if os.path.isfile(BASE_DIR + filename) and '.xml' in filename.lower():

            dados_eventos['identidade_evento'] = get_identidade_evento(ler_arquivo(filename))
            dados_eventos['versao'] = get_versao_evento(ler_arquivo(filename))

            existe_identidade_esocial = TransmissorEventosEsocial.objects.\
                filter(identidade=dados_eventos['identidade_evento']).all()

            existe_identidade_efdreinf = TransmissorEventosEfdreinf.objects.\
                filter(identidade=dados_eventos['identidade_evento']).all()

            if existe_identidade_esocial or existe_identidade_efdreinf:

                dados_eventos['status'] = STATUS_IMPORT_ERRO_IDENTIDADE_EXISTENTE
                error_list = ['Não é possível importar o evento pois o ID já existe em nossa base!']
                move_event(arquivo, 'erros')

            elif dados_eventos['versao'] in VERSOES_ESOCIAL or dados_eventos['versao'] in VERSOES_EFDREINF:

                quant_erros, error_list = validar_arquivo(request, filename, lang='pt')

                if not quant_erros or (quant_erros == 1 and 'Signature' in str(error_list)):

                    dados_importacao = importar_arquivo(arquivo, request, False)

                    dados_eventos['evento'] = dados_importacao['evento']
                    dados_eventos['status'] = STATUS_IMPORT_PROCESSADO
                    # xml_ger, xml_imp = verificacao_importacao_funcao(arquivo)
                    # if xml_ger in xml_imp:
                    #     print 'OK'
                    # else:
                    #     print 'ERROR'

                else:

                    dados_eventos['status'] = STATUS_IMPORT_ERRO_PROCESSAMENTO
                    move_event(arquivo, 'erros')

            else:

                dados_eventos['status'] = STATUS_IMPORT_ERRO_VERSAO_LEIAUTE
                error_list = ['Versão do evento incompatível!']
                move_event(arquivo, 'erros')

        else:

            dados_eventos['status'] = STATUS_IMPORT_ERRO_ARQUIVO_INVALIDO
            error_list = ['Arquivo não encontrado!']

        dados_eventos['validacoes'] = '<br>'.join(error_list)

        ImportacaoArquivosEventos.objects.\
            filter(id=arquivo.id).update(**dados_eventos)

    if tab == 'mapa':

        messages.success(request, 'Processamento realizado com sucesso...')
        return redirect('mapa_importacoes', tab='master')

    return HttpResponse('')