示例#1
0
    def test_creeer_zaak_als_2_zaaktypen_aanwezig_zijn_met_dezelfde_begindatum(
            self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/415
        """
        org_eenheid_dvv = OrganisatorischeEenheidFactory.create(
            organisatieeenheididentificatie='DVV/KCC')

        org_eenheid_spl = OrganisatorischeEenheidFactory.create(
            organisatieeenheididentificatie='SPL')

        zaak_type_mor = ZaakTypeFactory.create(
            zaaktypeomschrijving='MOR',
            zaaktypeidentificatie='1',
            datum_begin_geldigheid_zaaktype='20170901',
        )

        zaak_type_ander = ZaakTypeFactory.create(
            zaaktypeomschrijving='ANDER',
            zaaktypeidentificatie='2',
            datum_begin_geldigheid_zaaktype='20170901',
        )

        vraag = 'creeerZaak_ZakLk01_taiga415.xml'
        response = self._do_request(self.porttype, vraag)

        self.assertEquals(response.status_code, 200, response.content)
示例#2
0
    def test_create_zaak_with_proper_bronorganisatie(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/411
        """
        org_eenheid = OrganisatorischeEenheidFactory.create(
            organisatieeenheididentificatie='DVV/KCC')

        zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='MOR',
            zaaktypeidentificatie='1',
            domein='DVV',
            zaaktypeomschrijving_generiek='Melding Openbare Ruimte',
            rsin=1,
            trefwoord=['MOR'],
            doorlooptijd_behandeling=14,
            vertrouwelijk_aanduiding='OPENBAAR',
            publicatie_indicatie='N',
            zaakcategorie=['Onderhouden','Repareren'],
            datum_begin_geldigheid_zaaktype='20170901',
            datum_einde_geldigheid_zaaktype='21000101',
            organisatorische_eenheid=org_eenheid,
        )

        vraag = 'creeerZaak_ZakLk01_taiga411.xml'
        response = self._do_request(self.porttype, vraag)

        self.assertEquals(response.status_code, 200, response.content)

        self.assertEqual(Zaak.objects.all().count(), 1)
        zaak = Zaak.objects.get()
        self.assertEqual(zaak.zaakidentificatie, '0392-2017-0000001')
        self.assertEqual(zaak.bronorganisatie, '0392')
示例#3
0
    def setUp(self):
        super().setUp()

        # medewerker wordt geidentificeerd in de .xml bestanden, met
        # '${gemeentecode}56789' wat is vervangen door '0123456789'
        self.medewerker = MedewerkerFactory.create(
            organisatorische_eenheid__organisatieeenheididentificatie='01234',
            medewerkeridentificatie='56789')
        self.assertEqual(self.medewerker.identificatie, '0123456789')

        self.zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345678')

        self.context = {
            'gemeentecode': '',
            'referentienummer': self.genereerID(10),

            'datumVandaag': self.genereerdatum(),
            'datumEergisteren': self.genereerdatum(-2),
            'tijdstipRegistratie': self.genereerdatumtijd(),

            'zds_zaaktype_omschrijving': 'Aanvraag burgerservicenummer behandelen',
            'zds_zaaktype_code': '12345678',
        }
示例#4
0
    def test_manager_create(self):
        zaaktype = ZaakTypeProxy.from_django_obj(ZaakTypeFactory.create())
        ZaakProxy.objects.create(
            zaakidentificatie=123456789,
            registratiedatum='20170101',
            startdatum='20170101',
            laatste_betaaldatum='20170101',
            archiefnominatie='J',
            zaaktype=zaaktype,
        )

        self.assertTrue(Zaak.objects.filter(
            zaakidentificatie=123456789,
            bronorganisatie=1234,
            omschrijving=None,
            toelichting=None,
            registratiedatum='20170101',
            verantwoordelijke_organisatie=1234,
            einddatum=None,
            startdatum='20170101',
            einddatum_gepland=None,
            uiterlijke_einddatum_afdoening=None,
            resultaatomschrijving=None,
            resultaattoelichting=None,
            publicatiedatum=None,
            archiefnominatie=ArchiefNominatie.vernietigen,
            archiefstatus=ArchiefStatus.gearchiveerd,
            archiefactiedatum=None,
            betalingsindicatie=None,
            laatste_betaaldatum='20170101',
        ).exists())
