bridgelist 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1170 +1,1170 @@
1
-
2
- <!DOCTYPE html>
3
- <html lang="en">
4
- <head>
5
- <title>bridgelist</title>
6
- <style>
7
- * {
8
- margin: 0;
9
- padding: 0;
10
- box-sizing: border-box;
11
- }
12
- h1 {
13
- margin-bottom: 2rem;
14
- }
15
- h3, p {
16
- margin-bottom: 1rem;
17
- }
18
- body {
19
- font-family: Roboto, Helvetica, sans-serif;
20
- padding: 2rem;
21
- }
22
- .mapping-container {
23
- width: 100%;
24
- display: flex;
25
- flex-direction: column;
26
- align-items: flex-start;
27
- border: 1px solid #ddd;
28
- border-radius: 5px;
29
- padding: 1rem;
30
- margin: 1rem 0;
31
- }
32
- table {
33
- border-collapse: collapse;
34
- width: 100%;
35
- margin: 1rem 0;
36
- }
37
- th, td {
38
- border: 1px solid #ddd;
39
- padding: 8px;
40
- }
41
- th {
42
- background-color: #f2f2f2;
43
- text-align: left;
44
- }
45
- .arrow {
46
- color: #666;
47
- }
48
- .hidden {
49
- display: none;
50
- }
51
- .show-hide-mapping {
52
- cursor: pointer;
53
- padding: 1rem;
54
- width: 100%;
55
- background-color: #7ac29d44;
56
- display: flex;
57
- justify-content: flex-start;
58
- gap: 1rem;
59
- align-items: center;
60
- user-select: none;
61
- }
62
- .collapse {
63
- width: 24px;
64
- height: 24px;
65
- border: 1px solid #000;
66
- border-radius: 50%;
67
- display: flex;
68
- justify-content: center;
69
- align-items: center;
70
- pointer-events: none;
71
- }
72
- .rotate {
73
- transform: rotate(180deg);
74
- }
75
- input[type="text"] {
76
- padding: 0.5rem;
77
- }
78
- .header {
79
- position: fixed;
80
- top: 0;
81
- left: 0;
82
- display: flex;
83
- justify-content: space-between;
84
- align-items: center;
85
- height: 5rem;
86
- padding: 1rem 2rem;
87
- background-color: #c2e5da;
88
- width: 100%;
89
- z-index: 100;
90
- }
91
- .container {
92
- margin-top: 7rem;
93
- }
94
- .constant-value {
95
- background-color: #f9dcbe44;
96
- }
97
- .transformed-value {
98
- background-color: #dae6e366;
99
- }
100
- .styled-text {
101
- font-size: 1.2rem;
102
- font-weight: lighter;
103
- }
104
- .class-method {
105
- width: 100%;
106
- display: flex;
107
- justify-content: space-between;
108
- align-items: center;
109
- }
110
- .class-method-col {
111
- width: 33%;
112
- display: flex;
113
- flex-direction: column;
114
- }
115
- @media (max-width: 1024px) {
116
- .last {
117
- display: none;
118
- }
119
- }
120
- </style>
121
- </head>
122
- <body>
123
- <div class="header">
124
- <h1 style="margin: 0; flex: 1">bridgelist</h1>
125
- <input style="flex: 1;" type="text" id="searchInput" name="search" size="30" placeholder="Search for method or class..." />
126
- <div style="flex: 1"></div>
127
- </div>
128
- <div class="container">
129
-
130
-
131
- <div class="mapping-container">
132
- <div class="class-method">
133
- <div class="class-method-col">
134
- <span class="styled-text">Class:</span><h3>ComplexMapper</h3>
135
- </div>
136
- <div class="class-method-col">
137
- <span class="styled-text"> Method:</span><h3>mapContactToCustomer</h3>
138
- </div>
139
- <div class="class-method-col last">
140
- </div>
141
- </div>
142
- <p>Converts CRM contacts to ERP customers</p>
143
- <div class="show-hide-mapping">
144
- <div class="collapse">
145
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
146
- <g id="Arrow / Caret_Down_MD">
147
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
148
- </g>
149
- </svg>
150
- </div>
151
- <span>Mapping from <strong>CRM</strong> to <strong>ERP</strong></span>
152
- </div>
153
- <table class="mapping-table hidden">
154
- <tr>
155
- <th>CRM Field</th>
156
- <th></th>
157
- <th>ERP Field</th>
158
- <th>Transformation</th>
159
- </tr>
160
-
161
- <tr>
162
- <td>contact.id</td>
163
- <td class="arrow">&rarr;</td>
164
- <td>customerId</td>
165
- <td>Direct mapping</td>
166
- </tr>
167
-
168
- <tr>
169
- <td>contact.firstName, contact.lastName</td>
170
- <td class="arrow">&rarr;</td>
171
- <td>fullName</td>
172
- <td>Expression</td>
173
- </tr>
174
-
175
- <tr>
176
- <td>contact.address.streetName</td>
177
- <td class="arrow">&rarr;</td>
178
- <td>street</td>
179
- <td>Direct mapping</td>
180
- </tr>
181
-
182
- <tr>
183
- <td>contact.address.city</td>
184
- <td class="arrow">&rarr;</td>
185
- <td>city</td>
186
- <td>Direct mapping</td>
187
- </tr>
188
-
189
- <tr>
190
- <td>Constant value</td>
191
- <td class="arrow">&rarr;</td>
192
- <td>country</td>
193
- <td>defaultCountry</td>
194
- </tr>
195
- </table>
196
- </div>
197
- </div>
198
-
199
- <div class="mapping-container">
200
- <div class="class-method">
201
- <div class="class-method-col">
202
- <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
203
- </div>
204
- <div class="class-method-col">
205
- <span class="styled-text"> Method:</span><h3>parseCustomerToContact</h3>
206
- </div>
207
- <div class="class-method-col last">
208
- </div>
209
- </div>
210
- <p>Sanivision REST customer to Hubspot contact</p>
211
- <div class="show-hide-mapping">
212
- <div class="collapse">
213
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
214
- <g id="Arrow / Caret_Down_MD">
215
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
216
- </g>
217
- </svg>
218
- </div>
219
- <span>Mapping from <strong>Sanivision</strong> to <strong>hubspot</strong></span>
220
- </div>
221
- <table class="mapping-table hidden">
222
- <tr>
223
- <th>Sanivision Field</th>
224
- <th></th>
225
- <th>hubspot Field</th>
226
- <th>Transformation</th>
227
- </tr>
228
-
229
- <tr>
230
- <td>customer.kundennummer</td>
231
- <td class="arrow">&rarr;</td>
232
- <td>kundennummer</td>
233
- <td>customer.kundennummer.toString</td>
234
- </tr>
235
-
236
- <tr>
237
- <td>customer.name1</td>
238
- <td class="arrow">&rarr;</td>
239
- <td>firstname</td>
240
- <td>Direct mapping</td>
241
- </tr>
242
-
243
- <tr>
244
- <td>customer.name2</td>
245
- <td class="arrow">&rarr;</td>
246
- <td>lastname</td>
247
- <td>Direct mapping</td>
248
- </tr>
249
-
250
- <tr>
251
- <td>customer.name3</td>
252
- <td class="arrow">&rarr;</td>
253
- <td>name3</td>
254
- <td>Direct mapping</td>
255
- </tr>
256
-
257
- <tr>
258
- <td>customer.strasse</td>
259
- <td class="arrow">&rarr;</td>
260
- <td>stra_e</td>
261
- <td>Direct mapping</td>
262
- </tr>
263
-
264
- <tr>
265
- <td>customer.ort</td>
266
- <td class="arrow">&rarr;</td>
267
- <td>ort</td>
268
- <td>Direct mapping</td>
269
- </tr>
270
-
271
- <tr>
272
- <td>customer.postleitzahl</td>
273
- <td class="arrow">&rarr;</td>
274
- <td>zip</td>
275
- <td>Direct mapping</td>
276
- </tr>
277
-
278
- <tr>
279
- <td>customer.telefon1</td>
280
- <td class="arrow">&rarr;</td>
281
- <td>phone</td>
282
- <td>this.parsePhoneNumber</td>
283
- </tr>
284
-
285
- <tr>
286
- <td>customer.email</td>
287
- <td class="arrow">&rarr;</td>
288
- <td>email</td>
289
- <td>this.validateEmail</td>
290
- </tr>
291
-
292
- <tr>
293
- <td>Constant value</td>
294
- <td class="arrow">&rarr;</td>
295
- <td>kundentyp</td>
296
- <td>'B2C'</td>
297
- </tr>
298
-
299
- <tr>
300
- <td>customer.kostentraegergruppeNr</td>
301
- <td class="arrow">&rarr;</td>
302
- <td>kostentrager</td>
303
- <td>(customer.kostentraegergruppeNr ?? '').toString</td>
304
- </tr>
305
-
306
- <tr>
307
- <td>Constant value</td>
308
- <td class="arrow">&rarr;</td>
309
- <td>kundenart</td>
310
- <td>'SIC'</td>
311
- </tr>
312
-
313
- <tr>
314
- <td>customer.geburtsdatum</td>
315
- <td class="arrow">&rarr;</td>
316
- <td>geburtsdatum__kunde_</td>
317
- <td>Expression</td>
318
- </tr>
319
-
320
- <tr>
321
- <td>Constant value</td>
322
- <td class="arrow">&rarr;</td>
323
- <td>herkunft_der_daten__erp_</td>
324
- <td>process.env.HERKUNFT_DER_DATEN ?? 'Sanivision REST'</td>
325
- </tr>
326
-
327
- <tr>
328
- <td>Constant value</td>
329
- <td class="arrow">&rarr;</td>
330
- <td>hubspotContact.associations</td>
331
- <td>[]</td>
332
- </tr>
333
- </table>
334
- </div>
335
- </div>
336
-
337
- <div class="mapping-container">
338
- <div class="class-method">
339
- <div class="class-method-col">
340
- <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
341
- </div>
342
- <div class="class-method-col">
343
- <span class="styled-text"> Method:</span><h3>parseContactToCustomer</h3>
344
- </div>
345
- <div class="class-method-col last">
346
- </div>
347
- </div>
348
- <p>Hubspot contact to Sanivision REST customer</p>
349
- <div class="show-hide-mapping">
350
- <div class="collapse">
351
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
352
- <g id="Arrow / Caret_Down_MD">
353
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
354
- </g>
355
- </svg>
356
- </div>
357
- <span>Mapping from <strong>hubspot</strong> to <strong>Sanivision</strong></span>
358
- </div>
359
- <table class="mapping-table hidden">
360
- <tr>
361
- <th>hubspot Field</th>
362
- <th></th>
363
- <th>Sanivision Field</th>
364
- <th>Transformation</th>
365
- </tr>
366
-
367
- <tr>
368
- <td>hubspotContact.properties.zustaendige_filiale</td>
369
- <td class="arrow">&rarr;</td>
370
- <td>customer.filialenummer</td>
371
- <td>Direct mapping</td>
372
- </tr>
373
-
374
- <tr>
375
- <td>hubspotContact.properties.firstname</td>
376
- <td class="arrow">&rarr;</td>
377
- <td>customer.name1</td>
378
- <td>Direct mapping</td>
379
- </tr>
380
-
381
- <tr>
382
- <td>hubspotContact.properties.lastname</td>
383
- <td class="arrow">&rarr;</td>
384
- <td>customer.name2</td>
385
- <td>Direct mapping</td>
386
- </tr>
387
-
388
- <tr>
389
- <td>hubspotContact.properties.name3</td>
390
- <td class="arrow">&rarr;</td>
391
- <td>customer.name3</td>
392
- <td>Direct mapping</td>
393
- </tr>
394
-
395
- <tr>
396
- <td>hubspotContact.properties.stra_e</td>
397
- <td class="arrow">&rarr;</td>
398
- <td>customer.strasse</td>
399
- <td>Direct mapping</td>
400
- </tr>
401
-
402
- <tr>
403
- <td>hubspotContact.properties.zip</td>
404
- <td class="arrow">&rarr;</td>
405
- <td>customer.postleitzahl</td>
406
- <td>Direct mapping</td>
407
- </tr>
408
-
409
- <tr>
410
- <td>hubspotContact.properties.postfach</td>
411
- <td class="arrow">&rarr;</td>
412
- <td>customer.postfach</td>
413
- <td>Direct mapping</td>
414
- </tr>
415
-
416
- <tr>
417
- <td>hubspotContact.properties.plz___postfach</td>
418
- <td class="arrow">&rarr;</td>
419
- <td>customer.postleitzahlPostfach</td>
420
- <td>Direct mapping</td>
421
- </tr>
422
-
423
- <tr>
424
- <td>hubspotContact.properties.ort</td>
425
- <td class="arrow">&rarr;</td>
426
- <td>customer.ort</td>
427
- <td>Direct mapping</td>
428
- </tr>
429
-
430
- <tr>
431
- <td>hubspotContact.properties.phone</td>
432
- <td class="arrow">&rarr;</td>
433
- <td>customer.telefon1</td>
434
- <td>Direct mapping</td>
435
- </tr>
436
-
437
- <tr>
438
- <td>hubspotContact.properties.telefonnummer_2</td>
439
- <td class="arrow">&rarr;</td>
440
- <td>customer.telefon2</td>
441
- <td>Direct mapping</td>
442
- </tr>
443
-
444
- <tr>
445
- <td>hubspotContact.properties.email</td>
446
- <td class="arrow">&rarr;</td>
447
- <td>customer.email</td>
448
- <td>Direct mapping</td>
449
- </tr>
450
-
451
- <tr>
452
- <td>hubspotContact.properties</td>
453
- <td class="arrow">&rarr;</td>
454
- <td>customer.geburtsdatum</td>
455
- <td>this.parseDateString</td>
456
- </tr>
457
-
458
- <tr>
459
- <td>hubspotContact.properties.krankenkassekostentrager</td>
460
- <td class="arrow">&rarr;</td>
461
- <td>kostentraegerNr</td>
462
- <td>Direct mapping</td>
463
- </tr>
464
-
465
- <tr>
466
- <td>hubspotContact.properties.versichertennummer</td>
467
- <td class="arrow">&rarr;</td>
468
- <td>versichertenNr</td>
469
- <td>Direct mapping</td>
470
- </tr>
471
-
472
- <tr>
473
- <td>hubspotContact.properties.pflegegrad</td>
474
- <td class="arrow">&rarr;</td>
475
- <td>customer.pflegegrad</td>
476
- <td>Direct mapping</td>
477
- </tr>
478
-
479
- <tr>
480
- <td>hubspotContact.properties.fibu_kto</td>
481
- <td class="arrow">&rarr;</td>
482
- <td>customer.fiBuKonto</td>
483
- <td>Direct mapping</td>
484
- </tr>
485
-
486
- <tr>
487
- <td>hubspotContact.properties.zuzahlungsbefreit__ja_nein_</td>
488
- <td class="arrow">&rarr;</td>
489
- <td>befreit</td>
490
- <td>Direct mapping</td>
491
- </tr>
492
-
493
- <tr>
494
- <td>Constant value</td>
495
- <td class="arrow">&rarr;</td>
496
- <td>von</td>
497
- <td>''</td>
498
- </tr>
499
-
500
- <tr>
501
- <td>hubspotContact.properties</td>
502
- <td class="arrow">&rarr;</td>
503
- <td>bis</td>
504
- <td>this.parseDateString</td>
505
- </tr>
506
-
507
- <tr>
508
- <td>hubspotContact.properties</td>
509
- <td class="arrow">&rarr;</td>
510
- <td>customer.sterbedatum</td>
511
- <td>this.parseDateString</td>
512
- </tr>
513
-
514
- <tr>
515
- <td>hubspotContact.properties.zustaendiger_bearbeiter</td>
516
- <td class="arrow">&rarr;</td>
517
- <td>customer.zustaendigerMitarbeiterNr</td>
518
- <td>Direct mapping</td>
519
- </tr>
520
-
521
- <tr>
522
- <td>hubspotContact.properties.iban</td>
523
- <td class="arrow">&rarr;</td>
524
- <td>iban</td>
525
- <td>Direct mapping</td>
526
- </tr>
527
-
528
- <tr>
529
- <td>Constant value</td>
530
- <td class="arrow">&rarr;</td>
531
- <td>bicswift</td>
532
- <td>''</td>
533
- </tr>
534
-
535
- <tr>
536
- <td>hubspotContact.properties</td>
537
- <td class="arrow">&rarr;</td>
538
- <td>customer.datenschutzerklaerung</td>
539
- <td>Expression</td>
540
- </tr>
541
- </table>
542
- </div>
543
- </div>
544
-
545
- <div class="mapping-container">
546
- <div class="class-method">
547
- <div class="class-method-col">
548
- <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
549
- </div>
550
- <div class="class-method-col">
551
- <span class="styled-text"> Method:</span><h3>parseContactToCustomer2</h3>
552
- </div>
553
- <div class="class-method-col last">
554
- </div>
555
- </div>
556
- <p>Hubspot contact to Sanivision REST customer</p>
557
- <div class="show-hide-mapping">
558
- <div class="collapse">
559
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
560
- <g id="Arrow / Caret_Down_MD">
561
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
562
- </g>
563
- </svg>
564
- </div>
565
- <span>Mapping from <strong>hubspot</strong> to <strong>Sanivision</strong></span>
566
- </div>
567
- <table class="mapping-table hidden">
568
- <tr>
569
- <th>hubspot Field</th>
570
- <th></th>
571
- <th>Sanivision Field</th>
572
- <th>Transformation</th>
573
- </tr>
574
-
575
- <tr>
576
- <td>hubspotContact.properties.firstname</td>
577
- <td class="arrow">&rarr;</td>
578
- <td>customer.name1</td>
579
- <td>Direct mapping</td>
580
- </tr>
581
-
582
- <tr>
583
- <td>hubspotContact.properties.lastname</td>
584
- <td class="arrow">&rarr;</td>
585
- <td>customer.name2</td>
586
- <td>Direct mapping</td>
587
- </tr>
588
-
589
- <tr>
590
- <td>hubspotContact.properties.name3</td>
591
- <td class="arrow">&rarr;</td>
592
- <td>customer.name3</td>
593
- <td>Direct mapping</td>
594
- </tr>
595
-
596
- <tr>
597
- <td>hubspotContact.properties.name4</td>
598
- <td class="arrow">&rarr;</td>
599
- <td>customer.name4</td>
600
- <td>Direct mapping</td>
601
- </tr>
602
-
603
- <tr>
604
- <td>hubspotContact.properties.kurzname</td>
605
- <td class="arrow">&rarr;</td>
606
- <td>customer.kurzname</td>
607
- <td>Direct mapping</td>
608
- </tr>
609
-
610
- <tr>
611
- <td>hubspotContact.properties.stra_e</td>
612
- <td class="arrow">&rarr;</td>
613
- <td>customer.strasse</td>
614
- <td>Direct mapping</td>
615
- </tr>
616
-
617
- <tr>
618
- <td>hubspotContact.properties.zip</td>
619
- <td class="arrow">&rarr;</td>
620
- <td>customer.postleitzahl</td>
621
- <td>Direct mapping</td>
622
- </tr>
623
-
624
- <tr>
625
- <td>hubspotContact.properties.postfach</td>
626
- <td class="arrow">&rarr;</td>
627
- <td>customer.postfach</td>
628
- <td>Direct mapping</td>
629
- </tr>
630
-
631
- <tr>
632
- <td>hubspotContact.properties.plz___postfach</td>
633
- <td class="arrow">&rarr;</td>
634
- <td>customer.postleitzahlPostfach</td>
635
- <td>Direct mapping</td>
636
- </tr>
637
-
638
- <tr>
639
- <td>hubspotContact.properties.laenderkennzeichen</td>
640
- <td class="arrow">&rarr;</td>
641
- <td>customer.laenderkennzeichen</td>
642
- <td>Direct mapping</td>
643
- </tr>
644
-
645
- <tr>
646
- <td>hubspotContact.properties.ort</td>
647
- <td class="arrow">&rarr;</td>
648
- <td>customer.ort</td>
649
- <td>Direct mapping</td>
650
- </tr>
651
-
652
- <tr>
653
- <td>hubspotContact.properties.ortsteil</td>
654
- <td class="arrow">&rarr;</td>
655
- <td>customer.ortsteil</td>
656
- <td>Direct mapping</td>
657
- </tr>
658
-
659
- <tr>
660
- <td>hubspotContact.properties.phone</td>
661
- <td class="arrow">&rarr;</td>
662
- <td>customer.telefon1</td>
663
- <td>Direct mapping</td>
664
- </tr>
665
-
666
- <tr>
667
- <td>hubspotContact.properties.telefonnummer_2</td>
668
- <td class="arrow">&rarr;</td>
669
- <td>customer.telefon2</td>
670
- <td>Direct mapping</td>
671
- </tr>
672
-
673
- <tr>
674
- <td>hubspotContact.properties.telefax</td>
675
- <td class="arrow">&rarr;</td>
676
- <td>customer.telefax</td>
677
- <td>Direct mapping</td>
678
- </tr>
679
-
680
- <tr>
681
- <td>hubspotContact.properties.http</td>
682
- <td class="arrow">&rarr;</td>
683
- <td>customer.http</td>
684
- <td>Direct mapping</td>
685
- </tr>
686
-
687
- <tr>
688
- <td>hubspotContact.properties.status</td>
689
- <td class="arrow">&rarr;</td>
690
- <td>customer.status</td>
691
- <td>Direct mapping</td>
692
- </tr>
693
-
694
- <tr>
695
- <td>hubspotContact.properties.email</td>
696
- <td class="arrow">&rarr;</td>
697
- <td>customer.email</td>
698
- <td>Direct mapping</td>
699
- </tr>
700
- </table>
701
- </div>
702
- </div>
703
-
704
- <div class="mapping-container">
705
- <div class="class-method">
706
- <div class="class-method-col">
707
- <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
708
- </div>
709
- <div class="class-method-col">
710
- <span class="styled-text"> Method:</span><h3>parseHubspotContactToPrescriber</h3>
711
- </div>
712
- <div class="class-method-col last">
713
- </div>
714
- </div>
715
- <p>Konvertiert Hubspot Kontakte zu Acriba Verordner</p>
716
- <div class="show-hide-mapping">
717
- <div class="collapse">
718
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
719
- <g id="Arrow / Caret_Down_MD">
720
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
721
- </g>
722
- </svg>
723
- </div>
724
- <span>Mapping from <strong>Hubspot</strong> to <strong>Acriba</strong></span>
725
- </div>
726
- <table class="mapping-table hidden">
727
- <tr>
728
- <th>Hubspot Field</th>
729
- <th></th>
730
- <th>Acriba Field</th>
731
- <th>Transformation</th>
732
- </tr>
733
-
734
- <tr>
735
- <td>hubspotContact.properties['prescriber_la_nummer'], hubspotContact.properties</td>
736
- <td class="arrow">&rarr;</td>
737
- <td>prescriber.laNummer</td>
738
- <td>Expression</td>
739
- </tr>
740
-
741
- <tr>
742
- <td>hubspotContact.properties['prescriber_bs_nummer'], hubspotContact.properties</td>
743
- <td class="arrow">&rarr;</td>
744
- <td>prescriber.bsNummer</td>
745
- <td>Expression</td>
746
- </tr>
747
-
748
- <tr>
749
- <td>hubspotContact.properties['prescriber_ik_nummer'], hubspotContact.properties</td>
750
- <td class="arrow">&rarr;</td>
751
- <td>prescriber.ikNummer</td>
752
- <td>Expression</td>
753
- </tr>
754
-
755
- <tr>
756
- <td>hubspotContact.properties['prescriber_matchcode'], hubspotContact.properties</td>
757
- <td class="arrow">&rarr;</td>
758
- <td>prescriber.matchcode</td>
759
- <td>Expression</td>
760
- </tr>
761
-
762
- <tr>
763
- <td>hubspotContact.properties['titel'], hubspotContact.properties</td>
764
- <td class="arrow">&rarr;</td>
765
- <td>prescriber.titel</td>
766
- <td>Expression</td>
767
- </tr>
768
-
769
- <tr>
770
- <td>hubspotContact.properties['salutation'], hubspotContact.properties</td>
771
- <td class="arrow">&rarr;</td>
772
- <td>prescriber.anrede</td>
773
- <td>Expression</td>
774
- </tr>
775
-
776
- <tr>
777
- <td>hubspotContact.properties['firstname'], hubspotContact.properties</td>
778
- <td class="arrow">&rarr;</td>
779
- <td>prescriber.name1</td>
780
- <td>Expression</td>
781
- </tr>
782
-
783
- <tr>
784
- <td>hubspotContact.properties['lastname'], hubspotContact.properties</td>
785
- <td class="arrow">&rarr;</td>
786
- <td>prescriber.name2</td>
787
- <td>Expression</td>
788
- </tr>
789
-
790
- <tr>
791
- <td>hubspotContact.properties['name3'], hubspotContact.properties</td>
792
- <td class="arrow">&rarr;</td>
793
- <td>prescriber.name3</td>
794
- <td>Expression</td>
795
- </tr>
796
-
797
- <tr>
798
- <td>hubspotContact.properties['stra_e'], hubspotContact.properties</td>
799
- <td class="arrow">&rarr;</td>
800
- <td>prescriber.strasse</td>
801
- <td>Expression</td>
802
- </tr>
803
-
804
- <tr>
805
- <td>hubspotContact.properties['zusatz'], hubspotContact.properties</td>
806
- <td class="arrow">&rarr;</td>
807
- <td>prescriber.zusatz</td>
808
- <td>Expression</td>
809
- </tr>
810
-
811
- <tr>
812
- <td>hubspotContact.properties['laenderkennzeichen'], hubspotContact.properties</td>
813
- <td class="arrow">&rarr;</td>
814
- <td>prescriber.laenderkennzeichen</td>
815
- <td>Expression</td>
816
- </tr>
817
-
818
- <tr>
819
- <td>hubspotContact.properties['zip'], hubspotContact.properties</td>
820
- <td class="arrow">&rarr;</td>
821
- <td>prescriber.plz</td>
822
- <td>Expression</td>
823
- </tr>
824
-
825
- <tr>
826
- <td>hubspotContact.properties['ort'], hubspotContact.properties</td>
827
- <td class="arrow">&rarr;</td>
828
- <td>prescriber.ort</td>
829
- <td>Expression</td>
830
- </tr>
831
-
832
- <tr>
833
- <td>hubspotContact.properties['phone'], hubspotContact.properties</td>
834
- <td class="arrow">&rarr;</td>
835
- <td>prescriber.telefon1</td>
836
- <td>Expression</td>
837
- </tr>
838
-
839
- <tr>
840
- <td>hubspotContact.properties['telefonnummer_2'], hubspotContact.properties</td>
841
- <td class="arrow">&rarr;</td>
842
- <td>prescriber.telefon2</td>
843
- <td>Expression</td>
844
- </tr>
845
-
846
- <tr>
847
- <td>hubspotContact.properties['mobilephone'], hubspotContact.properties</td>
848
- <td class="arrow">&rarr;</td>
849
- <td>prescriber.telefon3</td>
850
- <td>Expression</td>
851
- </tr>
852
-
853
- <tr>
854
- <td>hubspotContact.properties['telefonnummer_4'], hubspotContact.properties</td>
855
- <td class="arrow">&rarr;</td>
856
- <td>prescriber.telefon4</td>
857
- <td>Expression</td>
858
- </tr>
859
-
860
- <tr>
861
- <td>hubspotContact.properties['fax'], hubspotContact.properties</td>
862
- <td class="arrow">&rarr;</td>
863
- <td>prescriber.telefax</td>
864
- <td>Expression</td>
865
- </tr>
866
-
867
- <tr>
868
- <td>hubspotContact.properties['homepage'], hubspotContact.properties</td>
869
- <td class="arrow">&rarr;</td>
870
- <td>prescriber.homepage</td>
871
- <td>Expression</td>
872
- </tr>
873
-
874
- <tr>
875
- <td>hubspotContact.properties['warnhinweis'], hubspotContact.properties</td>
876
- <td class="arrow">&rarr;</td>
877
- <td>prescriber.warnhinweis</td>
878
- <td>Expression</td>
879
- </tr>
880
-
881
- <tr>
882
- <td>hubspotContact.properties['fibu_kto'], hubspotContact.properties</td>
883
- <td class="arrow">&rarr;</td>
884
- <td>prescriber.fibukonto</td>
885
- <td>Expression</td>
886
- </tr>
887
-
888
- <tr>
889
- <td>hubspotContact.properties['datenschutz_einwilligung__ja_nein_'], hubspotContact.properties</td>
890
- <td class="arrow">&rarr;</td>
891
- <td>prescriber.dsErklaerungVorhanden</td>
892
- <td>Expression</td>
893
- </tr>
894
-
895
- <tr>
896
- <td>hubspotContact.properties</td>
897
- <td class="arrow">&rarr;</td>
898
- <td>prescriber.zustaendigeFiliale</td>
899
- <td>this.parseIntWithZeroDefault</td>
900
- </tr>
901
-
902
- <tr>
903
- <td>hubspotContact.properties</td>
904
- <td class="arrow">&rarr;</td>
905
- <td>prescriber.zustaendigeAbteilung</td>
906
- <td>this.parseIntWithZeroDefault</td>
907
- </tr>
908
-
909
- <tr>
910
- <td>hubspotContact.properties</td>
911
- <td class="arrow">&rarr;</td>
912
- <td>prescriber.zustaendigerBearbeiter</td>
913
- <td>this.parseIntWithZeroDefault</td>
914
- </tr>
915
-
916
- <tr>
917
- <td>hubspotContact.properties</td>
918
- <td class="arrow">&rarr;</td>
919
- <td>prescriber.zustaendigerAussendienst</td>
920
- <td>this.parseIntWithZeroDefault</td>
921
- </tr>
922
-
923
- <tr>
924
- <td>hubspotContact.properties</td>
925
- <td class="arrow">&rarr;</td>
926
- <td>prescriber.zahlungsbedingungId</td>
927
- <td>this.parseIntWithZeroDefault</td>
928
- </tr>
929
- </table>
930
- </div>
931
- </div>
932
-
933
- <div class="mapping-container">
934
- <div class="class-method">
935
- <div class="class-method-col">
936
- <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
937
- </div>
938
- <div class="class-method-col">
939
- <span class="styled-text"> Method:</span><h3>parseHubspotContactToContactPerson</h3>
940
- </div>
941
- <div class="class-method-col last">
942
- </div>
943
- </div>
944
- <p>Konvertiert Hubspot Kontakt zu Acriba Ansprechpartner</p>
945
- <div class="show-hide-mapping">
946
- <div class="collapse">
947
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
948
- <g id="Arrow / Caret_Down_MD">
949
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
950
- </g>
951
- </svg>
952
- </div>
953
- <span>Mapping from <strong>Hubspot</strong> to <strong>Acriba</strong></span>
954
- </div>
955
- <table class="mapping-table hidden">
956
- <tr>
957
- <th>Hubspot Field</th>
958
- <th></th>
959
- <th>Acriba Field</th>
960
- <th>Transformation</th>
961
- </tr>
962
-
963
- <tr>
964
- <td>hubspotContact.properties['ansprechpartner_erp_id'], hubspotContact.properties</td>
965
- <td class="arrow">&rarr;</td>
966
- <td>apid</td>
967
- <td>this.toNumberIfNotNullish</td>
968
- </tr>
969
-
970
- <tr>
971
- <td>hubspotContact.properties[ process.env.HUBSPOT_ID_FIELD ?? 'erp_id__kontakt_'], hubspotContact.properties</td>
972
- <td class="arrow">&rarr;</td>
973
- <td>stammID</td>
974
- <td>this.toNumberIfNotNullish</td>
975
- </tr>
976
-
977
- <tr>
978
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'vorname']</td>
979
- <td class="arrow">&rarr;</td>
980
- <td>vorname</td>
981
- <td>Dynamic property mapping</td>
982
- </tr>
983
-
984
- <tr>
985
- <td>hubspotContact.properties[hubspotContact.prefix + 'nachname'], hubspotContact.properties, hubspotContact.prefix</td>
986
- <td class="arrow">&rarr;</td>
987
- <td>nachname</td>
988
- <td>Expression</td>
989
- </tr>
990
-
991
- <tr>
992
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'telefonnummer']</td>
993
- <td class="arrow">&rarr;</td>
994
- <td>telefon</td>
995
- <td>Dynamic property mapping</td>
996
- </tr>
997
-
998
- <tr>
999
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'telefonnummer2']</td>
1000
- <td class="arrow">&rarr;</td>
1001
- <td>telefon2</td>
1002
- <td>Dynamic property mapping</td>
1003
- </tr>
1004
-
1005
- <tr>
1006
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'e_mail']</td>
1007
- <td class="arrow">&rarr;</td>
1008
- <td>eMail</td>
1009
- <td>Dynamic property mapping</td>
1010
- </tr>
1011
-
1012
- <tr>
1013
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'stra_e__hausnummer']</td>
1014
- <td class="arrow">&rarr;</td>
1015
- <td>strasse</td>
1016
- <td>Dynamic property mapping</td>
1017
- </tr>
1018
-
1019
- <tr>
1020
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'postleitzahl']</td>
1021
- <td class="arrow">&rarr;</td>
1022
- <td>plz</td>
1023
- <td>Dynamic property mapping</td>
1024
- </tr>
1025
-
1026
- <tr>
1027
- <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'stadt']</td>
1028
- <td class="arrow">&rarr;</td>
1029
- <td>ort</td>
1030
- <td>Dynamic property mapping</td>
1031
- </tr>
1032
-
1033
- <tr>
1034
- <td>hubspotContact.prefix</td>
1035
- <td class="arrow">&rarr;</td>
1036
- <td>gesetzlicherBetreuer</td>
1037
- <td>Expression</td>
1038
- </tr>
1039
-
1040
- <tr>
1041
- <td>hubspotContact.prefix</td>
1042
- <td class="arrow">&rarr;</td>
1043
- <td>bemerkung</td>
1044
- <td>this.makePrefixReadable</td>
1045
- </tr>
1046
-
1047
- <tr>
1048
- <td>Constant value</td>
1049
- <td class="arrow">&rarr;</td>
1050
- <td>latitude</td>
1051
- <td>+latitude</td>
1052
- </tr>
1053
-
1054
- <tr>
1055
- <td>Constant value</td>
1056
- <td class="arrow">&rarr;</td>
1057
- <td>longitude</td>
1058
- <td>+longitude</td>
1059
- </tr>
1060
-
1061
- <tr>
1062
- <td>Constant value</td>
1063
- <td class="arrow">&rarr;</td>
1064
- <td>manuellGesetzt</td>
1065
- <td>true</td>
1066
- </tr>
1067
- </table>
1068
- </div>
1069
- </div>
1070
-
1071
- <div class="mapping-container">
1072
- <div class="class-method">
1073
- <div class="class-method-col">
1074
- <span class="styled-text">Class:</span><h3>SimpleMapper</h3>
1075
- </div>
1076
- <div class="class-method-col">
1077
- <span class="styled-text"> Method:</span><h3>mapAToB</h3>
1078
- </div>
1079
- <div class="class-method-col last">
1080
- </div>
1081
- </div>
1082
- <p>Simple mapping example</p>
1083
- <div class="show-hide-mapping">
1084
- <div class="collapse">
1085
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1086
- <g id="Arrow / Caret_Down_MD">
1087
- <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1088
- </g>
1089
- </svg>
1090
- </div>
1091
- <span>Mapping from <strong>System A</strong> to <strong>System B</strong></span>
1092
- </div>
1093
- <table class="mapping-table hidden">
1094
- <tr>
1095
- <th>System A Field</th>
1096
- <th></th>
1097
- <th>System B Field</th>
1098
- <th>Transformation</th>
1099
- </tr>
1100
-
1101
- <tr>
1102
- <td>sourceObject.id</td>
1103
- <td class="arrow">&rarr;</td>
1104
- <td>objectId</td>
1105
- <td>Direct mapping</td>
1106
- </tr>
1107
-
1108
- <tr>
1109
- <td>sourceObject.firstname</td>
1110
- <td class="arrow">&rarr;</td>
1111
- <td>name</td>
1112
- <td>Direct mapping</td>
1113
- </tr>
1114
-
1115
- <tr>
1116
- <td>sourceObject.details</td>
1117
- <td class="arrow">&rarr;</td>
1118
- <td>description</td>
1119
- <td>Direct mapping</td>
1120
- </tr>
1121
- </table>
1122
- </div>
1123
- </div>
1124
- <script>
1125
- const collapseButtons = document.querySelectorAll('.show-hide-mapping');
1126
- const mappingTables = document.querySelectorAll('.mapping-table');
1127
- const search = document.getElementById('searchInput');
1128
- const mappingContainers = document.querySelectorAll('.mapping-container');
1129
- const tableRows = document.querySelectorAll('tr');
1130
-
1131
- tableRows.forEach(row => {
1132
- const sourceField = row.cells[0].textContent;
1133
- const transformation = row.cells[3].textContent;
1134
- if (sourceField.includes('Constant value')) {
1135
- row.classList.add('constant-value');
1136
- } else if (transformation.includes('Transformed')) {
1137
- row.classList.add('transformed-value');
1138
- } else if (!sourceField.includes('Constant value') && !transformation.includes('Direct mapping')) {
1139
- row.classList.add('transformed-value');
1140
- }
1141
- });
1142
-
1143
- search.addEventListener('input', (e) => {
1144
- const searchTerm = e.target.value.toLowerCase();
1145
- mappingContainers.forEach(container => {
1146
- let classMethodName = '';
1147
- const names = container.querySelectorAll('h3');
1148
- names.forEach(name => {
1149
- classMethodName += name.textContent.toLowerCase();
1150
- })
1151
- console.log(classMethodName);
1152
- if (!classMethodName.includes(searchTerm)) {
1153
- container.style.display = 'none';
1154
- } else {
1155
- container.style.display = 'flex';
1156
- }
1157
- });
1158
- });
1159
-
1160
- collapseButtons.forEach(button => {
1161
- button.addEventListener('click', function() {
1162
- const table = button.nextElementSibling;
1163
- const caret = button.querySelector('.collapse');
1164
- table.classList.toggle('hidden');
1165
- caret.classList.toggle('rotate');
1166
- });
1167
- });
1168
- </script>
1169
- </body>
1170
- </html>
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <title>bridgelist</title>
6
+ <style>
7
+ * {
8
+ margin: 0;
9
+ padding: 0;
10
+ box-sizing: border-box;
11
+ }
12
+ h1 {
13
+ margin-bottom: 2rem;
14
+ }
15
+ h3, p {
16
+ margin-bottom: 1rem;
17
+ }
18
+ body {
19
+ font-family: Roboto, Helvetica, sans-serif;
20
+ padding: 2rem;
21
+ }
22
+ .mapping-container {
23
+ width: 100%;
24
+ display: flex;
25
+ flex-direction: column;
26
+ align-items: flex-start;
27
+ border: 1px solid #ddd;
28
+ border-radius: 5px;
29
+ padding: 1rem;
30
+ margin: 1rem 0;
31
+ }
32
+ table {
33
+ border-collapse: collapse;
34
+ width: 100%;
35
+ margin: 1rem 0;
36
+ }
37
+ th, td {
38
+ border: 1px solid #ddd;
39
+ padding: 8px;
40
+ }
41
+ th {
42
+ background-color: #f2f2f2;
43
+ text-align: left;
44
+ }
45
+ .arrow {
46
+ color: #666;
47
+ }
48
+ .hidden {
49
+ display: none;
50
+ }
51
+ .show-hide-mapping {
52
+ cursor: pointer;
53
+ padding: 1rem;
54
+ width: 100%;
55
+ background-color: #7ac29d44;
56
+ display: flex;
57
+ justify-content: flex-start;
58
+ gap: 1rem;
59
+ align-items: center;
60
+ user-select: none;
61
+ }
62
+ .collapse {
63
+ width: 24px;
64
+ height: 24px;
65
+ border: 1px solid #000;
66
+ border-radius: 50%;
67
+ display: flex;
68
+ justify-content: center;
69
+ align-items: center;
70
+ pointer-events: none;
71
+ }
72
+ .rotate {
73
+ transform: rotate(180deg);
74
+ }
75
+ input[type="text"] {
76
+ padding: 0.5rem;
77
+ }
78
+ .header {
79
+ position: fixed;
80
+ top: 0;
81
+ left: 0;
82
+ display: flex;
83
+ justify-content: space-between;
84
+ align-items: center;
85
+ height: 5rem;
86
+ padding: 1rem 2rem;
87
+ background-color: #c2e5da;
88
+ width: 100%;
89
+ z-index: 100;
90
+ }
91
+ .container {
92
+ margin-top: 7rem;
93
+ }
94
+ .constant-value {
95
+ background-color: #f9dcbe44;
96
+ }
97
+ .transformed-value {
98
+ background-color: #dae6e366;
99
+ }
100
+ .styled-text {
101
+ font-size: 1.2rem;
102
+ font-weight: lighter;
103
+ }
104
+ .class-method {
105
+ width: 100%;
106
+ display: flex;
107
+ justify-content: space-between;
108
+ align-items: center;
109
+ }
110
+ .class-method-col {
111
+ width: 33%;
112
+ display: flex;
113
+ flex-direction: column;
114
+ }
115
+ @media (max-width: 1024px) {
116
+ .last {
117
+ display: none;
118
+ }
119
+ }
120
+ </style>
121
+ </head>
122
+ <body>
123
+ <div class="header">
124
+ <h1 style="margin: 0; flex: 1">bridgelist</h1>
125
+ <input style="flex: 1;" type="text" id="searchInput" name="search" size="30" placeholder="Search for method or class..." />
126
+ <div style="flex: 1"></div>
127
+ </div>
128
+ <div class="container">
129
+
130
+
131
+ <div class="mapping-container">
132
+ <div class="class-method">
133
+ <div class="class-method-col">
134
+ <span class="styled-text">Class:</span><h3>ComplexMapper</h3>
135
+ </div>
136
+ <div class="class-method-col">
137
+ <span class="styled-text"> Method:</span><h3>mapContactToCustomer</h3>
138
+ </div>
139
+ <div class="class-method-col last">
140
+ </div>
141
+ </div>
142
+ <p>Converts CRM contacts to ERP customers</p>
143
+ <div class="show-hide-mapping">
144
+ <div class="collapse">
145
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
146
+ <g id="Arrow / Caret_Down_MD">
147
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
148
+ </g>
149
+ </svg>
150
+ </div>
151
+ <span>Mapping from <strong>CRM</strong> to <strong>ERP</strong></span>
152
+ </div>
153
+ <table class="mapping-table hidden">
154
+ <tr>
155
+ <th>CRM Field</th>
156
+ <th></th>
157
+ <th>ERP Field</th>
158
+ <th>Transformation</th>
159
+ </tr>
160
+
161
+ <tr>
162
+ <td>contact.id</td>
163
+ <td class="arrow">&rarr;</td>
164
+ <td>customerId</td>
165
+ <td>Direct mapping</td>
166
+ </tr>
167
+
168
+ <tr>
169
+ <td>contact.firstName, contact.lastName</td>
170
+ <td class="arrow">&rarr;</td>
171
+ <td>fullName</td>
172
+ <td>Expression</td>
173
+ </tr>
174
+
175
+ <tr>
176
+ <td>contact.address.streetName</td>
177
+ <td class="arrow">&rarr;</td>
178
+ <td>street</td>
179
+ <td>Direct mapping</td>
180
+ </tr>
181
+
182
+ <tr>
183
+ <td>contact.address.city</td>
184
+ <td class="arrow">&rarr;</td>
185
+ <td>city</td>
186
+ <td>Direct mapping</td>
187
+ </tr>
188
+
189
+ <tr>
190
+ <td>Constant value</td>
191
+ <td class="arrow">&rarr;</td>
192
+ <td>country</td>
193
+ <td>defaultCountry</td>
194
+ </tr>
195
+ </table>
196
+ </div>
197
+ </div>
198
+
199
+ <div class="mapping-container">
200
+ <div class="class-method">
201
+ <div class="class-method-col">
202
+ <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
203
+ </div>
204
+ <div class="class-method-col">
205
+ <span class="styled-text"> Method:</span><h3>parseCustomerToContact</h3>
206
+ </div>
207
+ <div class="class-method-col last">
208
+ </div>
209
+ </div>
210
+ <p>Sanivision REST customer to Hubspot contact</p>
211
+ <div class="show-hide-mapping">
212
+ <div class="collapse">
213
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
214
+ <g id="Arrow / Caret_Down_MD">
215
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
216
+ </g>
217
+ </svg>
218
+ </div>
219
+ <span>Mapping from <strong>Sanivision</strong> to <strong>hubspot</strong></span>
220
+ </div>
221
+ <table class="mapping-table hidden">
222
+ <tr>
223
+ <th>Sanivision Field</th>
224
+ <th></th>
225
+ <th>hubspot Field</th>
226
+ <th>Transformation</th>
227
+ </tr>
228
+
229
+ <tr>
230
+ <td>customer.kundennummer.toString</td>
231
+ <td class="arrow">&rarr;</td>
232
+ <td>kundennummer</td>
233
+ <td>customer.kundennummer.toString</td>
234
+ </tr>
235
+
236
+ <tr>
237
+ <td>customer.name1</td>
238
+ <td class="arrow">&rarr;</td>
239
+ <td>firstname</td>
240
+ <td>Direct mapping</td>
241
+ </tr>
242
+
243
+ <tr>
244
+ <td>customer.name2</td>
245
+ <td class="arrow">&rarr;</td>
246
+ <td>lastname</td>
247
+ <td>Direct mapping</td>
248
+ </tr>
249
+
250
+ <tr>
251
+ <td>customer.name3</td>
252
+ <td class="arrow">&rarr;</td>
253
+ <td>name3</td>
254
+ <td>Direct mapping</td>
255
+ </tr>
256
+
257
+ <tr>
258
+ <td>customer.strasse</td>
259
+ <td class="arrow">&rarr;</td>
260
+ <td>stra_e</td>
261
+ <td>Direct mapping</td>
262
+ </tr>
263
+
264
+ <tr>
265
+ <td>customer.ort</td>
266
+ <td class="arrow">&rarr;</td>
267
+ <td>ort</td>
268
+ <td>Direct mapping</td>
269
+ </tr>
270
+
271
+ <tr>
272
+ <td>customer.postleitzahl</td>
273
+ <td class="arrow">&rarr;</td>
274
+ <td>zip</td>
275
+ <td>Direct mapping</td>
276
+ </tr>
277
+
278
+ <tr>
279
+ <td>customer.telefon1</td>
280
+ <td class="arrow">&rarr;</td>
281
+ <td>phone</td>
282
+ <td>this.parsePhoneNumber</td>
283
+ </tr>
284
+
285
+ <tr>
286
+ <td>customer.email</td>
287
+ <td class="arrow">&rarr;</td>
288
+ <td>email</td>
289
+ <td>this.validateEmail</td>
290
+ </tr>
291
+
292
+ <tr>
293
+ <td>Constant value</td>
294
+ <td class="arrow">&rarr;</td>
295
+ <td>kundentyp</td>
296
+ <td>'B2C'</td>
297
+ </tr>
298
+
299
+ <tr>
300
+ <td>customer.kostentraegergruppeNr</td>
301
+ <td class="arrow">&rarr;</td>
302
+ <td>kostentrager</td>
303
+ <td>(customer.kostentraegergruppeNr ?? '').toString</td>
304
+ </tr>
305
+
306
+ <tr>
307
+ <td>Constant value</td>
308
+ <td class="arrow">&rarr;</td>
309
+ <td>kundenart</td>
310
+ <td>'SIC'</td>
311
+ </tr>
312
+
313
+ <tr>
314
+ <td>customer.geburtsdatum.split</td>
315
+ <td class="arrow">&rarr;</td>
316
+ <td>geburtsdatum__kunde_</td>
317
+ <td>Expression</td>
318
+ </tr>
319
+
320
+ <tr>
321
+ <td>Constant value</td>
322
+ <td class="arrow">&rarr;</td>
323
+ <td>herkunft_der_daten__erp_</td>
324
+ <td>process.env.HERKUNFT_DER_DATEN ?? 'Sanivision REST'</td>
325
+ </tr>
326
+
327
+ <tr>
328
+ <td>Constant value</td>
329
+ <td class="arrow">&rarr;</td>
330
+ <td>hubspotContact.associations</td>
331
+ <td>[]</td>
332
+ </tr>
333
+ </table>
334
+ </div>
335
+ </div>
336
+
337
+ <div class="mapping-container">
338
+ <div class="class-method">
339
+ <div class="class-method-col">
340
+ <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
341
+ </div>
342
+ <div class="class-method-col">
343
+ <span class="styled-text"> Method:</span><h3>parseContactToCustomer</h3>
344
+ </div>
345
+ <div class="class-method-col last">
346
+ </div>
347
+ </div>
348
+ <p>Hubspot contact to Sanivision REST customer</p>
349
+ <div class="show-hide-mapping">
350
+ <div class="collapse">
351
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
352
+ <g id="Arrow / Caret_Down_MD">
353
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
354
+ </g>
355
+ </svg>
356
+ </div>
357
+ <span>Mapping from <strong>hubspot</strong> to <strong>Sanivision</strong></span>
358
+ </div>
359
+ <table class="mapping-table hidden">
360
+ <tr>
361
+ <th>hubspot Field</th>
362
+ <th></th>
363
+ <th>Sanivision Field</th>
364
+ <th>Transformation</th>
365
+ </tr>
366
+
367
+ <tr>
368
+ <td>hubspotContact.properties.zustaendige_filiale</td>
369
+ <td class="arrow">&rarr;</td>
370
+ <td>customer.filialenummer</td>
371
+ <td>Direct mapping</td>
372
+ </tr>
373
+
374
+ <tr>
375
+ <td>hubspotContact.properties.firstname</td>
376
+ <td class="arrow">&rarr;</td>
377
+ <td>customer.name1</td>
378
+ <td>Direct mapping</td>
379
+ </tr>
380
+
381
+ <tr>
382
+ <td>hubspotContact.properties.lastname</td>
383
+ <td class="arrow">&rarr;</td>
384
+ <td>customer.name2</td>
385
+ <td>Direct mapping</td>
386
+ </tr>
387
+
388
+ <tr>
389
+ <td>hubspotContact.properties.name3</td>
390
+ <td class="arrow">&rarr;</td>
391
+ <td>customer.name3</td>
392
+ <td>Direct mapping</td>
393
+ </tr>
394
+
395
+ <tr>
396
+ <td>hubspotContact.properties.stra_e</td>
397
+ <td class="arrow">&rarr;</td>
398
+ <td>customer.strasse</td>
399
+ <td>Direct mapping</td>
400
+ </tr>
401
+
402
+ <tr>
403
+ <td>hubspotContact.properties.zip</td>
404
+ <td class="arrow">&rarr;</td>
405
+ <td>customer.postleitzahl</td>
406
+ <td>Direct mapping</td>
407
+ </tr>
408
+
409
+ <tr>
410
+ <td>hubspotContact.properties.postfach</td>
411
+ <td class="arrow">&rarr;</td>
412
+ <td>customer.postfach</td>
413
+ <td>Direct mapping</td>
414
+ </tr>
415
+
416
+ <tr>
417
+ <td>hubspotContact.properties.plz___postfach</td>
418
+ <td class="arrow">&rarr;</td>
419
+ <td>customer.postleitzahlPostfach</td>
420
+ <td>Direct mapping</td>
421
+ </tr>
422
+
423
+ <tr>
424
+ <td>hubspotContact.properties.ort</td>
425
+ <td class="arrow">&rarr;</td>
426
+ <td>customer.ort</td>
427
+ <td>Direct mapping</td>
428
+ </tr>
429
+
430
+ <tr>
431
+ <td>hubspotContact.properties.phone</td>
432
+ <td class="arrow">&rarr;</td>
433
+ <td>customer.telefon1</td>
434
+ <td>Direct mapping</td>
435
+ </tr>
436
+
437
+ <tr>
438
+ <td>hubspotContact.properties.telefonnummer_2</td>
439
+ <td class="arrow">&rarr;</td>
440
+ <td>customer.telefon2</td>
441
+ <td>Direct mapping</td>
442
+ </tr>
443
+
444
+ <tr>
445
+ <td>hubspotContact.properties.email</td>
446
+ <td class="arrow">&rarr;</td>
447
+ <td>customer.email</td>
448
+ <td>Direct mapping</td>
449
+ </tr>
450
+
451
+ <tr>
452
+ <td>hubspotContact.properties.geburtsdatum__kunde_</td>
453
+ <td class="arrow">&rarr;</td>
454
+ <td>customer.geburtsdatum</td>
455
+ <td>this.parseDateString</td>
456
+ </tr>
457
+
458
+ <tr>
459
+ <td>hubspotContact.properties.krankenkassekostentrager</td>
460
+ <td class="arrow">&rarr;</td>
461
+ <td>kostentraegerNr</td>
462
+ <td>Direct mapping</td>
463
+ </tr>
464
+
465
+ <tr>
466
+ <td>hubspotContact.properties.versichertennummer</td>
467
+ <td class="arrow">&rarr;</td>
468
+ <td>versichertenNr</td>
469
+ <td>Direct mapping</td>
470
+ </tr>
471
+
472
+ <tr>
473
+ <td>hubspotContact.properties.pflegegrad</td>
474
+ <td class="arrow">&rarr;</td>
475
+ <td>customer.pflegegrad</td>
476
+ <td>Direct mapping</td>
477
+ </tr>
478
+
479
+ <tr>
480
+ <td>hubspotContact.properties.fibu_kto</td>
481
+ <td class="arrow">&rarr;</td>
482
+ <td>customer.fiBuKonto</td>
483
+ <td>Direct mapping</td>
484
+ </tr>
485
+
486
+ <tr>
487
+ <td>hubspotContact.properties.zuzahlungsbefreit__ja_nein_</td>
488
+ <td class="arrow">&rarr;</td>
489
+ <td>befreit</td>
490
+ <td>Direct mapping</td>
491
+ </tr>
492
+
493
+ <tr>
494
+ <td>Constant value</td>
495
+ <td class="arrow">&rarr;</td>
496
+ <td>von</td>
497
+ <td>''</td>
498
+ </tr>
499
+
500
+ <tr>
501
+ <td>hubspotContact.properties.zuzahlungsbefreit_bis</td>
502
+ <td class="arrow">&rarr;</td>
503
+ <td>bis</td>
504
+ <td>this.parseDateString</td>
505
+ </tr>
506
+
507
+ <tr>
508
+ <td>hubspotContact.properties.sterbedatum</td>
509
+ <td class="arrow">&rarr;</td>
510
+ <td>customer.sterbedatum</td>
511
+ <td>this.parseDateString</td>
512
+ </tr>
513
+
514
+ <tr>
515
+ <td>hubspotContact.properties.zustaendiger_bearbeiter</td>
516
+ <td class="arrow">&rarr;</td>
517
+ <td>customer.zustaendigerMitarbeiterNr</td>
518
+ <td>Direct mapping</td>
519
+ </tr>
520
+
521
+ <tr>
522
+ <td>hubspotContact.properties.iban</td>
523
+ <td class="arrow">&rarr;</td>
524
+ <td>iban</td>
525
+ <td>Direct mapping</td>
526
+ </tr>
527
+
528
+ <tr>
529
+ <td>Constant value</td>
530
+ <td class="arrow">&rarr;</td>
531
+ <td>bicswift</td>
532
+ <td>''</td>
533
+ </tr>
534
+
535
+ <tr>
536
+ <td>hubspotContact.properties.datenschutz_einwilligung__ja_nein_</td>
537
+ <td class="arrow">&rarr;</td>
538
+ <td>customer.datenschutzerklaerung</td>
539
+ <td>Expression</td>
540
+ </tr>
541
+ </table>
542
+ </div>
543
+ </div>
544
+
545
+ <div class="mapping-container">
546
+ <div class="class-method">
547
+ <div class="class-method-col">
548
+ <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
549
+ </div>
550
+ <div class="class-method-col">
551
+ <span class="styled-text"> Method:</span><h3>parseContactToCustomer2</h3>
552
+ </div>
553
+ <div class="class-method-col last">
554
+ </div>
555
+ </div>
556
+ <p>Hubspot contact to Sanivision REST customer</p>
557
+ <div class="show-hide-mapping">
558
+ <div class="collapse">
559
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
560
+ <g id="Arrow / Caret_Down_MD">
561
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
562
+ </g>
563
+ </svg>
564
+ </div>
565
+ <span>Mapping from <strong>hubspot</strong> to <strong>Sanivision</strong></span>
566
+ </div>
567
+ <table class="mapping-table hidden">
568
+ <tr>
569
+ <th>hubspot Field</th>
570
+ <th></th>
571
+ <th>Sanivision Field</th>
572
+ <th>Transformation</th>
573
+ </tr>
574
+
575
+ <tr>
576
+ <td>hubspotContact.properties.firstname</td>
577
+ <td class="arrow">&rarr;</td>
578
+ <td>customer.name1</td>
579
+ <td>Direct mapping</td>
580
+ </tr>
581
+
582
+ <tr>
583
+ <td>hubspotContact.properties.lastname</td>
584
+ <td class="arrow">&rarr;</td>
585
+ <td>customer.name2</td>
586
+ <td>Direct mapping</td>
587
+ </tr>
588
+
589
+ <tr>
590
+ <td>hubspotContact.properties.name3</td>
591
+ <td class="arrow">&rarr;</td>
592
+ <td>customer.name3</td>
593
+ <td>Direct mapping</td>
594
+ </tr>
595
+
596
+ <tr>
597
+ <td>hubspotContact.properties.name4</td>
598
+ <td class="arrow">&rarr;</td>
599
+ <td>customer.name4</td>
600
+ <td>Direct mapping</td>
601
+ </tr>
602
+
603
+ <tr>
604
+ <td>hubspotContact.properties.kurzname</td>
605
+ <td class="arrow">&rarr;</td>
606
+ <td>customer.kurzname</td>
607
+ <td>Direct mapping</td>
608
+ </tr>
609
+
610
+ <tr>
611
+ <td>hubspotContact.properties.stra_e</td>
612
+ <td class="arrow">&rarr;</td>
613
+ <td>customer.strasse</td>
614
+ <td>Direct mapping</td>
615
+ </tr>
616
+
617
+ <tr>
618
+ <td>hubspotContact.properties.zip</td>
619
+ <td class="arrow">&rarr;</td>
620
+ <td>customer.postleitzahl</td>
621
+ <td>Direct mapping</td>
622
+ </tr>
623
+
624
+ <tr>
625
+ <td>hubspotContact.properties.postfach</td>
626
+ <td class="arrow">&rarr;</td>
627
+ <td>customer.postfach</td>
628
+ <td>Direct mapping</td>
629
+ </tr>
630
+
631
+ <tr>
632
+ <td>hubspotContact.properties.plz___postfach</td>
633
+ <td class="arrow">&rarr;</td>
634
+ <td>customer.postleitzahlPostfach</td>
635
+ <td>Direct mapping</td>
636
+ </tr>
637
+
638
+ <tr>
639
+ <td>hubspotContact.properties.laenderkennzeichen</td>
640
+ <td class="arrow">&rarr;</td>
641
+ <td>customer.laenderkennzeichen</td>
642
+ <td>Direct mapping</td>
643
+ </tr>
644
+
645
+ <tr>
646
+ <td>hubspotContact.properties.ort</td>
647
+ <td class="arrow">&rarr;</td>
648
+ <td>customer.ort</td>
649
+ <td>Direct mapping</td>
650
+ </tr>
651
+
652
+ <tr>
653
+ <td>hubspotContact.properties.ortsteil</td>
654
+ <td class="arrow">&rarr;</td>
655
+ <td>customer.ortsteil</td>
656
+ <td>Direct mapping</td>
657
+ </tr>
658
+
659
+ <tr>
660
+ <td>hubspotContact.properties.phone</td>
661
+ <td class="arrow">&rarr;</td>
662
+ <td>customer.telefon1</td>
663
+ <td>Direct mapping</td>
664
+ </tr>
665
+
666
+ <tr>
667
+ <td>hubspotContact.properties.telefonnummer_2</td>
668
+ <td class="arrow">&rarr;</td>
669
+ <td>customer.telefon2</td>
670
+ <td>Direct mapping</td>
671
+ </tr>
672
+
673
+ <tr>
674
+ <td>hubspotContact.properties.telefax</td>
675
+ <td class="arrow">&rarr;</td>
676
+ <td>customer.telefax</td>
677
+ <td>Direct mapping</td>
678
+ </tr>
679
+
680
+ <tr>
681
+ <td>hubspotContact.properties.http</td>
682
+ <td class="arrow">&rarr;</td>
683
+ <td>customer.http</td>
684
+ <td>Direct mapping</td>
685
+ </tr>
686
+
687
+ <tr>
688
+ <td>hubspotContact.properties.status</td>
689
+ <td class="arrow">&rarr;</td>
690
+ <td>customer.status</td>
691
+ <td>Direct mapping</td>
692
+ </tr>
693
+
694
+ <tr>
695
+ <td>hubspotContact.properties.email</td>
696
+ <td class="arrow">&rarr;</td>
697
+ <td>customer.email</td>
698
+ <td>Direct mapping</td>
699
+ </tr>
700
+ </table>
701
+ </div>
702
+ </div>
703
+
704
+ <div class="mapping-container">
705
+ <div class="class-method">
706
+ <div class="class-method-col">
707
+ <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
708
+ </div>
709
+ <div class="class-method-col">
710
+ <span class="styled-text"> Method:</span><h3>parseHubspotContactToPrescriber</h3>
711
+ </div>
712
+ <div class="class-method-col last">
713
+ </div>
714
+ </div>
715
+ <p>Konvertiert Hubspot Kontakte zu Acriba Verordner</p>
716
+ <div class="show-hide-mapping">
717
+ <div class="collapse">
718
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
719
+ <g id="Arrow / Caret_Down_MD">
720
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
721
+ </g>
722
+ </svg>
723
+ </div>
724
+ <span>Mapping from <strong>Hubspot</strong> to <strong>Acriba</strong></span>
725
+ </div>
726
+ <table class="mapping-table hidden">
727
+ <tr>
728
+ <th>Hubspot Field</th>
729
+ <th></th>
730
+ <th>Acriba Field</th>
731
+ <th>Transformation</th>
732
+ </tr>
733
+
734
+ <tr>
735
+ <td>hubspotContact.properties['prescriber_la_nummer']</td>
736
+ <td class="arrow">&rarr;</td>
737
+ <td>prescriber.laNummer</td>
738
+ <td>Expression</td>
739
+ </tr>
740
+
741
+ <tr>
742
+ <td>hubspotContact.properties['prescriber_bs_nummer']</td>
743
+ <td class="arrow">&rarr;</td>
744
+ <td>prescriber.bsNummer</td>
745
+ <td>Expression</td>
746
+ </tr>
747
+
748
+ <tr>
749
+ <td>hubspotContact.properties['prescriber_ik_nummer']</td>
750
+ <td class="arrow">&rarr;</td>
751
+ <td>prescriber.ikNummer</td>
752
+ <td>Expression</td>
753
+ </tr>
754
+
755
+ <tr>
756
+ <td>hubspotContact.properties['prescriber_matchcode']</td>
757
+ <td class="arrow">&rarr;</td>
758
+ <td>prescriber.matchcode</td>
759
+ <td>Expression</td>
760
+ </tr>
761
+
762
+ <tr>
763
+ <td>hubspotContact.properties['titel']</td>
764
+ <td class="arrow">&rarr;</td>
765
+ <td>prescriber.titel</td>
766
+ <td>Expression</td>
767
+ </tr>
768
+
769
+ <tr>
770
+ <td>hubspotContact.properties['salutation']</td>
771
+ <td class="arrow">&rarr;</td>
772
+ <td>prescriber.anrede</td>
773
+ <td>Expression</td>
774
+ </tr>
775
+
776
+ <tr>
777
+ <td>hubspotContact.properties['firstname']</td>
778
+ <td class="arrow">&rarr;</td>
779
+ <td>prescriber.name1</td>
780
+ <td>Expression</td>
781
+ </tr>
782
+
783
+ <tr>
784
+ <td>hubspotContact.properties['lastname']</td>
785
+ <td class="arrow">&rarr;</td>
786
+ <td>prescriber.name2</td>
787
+ <td>Expression</td>
788
+ </tr>
789
+
790
+ <tr>
791
+ <td>hubspotContact.properties['name3']</td>
792
+ <td class="arrow">&rarr;</td>
793
+ <td>prescriber.name3</td>
794
+ <td>Expression</td>
795
+ </tr>
796
+
797
+ <tr>
798
+ <td>hubspotContact.properties['stra_e']</td>
799
+ <td class="arrow">&rarr;</td>
800
+ <td>prescriber.strasse</td>
801
+ <td>Expression</td>
802
+ </tr>
803
+
804
+ <tr>
805
+ <td>hubspotContact.properties['zusatz']</td>
806
+ <td class="arrow">&rarr;</td>
807
+ <td>prescriber.zusatz</td>
808
+ <td>Expression</td>
809
+ </tr>
810
+
811
+ <tr>
812
+ <td>hubspotContact.properties['laenderkennzeichen']</td>
813
+ <td class="arrow">&rarr;</td>
814
+ <td>prescriber.laenderkennzeichen</td>
815
+ <td>Expression</td>
816
+ </tr>
817
+
818
+ <tr>
819
+ <td>hubspotContact.properties['zip']</td>
820
+ <td class="arrow">&rarr;</td>
821
+ <td>prescriber.plz</td>
822
+ <td>Expression</td>
823
+ </tr>
824
+
825
+ <tr>
826
+ <td>hubspotContact.properties['ort']</td>
827
+ <td class="arrow">&rarr;</td>
828
+ <td>prescriber.ort</td>
829
+ <td>Expression</td>
830
+ </tr>
831
+
832
+ <tr>
833
+ <td>hubspotContact.properties['phone']</td>
834
+ <td class="arrow">&rarr;</td>
835
+ <td>prescriber.telefon1</td>
836
+ <td>Expression</td>
837
+ </tr>
838
+
839
+ <tr>
840
+ <td>hubspotContact.properties['telefonnummer_2']</td>
841
+ <td class="arrow">&rarr;</td>
842
+ <td>prescriber.telefon2</td>
843
+ <td>Expression</td>
844
+ </tr>
845
+
846
+ <tr>
847
+ <td>hubspotContact.properties['mobilephone']</td>
848
+ <td class="arrow">&rarr;</td>
849
+ <td>prescriber.telefon3</td>
850
+ <td>Expression</td>
851
+ </tr>
852
+
853
+ <tr>
854
+ <td>hubspotContact.properties['telefonnummer_4']</td>
855
+ <td class="arrow">&rarr;</td>
856
+ <td>prescriber.telefon4</td>
857
+ <td>Expression</td>
858
+ </tr>
859
+
860
+ <tr>
861
+ <td>hubspotContact.properties['fax']</td>
862
+ <td class="arrow">&rarr;</td>
863
+ <td>prescriber.telefax</td>
864
+ <td>Expression</td>
865
+ </tr>
866
+
867
+ <tr>
868
+ <td>hubspotContact.properties['homepage']</td>
869
+ <td class="arrow">&rarr;</td>
870
+ <td>prescriber.homepage</td>
871
+ <td>Expression</td>
872
+ </tr>
873
+
874
+ <tr>
875
+ <td>hubspotContact.properties['warnhinweis']</td>
876
+ <td class="arrow">&rarr;</td>
877
+ <td>prescriber.warnhinweis</td>
878
+ <td>Expression</td>
879
+ </tr>
880
+
881
+ <tr>
882
+ <td>hubspotContact.properties['fibu_kto']</td>
883
+ <td class="arrow">&rarr;</td>
884
+ <td>prescriber.fibukonto</td>
885
+ <td>Expression</td>
886
+ </tr>
887
+
888
+ <tr>
889
+ <td>hubspotContact.properties['datenschutz_einwilligung__ja_nein_']</td>
890
+ <td class="arrow">&rarr;</td>
891
+ <td>prescriber.dsErklaerungVorhanden</td>
892
+ <td>Expression</td>
893
+ </tr>
894
+
895
+ <tr>
896
+ <td>hubspotContact.properties.zustaendige_filiale</td>
897
+ <td class="arrow">&rarr;</td>
898
+ <td>prescriber.zustaendigeFiliale</td>
899
+ <td>this.parseIntWithZeroDefault</td>
900
+ </tr>
901
+
902
+ <tr>
903
+ <td>hubspotContact.properties.zustaendige_abteilung</td>
904
+ <td class="arrow">&rarr;</td>
905
+ <td>prescriber.zustaendigeAbteilung</td>
906
+ <td>this.parseIntWithZeroDefault</td>
907
+ </tr>
908
+
909
+ <tr>
910
+ <td>hubspotContact.properties.zustaendiger_bearbeiter</td>
911
+ <td class="arrow">&rarr;</td>
912
+ <td>prescriber.zustaendigerBearbeiter</td>
913
+ <td>this.parseIntWithZeroDefault</td>
914
+ </tr>
915
+
916
+ <tr>
917
+ <td>hubspotContact.properties.zustaendiger_aussendienst</td>
918
+ <td class="arrow">&rarr;</td>
919
+ <td>prescriber.zustaendigerAussendienst</td>
920
+ <td>this.parseIntWithZeroDefault</td>
921
+ </tr>
922
+
923
+ <tr>
924
+ <td>hubspotContact.properties.zahlungsbedingung_id</td>
925
+ <td class="arrow">&rarr;</td>
926
+ <td>prescriber.zahlungsbedingungId</td>
927
+ <td>this.parseIntWithZeroDefault</td>
928
+ </tr>
929
+ </table>
930
+ </div>
931
+ </div>
932
+
933
+ <div class="mapping-container">
934
+ <div class="class-method">
935
+ <div class="class-method-col">
936
+ <span class="styled-text">Class:</span><h3>SanivisionRestCustomerParser</h3>
937
+ </div>
938
+ <div class="class-method-col">
939
+ <span class="styled-text"> Method:</span><h3>parseHubspotContactToContactPerson</h3>
940
+ </div>
941
+ <div class="class-method-col last">
942
+ </div>
943
+ </div>
944
+ <p>Konvertiert Hubspot Kontakt zu Acriba Ansprechpartner</p>
945
+ <div class="show-hide-mapping">
946
+ <div class="collapse">
947
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
948
+ <g id="Arrow / Caret_Down_MD">
949
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
950
+ </g>
951
+ </svg>
952
+ </div>
953
+ <span>Mapping from <strong>Hubspot</strong> to <strong>Acriba</strong></span>
954
+ </div>
955
+ <table class="mapping-table hidden">
956
+ <tr>
957
+ <th>Hubspot Field</th>
958
+ <th></th>
959
+ <th>Acriba Field</th>
960
+ <th>Transformation</th>
961
+ </tr>
962
+
963
+ <tr>
964
+ <td>hubspotContact.properties['ansprechpartner_erp_id']</td>
965
+ <td class="arrow">&rarr;</td>
966
+ <td>apid</td>
967
+ <td>this.toNumberIfNotNullish</td>
968
+ </tr>
969
+
970
+ <tr>
971
+ <td>hubspotContact.properties[ process.env.HUBSPOT_ID_FIELD ?? 'erp_id__kontakt_']</td>
972
+ <td class="arrow">&rarr;</td>
973
+ <td>stammID</td>
974
+ <td>this.toNumberIfNotNullish</td>
975
+ </tr>
976
+
977
+ <tr>
978
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'vorname']</td>
979
+ <td class="arrow">&rarr;</td>
980
+ <td>vorname</td>
981
+ <td>Dynamic property mapping</td>
982
+ </tr>
983
+
984
+ <tr>
985
+ <td>hubspotContact.properties[hubspotContact.prefix + 'nachname'], hubspotContact.prefix</td>
986
+ <td class="arrow">&rarr;</td>
987
+ <td>nachname</td>
988
+ <td>Expression</td>
989
+ </tr>
990
+
991
+ <tr>
992
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'telefonnummer']</td>
993
+ <td class="arrow">&rarr;</td>
994
+ <td>telefon</td>
995
+ <td>Dynamic property mapping</td>
996
+ </tr>
997
+
998
+ <tr>
999
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'telefonnummer2']</td>
1000
+ <td class="arrow">&rarr;</td>
1001
+ <td>telefon2</td>
1002
+ <td>Dynamic property mapping</td>
1003
+ </tr>
1004
+
1005
+ <tr>
1006
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'e_mail']</td>
1007
+ <td class="arrow">&rarr;</td>
1008
+ <td>eMail</td>
1009
+ <td>Dynamic property mapping</td>
1010
+ </tr>
1011
+
1012
+ <tr>
1013
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'stra_e__hausnummer']</td>
1014
+ <td class="arrow">&rarr;</td>
1015
+ <td>strasse</td>
1016
+ <td>Dynamic property mapping</td>
1017
+ </tr>
1018
+
1019
+ <tr>
1020
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'postleitzahl']</td>
1021
+ <td class="arrow">&rarr;</td>
1022
+ <td>plz</td>
1023
+ <td>Dynamic property mapping</td>
1024
+ </tr>
1025
+
1026
+ <tr>
1027
+ <td>Dynamic access: hubspotContact.properties[hubspotContact.prefix + 'stadt']</td>
1028
+ <td class="arrow">&rarr;</td>
1029
+ <td>ort</td>
1030
+ <td>Dynamic property mapping</td>
1031
+ </tr>
1032
+
1033
+ <tr>
1034
+ <td>hubspotContact.prefix</td>
1035
+ <td class="arrow">&rarr;</td>
1036
+ <td>gesetzlicherBetreuer</td>
1037
+ <td>Expression</td>
1038
+ </tr>
1039
+
1040
+ <tr>
1041
+ <td>hubspotContact.prefix</td>
1042
+ <td class="arrow">&rarr;</td>
1043
+ <td>bemerkung</td>
1044
+ <td>this.makePrefixReadable</td>
1045
+ </tr>
1046
+
1047
+ <tr>
1048
+ <td>Constant value</td>
1049
+ <td class="arrow">&rarr;</td>
1050
+ <td>latitude</td>
1051
+ <td>+latitude</td>
1052
+ </tr>
1053
+
1054
+ <tr>
1055
+ <td>Constant value</td>
1056
+ <td class="arrow">&rarr;</td>
1057
+ <td>longitude</td>
1058
+ <td>+longitude</td>
1059
+ </tr>
1060
+
1061
+ <tr>
1062
+ <td>Constant value</td>
1063
+ <td class="arrow">&rarr;</td>
1064
+ <td>manuellGesetzt</td>
1065
+ <td>true</td>
1066
+ </tr>
1067
+ </table>
1068
+ </div>
1069
+ </div>
1070
+
1071
+ <div class="mapping-container">
1072
+ <div class="class-method">
1073
+ <div class="class-method-col">
1074
+ <span class="styled-text">Class:</span><h3>SimpleMapper</h3>
1075
+ </div>
1076
+ <div class="class-method-col">
1077
+ <span class="styled-text"> Method:</span><h3>mapAToB</h3>
1078
+ </div>
1079
+ <div class="class-method-col last">
1080
+ </div>
1081
+ </div>
1082
+ <p>Simple mapping example</p>
1083
+ <div class="show-hide-mapping">
1084
+ <div class="collapse">
1085
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1086
+ <g id="Arrow / Caret_Down_MD">
1087
+ <path id="Vector" d="M16 10L12 14L8 10" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1088
+ </g>
1089
+ </svg>
1090
+ </div>
1091
+ <span>Mapping from <strong>System A</strong> to <strong>System B</strong></span>
1092
+ </div>
1093
+ <table class="mapping-table hidden">
1094
+ <tr>
1095
+ <th>System A Field</th>
1096
+ <th></th>
1097
+ <th>System B Field</th>
1098
+ <th>Transformation</th>
1099
+ </tr>
1100
+
1101
+ <tr>
1102
+ <td>sourceObject.id</td>
1103
+ <td class="arrow">&rarr;</td>
1104
+ <td>objectId</td>
1105
+ <td>Direct mapping</td>
1106
+ </tr>
1107
+
1108
+ <tr>
1109
+ <td>sourceObject.firstname</td>
1110
+ <td class="arrow">&rarr;</td>
1111
+ <td>name</td>
1112
+ <td>Direct mapping</td>
1113
+ </tr>
1114
+
1115
+ <tr>
1116
+ <td>sourceObject.details</td>
1117
+ <td class="arrow">&rarr;</td>
1118
+ <td>description</td>
1119
+ <td>Direct mapping</td>
1120
+ </tr>
1121
+ </table>
1122
+ </div>
1123
+ </div>
1124
+ <script>
1125
+ const collapseButtons = document.querySelectorAll('.show-hide-mapping');
1126
+ const mappingTables = document.querySelectorAll('.mapping-table');
1127
+ const search = document.getElementById('searchInput');
1128
+ const mappingContainers = document.querySelectorAll('.mapping-container');
1129
+ const tableRows = document.querySelectorAll('tr');
1130
+
1131
+ tableRows.forEach(row => {
1132
+ const sourceField = row.cells[0].textContent;
1133
+ const transformation = row.cells[3].textContent;
1134
+ if (sourceField.includes('Constant value')) {
1135
+ row.classList.add('constant-value');
1136
+ } else if (transformation.includes('Transformed')) {
1137
+ row.classList.add('transformed-value');
1138
+ } else if (!sourceField.includes('Constant value') && !transformation.includes('Direct mapping')) {
1139
+ row.classList.add('transformed-value');
1140
+ }
1141
+ });
1142
+
1143
+ search.addEventListener('input', (e) => {
1144
+ const searchTerm = e.target.value.toLowerCase();
1145
+ mappingContainers.forEach(container => {
1146
+ let classMethodName = '';
1147
+ const names = container.querySelectorAll('h3');
1148
+ names.forEach(name => {
1149
+ classMethodName += name.textContent.toLowerCase();
1150
+ })
1151
+ console.log(classMethodName);
1152
+ if (!classMethodName.includes(searchTerm)) {
1153
+ container.style.display = 'none';
1154
+ } else {
1155
+ container.style.display = 'flex';
1156
+ }
1157
+ });
1158
+ });
1159
+
1160
+ collapseButtons.forEach(button => {
1161
+ button.addEventListener('click', function() {
1162
+ const table = button.nextElementSibling;
1163
+ const caret = button.querySelector('.collapse');
1164
+ table.classList.toggle('hidden');
1165
+ caret.classList.toggle('rotate');
1166
+ });
1167
+ });
1168
+ </script>
1169
+ </body>
1170
+ </html>