Example #1
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']
        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        sueldos_publicos_data = SueldosPublicos.objects.filter(
            declaraciones=declaracion).first()
        if sueldos_publicos_data:
            observaciones_data = sueldos_publicos_data.observaciones
        else:
            sueldos_publicos_data = None
            observaciones_data = None

        sueldos_publicos_form = SueldosPublicosForm(request.POST,
                                                    prefix="sueldos_publicos",
                                                    instance=sueldos_publicos_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)

        sueldos_publicos_is_valid = sueldos_publicos_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()

        if (sueldos_publicos_is_valid and
                observaciones_is_valid):

            sueldos_publicos = sueldos_publicos_form.save(commit=False)
            observaciones = observaciones_form.save()

            sueldos_publicos.declaraciones = declaracion

            sueldos_publicos.observaciones = observaciones
            sueldos_publicos.save()

            status, status_created = guardar_estatus(
                request,
                declaracion.folio,
                SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')
            #print( request.POST.get("accion"))
            #if request.POST.get("accion")=="gc":
            return redirect('declaracion:ingresos-varios',tipo=0, folio=folio_declaracion)
            #else:
            #    return redirect('declaracion:ingresos-publicos',folio=folio_declaracion)


        return render(request, self.template_name, {
            'form': sueldos_publicos_form,
            'observaciones_form': observaciones_form,
            'folio_declaracion': folio_declaracion,
            'avance':declaracion.avance
        })
Example #2
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']

        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        current_url = resolve(request.path_info).url_name
        seccion_id = Secciones.objects.filter(url=current_url).first()
        seccion = SeccionDeclaracion.objects.filter(declaraciones=declaracion, seccion=seccion_id).first()

        if seccion:
            observaciones_data = seccion.observaciones
        else:
            observaciones_data = None

        observaciones_form = ObservacionesForm(
            request.POST,
            prefix="observaciones",
            instance=observaciones_data)

        observaciones_is_valid = observaciones_form.is_valid()

        if observaciones_is_valid:


            status_obj, status_created = guardar_estatus(request,
                                                         declaracion.folio,
                                                         SeccionDeclaracion.COMPLETA,
                                                         aplica=no_aplica(request))
            observaciones = observaciones_form.save()
            status_obj.observaciones = observaciones
            status_obj.save()

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')

            return redirect('declaracion:confirmacion-informacion-personal',
                            folio=folio_declaracion)

        return render(request, self.template_name, {
            'observaciones_form': observaciones_form,
            'folio_declaracion': folio_declaracion,
            'avance':declaracion.avance
        })
Example #3
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']
        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        folio = uuid.UUID(folio_declaracion)
        declaracion = Declaraciones.objects.filter(folio=folio).first()

        current_url = resolve(request.path_info).url_name
        seccion_id = Secciones.objects.filter(url=current_url).first()
        seccion = SeccionDeclaracion.objects.filter(declaraciones=declaracion, seccion=seccion_id).first()

        if seccion:
            observaciones_data = seccion.observaciones
        else:
            observaciones_data = None

        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)

        observaciones_is_valid = observaciones_form.is_valid()

        if observaciones_is_valid:

            status, status_created = guardar_estatus(request,
                                           declaracion.folio,
                                           SeccionDeclaracion.COMPLETA)
            observaciones = observaciones_form.save()
            status.observaciones = observaciones
            status.save()

            return HttpResponseRedirect(
                reverse_lazy('declaracion:bienes-inmuebles',
                             args=[folio_declaracion]))

        return render(request, self.template_name, {
            'observaciones_form': observaciones_form,
            'folio_declaracion': folio_declaracion,
            'avance':declaracion.avance
        })
