def create_data(self, request_obj, output_model):
        gelijk_obj = request_obj.gelijk
        scope_obj = request_obj.scope.object if request_obj.scope else None
        input_parameters_obj = request_obj.parameters if request_obj.parameters else None
        objects = self.create_object_data(gelijk_obj, scope_obj, input_parameters_obj,
                                          self.get_queryset(request_obj), output_model)

        # TODO [TECH]: Maybe we should move the whole stuurgegevens (or at least zender/ontvanger) to the application level?
        # TODO [TECH]: Reference etc. should also be logged.
        return {
            'stuurgegevens': {
                'berichtcode': self.berichtcode,
                'zender': get_systeem_zender(request_obj.stuurgegevens.ontvanger),
                'ontvanger': get_ontvanger(request_obj.stuurgegevens.zender),
                # TODO [TECH]: Generate reference
                'referentienummer': create_unique_id(),
                'tijdstipBericht': stuf_datetime.now(),
                'crossRefnummer': request_obj.stuurgegevens.referentienummer or IgnoreAttribute(),
                'entiteittype': self.stuf_entiteit.get_mnemonic()
            },
            'parameters': self.create_output_parameters_data(input_parameters_obj),
            'antwoord': {
                'object': objects
            }
        }
    def create_data(self, request_obj, output_model):
        gelijk_obj = request_obj.gelijk
        scope_obj = request_obj.scope.object if request_obj.scope else None
        input_parameters_obj = request_obj.parameters if request_obj.parameters else None
        objects = self.create_object_data(gelijk_obj, scope_obj, input_parameters_obj,
                                          self.get_queryset(request_obj), output_model)

        # TODO [TECH]: Maybe we should move the whole stuurgegevens (or at least zender/ontvanger) to the application level?
        # TODO [TECH]: Reference etc. should also be logged.
        return {
            'stuurgegevens': {
                'berichtcode': self.berichtcode,
                'zender': get_systeem_zender(request_obj.stuurgegevens.ontvanger),
                'ontvanger': get_ontvanger(request_obj.stuurgegevens.zender),
                # TODO [TECH]: Generate reference
                'referentienummer': create_unique_id(),
                'tijdstipBericht': stuf_datetime.now(),
                'crossRefnummer': request_obj.stuurgegevens.referentienummer or IgnoreAttribute(),
                'entiteittype': self.stuf_entiteit.get_mnemonic()
            },
            'parameters': self.create_output_parameters_data(input_parameters_obj),
            'antwoord': {
                'object': objects
            }
        }
예제 #3
0
def get_bv03_stuurgegevens(data):
    from .choices import BerichtcodeChoices
    from ..utils import create_unique_id

    return {
        'berichtcode': BerichtcodeChoices.bv03,
        'zender': get_systeem_zender(),
        'ontvanger': get_ontvanger(data.stuurgegevens.zender),
        'referentienummer': create_unique_id(),
        'crossRefnummer': data.stuurgegevens.referentienummer,
        'tijdstipBericht': stuf_datetime.now()
    }
