@@ -8,13 +8,16 @@ const wildcardMatch = require('./utils/wildcardMatch');
8
8
const { translateProduct } = require ( './resolvers/product' ) ;
9
9
const { translateAvailability } = require ( './resolvers/availability' ) ;
10
10
const { translateBooking } = require ( './resolvers/booking' ) ;
11
- const EQUIPMENT_COUNT_FIELD_IDS = {
11
+ const CUSTOM_FIELD_IDS = {
12
12
EBIKE_COUNT : 1 ,
13
13
BABYSEATS_COUNT : 2 ,
14
14
TRAILALONGS_COUNT : 3 ,
15
15
KIDDIECARRIER_COUNT : 4 ,
16
16
SMALLKIDSBIKE_COUNT : 5 ,
17
17
LARGEKIDSBIKE_COUNT : 6 ,
18
+ ORIGINCOUNTRY : 7 ,
19
+ TRAVELAGENCY : 8 ,
20
+ FAMILS : 9 ,
18
21
}
19
22
const EQUIPMENT_FIELD_IDS = {
20
23
EBIKE : 1001 ,
@@ -376,18 +379,27 @@ class Plugin {
376
379
// Get Equipment Details
377
380
console . log ( "customFieldValues: " + JSON . stringify ( customFieldValues ) ) ;
378
381
// Example:
379
- // [{"field":{"id":"EBIKE_COUNT","title":"Enter e-Bike(s) Required","subtitle":"Enter the equipment you need",
380
- // "type":"count","isPerUnitItem":false},"value":"1" },
382
+ // [
383
+ // {"field":{"id":7,"title":"Entry Origin Country","subtitle":"Enter the traveler's country of origin",
384
+ // "type":"short","isPerUnitItem":false},"value":"USA" },
385
+ // {"field":{"id":8,"title":"Entry Travel Agency","subtitle":"Enter the travel agency name",
386
+ // "type":"short","isPerUnitItem":false},"value":"BONZA PARTNER USA" }
387
+ // {"field":{"id":9,"title":"Is it Famil?","subtitle":"Entry whether this is a famil booking",
388
+ // "type":"yes-no","isPerUnitItem":false},"value":false }
389
+ // {"field":{"id":"EBIKE_COUNT","title":"Enter e-Bike(s) Required","subtitle":"Enter the equipment you need",
390
+ // "type":"count","isPerUnitItem":false},"value":"1" },
381
391
// {"field":{"id":"TRAILALONGS_COUNT","title":"Enter Trail Alongs(s) Required","subtitle":"Enter the equipment you need",
382
- // "type":"count","isPerUnitItem":false},"value":"2" },
392
+ // "type":"count","isPerUnitItem":false},"value":"2" },
383
393
// {"field":{"id":"KIDDIECARRIER_COUNT","title":"Enter Kiddie Carrier(s) Required","subtitle":"Enter the equipment you need",
384
- // "type":"count","isPerUnitItem":false},"value":"3" },
394
+ // "type":"count","isPerUnitItem":false},"value":"3" },
385
395
// {"field":{"id":"SMALLKIDSBIKE_COUNT","title":"Enter Small Kids Bike(s) Required","subtitle":"Enter the equipment you need",
386
- // "type":"count","isPerUnitItem":false},"value":"4" },
396
+ // "type":"count","isPerUnitItem":false},"value":"4" },
387
397
//{"field":{"id":"LARGEKIDSBIKE_COUNT","title":"Enter Large Kids Bike(s) Required","subtitle":"Enter the equipment you need",
388
- //"type":"count","isPerUnitItem":false},"value":"5" },
398
+ // "type":"count","isPerUnitItem":false},"value":"5" },
389
399
// {"field":{"id":"BABYSEATS_COUNT","title":"Enter Baby Seat(s) Required", "subtitle":"Enter the equipment you need",
390
- // "type":"count","isPerUnitItem":false},"value":"6" }]
400
+ // "type":"count","isPerUnitItem":false},"value":"6" }
401
+ // ]
402
+
391
403
let eBikeCount = 0 ;
392
404
let babySeatCount = 0 ;
393
405
let kiddieCarrierCount = 0 ;
@@ -398,9 +410,29 @@ class Plugin {
398
410
let kid_equipments = [ ] ;
399
411
let infant_equipment = [ ] ;
400
412
413
+ let originCountry = "" ;
414
+ let travelAgency = "" ;
415
+ let famils = 0 ;
416
+
401
417
if ( customFieldValues && customFieldValues . length ) {
402
418
console . log ( "Len: " + customFieldValues . length ) ;
403
419
420
+ customFieldValues . forEach ( function ( unit , d ) {
421
+ console . log ( 'unit.value: ' , unit . value ) ;
422
+ switch ( parseInt ( unit . field . id ) ) {
423
+ case CUSTOM_FIELD_IDS . ORIGINCOUNTRY :
424
+ originCountry = ! isNilOrEmpty ( unit . value ) ? unit . value : "" ;
425
+ break ;
426
+ case CUSTOM_FIELD_IDS . TRAVELAGENCY :
427
+ travelAgency = ! isNilOrEmpty ( unit . value ) ? unit . value : "" ;
428
+ break ;
429
+ case CUSTOM_FIELD_IDS . FAMILS :
430
+ let booleanFamils = ! isNilOrEmpty ( unit . value ) ? unit . value : "" ;
431
+ famils = booleanFamils === true ? 1 : 0 ;
432
+ break ;
433
+ }
434
+ } )
435
+
404
436
const unitItemCFV = customFieldValues . filter ( o => ( ! R . isNil ( o . value ) && ( o . value > 0 ) && ! o . field . isPerUnitItem ) ) ;
405
437
console . log ( "unitItemCFV: " + JSON . stringify ( unitItemCFV ) ) ;
406
438
@@ -410,42 +442,42 @@ class Plugin {
410
442
console . log ( 'Count : ' , count ) ;
411
443
412
444
switch ( parseInt ( unit . field . id ) ) {
413
- case EQUIPMENT_COUNT_FIELD_IDS . EBIKE_COUNT :
445
+ case CUSTOM_FIELD_IDS . EBIKE_COUNT :
414
446
eBikeCount = count ;
415
447
adult_equipment . push ( {
416
448
id : EQUIPMENT_FIELD_IDS . EBIKE ,
417
449
count : count
418
450
} ) ;
419
451
break ;
420
- case EQUIPMENT_COUNT_FIELD_IDS . BABYSEATS_COUNT :
452
+ case CUSTOM_FIELD_IDS . BABYSEATS_COUNT :
421
453
babySeatCount = count ;
422
454
infant_equipment . push ( {
423
455
id : EQUIPMENT_FIELD_IDS . BABYSEATS ,
424
456
count : count
425
457
} ) ;
426
458
break ;
427
- case EQUIPMENT_COUNT_FIELD_IDS . KIDDIECARRIER_COUNT :
459
+ case CUSTOM_FIELD_IDS . KIDDIECARRIER_COUNT :
428
460
kiddieCarrierCount = count ;
429
461
kid_equipments . push ( {
430
462
id : EQUIPMENT_FIELD_IDS . KIDDIECARRIER ,
431
463
count : count
432
464
} ) ;
433
465
break ;
434
- case EQUIPMENT_COUNT_FIELD_IDS . TRAILALONGS_COUNT :
466
+ case CUSTOM_FIELD_IDS . TRAILALONGS_COUNT :
435
467
trailAlongsCount = count ;
436
468
kid_equipments . push ( {
437
469
id : EQUIPMENT_FIELD_IDS . TRAILALONGS ,
438
470
count : count
439
471
} ) ;
440
472
break ;
441
- case EQUIPMENT_COUNT_FIELD_IDS . SMALLKIDSBIKE_COUNT :
473
+ case CUSTOM_FIELD_IDS . SMALLKIDSBIKE_COUNT :
442
474
smallKidsBikeCount = count ;
443
475
kid_equipments . push ( {
444
476
id : EQUIPMENT_FIELD_IDS . SMALLKIDSBIKE ,
445
477
count : count
446
478
} ) ;
447
479
break ;
448
- case EQUIPMENT_COUNT_FIELD_IDS . LARGEKIDSBIKE_COUNT :
480
+ case CUSTOM_FIELD_IDS . LARGEKIDSBIKE_COUNT :
449
481
largeKidsBikeCount = count ;
450
482
kid_equipments . push ( {
451
483
id : EQUIPMENT_FIELD_IDS . LARGEKIDSBIKE ,
@@ -533,6 +565,9 @@ class Plugin {
533
565
let dataForBooking = { } ;
534
566
dataForBooking . productId = inputDataForBooking . productId ;
535
567
dataForBooking . tourDate = inputDataForBooking . tourDate ;
568
+ dataForBooking . originCountry = originCountry ;
569
+ dataForBooking . travelAgency = travelAgency ;
570
+ dataForBooking . famils = famils ;
536
571
537
572
if ( isFamilyBooking ) {
538
573
// add additional pax
@@ -813,6 +848,16 @@ class Plugin {
813
848
resellerId,
814
849
} ) ;
815
850
851
+ const addCustomField = ( id , title , subtitle , type ) => {
852
+ customFieldsToShow . push ( {
853
+ id : id ,
854
+ title : title ,
855
+ subtitle : subtitle ,
856
+ type : type ,
857
+ isPerUnitItem : false ,
858
+ } )
859
+ }
860
+
816
861
const getEquipmentCountField = ( id , name ) => {
817
862
customFieldsToShow . push ( {
818
863
id : id ,
@@ -825,18 +870,18 @@ class Plugin {
825
870
}
826
871
827
872
const getAdultEquipmentFields = ( ) => {
828
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . EBIKE_COUNT , constants . LABELS . EBIKE ) ;
873
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . EBIKE_COUNT , constants . LABELS . EBIKE ) ;
829
874
}
830
875
831
876
const getChildEquipmentFields = ( ) => {
832
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . TRAILALONGS_COUNT , constants . LABELS . TRAIL_ALONG ) ;
833
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . KIDDIECARRIER_COUNT , constants . LABELS . KIDDIE_CARRIER ) ;
834
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . SMALLKIDSBIKE_COUNT , constants . LABELS . SMALL_KIDS_BIKE ) ;
835
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . LARGEKIDSBIKE_COUNT , constants . LABELS . LARGE_KIDS_BIKE ) ;
877
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . TRAILALONGS_COUNT , constants . LABELS . TRAIL_ALONG ) ;
878
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . KIDDIECARRIER_COUNT , constants . LABELS . KIDDIE_CARRIER ) ;
879
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . SMALLKIDSBIKE_COUNT , constants . LABELS . SMALL_KIDS_BIKE ) ;
880
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . LARGEKIDSBIKE_COUNT , constants . LABELS . LARGE_KIDS_BIKE ) ;
836
881
}
837
882
838
883
const getInfantEquipmentFields = ( ) => {
839
- getEquipmentCountField ( EQUIPMENT_COUNT_FIELD_IDS . BABYSEATS_COUNT , constants . LABELS . BABY_SEAT ) ;
884
+ getEquipmentCountField ( CUSTOM_FIELD_IDS . BABYSEATS_COUNT , constants . LABELS . BABY_SEAT ) ;
840
885
}
841
886
842
887
console . log ( "productId : " + productId ) ;
@@ -850,7 +895,12 @@ class Plugin {
850
895
console . log ( "Len: " + selectedUnits . length ) ;
851
896
852
897
let customFieldsToShow = [ ] ;
853
-
898
+ // The custom field's type. Supported types: yes-no, short, long, count, and extended-option.
899
+
900
+ addCustomField ( CUSTOM_FIELD_IDS . ORIGINCOUNTRY , "Entry Origin Country" , "Enter the traveler's country of origin" , "short" ) ;
901
+ addCustomField ( CUSTOM_FIELD_IDS . TRAVELAGENCY , "Entry Travel Agency" , "Enter the travel agency name" , "short" ) ;
902
+ addCustomField ( CUSTOM_FIELD_IDS . FAMILS , "Is it famils booking?" , "Entry whether this is a famil booking" , "yes-no" ) ;
903
+
854
904
selectedUnits . forEach ( function ( unit , d ) {
855
905
console . log ( 'unit.unitId: ' , String ( unit . unitId ) ) ;
856
906
console . log ( 'unit.quantity: ' , unit . quantity ) ;
0 commit comments