Example #4
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']
        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()
        tipo = int(self.kwargs['tipo'])+1
        nombres_tipo = ["","II. Sueldos y salarios por otros empleos","III. Actividad profesional","IV. Actividad empresarial","V. Actividad económica menor","VI. Arrendamiento","VII. Intereses","VIII. Premios","IX. Enajenación de bienes","X. Otros ingresos"]

        agregar, editar_id, ingresos_varios_data, informacion_registrada = (
            declaracion_datos(kwargs, IngresosVarios, declaracion)
        )

        if ingresos_varios_data:
            observaciones_data = ingresos_varios_data.observaciones
            info_personal_var_data = ingresos_varios_data.info_personal_var
            domicilio_data = info_personal_var_data.domicilios
        else:
            ingresos_varios_data = None
            observaciones_data = None
            domicilio_data = None
            info_personal_var_data = None

        ingresos_varios_form = IngresosVariosForm(
            request.POST,
            prefix="ingresos_varios",
            instance=ingresos_varios_data)
        info_personal_var_form = InfoPersonalVarForm(
            request.POST,
            prefix="var",
            instance=info_personal_var_data)
        observaciones_form = ObservacionesForm(
            request.POST,
            prefix="observaciones",
            instance=observaciones_data)
        domicilio_form = DomiciliosForm(
            request.POST,
            prefix="domicilio",
            instance=domicilio_data)


        ingresos_varios_is_valid = ingresos_varios_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()
        domicilio_is_valid = domicilio_form.is_valid()
        info_personal_var_is_valid = info_personal_var_form.is_valid()


        if (ingresos_varios_is_valid and
            observaciones_is_valid and
            domicilio_is_valid and
            info_personal_var_is_valid):


            ingresos_varios = ingresos_varios_form.save(commit=False)
            observaciones = observaciones_form.save()
            domicilio = domicilio_form.save()

            info_personal_var = info_personal_var_form.save(commit=False)
            info_personal_var.declaraciones = declaracion
            info_personal_var.domicilios = domicilio
            info_personal_var.save()

            ingresos_varios.info_personal_var = info_personal_var
            ingresos_varios.declaraciones = declaracion
            ingresos_varios.observaciones = observaciones
            ingresos_varios.cat_tipos_ingresos_varios_id = tipo

            ingresos_varios.save()
            if not agregar and not editar_id:
                status, status_created = guardar_estatus(
                    request,
                    declaracion.folio,
                    SeccionDeclaracion.COMPLETA,
                    self.kwargs['tipo'],
                    aplica=no_aplica(request))

            if request.POST.get("accion") == "guardar_otro":
                return redirect('declaracion:ingresos-varios-agregar',
                                folio=folio_declaracion,
                                tipo=self.kwargs['tipo'])
            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')

            if tipo >8:
                    return redirect('declaracion:ingresos-observaciones', folio=folio_declaracion)
            else:
                    return redirect('declaracion:ingresos-varios',tipo=tipo, folio=folio_declaracion)


        return render(request, self.template_name, {
            'form': ingresos_varios_form,
            'domicilio_form': domicilio_form,
            'info_personal_var_form': info_personal_var_form,
            'observaciones_form': observaciones_form,
            'folio_declaracion': folio_declaracion,
            'tipo':tipo-1,
            'nombre':nombres_tipo[tipo],
            'informacion_registrada': informacion_registrada,
            'agregar': agregar,
            'editar_id': editar_id,
            'avance':declaracion.avance
        })