예제 #4
0
    def test_service_request(self):
        client = self._get_client('VerwerkSynchroonVrijBericht')
        stuf_factory = client.type_factory('http://www.egem.nl/StUF/StUF0301')

        with client.options(raw_response=True):
            result = client.service.genereerZaakIdentificatie_Di02(
                stuurgegevens=stuf_factory['Di02-Stuurgegevens-gzi'](
                    berichtcode='Di02',
                    referentienummer='123',
                    tijdstipBericht=stuf_datetime.now(),
                    functie='genereerZaakidentificatie'))

        response_root = etree.fromstring(result.content)
        response_identificatie = response_root.xpath(
            '//zds:zaak/zkn:identificatie', namespaces=self.nsmap)[0].text

        self.assertEqual(response_identificatie, '2017-0000001')
    def test_service_request_create_incremental_year_with_org_id_without_org(
            self):
        client = self._get_client('VerwerkSynchroonVrijBericht')
        stuf_factory = client.type_factory('http://www.egem.nl/StUF/StUF0301')

        with client.options(raw_response=True):
            result = client.service.genereerZaakIdentificatie_Di02(
                stuurgegevens=stuf_factory['Di02-Stuurgegevens-gzi'](
                    berichtcode='Di02',
                    referentienummer='123',
                    tijdstipBericht=stuf_datetime.now(),
                    functie='genereerZaakidentificatie',
                ))

        response_root = etree.fromstring(result.content)
        error_message = response_root.xpath(
            '//stuf:Fo02Bericht/stuf:body/stuf:details',
            namespaces=self.nsmap)[0].text

        self.assertEqual(
            error_message,
            'Ontvangende organisatie is verplicht in de stuurgegevens voor het genereren van identificaties.'
        )
    def test_upload_large_file(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/387
        """

        self.iot = InformatieObjectTypeFactory.create()
        self.zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': '',
            'gebruiker': '',
        }
        self.ontvanger = {
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': '',
        }
        client = self._get_client('OntvangAsynchroon')

        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )

        # Note that the content is base64 encoded twice, and thus increases in size
        # when encoded.
        big_ass_file = b'a' * 3 * 1024**2  # 22MB
        name = '{}.flac'.format(int(time.time()))

        inhoud = stuf_factory.BinaireInhoud(
            big_ass_file,
            bestandsnaam=name,
            contentType='audio/flac',
        )
        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](
                **{
                    'entiteittype':
                    'EDC',
                    'verwerkingssoort':
                    'T',
                    'identificatie':
                    '12345ABC{}'.format(int(time.time())),
                    'dct.omschrijving':
                    self.iot.informatieobjecttypeomschrijving,
                    'creatiedatum':
                    today,
                    'ontvangstdatum':
                    today,
                    'titel':
                    'To be Everywhere {}'.format(int(time.time())),
                    'beschrijving':
                    '2016 album',
                    'formaat':
                    'CD',
                    'taal':
                    'Engels',
                    'versie':
                    '1',
                    'status':
                    'Gepubliceerd',
                    'verzenddatum':
                    today,
                    'vertrouwelijkAanduiding':
                    'OPENBAAR',
                    'auteur':
                    'Thrice',
                    # 'link': ''
                    'inhoud':
                    inhoud,
                    # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                    #     beginGeldigheid=today,
                    # ),
                    # 'tijdstipRegistratie': '',
                    # 'extraElementend': None,
                    'isRelevantVoor': [
                        zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                            entiteittype='EDCZAK',
                            verwerkingssoort='T',
                            gerelateerde=zkn_factory[
                                'VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving']
                            (
                                entiteittype='ZAK',
                                verwerkingssoort='I',
                                identificatie=self.zaak.zaakidentificatie,
                                omschrijving=self.zaak.omschrijving,
                                # isVan=None
                            ),
                            # titel
                            # beschrijving
                            # registratiedatum
                            # stt.volgnummer
                            # stt.omschrijving
                            # sta.datumStatusGezet
                            # tijdvakRelatie
                            # tijdvakGeldigheid
                            # tijdstipRegistratie
                            # extraElementen
                        )
                    ]
                }))
    def test_create(self):
        self._dms_client.geef_inhoud.return_value = ('doc 1', BytesIO())

        zaak = ZaakFactory.create(
            status_set__indicatie_laatst_gezette_status=JaNee.ja)
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )

        # Note that the content is base64 encoded twice, and thus increases in size
        # when encoded. suppose we want to send 100 bytes, this will be encoded
        # as 100 * (8/6) * (8/6) = ~178 bytes.
        big_ass_file = b'a' * 22 * 1024**2  # 22MB
        inhoud = stuf_factory.BinaireInhoud(
            base64.b64encode(big_ass_file),
            bestandsnaam='to_be_everywhere.flac',
            contentType='audio/flac',
        )

        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](
                **{
                    'entiteittype':
                    'EDC',
                    'verwerkingssoort':
                    'T',
                    'identificatie':
                    '12345ABC',
                    'dct.omschrijving':
                    self.iot.informatieobjecttypeomschrijving,
                    'creatiedatum':
                    today,
                    'ontvangstdatum':
                    today,
                    'titel':
                    'To be Everywhere is to be Nowhere',
                    'beschrijving':
                    '2016 album',
                    'formaat':
                    'CD',
                    'taal':
                    'Engels',
                    'versie':
                    '1',
                    'status':
                    'Gepubliceerd',
                    'verzenddatum':
                    today,
                    'vertrouwelijkAanduiding':
                    'OPENBAAR',
                    'auteur':
                    'Thrice',
                    # 'link': ''
                    'inhoud':
                    inhoud,
                    # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                    #     beginGeldigheid=today,
                    # ),
                    # 'tijdstipRegistratie': '',
                    # 'extraElementend': None,
                    'isRelevantVoor': [
                        zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                            entiteittype='EDCZAK',
                            verwerkingssoort='T',
                            gerelateerde=zkn_factory[
                                'VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving']
                            (
                                entiteittype='ZAK',
                                verwerkingssoort='I',
                                identificatie=zaak.zaakidentificatie,
                                omschrijving=zaak.omschrijving,
                                # isVan=None
                            ),
                            # titel
                            # beschrijving
                            # registratiedatum
                            # stt.volgnummer
                            # stt.omschrijving
                            # sta.datumStatusGezet
                            # tijdvakRelatie
                            # tijdvakGeldigheid
                            # tijdstipRegistratie
                            # extraElementen
                        )
                    ]
                }))

        self.assertIsNotNone(response)
        self.assertEquals(EnkelvoudigInformatieObject.objects.count(), 1)
        zaakdocument = ZaakInformatieObject.objects.get()
        self.assertEquals(zaakdocument.zaak, zaak)
        self.assertIsNotNone(zaakdocument.informatieobject)
    def test_zs_dms_interaction(self):
        """
        Het ZS maakt gebruik van de CMIS-documentservices om de wijzigingen met
        het DMS te synchroniseren.

        Het ZS zorgt ervoor dat het document dat is aangeboden door de DSC
        wordt vastgelegd in het DMS. Hiervoor maakt het ZS gebruik van de
        CMIS-services die aangeboden worden door het DMS. Hierbij gelden de
        volgende eisen:

        * Het document wordt gerelateerd aan de juiste Zaakfolder (Zie 5.1)
        * Het document wordt opgeslagen als objecttype EDC (Zie 5.2)
        * Minimaal de vereiste metadata voor een EDC wordt vastgelegd in de
          daarvoor gedefinieerde objectproperties. In Tabel 3 is een mapping
          aangegeven tussen de StUF-ZKN-elementen en CMIS-objectproperties.
        """
        self._dms_client.geef_inhoud.return_value = ('doc 1', BytesIO())
        zaak = ZaakFactory.create(
            status_set__indicatie_laatst_gezette_status=JaNee.ja)
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )
        inhoud = stuf_factory.BinaireInhoud(
            b'helloworld',
            bestandsnaam='to_be_everywhere.flac',
            contentType='audio/flac',
        )

        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](
                **{
                    'entiteittype':
                    'EDC',
                    'verwerkingssoort':
                    'T',
                    'identificatie':
                    '12345ABC',
                    'dct.omschrijving':
                    self.iot.informatieobjecttypeomschrijving,
                    'creatiedatum':
                    today,
                    'ontvangstdatum':
                    today,
                    'titel':
                    'To be Everywhere is to be Nowhere',
                    'beschrijving':
                    '2016 album',
                    'formaat':
                    'CD',
                    'taal':
                    'Engels',
                    'versie':
                    '1',
                    'status':
                    'Gepubliceerd',
                    'verzenddatum':
                    today,
                    'vertrouwelijkAanduiding':
                    'OPENBAAR',
                    'auteur':
                    'Thrice',
                    # 'link': ''
                    'inhoud':
                    inhoud,
                    # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                    #     beginGeldigheid=today,
                    # ),
                    # 'tijdstipRegistratie': '',
                    # 'extraElementend': None,
                    'isRelevantVoor':
                    zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                        entiteittype='EDCZAK',
                        verwerkingssoort='T',
                        gerelateerde=zkn_factory[
                            'VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving']
                        (
                            entiteittype='ZAK',
                            verwerkingssoort='I',
                            identificatie=zaak.zaakidentificatie,
                            omschrijving=zaak.omschrijving,
                            # isVan=None
                        ),
                        # titel
                        # beschrijving
                        # registratiedatum
                        # stt.volgnummer
                        # stt.omschrijving
                        # sta.datumStatusGezet
                        # tijdvakRelatie
                        # tijdvakGeldigheid
                        # tijdstipRegistratie
                        # extraElementen
                    )
                }))

        self.assertIsNotNone(response)
        # assert that the correct DMS client calls were made

        # the document should have been registered in the DMS
        self.assertEqual(
            self._service_dms_client.maak_zaakdocument_met_inhoud.call_count,
            1)

        document = self._service_dms_client.maak_zaakdocument_met_inhoud.call_args[
            0][0]

        kwargs = self._service_dms_client.maak_zaakdocument_met_inhoud.call_args[
            1]
        content_type = kwargs['content_type']
        filename = kwargs['filename']
        bytes = kwargs['stream'].getvalue()

        self.assertEqual(document, EnkelvoudigInformatieObject.objects.get())
        self.assertEqual(filename, 'to_be_everywhere.flac')
        self.assertEqual(content_type, 'audio/flac')
        self.assertEqual(bytes, b'helloworld')

        # the document should have been moved to the correct folder
        self._service_dms_client.relateer_aan_zaak.assert_called_once_with(
            document, zaak)
    def test_create(self):
        self._dms_client.geef_inhoud.return_value = ('doc 1', BytesIO())

        zaak = ZaakFactory.create(status_set__indicatie_laatst_gezette_status=JaNee.ja)
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(client)
        today = date.today().strftime('%Y%m%d')

        response = client.service.maakZaakdocument_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuf_factory['EDC-StuurgegevensLk01'](
                berichtcode='Lk01',
                entiteittype='EDC',
                zender=self.zender,
                ontvanger=self.ontvanger,
                referentienummer='1234',
                tijdstipBericht=stuf_datetime.now(),
            ),
            object=zkn_factory['MaakZaakdocument-EDC-kennisgeving'](**{
                'entiteittype': 'EDC',
                'verwerkingssoort': 'T',
                'identificatie': '12345ABC',
                'dct.omschrijving': self.iot.informatieobjecttypeomschrijving,
                'creatiedatum': today,
                'ontvangstdatum': today,
                'titel': 'To be Everywhere is to be Nowhere',
                'beschrijving': '2016 album',
                'formaat': 'CD',
                'taal': 'Engels',
                'versie': '1',
                'status': 'Gepubliceerd',
                'verzenddatum': today,
                'vertrouwelijkAanduiding': 'OPENBAAR',
                'auteur': 'Thrice',
                # 'link': ''
                'inhoud': stuf_factory.BinaireInhoud(
                    b'',
                    bestandsnaam='to_be_everywhere.flac',
                    contentType='audio/flac',
                ),
                # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                #     beginGeldigheid=today,
                # ),
                # 'tijdstipRegistratie': '',
                # 'extraElementend': None,
                'isRelevantVoor': zkn_factory['EDCZAK-kennisgeving'](
                    entiteittype='EDCZAK',
                    verwerkingssoort='T',
                    gerelateerde=zkn_factory['ZAK-kerngegevensKennisgeving'](
                        entiteittype='ZAK',
                        verwerkingssoort='I',
                        identificatie=zaak.zaakidentificatie,
                        omschrijving=zaak.omschrijving,
                        # isVan=None
                    ),
                    # titel
                    # beschrijving
                    # registratiedatum
                    # stt.volgnummer
                    # stt.omschrijving
                    # sta.datumStatusGezet
                    # tijdvakRelatie
                    # tijdvakGeldigheid
                    # tijdstipRegistratie
                    # extraElementen
                )
            })
        )

        self.assertIsNotNone(response)
        self.assertEquals(EnkelvoudigInformatieObject.objects.count(), 1)
        zaakdocument = ZaakInformatieObject.objects.get()
        self.assertEquals(zaakdocument.zaak, zaak)
        self.assertIsNotNone(zaakdocument.informatieobject)
    def test_zs_dms_interaction2_no_inhoud(self):
        """
        Het ZS maakt gebruik van de CMIS-documentservices om de wijzigingen met
        het DMS te synchroniseren.

        Het ZS zorgt ervoor dat het document dat is aangeboden door de DSC
        wordt vastgelegd in het DMS. Hiervoor maakt het ZS gebruik van de
        CMIS-services die aangeboden worden door het DMS. Hierbij gelden de
        volgende eisen:

        * Het document wordt gerelateerd aan de juiste Zaakfolder (Zie 5.1)
        * Het document wordt opgeslagen als objecttype EDC (Zie 5.2)
        * Minimaal de vereiste metadata voor een EDC wordt vastgelegd in de
          daarvoor gedefinieerde objectproperties. In Tabel 3 is een mapping
          aangegeven tussen de StUF-ZKN-elementen en CMIS-objectproperties.
        """
        self._dms_client.geef_inhoud.return_value = ('doc 1', BytesIO())

        zaak = ZaakFactory.create(status_set__indicatie_laatst_gezette_status=JaNee.ja)
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(client)
        today = date.today().strftime('%Y%m%d')

        response = client.service.maakZaakdocument_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuf_factory['EDC-StuurgegevensLk01'](
                berichtcode='Lk01',
                entiteittype='EDC',
                zender=self.zender,
                ontvanger=self.ontvanger,
                referentienummer='1234',
                tijdstipBericht=stuf_datetime.now(),
            ),
            object=zkn_factory['MaakZaakdocument-EDC-kennisgeving'](**{
                'entiteittype': 'EDC',
                'verwerkingssoort': 'T',
                'identificatie': '12345ABC',
                'dct.omschrijving': self.iot.informatieobjecttypeomschrijving,
                'creatiedatum': today,
                'ontvangstdatum': today,
                'titel': 'To be Everywhere is to be Nowhere',
                'beschrijving': '2016 album',
                'formaat': 'CD',
                'taal': 'Engels',
                'versie': '1',
                'status': 'Gepubliceerd',
                'verzenddatum': today,
                'vertrouwelijkAanduiding': 'OPENBAAR',
                'auteur': 'Thrice',
                # 'link': ''
                # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                #     beginGeldigheid=today,
                # ),
                # 'tijdstipRegistratie': '',
                # 'extraElementend': None,
                'isRelevantVoor': zkn_factory['EDCZAK-kennisgeving'](
                    entiteittype='EDCZAK',
                    verwerkingssoort='T',
                    gerelateerde=zkn_factory['ZAK-kerngegevensKennisgeving'](
                        entiteittype='ZAK',
                        verwerkingssoort='I',
                        identificatie=zaak.zaakidentificatie,
                        omschrijving=zaak.omschrijving,
                        # isVan=None
                    ),
                    # titel
                    # beschrijving
                    # registratiedatum
                    # stt.volgnummer
                    # stt.omschrijving
                    # sta.datumStatusGezet
                    # tijdvakRelatie
                    # tijdvakGeldigheid
                    # tijdstipRegistratie
                    # extraElementen
                )
            })
        )

        self.assertIsNotNone(response)
        # assert that the correct DMS client calls were made
        document = EnkelvoudigInformatieObject.objects.get()

        # the document should have been registered in the DMS
        self._service_dms_client.maak_zaakdocument.assert_called_once_with(
            document, filename=None, sender='*****@*****.**')

        # the document should have been moved to the correct folder
        self._service_dms_client.relateer_aan_zaak.assert_called_once_with(document, zaak)
    def test_upload_large_file(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/387
        """

        self.iot = InformatieObjectTypeFactory.create()
        self.zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': '',
            'gebruiker': '',
        }
        self.ontvanger = {
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': '',
        }
        client = self._get_client('OntvangAsynchroon')

        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )

        # Note that the content is base64 encoded twice, and thus increases in size
        # when encoded.
        big_ass_file = b'a' * 3 * 1024**2 # 22MB
        name = '{}.flac'.format(int(time.time()))

        inhoud = stuf_factory.BinaireInhoud(
            big_ass_file,
            bestandsnaam=name,
            contentType='audio/flac',
        )
        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](**{
                'entiteittype': 'EDC',
                'verwerkingssoort': 'T',
                'identificatie': '12345ABC{}'.format(int(time.time())),
                'dct.omschrijving': self.iot.informatieobjecttypeomschrijving,
                'creatiedatum': today,
                'ontvangstdatum': today,
                'titel': 'To be Everywhere {}'.format(int(time.time())),
                'beschrijving': '2016 album',
                'formaat': 'CD',
                'taal': 'Engels',
                'versie': '1',
                'status': 'Gepubliceerd',
                'verzenddatum': today,
                'vertrouwelijkAanduiding': 'OPENBAAR',
                'auteur': 'Thrice',
                # 'link': ''
                'inhoud': inhoud,
                # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                #     beginGeldigheid=today,
                # ),
                # 'tijdstipRegistratie': '',
                # 'extraElementend': None,
                'isRelevantVoor': [zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                    entiteittype='EDCZAK',
                    verwerkingssoort='T',
                    gerelateerde=zkn_factory['VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving'](
                        entiteittype='ZAK',
                        verwerkingssoort='I',
                        identificatie=self.zaak.zaakidentificatie,
                        omschrijving=self.zaak.omschrijving,
                        # isVan=None
                    ),
                    # titel
                    # beschrijving
                    # registratiedatum
                    # stt.volgnummer
                    # stt.omschrijving
                    # sta.datumStatusGezet
                    # tijdvakRelatie
                    # tijdvakGeldigheid
                    # tijdstipRegistratie
                    # extraElementen
                )]
            })
        )