示例#5
0
    def test_required_fields_in_datamodel(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/277
        """
        zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='MOR',
            zaaktypeidentificatie='1')

        org_eenheid = OrganisatorischeEenheidFactory.create(
            organisatieeenheididentificatie='DVV/KCC')

        vraag = 'creeerZaak_ZakLk01_taiga277.xml'
        response = self._do_request(self.porttype, vraag)

        self.assertEquals(response.status_code, 200, response.content)

        self.assertEqual(Zaak.objects.all().count(), 1)
        self.assertEqual(Zaak.objects.filter(zaakidentificatie='039288072b1c-54f4-485c-8e83-095621e6jkl6').count(), 1)
示例#6
0
    def test_naam_matching_query_does_not_exist(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/281
        """
        zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='MOR',
            zaaktypeidentificatie='1',
            datum_begin_geldigheid_zaaktype='20170831',
        )

        org_eenheid = OrganisatorischeEenheidFactory.create(
            organisatieeenheididentificatie='DVV/KCC')

        vraag = 'creeerZaak_ZakLk01_taiga281.xml'
        response = self._do_request(self.porttype, vraag)

        self.assertEquals(response.status_code, 200, response.content)

        self.assertEqual(Zaak.objects.all().count(), 1)
        self.assertEqual(Zaak.objects.filter(zaakidentificatie='039288072b1c-54f4-485c-8e83-095621e6jk24').count(), 1)
    def handle(self, *args, **options):

        # Needed for all tests.
        ZaakType.objects.filter(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345678',
        ).delete()

        # Medewerker.objects.get_or_create(
        #     medewerkeridentificatie='123456789',
        #     achternaam='achternaam',
        #     voorvoegsel_achternaam='voorvoeg',
        #     voorletters='voorletters',
        #     defaults={
        #         'organisatorische_eenheid': None,
        #     }
        # )

        ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345678',
            datum_begin_geldigheid_zaaktype='20171001')

        # Required for 'creeerZaak_zakLk01 volgnummer 3'

        # First do cleanup.
        Medewerker.objects.filter(
            medewerkeridentificatie='7007',
            organisatorische_eenheid__isnull=True).delete()
        ZaakType.objects.filter(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345679',
        ).delete()

        try:
            organisatorische_eenheid = OrganisatorischeEenheid.objects.filter(
                identificatie='organisatorischeEenheid',
                naam='Naam',
                organisatieeenheididentificatie='organisatorischeEenheid',
                organisatieidentificatie='0',
                gevestigd_in__is_specialisatie_van__identificatie=
                '012345678910',
                gevestigd_in__is_specialisatie_van__handelsnaam=[
                    'handelsnaam',
                ],
            ).get()
        except OrganisatorischeEenheid.DoesNotExist:
            pass
        else:
            if organisatorische_eenheid.gevestigd_in.is_specialisatie_van:
                organisatorische_eenheid.gevestigd_in.is_specialisatie_van.delete(
                )
            if organisatorische_eenheid.gevestigd_in:
                organisatorische_eenheid.gevestigd_in.delete()

        OverigeAdresseerbaarObjectAanduidingObject.objects.filter(
            identificatie='0123456789101112',
            woonplaatsnaam='woonplaatsNaam',
            naam_openbare_ruimte='openbareRuimteNaam',
            huisnummer=99999,
            huisletter='A',
            huisnummertoevoeging='',
        ).delete()

        MedewerkerFactory.create(
            medewerkeridentificatie='7007',
            organisatorische_eenheid=None,
        )
        zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345679')

        status_type1 = StatusType.objects.get_or_create(
            statustypeomschrijving='Intake afgerond',
            statustypevolgnummer='1',
            zaaktype=zaak_type,
        )

        status_type2 = StatusType.objects.get_or_create(
            statustypeomschrijving='Afgerekend',
            statustypevolgnummer='3',
            zaaktype=zaak_type,
        )

        status_type3 = StatusType.objects.get_or_create(
            statustypeomschrijving='Product opgesteld',
            statustypevolgnummer='5',
            zaaktype=zaak_type,
        )

        status_type4 = StatusType.objects.get_or_create(
            statustypeomschrijving='Zaak afgerond',
            statustypevolgnummer='7',
            zaaktype=zaak_type,
        )

        organisatorische_eenheid = OrganisatorischeEenheidFactory.create(
            identificatie='organisatorischeEenheid',
            naam='Naam',
            organisatieeenheididentificatie='organisatorischeEenheid',
            organisatieidentificatie='0',
            gevestigd_in__is_specialisatie_van__identificatie='012345678910',
            gevestigd_in__is_specialisatie_van__handelsnaam=[
                'handelsnaam',
            ],
        )

        # OverigeAdresseerbaarObjectAanduidingObjectFactory.create(
        #     identificatie='0123456789101112',
        #     woonplaatsnaam='woonplaatsNaam',
        #     naam_openbare_ruimte='openbareRuimteNaam',
        #     huisnummer=99999,
        #     huisletter='A',
        #     huisnummertoevoeging='',
        # )

        # Required for creeerZaak_zakLk01 volgnummer 5

        # Deelzaak en Andere zaak
        ZaakFactory.create(
            zaakidentificatie='0123456789',
            omschrijving='omschrijving',
        )

        NatuurlijkPersoon.objects.filter(
            burgerservicenummer=self.context['gemeentecode'] +
            '56789').delete()
        NatuurlijkPersoonFactory.create(
            burgerservicenummer=self.context['gemeentecode'] + '56789')

        # Required for creeerZaak_zakLk01 volgnummer 7
        NietNatuurlijkPersoon.objects.filter(
            rsin=self.context['gemeentecode'] + '56789').delete()
        NietNatuurlijkPersoonFactory.create(rsin=self.context['gemeentecode'] +
                                            '56789')

        # Required for creeerZaak_zakLk01 volgnummer 9, 11 and 13
        Vestiging.objects.filter(identificatie='010203040506').delete()
        VestigingFactory.create(identificatie='010203040506')

        # Required for creeerZaak_zakLk01 volgnummer 13
        medewerkers = [
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56791',
                'achternaam': 'achternaam22',
                'voorletters': 'voorletters22',
                'voorvoegsel_achternaam': 'voorvoeg22',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56790',
                'achternaam': 'achternaam20',
                'voorletters': 'voorletters20',
                'voorvoegsel_achternaam': 'voorvoeg20',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56789',
                'achternaam': 'achternaam22',
                'voorletters': 'voorletters22',
                'voorvoegsel_achternaam': 'voorvoeg22',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56788',
                'achternaam': 'achternaam2',
                'voorletters': 'voorletters2',
                'voorvoegsel_achternaam': 'voorvoeg2',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56787',
                'achternaam': 'achternaam22',
                'voorletters': 'voorletters22',
                'voorvoegsel_achternaam': 'voorvoeg22',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56786',
                'achternaam': 'achternaam6',
                'voorletters': 'voorletters6',
                'voorvoegsel_achternaam': 'voorvoeg6',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56785',
                'achternaam': 'unknown',
                'voorletters': 'unknown',
                'voorvoegsel_achternaam': 'unknown',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56784',
                'achternaam': 'achternaam22',
                'voorletters': 'voorletters22',
                'voorvoegsel_achternaam': 'voorvoeg22',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56783',
                'achternaam': 'achternaam2',
                'voorletters': 'voorletters2',
                'voorvoegsel_achternaam': 'voorvoeg2',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56782',
                'achternaam': 'achternaam22',
                'voorletters': 'voorletters22',
                'voorvoegsel_achternaam': 'voorvoeg22',
                'organisatorische_eenheid': None,
            },
            {
                'medewerkeridentificatie':
                self.context['gemeentecode'] + '56781',
                'achternaam': 'achternaam2',
                'voorletters': 'voorletters2',
                'voorvoegsel_achternaam': 'voorvoeg2',
                'organisatorische_eenheid': None,
            },
        ]
        for medewerker in medewerkers:
            Medewerker.objects.get_or_create(defaults={
                'geslachtsaanduiding':
                GeslachtsAanduiding.onbekend,
            },
                                             **medewerker)

        InformatieObjectType.objects.filter(
            informatieobjecttypeomschrijving='omschrijving').delete()
        InformatieObjectType.objects.filter(
            informatieobjecttypeomschrijving=
            'Aanvraag burgerservicenummer behandelen').delete()
        InformatieObjectTypeFactory.create(
            informatieobjecttypeomschrijving='omschrijving')
        InformatieObjectTypeFactory.create(
            informatieobjecttypeomschrijving=
            'Aanvraag burgerservicenummer behandelen')

        oeh2_defaults = {
            'organisatieeenheididentificatie': "0123456785",
            'organisatieidentificatie': "0123456785"[:4],
            'naam': 'naam2',
            'gevestigd_in': organisatorische_eenheid.gevestigd_in,
        }

        organisatorische_eenheid, _ = OrganisatorischeEenheid.objects.get_or_create(
            identificatie="0123456785",
            defaults=oeh2_defaults,
        )

        # For actualiseerZaakstatus volgnummer 1
        OrganisatorischeEenheid.objects.get_or_create(
            identificatie='0123456789',
            organisatieeenheididentificatie="0123456789",
            organisatieidentificatie="0123456789"[:4],
            defaults={
                'naam': '0123456789',
                'gevestigd_in': organisatorische_eenheid.gevestigd_in,
            })

        # For actualiseerZaakstatus volgnummer 5
        # TODO [KING]: Deze organisatorische eenheid is volgens de test ergens anders
        # gevestigd.
        OrganisatorischeEenheid.objects.get_or_create(
            identificatie='01234567890',
            organisatieeenheididentificatie="01234567890",
            organisatieidentificatie="01234567890"[:4],
            defaults={
                'naam': '01234567890',
                'gevestigd_in': organisatorische_eenheid.gevestigd_in,
            })

        NatuurlijkPersoon.objects.filter(
            burgerservicenummer='012345678').delete()
        natuurlijk_persoon = NatuurlijkPersoonFactory.create(
            burgerservicenummer='012345678',
            naam_geslachtsnaam='geslachtsnaam5',
            naam_voorvoegsel_geslachtsnaam_voorvoegsel='voorvoeg5',
            naam_aanschrijving_voorletters_aanschrijving='voorletters5',
            naam_voornamen='voornamen5',
            geslachtsaanduiding='M',
            geboortedatum_ingeschreven_persoon=self.genereerdatum(),
        )

        NietNatuurlijkPersoon.objects.filter(
            rsin='012345678', statutaire_naam='statutaireNaam').delete()
        niet_natuurlijk_persoon = NietNatuurlijkPersoonFactory.create(
            rsin='012345678', statutaire_naam='statutaireNaam')

        # This is the default BesluitType.
        BesluitType.objects.get_or_create(
            besluittypeomschrijving=None,
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            })

        BesluitType.objects.get_or_create(
            besluittypeomschrijving='omschrijving',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            })
        BesluitType.objects.get_or_create(
            besluittypeomschrijving='bst.omschrijving',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            })

        BesluitType.objects.get_or_create(
            besluittypeomschrijving='bst.omschrijving3',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            })