Example #5
0
    def post(self, request, *args, **kwargs):

        usuario = request.user
        avance, faltas = 0, None
        try:
            cat_tipos_declaracion = self.kwargs['cat_tipos_declaracion']
        except Exception as e:
            cat_tipos_declaracion = None

        try:
            folio_declaracion = self.kwargs['folio']
        except Exception as e:
            folio_declaracion = None

        if folio_declaracion:
            try:
                declaracion = validar_declaracion(request, folio_declaracion)
            except ObjectDoesNotExist as e:
                raise Http404()

            info_personal_var_data = InfoPersonalVar.objects.filter(
                declaraciones=declaracion).first()
            domicilio_data = info_personal_var_data.domicilios
            observaciones_data = info_personal_var_data.observaciones
        else:
            info_personal_var_data = None
            domicilio_data = None
            observaciones_data = None
            declaracion = None

        declaracion_form = DeclaracionForm(request.POST,
                                           prefix="declaracion",
                                           instance=declaracion)

        info_personal_var_form = InfoPersonalVarForm(
            request.POST, prefix="var", instance=info_personal_var_data)
        domicilio_form = DomiciliosForm(request.POST,
                                        prefix="domicilio",
                                        instance=domicilio_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)

        declaracion_is_valid = declaracion_form.is_valid()
        info_personal_var_is_valid = info_personal_var_form.is_valid()
        domicilio_is_valid = domicilio_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()

        if (declaracion_is_valid and info_personal_var_is_valid
                and domicilio_is_valid and observaciones_is_valid):

            try:
                cat_tipos_declaracion = self.kwargs['cat_tipos_declaracion']
            except Exception as e:
                cat_tipos_declaracion = None

            info_personal_var = info_personal_var_form.save(commit=False)
            domicilio = domicilio_form.save()
            observaciones = observaciones_form.save()

            info_personal_fija = InfoPersonalFija.objects.filter(
                usuario=usuario).first()
            info_personal_fija.cat_estados_civiles = info_personal_var.cat_estados_civiles
            info_personal_fija.cat_regimenes_matrimoniales = info_personal_var.cat_regimenes_matrimoniales
            info_personal_fija.num_id_identificacion = info_personal_var.num_id_identificacion
            info_personal_fija.email_personal = info_personal_var.email_personal
            info_personal_fija.tel_particular = info_personal_var.tel_particular
            info_personal_fija.tel_movil = info_personal_var.tel_movil
            info_personal_fija.usuario = request.user
            info_personal_fija.save()

            if not declaracion:
                declaraciones = declaracion_form.save(commit=False)
                declaraciones.cat_tipos_declaracion_id = cat_tipos_declaracion
            else:
                declaraciones = declaracion_form.save(commit=False)

            declaraciones.info_personal_fija = info_personal_fija
            declaraciones.save()

            info_personal_var.declaraciones = declaraciones
            info_personal_var.domicilios = domicilio
            info_personal_var.observaciones = observaciones
            info_personal_var.cat_tipo_persona_id = 1
            info_personal_var.save()
            info_personal_var_form.save_m2m()

            status, status_created = guardar_estatus(
                request, declaraciones.folio, SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')

            return HttpResponseRedirect(
                reverse_lazy('declaracion:datos-curriculares',
                             args=[declaraciones.folio]))

        try:
            avance, faltas = obtiene_avance(declaracion)
        except Exception as e:
            avance = 0

        return render(
            request, self.template_name, {
                'declaracion': declaracion_form,
                'info_personal_var': info_personal_var_form,
                'domicilio': domicilio_form,
                'observaciones': observaciones_form,
                'avance': avance,
                'folio_declaracion': folio_declaracion,
                'faltas': faltas,
                'cat_tipos_declaracion': cat_tipos_declaracion
            })
Example #6
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']

        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        agregar, editar_id, conyuge_dependiente_data, informacion_registrada = (
            declaracion_datos(kwargs, ConyugeDependientes, declaracion))

        if conyuge_dependiente_data:
            observaciones_data = conyuge_dependiente_data.observaciones
            info_personal_var_data = conyuge_dependiente_data.dependiente_infopersonalvar
            domiclios_data = info_personal_var_data.domicilios
            apoyos_data = Apoyos.objects.filter(
                beneficiario_infopersonalvar=info_personal_var_data).first()
            if apoyos_data:
                observaciones_apoyos_data = apoyos_data.observaciones
            else:
                observaciones_apoyos_data = None
        else:
            domiclios_data = None
            observaciones_data = None
            conyuge_dependiente_data = None
            info_personal_var_data = None
            apoyos_data = None
            observaciones_apoyos_data = None

        apoyos_form = ApoyosForm(request.POST,
                                 prefix="apoyos",
                                 instance=apoyos_data)
        observaciones_apoyos_form = ObservacionesForm(
            request.POST,
            prefix="observaciones_apoyos",
            instance=observaciones_apoyos_data)
        conyuge_dependiente_form = ConyugeDependientesForm(
            request.POST,
            prefix="conyuge_dependiente",
            instance=conyuge_dependiente_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)
        info_personal_var_form = InfoPersonalVarForm(
            request.POST, prefix="var", instance=info_personal_var_data)
        domicilio_form = DomiciliosForm(request.POST,
                                        prefix="domicilio",
                                        instance=domiclios_data)

        if (apoyos_form.is_valid() and observaciones_apoyos_form.is_valid()
                and conyuge_dependiente_form.is_valid()
                and observaciones_form.is_valid()
                and info_personal_var_form.is_valid()
                and domicilio_form.is_valid()):

            conyuge_dependiente = conyuge_dependiente_form.save(commit=False)
            observaciones = observaciones_form.save()
            domicilio = domicilio_form.save()

            info_personal_var = info_personal_var_form.save(commit=False)
            info_personal_var.declaraciones = declaracion
            info_personal_var.domicilios = domicilio
            info_personal_var.cat_tipo_persona_id = 2
            info_personal_var.save()
            info_personal_var_form.save_m2m()

            conyuge_dependiente.declaraciones = declaracion
            conyuge_dependiente.observaciones = observaciones

            declarante_infopersonalvar = InfoPersonalVar.objects.filter(
                declaraciones=declaracion).first()

            conyuge_dependiente.declarante_infopersonalvar = declarante_infopersonalvar
            conyuge_dependiente.dependiente_infopersonalvar = info_personal_var
            conyuge_dependiente.save()

            observaciones_apoyos = observaciones_apoyos_form.save()
            apoyos = apoyos_form.save(commit=False)
            apoyos.beneficiario_infopersonalvar = info_personal_var
            apoyos.declaraciones = declaracion
            apoyos.observaciones = observaciones_apoyos
            apoyos.save()

            if not agregar and not editar_id:
                status, status_created = guardar_estatus(
                    request, declaracion.folio, SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')
            if request.POST.get("accion") == "guardar_otro":
                return redirect('declaracion:dependientes-economicos-agregar',
                                folio=folio_declaracion)

            return HttpResponseRedirect(
                reverse_lazy('declaracion:informacion-personal-observaciones',
                             args=[folio_declaracion]))

        return render(
            request, self.template_name, {
                'conyuge_dependiente_form': conyuge_dependiente_form,
                'observaciones_form': observaciones_form,
                'info_personal_var_form': info_personal_var_form,
                'domicilio_form': domicilio_form,
                'apoyos_form': apoyos_form,
                'observaciones_apoyos_form': observaciones_apoyos_form,
                'folio_declaracion': folio_declaracion,
                'informacion_registrada': informacion_registrada,
                'agregar': agregar,
                'editar_id': editar_id,
                'avance': declaracion.avance
            })
Example #7
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']

        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        agregar, editar_id, experiencia_laboral_data, informacion_registrada = (
            declaracion_datos(kwargs, ExperienciaLaboral, declaracion))

        if experiencia_laboral_data:
            observaciones_data = experiencia_laboral_data.observaciones
            domicilio_data = experiencia_laboral_data.domicilios
        else:
            experiencia_laboral_data = None
            observaciones_data = None
            domicilio_data = None

        experiencia_laboral_form = ExperienciaLaboralForm(
            request.POST,
            prefix="experiencia_laboral",
            instance=experiencia_laboral_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)
        domicilio_form = DomiciliosForm(request.POST,
                                        prefix="domicilio",
                                        instance=domicilio_data)

        experiencia_laboral_is_valid = experiencia_laboral_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()
        domicilio_is_valid = domicilio_form.is_valid()

        if (experiencia_laboral_is_valid and observaciones_is_valid
                and domicilio_is_valid):

            experiencia_laboral = experiencia_laboral_form.save(commit=False)
            observaciones = observaciones_form.save()
            domicilio = domicilio_form.save()

            experiencia_laboral.declaraciones = declaracion
            experiencia_laboral.observaciones = observaciones
            experiencia_laboral.domicilios = domicilio
            experiencia_laboral.save()

            if not agregar and not editar_id:
                status, status_created = guardar_estatus(
                    request, declaracion.folio, SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')
            if request.POST.get("accion") == "guardar_otro":
                return redirect('declaracion:experiencia-laboral-agregar',
                                folio=folio_declaracion)

            return HttpResponseRedirect(
                reverse_lazy('declaracion:dependientes-economicos',
                             args=[folio_declaracion]))

        return render(
            request, self.template_name, {
                'experiencia_laboral_form': experiencia_laboral_form,
                'observaciones_form': observaciones_form,
                'domicilio_form': domicilio_form,
                'folio_declaracion': folio_declaracion,
                'informacion_registrada': informacion_registrada,
                'agregar': agregar,
                'editar_id': editar_id,
                'avance': declaracion.avance
            })
Example #8
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']

        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        folio = uuid.UUID(folio_declaracion)
        declaracion = Declaraciones.objects.filter(folio=folio).first()
        datos_encargo_actual_data = Encargos.objects.filter(
            declaraciones=declaracion).first()
        if datos_encargo_actual_data:
            observaciones_data = datos_encargo_actual_data.observaciones
            domicilio_data = datos_encargo_actual_data.domicilios
        else:
            observaciones_data = None
            datos_encargo_actual_data = None
            domicilio_data = None

        datos_encargo_actual_form = DatosEncargoActualForm(
            request.POST,
            prefix="datos_encargo_actual",
            instance=datos_encargo_actual_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)
        domicilio_form = DomiciliosForm(request.POST,
                                        prefix="domicilio",
                                        instance=domicilio_data)

        if (datos_encargo_actual_form.is_valid()
                and observaciones_form.is_valid()
                and domicilio_form.is_valid()):

            datos_encargo_actual = datos_encargo_actual_form.save(commit=False)

            observaciones = observaciones_form.save()
            domicilio = domicilio_form.save()

            datos_encargo_actual.declaraciones = declaracion
            datos_encargo_actual.observaciones = observaciones
            datos_encargo_actual.domicilios = domicilio
            datos_encargo_actual.save()

            status, status_created = guardar_estatus(
                request, declaracion.folio, SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')

            return HttpResponseRedirect(
                reverse_lazy('declaracion:experiencia-laboral',
                             args=[folio_declaracion]))

        return render(
            request, self.template_name, {
                'datos_encargo_actual_form': datos_encargo_actual_form,
                'observaciones_form': observaciones_form,
                'domicilio_form': domicilio_form,
                'folio_declaracion': folio_declaracion,
                'avance': declaracion.avance
            })
Example #9
0
    def post(self, request, *args, **kwargs):

        folio_declaracion = self.kwargs['folio']
        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except ObjectDoesNotExist as e:
            raise Http404()

        agregar, editar_id, datos_curriculares_data, informacion_registrada = (
            declaracion_datos(kwargs, DatosCurriculares, declaracion))

        if datos_curriculares_data:
            observaciones_data = datos_curriculares_data.observaciones
        else:
            observaciones_data = None
            datos_curriculares_data = None

        datos_curriculares_form = DatosCurricularesForm(
            request.POST,
            prefix="datos_curriculares",
            instance=datos_curriculares_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)

        datos_curriculares_is_valid = datos_curriculares_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()

        if datos_curriculares_is_valid and observaciones_is_valid:

            datos_curriculares = datos_curriculares_form.save(commit=False)

            observaciones = observaciones_form.save()

            datos_curriculares.declaraciones = declaracion
            datos_curriculares.observaciones = observaciones
            datos_curriculares.save()

            if not agregar and not editar_id:
                status, status_created = guardar_estatus(
                    request, declaracion.folio, SeccionDeclaracion.COMPLETA)

            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')
            if request.POST.get("accion") == "guardar_otro":
                return redirect('declaracion:datos-curriculares-agregar',
                                folio=folio_declaracion)

            return HttpResponseRedirect(
                reverse_lazy('declaracion:datos-del-encargo-actual',
                             args=[folio_declaracion]))

        return render(
            request, self.template_name, {
                'datos_curriculares_form': datos_curriculares_form,
                'observaciones_form': observaciones_form,
                'folio_declaracion': folio_declaracion,
                'informacion_registrada': informacion_registrada,
                'agregar': agregar,
                'editar_id': editar_id,
                'avance': declaracion.avance
            })
Example #10
0
    def post(self, request, *args, **kwargs):
        folio_declaracion = self.kwargs['folio']
        try:
            declaracion = validar_declaracion(request, folio_declaracion)
        except:
            raise Http404()

        kwargs['cat_tipos_pasivos'] = 1
        agregar, editar_id, deudas_data, informacion_registrada = (
            declaracion_datos(kwargs, DeudasOtros, declaracion)
        )
        if deudas_data:
            observaciones_data = deudas_data.observaciones
            acreedor_infopersonalvar = deudas_data.acreedor_infopersonalvar
            if acreedor_infopersonalvar.domicilios:
                domicilio_data = acreedor_infopersonalvar.domicilios
            else:
                domicilio_data = None
        else:
            observaciones_data = None
            domicilio_data = None
            deudas_data = None
            acreedor_infopersonalvar = None

        deudas_form = DeudasForm(request.POST, prefix="deudas",
                                 instance=deudas_data)
        observaciones_form = ObservacionesForm(request.POST,
                                               prefix="observaciones",
                                               instance=observaciones_data)
        domicilio_form = DomiciliosForm(request.POST,
                                       prefix="domicilio",
                                       instance=domicilio_data)
        acreedor_infopersonalvar_form = InfoPersonalVarForm(
            request.POST,
            prefix="acreedor_infopersonalvar",
            instance=acreedor_infopersonalvar)

        deudas_is_valid = deudas_form.is_valid()
        observaciones_is_valid = observaciones_form.is_valid()
        domicilio_is_valid = domicilio_form.is_valid()
        acreedor_infopersonalvar_is_valid = acreedor_infopersonalvar_form.is_valid()


        if (deudas_is_valid and
            observaciones_is_valid and
            domicilio_is_valid and
            acreedor_infopersonalvar_is_valid):


            deudas = deudas_form.save(commit=False)
            observaciones = observaciones_form.save()
            domicilio = domicilio_form.save()

            acreedor_infopersonalvar = acreedor_infopersonalvar_form.save(commit=False)
            acreedor_infopersonalvar.declaraciones = declaracion
            acreedor_infopersonalvar.domicilios = domicilio
            acreedor_infopersonalvar.save()

            deudas.acreedor_infopersonalvar = acreedor_infopersonalvar
            deudas.declaraciones = declaracion
            deudas.cat_tipos_pasivos_id = 1
            deudas.observaciones = observaciones
            deudas.save()

            if not agregar and not editar_id:
                status_obj, status_created = guardar_estatus(
                    request,
                    declaracion.folio,
                    SeccionDeclaracion.COMPLETA,
                    aplica=no_aplica(request))

            if request.POST.get("accion") == "guardar_otro":
                return redirect('declaracion:deudas-agregar', folio=folio_declaracion)
            if request.POST.get("accion") == "guardar_salir":
                return redirect('declaracion:perfil')

            return redirect('declaracion:deudas-otros',
                            folio=folio_declaracion)

        return render(request, self.template_name, {
            'deudas_form': deudas_form,
            'observaciones_form': observaciones_form,
            'domicilio_form': domicilio_form,
            'folio_declaracion': folio_declaracion,
            'acreedor_infopersonalvar_form': acreedor_infopersonalvar_form,
            'avance':declaracion.avance,
            'informacion_registrada': informacion_registrada,
            'agregar': agregar,
            'editar_id': editar_id
        })