Beispiel #1
0
def salvar(request, pk=None, tab='master', output=None):

    from emensageriapro.esocial.models import STATUS_EVENTO_CADASTRADO
    from emensageriapro.settings import VERSAO_EMENSAGERIA, VERSAO_LAYOUT_ESOCIAL
    TP_AMB = config.ESOCIAL_TP_AMB

    if pk:

        s2300_evttsvinicio = get_object_or_404(s2300evtTSVInicio, id=pk)

    if request.user.has_perm('esocial.can_see_s2300evtTSVInicio'):

        if pk:

            s2300_evttsvinicio_form = form_s2300_evttsvinicio(request.POST or None, instance=s2300_evttsvinicio,
                                         initial={'ativo': True})
                     
        else:

            s2300_evttsvinicio_form = form_s2300_evttsvinicio(request.POST or None,
                                         initial={'versao': VERSAO_LAYOUT_ESOCIAL,
                                                  'status': STATUS_EVENTO_CADASTRADO,
                                                  'tpamb': TP_AMB,
                                                  'procemi': 1,
                                                  'verproc': VERSAO_EMENSAGERIA,
                                                  'ativo': True})
                              
        if request.method == 'POST':

            if s2300_evttsvinicio_form.is_valid():

                obj = s2300_evttsvinicio_form.save(request=request)
                messages.success(request, u'Salvo com sucesso!')

                if not pk:

                    from emensageriapro.functions import identidade_evento
                    identidade_evento(obj, 'esocial')
             
                if 'return_page' in request.session and request.session['return_page'] and 's2300-evttsvinicio' not in request.session['return_page']:

                    return HttpResponseRedirect(request.session['return_page'])

                if pk != obj.id:

                    return redirect(
                        's2300_evttsvinicio_salvar',
                        pk=obj.id)

            else:
                messages.error(request, u'Erro ao salvar!')

        s2300_evttsvinicio_form = disabled_form_fields(
             s2300_evttsvinicio_form,
             request.user.has_perm('esocial.change_s2300evtTSVInicio'))

        if pk:

            if s2300_evttsvinicio.status != 0:

                s2300_evttsvinicio_form = disabled_form_fields(s2300_evttsvinicio_form, False)

        for field in s2300_evttsvinicio_form.fields.keys():

            s2300_evttsvinicio_form.fields[field].widget.attrs['ng-model'] = 's2300_evttsvinicio_'+field

        if output:

            s2300_evttsvinicio_form = disabled_form_for_print(s2300_evttsvinicio_form)


        s2300_documentos_lista = None
        s2300_documentos_form = None
        s2300_brasil_lista = None
        s2300_brasil_form = None
        s2300_exterior_lista = None
        s2300_exterior_form = None
        s2300_trabestrangeiro_lista = None
        s2300_trabestrangeiro_form = None
        s2300_infodeficiencia_lista = None
        s2300_infodeficiencia_form = None
        s2300_dependente_lista = None
        s2300_dependente_form = None
        s2300_contato_lista = None
        s2300_contato_form = None
        s2300_infocomplementares_lista = None
        s2300_infocomplementares_form = None
        s2300_mudancacpf_lista = None
        s2300_mudancacpf_form = None
        s2300_afastamento_lista = None
        s2300_afastamento_form = None
        s2300_termino_lista = None
        s2300_termino_form = None

        if pk:

            s2300_evttsvinicio = get_object_or_404(s2300evtTSVInicio, id=pk)

            s2300_documentos_form = form_s2300_documentos(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_documentos_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_documentos_lista = s2300documentos.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_brasil_form = form_s2300_brasil(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_brasil_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_brasil_lista = s2300brasil.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_exterior_form = form_s2300_exterior(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_exterior_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_exterior_lista = s2300exterior.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_trabestrangeiro_form = form_s2300_trabestrangeiro(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_trabestrangeiro_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_trabestrangeiro_lista = s2300trabEstrangeiro.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_infodeficiencia_form = form_s2300_infodeficiencia(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_infodeficiencia_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_infodeficiencia_lista = s2300infoDeficiencia.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_dependente_form = form_s2300_dependente(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_dependente_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_dependente_lista = s2300dependente.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_contato_form = form_s2300_contato(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_contato_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_contato_lista = s2300contato.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_infocomplementares_form = form_s2300_infocomplementares(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_infocomplementares_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_infocomplementares_lista = s2300infoComplementares.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_mudancacpf_form = form_s2300_mudancacpf(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_mudancacpf_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_mudancacpf_lista = s2300mudancaCPF.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_afastamento_form = form_s2300_afastamento(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_afastamento_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_afastamento_lista = s2300afastamento.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_termino_form = form_s2300_termino(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio})
            s2300_termino_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_termino_lista = s2300termino.objects.\
                filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()

        else:

            s2300_evttsvinicio = None

        tabelas_secundarias = []

        controle_alteracoes = Auditoria.objects.filter(identidade=pk, tabela='s2300_evttsvinicio').all()

        if not request.POST:
            request.session['return_page'] = request.META.get('HTTP_REFERER')

        context = {
            'usuario': Usuarios.objects.get(user_id=request.user.id),
            'pk': pk,
            'output': output,
            'evento_totalizador': False,
            'controle_alteracoes': controle_alteracoes,
            's2300_evttsvinicio': s2300_evttsvinicio,
            's2300_evttsvinicio_form': s2300_evttsvinicio_form,

            's2300_documentos_form': s2300_documentos_form,
            's2300_documentos_lista': s2300_documentos_lista,
            's2300_brasil_form': s2300_brasil_form,
            's2300_brasil_lista': s2300_brasil_lista,
            's2300_exterior_form': s2300_exterior_form,
            's2300_exterior_lista': s2300_exterior_lista,
            's2300_trabestrangeiro_form': s2300_trabestrangeiro_form,
            's2300_trabestrangeiro_lista': s2300_trabestrangeiro_lista,
            's2300_infodeficiencia_form': s2300_infodeficiencia_form,
            's2300_infodeficiencia_lista': s2300_infodeficiencia_lista,
            's2300_dependente_form': s2300_dependente_form,
            's2300_dependente_lista': s2300_dependente_lista,
            's2300_contato_form': s2300_contato_form,
            's2300_contato_lista': s2300_contato_lista,
            's2300_infocomplementares_form': s2300_infocomplementares_form,
            's2300_infocomplementares_lista': s2300_infocomplementares_lista,
            's2300_mudancacpf_form': s2300_mudancacpf_form,
            's2300_mudancacpf_lista': s2300_mudancacpf_lista,
            's2300_afastamento_form': s2300_afastamento_form,
            's2300_afastamento_lista': s2300_afastamento_lista,
            's2300_termino_form': s2300_termino_form,
            's2300_termino_lista': s2300_termino_lista,
            'data': datetime.datetime.now(),
            'modulos': ['esocial', ],
            'paginas': ['s2300_evttsvinicio', ],
            'tabelas_secundarias': tabelas_secundarias,
            'tab': tab,
        }

        if output == 'pdf':

            response = PDFTemplateResponse(
                request=request,
                template='s2300_evttsvinicio_salvar.html',
                filename="s2300_evttsvinicio.pdf",
                context=context,
                show_content_in_browser=True,
                cmd_options={'margin-top': 10,
                             'margin-bottom': 10,
                             'margin-right': 10,
                             'margin-left': 10,
                             'zoom': 1,
                             'dpi': 72,
                             'orientation': 'Landscape',
                             "viewport-size": "1366 x 513",
                             'javascript-delay': 1000,
                             'footer-center': '[page]/[topage]',
                             "no-stop-slow-scripts": True}, )

            return response

        elif output == 'xls':

            response = render_to_response('s2300_evttsvinicio_salvar.html', context)
            filename = "s2300_evttsvinicio.xls"
            response['Content-Disposition'] = 'attachment; filename=' + filename
            response['Content-Type'] = 'application/vnd.ms-excel; charset=UTF-8'

            return response

        else:

            return render(request, 's2300_evttsvinicio_salvar.html', context)

    else:

        context = {
            'usuario': Usuarios.objects.get(user_id=request.user.id),
            'pk': pk,
            'tab': tab,
            'output': output,
            'modulos': ['esocial', ],
            'paginas': ['s2300_evttsvinicio', ],
            'data': datetime.datetime.now(),
        }

        return render(request, 'permissao_negada.html', context)
def salvar(request, hash):
    from emensageriapro.settings import VERSAO_EMENSAGERIA, VERSAO_MODELO, TP_AMB
    db_slug = 'default'
    try:
        usuario_id = request.user.id
        dict_hash = get_hash_url(hash)
        s2300_evttsvinicio_id = int(dict_hash['id'])
        if 'tab' not in dict_hash.keys():
            dict_hash['tab'] = ''
        for_print = int(dict_hash['print'])
    except:
        usuario_id = False
        return redirect('login')
    usuario = get_object_or_404(Usuarios.objects.using(db_slug),
                                excluido=False,
                                id=usuario_id)
    pagina = ConfigPaginas.objects.using(db_slug).get(
        excluido=False, endereco='s2300_evttsvinicio')
    permissao = ConfigPermissoes.objects.using(db_slug).get(
        excluido=False,
        config_paginas=pagina,
        config_perfis=usuario.config_perfis)
    if s2300_evttsvinicio_id:
        s2300_evttsvinicio = get_object_or_404(
            s2300evtTSVInicio.objects.using(db_slug),
            excluido=False,
            id=s2300_evttsvinicio_id)
    dict_permissoes = json_to_dict(usuario.config_perfis.permissoes)
    paginas_permitidas_lista = usuario.config_perfis.paginas_permitidas
    modulos_permitidos_lista = usuario.config_perfis.modulos_permitidos

    if s2300_evttsvinicio_id:
        if s2300_evttsvinicio.status != 0:
            dict_permissoes['s2300_evttsvinicio_apagar'] = 0
            dict_permissoes['s2300_evttsvinicio_editar'] = 0

    if permissao.permite_visualizar:
        mensagem = None
        if s2300_evttsvinicio_id:
            s2300_evttsvinicio_form = form_s2300_evttsvinicio(
                request.POST or None,
                instance=s2300_evttsvinicio,
                slug=db_slug)
        else:
            s2300_evttsvinicio_form = form_s2300_evttsvinicio(
                request.POST or None,
                slug=db_slug,
                initial={
                    'versao': VERSAO_MODELO,
                    'processamento_codigo_resposta': 0,
                    'tpamb': TP_AMB,
                    'procemi': 1,
                    'verproc': VERSAO_EMENSAGERIA
                })
        if request.method == 'POST':
            if s2300_evttsvinicio_form.is_valid():
                dados = s2300_evttsvinicio_form.cleaned_data
                import json
                from django.forms.models import model_to_dict
                if s2300_evttsvinicio_id:
                    if s2300_evttsvinicio.status == 0:
                        dados['modificado_por_id'] = usuario_id
                        dados['modificado_em'] = datetime.datetime.now()
                        #s2300_evttsvinicio_campos_multiple_passo1
                        s2300evtTSVInicio.objects.using(db_slug).filter(
                            id=s2300_evttsvinicio_id).update(**dados)
                        obj = s2300evtTSVInicio.objects.using(db_slug).get(
                            id=s2300_evttsvinicio_id)
                        #s2300_evttsvinicio_editar_custom
                        #s2300_evttsvinicio_campos_multiple_passo2
                        messages.success(request, 'Alterado com sucesso!')
                        gravar_auditoria(
                            json.dumps(model_to_dict(s2300_evttsvinicio),
                                       indent=4,
                                       sort_keys=True,
                                       default=str),
                            json.dumps(model_to_dict(obj),
                                       indent=4,
                                       sort_keys=True,
                                       default=str), 's2300_evttsvinicio',
                            s2300_evttsvinicio_id, usuario_id, 2)
                    else:
                        messages.error(
                            request,
                            'Não é possível salvar o evento, pois o mesmo não está com o status "Cadastrado"!'
                        )

                else:
                    dados['arquivo_original'] = 0

                    dados['criado_por_id'] = usuario_id
                    dados['criado_em'] = datetime.datetime.now()
                    dados['excluido'] = False
                    #s2300_evttsvinicio_cadastrar_campos_multiple_passo1
                    obj = s2300evtTSVInicio(**dados)
                    obj.save(using=db_slug)
                    #s2300_evttsvinicio_cadastrar_custom
                    #s2300_evttsvinicio_cadastrar_campos_multiple_passo2
                    identidade_evento(obj.id, db_slug)
                    messages.success(request, 'Cadastrado com sucesso!')
                    gravar_auditoria(
                        '{}',
                        json.dumps(model_to_dict(obj),
                                   indent=4,
                                   sort_keys=True,
                                   default=str), 's2300_evttsvinicio', obj.id,
                        usuario_id, 1)
                if request.session['retorno_pagina'] not in (
                        's2300_evttsvinicio_apagar',
                        's2300_evttsvinicio_salvar', 's2300_evttsvinicio'):
                    return redirect(request.session['retorno_pagina'],
                                    hash=request.session['retorno_hash'])
                if s2300_evttsvinicio_id != obj.id:
                    url_hash = base64.urlsafe_b64encode(
                        '{"print": "0", "id": "%s"}' % (obj.id))
                    return redirect('s2300_evttsvinicio_salvar', hash=url_hash)

            else:
                messages.error(request, 'Erro ao salvar!')
        s2300_evttsvinicio_form = disabled_form_fields(
            s2300_evttsvinicio_form, permissao.permite_editar)

        if s2300_evttsvinicio_id:
            if s2300_evttsvinicio.status != 0:
                s2300_evttsvinicio_form = disabled_form_fields(
                    s2300_evttsvinicio_form, False)
        #s2300_evttsvinicio_campos_multiple_passo3

        for field in s2300_evttsvinicio_form.fields.keys():
            s2300_evttsvinicio_form.fields[field].widget.attrs[
                'ng-model'] = 's2300_evttsvinicio_' + field
        if int(dict_hash['print']):
            s2300_evttsvinicio_form = disabled_form_for_print(
                s2300_evttsvinicio_form)

        s2300_documentos_form = None
        s2300_documentos_lista = None
        s2300_brasil_form = None
        s2300_brasil_lista = None
        s2300_exterior_form = None
        s2300_exterior_lista = None
        s2300_trabestrangeiro_form = None
        s2300_trabestrangeiro_lista = None
        s2300_infodeficiencia_form = None
        s2300_infodeficiencia_lista = None
        s2300_dependente_form = None
        s2300_dependente_lista = None
        s2300_contato_form = None
        s2300_contato_lista = None
        s2300_infocomplementares_form = None
        s2300_infocomplementares_lista = None
        s2300_afastamento_form = None
        s2300_afastamento_lista = None
        s2300_termino_form = None
        s2300_termino_lista = None
        if s2300_evttsvinicio_id:
            s2300_evttsvinicio = get_object_or_404(
                s2300evtTSVInicio.objects.using(db_slug),
                excluido=False,
                id=s2300_evttsvinicio_id)

            s2300_documentos_form = form_s2300_documentos(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_documentos_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_documentos_lista = s2300documentos.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_brasil_form = form_s2300_brasil(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_brasil_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_brasil_lista = s2300brasil.objects.using(db_slug).filter(
                excluido=False,
                s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_exterior_form = form_s2300_exterior(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_exterior_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_exterior_lista = s2300exterior.objects.using(db_slug).filter(
                excluido=False,
                s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_trabestrangeiro_form = form_s2300_trabestrangeiro(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_trabestrangeiro_form.fields[
                's2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_trabestrangeiro_lista = s2300trabEstrangeiro.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_infodeficiencia_form = form_s2300_infodeficiencia(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_infodeficiencia_form.fields[
                's2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_infodeficiencia_lista = s2300infoDeficiencia.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_dependente_form = form_s2300_dependente(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_dependente_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_dependente_lista = s2300dependente.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_contato_form = form_s2300_contato(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_contato_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_contato_lista = s2300contato.objects.using(db_slug).filter(
                excluido=False,
                s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_infocomplementares_form = form_s2300_infocomplementares(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_infocomplementares_form.fields[
                's2300_evttsvinicio'].widget.attrs['readonly'] = True
            s2300_infocomplementares_lista = s2300infoComplementares.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_afastamento_form = form_s2300_afastamento(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_afastamento_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_afastamento_lista = s2300afastamento.objects.using(
                db_slug).filter(
                    excluido=False,
                    s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
            s2300_termino_form = form_s2300_termino(
                initial={'s2300_evttsvinicio': s2300_evttsvinicio},
                slug=db_slug)
            s2300_termino_form.fields['s2300_evttsvinicio'].widget.attrs[
                'readonly'] = True
            s2300_termino_lista = s2300termino.objects.using(db_slug).filter(
                excluido=False,
                s2300_evttsvinicio_id=s2300_evttsvinicio.id).all()
        else:
            s2300_evttsvinicio = None
        #s2300_evttsvinicio_salvar_custom_variaveis#
        tabelas_secundarias = []
        #[FUNCOES_ESPECIAIS_SALVAR]
        if 's2300_evttsvinicio'[1] == '5':
            evento_totalizador = True
        else:
            evento_totalizador = False
        if not evento_totalizador:
            s2300_evttsvinicio_form.fields['tpamb'].widget.attrs[
                'disabled'] = True
            s2300_evttsvinicio_form.fields['tpamb'].widget.attrs[
                'readonly'] = True
            s2300_evttsvinicio_form.fields['tpamb'].value = TP_AMB
            s2300_evttsvinicio_form.fields['procemi'].widget.attrs[
                'disabled'] = True
            s2300_evttsvinicio_form.fields['procemi'].widget.attrs[
                'readonly'] = True
            s2300_evttsvinicio_form.fields['procemi'].value = 1
            s2300_evttsvinicio_form.fields['verproc'].widget.attrs[
                'readonly'] = True
            s2300_evttsvinicio_form.fields[
                'verproc'].value = VERSAO_EMENSAGERIA

        if dict_hash['tab'] or 's2300_evttsvinicio' in request.session[
                'retorno_pagina']:
            request.session["retorno_hash"] = hash
            request.session["retorno_pagina"] = 's2300_evttsvinicio_salvar'
        controle_alteracoes = Auditoria.objects.using(db_slug).filter(
            identidade=s2300_evttsvinicio_id,
            tabela='s2300_evttsvinicio').all()
        context = {
            'evento_totalizador': evento_totalizador,
            'controle_alteracoes': controle_alteracoes,
            's2300_evttsvinicio': s2300_evttsvinicio,
            's2300_evttsvinicio_form': s2300_evttsvinicio_form,
            'mensagem': mensagem,
            's2300_evttsvinicio_id': int(s2300_evttsvinicio_id),
            'usuario': usuario,
            'hash': hash,
            's2300_documentos_form': s2300_documentos_form,
            's2300_documentos_lista': s2300_documentos_lista,
            's2300_brasil_form': s2300_brasil_form,
            's2300_brasil_lista': s2300_brasil_lista,
            's2300_exterior_form': s2300_exterior_form,
            's2300_exterior_lista': s2300_exterior_lista,
            's2300_trabestrangeiro_form': s2300_trabestrangeiro_form,
            's2300_trabestrangeiro_lista': s2300_trabestrangeiro_lista,
            's2300_infodeficiencia_form': s2300_infodeficiencia_form,
            's2300_infodeficiencia_lista': s2300_infodeficiencia_lista,
            's2300_dependente_form': s2300_dependente_form,
            's2300_dependente_lista': s2300_dependente_lista,
            's2300_contato_form': s2300_contato_form,
            's2300_contato_lista': s2300_contato_lista,
            's2300_infocomplementares_form': s2300_infocomplementares_form,
            's2300_infocomplementares_lista': s2300_infocomplementares_lista,
            's2300_afastamento_form': s2300_afastamento_form,
            's2300_afastamento_lista': s2300_afastamento_lista,
            's2300_termino_form': s2300_termino_form,
            's2300_termino_lista': s2300_termino_lista,
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            'permissao': permissao,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
            'for_print': int(dict_hash['print']),
            'tabelas_secundarias': tabelas_secundarias,
            'tab': dict_hash['tab'],
            #s2300_evttsvinicio_salvar_custom_variaveis_context#
        }

        if for_print in (0, 1):
            return render(request, 's2300_evttsvinicio_salvar.html', context)
        elif for_print == 2:
            from wkhtmltopdf.views import PDFTemplateResponse
            response = PDFTemplateResponse(
                request=request,
                template='s2300_evttsvinicio_salvar.html',
                filename="s2300_evttsvinicio.pdf",
                context=context,
                show_content_in_browser=True,
                cmd_options={
                    'margin-top': 10,
                    'margin-bottom': 10,
                    'margin-right': 10,
                    'margin-left': 10,
                    'zoom': 1,
                    'dpi': 72,
                    'orientation': 'Landscape',
                    "viewport-size": "1366 x 513",
                    'javascript-delay': 1000,
                    'footer-center': '[page]/[topage]',
                    "no-stop-slow-scripts": True
                },
            )
            return response
        elif for_print == 3:
            from django.shortcuts import render_to_response
            response = render_to_response('s2300_evttsvinicio_salvar.html',
                                          context)
            filename = "s2300_evttsvinicio.xls"
            response[
                'Content-Disposition'] = 'attachment; filename=' + filename
            response[
                'Content-Type'] = 'application/vnd.ms-excel; charset=UTF-8'
            return response
    else:
        context = {
            'usuario': usuario,
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            'permissao': permissao,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
        }
        return render(request, 'permissao_negada.html', context)