示例#8
0
    def test_create_03(self):
        """
        creeerZaak_zakLk01 volgnummer 3
        """
        vraag = 'creeerZaak_ZakLk01_03.orig.xml'
        medewerker = MedewerkerFactory.create(
            medewerkeridentificatie='7007',
            organisatorische_eenheid=None,
        )
        self.assertEqual(medewerker.identificatie, '7007')

        ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345679')

        # TODO [TECH]: This should be created in the tests, but the matching-data mismatches
        # with the required information. This can be removed once Issue #250 is solved.
        oeh = OrganisatorischeEenheidFactory.create(
            identificatie='organisatorischeEenheid',
            naam='Naam',
            organisatieeenheididentificatie='organisatorischeEenheid',
            organisatieidentificatie='0',
            gevestigd_in__is_specialisatie_van__identificatie='012345678910',
            gevestigd_in__is_specialisatie_van__handelsnaam=['handelsnaam', ],
        )

        self.assertEquals(OverigeAdresseerbaarObjectAanduidingObject.objects.count(), 0)

        # # In the test this is a 'T', however, the required field 'datum_begin_geldigheid_adresseerbaar_object_aanduiding'
        # # isn't given a value in the StUF test, so we can't possibly create the OverigeAdresseerbaarObjectAanduidingObject object.OverigeAdresseerbaarObjectAanduidingObject
        # # I assume, that the KING test suite assumes that we create this object in our database.
        # OverigeAdresseerbaarObjectAanduidingObjectFactory.create(
        #     identificatie='0123456789101112',
        #     woonplaatsnaam='woonplaatsNaam',
        #     naam_openbare_ruimte='openbareRuimteNaam',
        #     huisnummer=99999,
        #     huisletter='A',
        #     huisnummertoevoeging='',
        #     postcode='1000',
        # )

        self.assertEquals(Zaak.objects.count(), 0)
        self.context.update(**{
            'genereerzaakident_identificatie_4': self.genereerID(10),
            'genereerbesluitident_identificatie_2': '123',
            'genereerzaakident_identificatie_2': self.genereerID(10),
        })
        response = self._do_request(self.porttype, vraag, self.context, stp_syntax=True)

        self._test_response(response)

        self.assertEquals(Zaak.objects.count(), 1)
        expected = {
            'zaakidentificatie': self.context['gemeentecode'] + self.context['genereerzaakident_identificatie_4'],
            'bronorganisatie': self.context['gemeentecode'],
            'archiefstatus': 'Nog te archiveren',
            'verantwoordelijke_organisatie': self.context['gemeentecode'],
            'omschrijving': 'omschrijving',
            'toelichting': 'toelichting',
            'resultaatomschrijving': 'omschrijving',
            'resultaattoelichting': 'toelichting',
            'startdatum': self.context['datumVandaag'],
            'registratiedatum': self.context['datumVandaag'],
            'publicatiedatum': self.context['datumVandaag'],
            'einddatum_gepland': self.context['datumVandaag'],
            'uiterlijke_einddatum_afdoening': self.context['datumVandaag'],
            'einddatum': self.context['datumVandaag'],
            'betalingsindicatie': '(Nog) niet',
            'laatste_betaaldatum': self.context['datumVandaag'],
            'archiefnominatie': None,
            'zaaktype_id': self.zaak_type.pk,
        }
        self.assertTrue(Zaak.objects.filter(**expected).exists())
        zaak = Zaak.objects.get()

        self.assertEquals(zaak.zaakkenmerk_set.filter(
            kenmerk='kenmerk', kenmerk_bron='bron'
        ).count(), 2)

        self.assertEquals(zaak.anderzaakobject_set.filter(
            ander_zaakobject_omschrijving='omschrijving', ander_zaakobject_aanduiding='aanduiding',
            ander_zaakobject_registratie='registratie',
            ander_zaakobject_lokatie__startswith='<gml:OrientableSurface',
        ).count(), 2)

        # Test for resultaat

        self.assertEquals(zaak.zaakopschorting_set.filter(
            indicatie_opschorting='N', reden_opschorting='reden',
        ).count(), 1)

        self.assertEquals(zaak.zaakverlenging_set.filter(
            duur_verlenging=123, reden_verlenging='reden',
        ).count(), 1)

        self.assertEquals(zaak.zaakobject_set.count(), 2)

        self.assertEquals(OverigeAdresseerbaarObjectAanduidingObject.objects.filter(
            object_zaken__in=[zaak, ],
            identificatie='0123456789101112',
            woonplaatsnaam='woonplaatsNaam',
            naam_openbare_ruimte='openbareRuimteNaam',
            huisnummer='99999',
            huisletter='A',
            huisnummertoevoeging='',
        ).count(), 2)

        # De rollen zijn als volgt aangepast van RGBZ 1.0 naar RGBZ 2.0.
        #
        # "Gemachtigde" wordt "Belanghebbende"
        # "Overig" wordt "Adviseur"
        # "Uitvoerder" wordt "Behandelaar"
        # "Verantwoordelijke" wordt "Beslisser"
        # Overige rolbenamingen blijven gelijk.

        # Both 'heeftAlsBelanghebbende' and 'heeftAlsGemachtigde' in RGBZ2 are stored as
        # 'Belanghebbende' and both point to medewerker.
        belanghebbenden = zaak.rol_set.filter(
            rolomschrijving=Rolomschrijving.belanghebbende,
            betrokkene=self.medewerker)
        self.assertEquals(belanghebbenden.count(), 4)

        # heeftAlsInitiator
        initiators = zaak.rol_set.filter(
            rolomschrijving=Rolomschrijving.initiator,
            betrokkene=oeh)
        self.assertEquals(initiators.count(), 1)

        # heeftAlsUitvoerende
        behandelaars = zaak.rol_set.filter(
            rolomschrijving=Rolomschrijving.behandelaar,
            betrokkene=self.medewerker)
        self.assertEquals(behandelaars.count(), 2)

        # heeftAlsVerantwoordelijke
        beslissers = zaak.rol_set.filter(
            rolomschrijving=Rolomschrijving.beslisser,
            betrokkene=self.medewerker)
        self.assertEquals(beslissers.count(), 2)

        # heeftAlsOverigBetrokkene
        adviseurs = zaak.rol_set.filter(
            rolomschrijving=Rolomschrijving.adviseur,
            betrokkene=self.medewerker)
        self.assertEquals(adviseurs.count(), 2)

        self._validate_response(response)
    def handle(self, *args, **options):

        # Needed for all tests.
        ZaakType.objects.filter(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345678',
        ).delete()

        # Medewerker.objects.get_or_create(
        #     medewerkeridentificatie='123456789',
        #     achternaam='achternaam',
        #     voorvoegsel_achternaam='voorvoeg',
        #     voorletters='voorletters',
        #     defaults={
        #         'organisatorische_eenheid': None,
        #     }
        # )

        ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345678',
            datum_begin_geldigheid_zaaktype='20171001')

        # Required for 'creeerZaak_zakLk01 volgnummer 3'

        # First do cleanup.
        Medewerker.objects.filter(
            medewerkeridentificatie='7007',
            organisatorische_eenheid__isnull=True
        ).delete()
        ZaakType.objects.filter(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345679',
        ).delete()

        try:
            organisatorische_eenheid = OrganisatorischeEenheid.objects.filter(
                identificatie='organisatorischeEenheid',
                naam='Naam',
                organisatieeenheididentificatie='organisatorischeEenheid',
                organisatieidentificatie='0',
                gevestigd_in__is_specialisatie_van__identificatie='012345678910',
                gevestigd_in__is_specialisatie_van__handelsnaam=['handelsnaam', ],
            ).get()
        except OrganisatorischeEenheid.DoesNotExist:
            pass
        else:
            if organisatorische_eenheid.gevestigd_in.is_specialisatie_van:
                organisatorische_eenheid.gevestigd_in.is_specialisatie_van.delete()
            if organisatorische_eenheid.gevestigd_in:
                organisatorische_eenheid.gevestigd_in.delete()

        OverigeAdresseerbaarObjectAanduidingObject.objects.filter(
            identificatie='0123456789101112',
            woonplaatsnaam='woonplaatsNaam',
            naam_openbare_ruimte='openbareRuimteNaam',
            huisnummer=99999,
            huisletter='A',
            huisnummertoevoeging='',
        ).delete()

        MedewerkerFactory.create(
            medewerkeridentificatie='7007',
            organisatorische_eenheid=None,
        )
        zaak_type = ZaakTypeFactory.create(
            zaaktypeomschrijving='Aanvraag burgerservicenummer behandelen',
            zaaktypeidentificatie='12345679')

        status_type1 = StatusType.objects.get_or_create(
            statustypeomschrijving='Intake afgerond',
            statustypevolgnummer='1',
            zaaktype=zaak_type,
        )

        status_type2 = StatusType.objects.get_or_create(
            statustypeomschrijving='Afgerekend',
            statustypevolgnummer='3',
            zaaktype=zaak_type,
        )

        status_type3 = StatusType.objects.get_or_create(
            statustypeomschrijving='Product opgesteld',
            statustypevolgnummer='5',
            zaaktype=zaak_type,
        )

        status_type4 = StatusType.objects.get_or_create(
            statustypeomschrijving='Zaak afgerond',
            statustypevolgnummer='7',
            zaaktype=zaak_type,
        )

        organisatorische_eenheid = OrganisatorischeEenheidFactory.create(
            identificatie='organisatorischeEenheid',
            naam='Naam',
            organisatieeenheididentificatie='organisatorischeEenheid',
            organisatieidentificatie='0',
            gevestigd_in__is_specialisatie_van__identificatie='012345678910',
            gevestigd_in__is_specialisatie_van__handelsnaam=['handelsnaam', ],
        )

        # OverigeAdresseerbaarObjectAanduidingObjectFactory.create(
        #     identificatie='0123456789101112',
        #     woonplaatsnaam='woonplaatsNaam',
        #     naam_openbare_ruimte='openbareRuimteNaam',
        #     huisnummer=99999,
        #     huisletter='A',
        #     huisnummertoevoeging='',
        # )

        # Required for creeerZaak_zakLk01 volgnummer 5

        # Deelzaak en Andere zaak
        ZaakFactory.create(
            zaakidentificatie='0123456789',
            omschrijving='omschrijving',
        )

        NatuurlijkPersoon.objects.filter(
            burgerservicenummer=self.context['gemeentecode'] + '56789'
        ).delete()
        NatuurlijkPersoonFactory.create(burgerservicenummer=self.context['gemeentecode'] + '56789')

        # Required for creeerZaak_zakLk01 volgnummer 7
        NietNatuurlijkPersoon.objects.filter(
            rsin=self.context['gemeentecode'] + '56789'
        ).delete()
        NietNatuurlijkPersoonFactory.create(rsin=self.context['gemeentecode'] + '56789')

        # Required for creeerZaak_zakLk01 volgnummer 9, 11 and 13
        Vestiging.objects.filter(identificatie='010203040506').delete()
        VestigingFactory.create(identificatie='010203040506')

        # Required for creeerZaak_zakLk01 volgnummer 13
        medewerkers = [{
            'medewerkeridentificatie': self.context['gemeentecode'] + '56791',
            'achternaam': 'achternaam22',
            'voorletters': 'voorletters22',
            'voorvoegsel_achternaam': 'voorvoeg22',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56790',
            'achternaam': 'achternaam20',
            'voorletters': 'voorletters20',
            'voorvoegsel_achternaam': 'voorvoeg20',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56789',
            'achternaam': 'achternaam22',
            'voorletters': 'voorletters22',
            'voorvoegsel_achternaam': 'voorvoeg22',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56788',
            'achternaam': 'achternaam2',
            'voorletters': 'voorletters2',
            'voorvoegsel_achternaam': 'voorvoeg2',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56787',
            'achternaam': 'achternaam22',
            'voorletters': 'voorletters22',
            'voorvoegsel_achternaam': 'voorvoeg22',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56786',
            'achternaam': 'achternaam6',
            'voorletters': 'voorletters6',
            'voorvoegsel_achternaam': 'voorvoeg6',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56785',
            'achternaam': 'unknown',
            'voorletters': 'unknown',
            'voorvoegsel_achternaam': 'unknown',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56784',
            'achternaam': 'achternaam22',
            'voorletters': 'voorletters22',
            'voorvoegsel_achternaam': 'voorvoeg22',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56783',
            'achternaam': 'achternaam2',
            'voorletters': 'voorletters2',
            'voorvoegsel_achternaam': 'voorvoeg2',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56782',
            'achternaam': 'achternaam22',
            'voorletters': 'voorletters22',
            'voorvoegsel_achternaam': 'voorvoeg22',
            'organisatorische_eenheid': None,
        }, {
            'medewerkeridentificatie': self.context['gemeentecode'] + '56781',
            'achternaam': 'achternaam2',
            'voorletters': 'voorletters2',
            'voorvoegsel_achternaam': 'voorvoeg2',
            'organisatorische_eenheid': None,
        }, ]
        for medewerker in medewerkers:
            Medewerker.objects.get_or_create(defaults={
                'geslachtsaanduiding': GeslachtsAanduiding.onbekend,
            }, **medewerker)

        InformatieObjectType.objects.filter(informatieobjecttypeomschrijving='omschrijving').delete()
        InformatieObjectType.objects.filter(informatieobjecttypeomschrijving='Aanvraag burgerservicenummer behandelen').delete()
        InformatieObjectTypeFactory.create(informatieobjecttypeomschrijving='omschrijving')
        InformatieObjectTypeFactory.create(informatieobjecttypeomschrijving='Aanvraag burgerservicenummer behandelen')

        oeh2_defaults = {
            'organisatieeenheididentificatie': "0123456785",
            'organisatieidentificatie': "0123456785"[:4],
            'naam': 'naam2',
            'gevestigd_in': organisatorische_eenheid.gevestigd_in,
        }

        organisatorische_eenheid, _ = OrganisatorischeEenheid.objects.get_or_create(
            identificatie="0123456785",
            defaults=oeh2_defaults,
        )

        # For actualiseerZaakstatus volgnummer 1
        OrganisatorischeEenheid.objects.get_or_create(
            identificatie='0123456789',
            organisatieeenheididentificatie="0123456789",
            organisatieidentificatie="0123456789"[:4],
            defaults={
                'naam': '0123456789',
                'gevestigd_in': organisatorische_eenheid.gevestigd_in,
            }
        )

        # For actualiseerZaakstatus volgnummer 5
        # TODO [KING]: Deze organisatorische eenheid is volgens de test ergens anders
        # gevestigd.
        OrganisatorischeEenheid.objects.get_or_create(
            identificatie='01234567890',
            organisatieeenheididentificatie="01234567890",
            organisatieidentificatie="01234567890"[:4],
            defaults={
                'naam': '01234567890',
                'gevestigd_in': organisatorische_eenheid.gevestigd_in,
            }
        )

        NatuurlijkPersoon.objects.filter(
            burgerservicenummer='012345678'
        ).delete()
        natuurlijk_persoon = NatuurlijkPersoonFactory.create(
            burgerservicenummer='012345678',
            naam_geslachtsnaam='geslachtsnaam5',
            naam_voorvoegsel_geslachtsnaam_voorvoegsel='voorvoeg5',
            naam_aanschrijving_voorletters_aanschrijving='voorletters5',
            naam_voornamen='voornamen5',
            geslachtsaanduiding='M',
            geboortedatum_ingeschreven_persoon=self.genereerdatum(),
        )

        NietNatuurlijkPersoon.objects.filter(
            rsin='012345678',
            statutaire_naam='statutaireNaam'
        ).delete()
        niet_natuurlijk_persoon = NietNatuurlijkPersoonFactory.create(
            rsin='012345678',
            statutaire_naam='statutaireNaam'
        )

        # This is the default BesluitType.
        BesluitType.objects.get_or_create(
            besluittypeomschrijving=None,
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            }
        )

        BesluitType.objects.get_or_create(
            besluittypeomschrijving='omschrijving',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            }
        )
        BesluitType.objects.get_or_create(
            besluittypeomschrijving='bst.omschrijving',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            }
        )


        BesluitType.objects.get_or_create(
            besluittypeomschrijving='bst.omschrijving3',
            defaults={
                'domein': 'dom',
                'rsin': 12345,
                'reactietermijn': 5,
                'publicatie_indicatie': 'J',
                'datum_begin_geldigheid_besluittype': self.genereerdatum(),
            }
        )