예제 #12
0
    def test_create(self):
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)

        status = StatusFactory.create(indicatie_laatst_gezette_status=JaNee.ja)
        zaak = status.zaak
        zio = ZaakInformatieObjectFactory.create(zaak=zaak, status=status)
        edc = zio.informatieobject
        bst = BesluitTypeFactory.create(besluittypeomschrijving='omschrijving')

        today = time.strftime('%Y%m%d')

        self.assertEquals(Besluit.objects.all().count(), 0)

        zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': 'Support',
            'gebruiker': '*****@*****.**',
        }

        response = client.service.voegBesluitToe_Di01(
            stuurgegevens=stuf_factory['Di01-Stuurgegevens-vbt'](
                berichtcode='Di01',
                zender=zender,
                ontvanger=settings.ZAAKMAGAZIJN_SYSTEEM,
                referentienummer='1234',
                tijdstipBericht=stuf_datetime.now(),
                functie='voegBesluitToe',
            ),
            object=zkn_factory['VoegBesluitToe_object']
            (besluit=zkn_factory['VoegBesluitToe-BSL-kennisgeving'](**{
                'entiteittype':
                'BSL',
                'verwerkingssoort':
                'T',
                'identificatie':
                '12345ABC',
                'bst.omschrijving':
                bst.besluittypeomschrijving,
                'datumBeslissing':
                today,
                'ingangsdatumWerking':
                today,
                'tijdvakGeldigheid':
                stuf_factory.TijdvakGeldigheid(beginGeldigheid=today, ),
                'isVastgelegdIn':
                zkn_factory['VoegBesluitToe-BSLEDC-kennisgeving'](
                    entiteittype='BSLEDC',
                    verwerkingssoort='T',
                    gerelateerde=zkn_factory[
                        'VoegBesluitToe-EDC-kerngegevensKennisgeving'](
                            entiteittype='EDC',
                            verwerkingssoort='I',
                            identificatie=edc.informatieobjectidentificatie))
            }),
             zaak=zkn_factory['VoegBesluitToe_ZAK-kerngegevensKennisgeving'](
                 entiteittype='ZAK',
                 verwerkingssoort='I',
                 identificatie=zaak.zaakidentificatie,
             )))
        self.assertEquals(zaak.besluit_set.count(), 1)

        besluit = zaak.besluit_set.get()
        self.assertEquals(besluit.besluitidentificatie, '12345ABC')
        self.assertEquals(besluit.ingangsdatum, today)
        self.assertEquals(besluit.besluittype, bst)
        self.assertEquals(besluit.informatieobject.get(),
                          edc.informatieobject_ptr)
    def test_create(self):
        client = self._get_client('OntvangAsynchroon')
        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(client)

        status = StatusFactory.create(indicatie_laatst_gezette_status=JaNee.ja)
        zaak = status.zaak
        zio = ZaakInformatieObjectFactory.create(zaak=zaak, status=status)
        edc = zio.informatieobject
        bst = BesluitTypeFactory.create(besluittypeomschrijving='omschrijving')

        today = time.strftime('%Y%m%d')

        self.assertEquals(Besluit.objects.all().count(), 0)

        zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': 'Support',
            'gebruiker': '*****@*****.**',
        }

        response = client.service.voegBesluitToe_Di01(
            stuurgegevens=stuf_factory['Di01-Stuurgegevens-vbt'](
                berichtcode='Di01',
                zender=zender,
                ontvanger=settings.ZAAKMAGAZIJN_SYSTEEM,
                referentienummer='1234',
                tijdstipBericht=stuf_datetime.now(),
                functie='voegBesluitToe',
            ),
            object=zkn_factory['VoegBesluitToe_object'](
                besluit=zkn_factory['VoegBesluitToe-BSL-kennisgeving'](**{
                    'entiteittype': 'BSL',
                    'verwerkingssoort': 'T',
                    'identificatie': '12345ABC',
                    'bst.omschrijving': bst.besluittypeomschrijving,
                    'datumBeslissing': today,
                    'ingangsdatumWerking': today,
                    'tijdvakGeldigheid': stuf_factory.TijdvakGeldigheid(
                        beginGeldigheid=today,
                    ),
                    'isVastgelegdIn': zkn_factory['VoegBesluitToe-BSLEDC-kennisgeving'](
                        entiteittype='BSLEDC',
                        verwerkingssoort='T',
                        gerelateerde=zkn_factory['VoegBesluitToe-EDC-kerngegevensKennisgeving'](
                            entiteittype='EDC',
                            verwerkingssoort='I',
                            identificatie=edc.informatieobjectidentificatie
                        )
                    )
                }),
                zaak=zkn_factory['VoegBesluitToe_ZAK-kerngegevensKennisgeving'](
                    entiteittype='ZAK',
                    verwerkingssoort='I',
                    identificatie=zaak.zaakidentificatie,
                )
            )
        )
        self.assertEquals(zaak.besluit_set.count(), 1)

        besluit = zaak.besluit_set.get()
        self.assertEquals(besluit.besluitidentificatie, '12345ABC')
        self.assertEquals(besluit.ingangsdatum, today)
        self.assertEquals(besluit.besluittype, bst)
        self.assertEquals(besluit.informatieobject.get(), edc.informatieobject_ptr)