# Technische stappen deployment Accepatatie (en over 2 weken dus productie)
1. Deploy Admin-api;
2. Deploy AAS;
# Productie
- reindex van het archief met volgende script
```
PUT terberg-archive-v6
{"mappings":{"option":{"dynamic":"strict","properties":{"basePrice":{"type":"float"},"bpm":{"type":"float"},"co2":{"type":"integer"},"optionCode":{"type":"keyword"},"optionId":{"type":"keyword"},"optionName":{"type":"keyword"},"optionPrice":{"type":"float"},"optionText":{"type":"keyword"},"optionTrace":{"type":"object","dynamic":"true","enabled":false},"optionType":{"type":"keyword"},"retailPrice":{"type":"float"},"rules":{"dynamic":"true","properties":{"discounts":{"properties":{"basePriceNet":{"type":"float"},"basePriceNetSecundair":{"type":"float"},"retailPrice":{"type":"float"},"retailPriceSecundair":{"type":"float"}}},"excludes":{"type":"keyword"},"includes":{"type":"keyword"},"newPrices":{"properties":{"basePriceNet":{"type":"float"},"basePriceNetSecundair":{"type":"float"},"retailPrice":{"type":"float"},"retailPriceSecundair":{"type":"float"}}},"optionIncludes":{"properties":{"includes":{"type":"integer"},"when":{"type":"integer"},"whenNot":{"type":"integer"}}},"requires":{"type":"keyword"},"when":{"type":"keyword"},"whenNot":{"type":"keyword"}}},"categories":{"type":"keyword"},"vehicleId":{"type":"keyword"},"weight":{"type":"integer"},"rvPercentage":{"type":"double"},"source":{"type":"keyword"},"externalId":{"type":"keyword"},"terbergCategories":{"type":"nested","properties":{"configuratorGroup":{"type":"keyword"},"configuratorSubgroup":{"type":"keyword"}}},"items":{"type":"object","dynamic":"true"},"originalType":{"type":"keyword"}}},"jatocar":{"dynamic":"strict","dynamic_templates":[{"score_trace_values":{"path_match":"*ScoreTrace.values.*","mapping":{"type":"float"}}}],"properties":{"BPM":{"type":"float"},"accelerateZeroToHundredKmHour":{"type":"float"},"addedTaxPercentage":{"type":"float"},"allweatherTiresAvailable":{"type":"boolean"},"basePriceNet":{"type":"float"},"bodyTypeCode":{"type":"keyword"},"bodyTypeCodeLabel":{"type":"keyword"},"calcAddedTaxPercentage":{"properties":{"addedTaxCategory":{"type":"float"},"co2gte":{"type":"integer"},"co2lt":{"type":"integer"}}},"carCategory":{"type":"keyword"},"cardiscounts":{"properties":{"central":{"properties":{"applyToAccessoires":{"type":"keyword"},"applyToOptions":{"type":"keyword"},"customer":{"type":"keyword"},"dealer":{"type":"keyword"},"depreciationFuelType":{"type":"keyword","null_value":"_NULL_"},"discountAmount":{"type":"double"},"discountPercentage":{"type":"double"},"importerDiscountAmount":{"type":"double"},"importerDiscountPercentage":{"type":"double"},"make":{"type":"keyword","null_value":"_NULL_"},"model":{"type":"keyword","null_value":"_NULL_"},"prefix":{"type":"keyword"},"versionName":{"type":"keyword","null_value":"_NULL_"}}},"customer":{"type":"object","enabled":false},"fleet":{"properties":{"applyToAccessoires":{"type":"keyword"},"applyToOptions":{"type":"keyword"},"customer":{"type":"keyword"},"dealer":{"type":"keyword"},"depreciationFuelType":{"type":"keyword","null_value":"_NULL_"},"discountAmount":{"type":"double"},"discountPercentage":{"type":"double"},"importerDiscountAmount":{"type":"double"},"importerDiscountPercentage":{"type":"double"},"make":{"type":"keyword","null_value":"_NULL_"},"model":{"type":"keyword","null_value":"_NULL_"},"prefix":{"type":"keyword"},"versionName":{"type":"keyword","null_value":"_NULL_"}}}}},"changingCost":{"type":"float"},"changingCostAllWeather":{"type":"float"},"changingCostWinter":{"type":"float"},"co2":{"type":"integer"},"co2Nedc":{"type":"integer"},"co2Wltp":{"type":"integer"},"color":{"type":"keyword"},"dailyCostReplacementCar":{"type":"float"},"dateAvailableFrom":{"type":"date","format":"date"},"deliveryCost":{"type":"float"},"depositAmount":{"type":"float"},"depreciationFuelType":{"type":"keyword"},"disabled":{"type":"boolean"},"discountTires":{"type":"float"},"discountTiresAllWeather":{"type":"float"},"discountTiresWinter":{"type":"float"},"disposalChargeVehicle":{"type":"float"},"drive":{"type":"keyword"},"drivenWheels":{"type":"keyword"},"energyLabel":{"type":"keyword"},"engineVolume":{"type":"integer"},"euroTaxClass":{"type":"keyword"},"extraFuelCode":{"type":"keyword"},"fuelConsumption":{"type":"float"},"fuelOutputLabel":{"type":"keyword","fields":{"facet":{"type":"keyword"}}},"fuelPrice":{"type":"float"},"fuelType":{"type":"keyword"},"grossTrailerWeightBraked":{"type":"integer"},"grossWeight":{"type":"integer"},"horsePower":{"type":"integer"},"images":{"properties":{"colors":{"type":"keyword"},"ext360":{"type":"keyword"},"int360":{"type":"keyword"},"mainImage":{"type":"keyword"},"pix":{"type":"keyword"}}},"isOverridden":{"type":"boolean"},"jatoFleetDiscountPercentage":{"type":"float"},"kW":{"type":"integer"},"kWelectronic":{"type":"integer"},"kerbWeight":{"type":"integer"},"leadTimeReservation":{"type":"double"},"licensePlate":{"type":"keyword"},"maintenanceDistanceInterval":{"type":"integer"},"maintenanceFuelType":{"type":"keyword"},"maintenanceScore":{"type":"float"},"maintenanceScoreTrace":{"properties":{"stage":{"type":"keyword"},"values":{"type":"object","dynamic":"true"}}},"maintenanceScoreType":{"type":"keyword"},"make":{"type":"text","fields":{"facet":{"type":"keyword"},"search":{"type":"text","analyzer":"search_analyzer","search_analyzer":"search_query_analyzer"}}},"makeModel":{"type":"keyword","fields":{"facet":{"type":"text","analyzer":"hieranalyzer","fielddata":true}}},"marketabilityScore":{"type":"integer"},"marketabilityScoreTrace":{"properties":{"stage":{"type":"keyword"},"values":{"type":"object","dynamic":"true"}}},"maxTorque":{"type":"integer"},"model":{"type":"text","fields":{"facet":{"type":"keyword"},"search":{"type":"text","analyzer":"search_analyzer","search_analyzer":"search_query_analyzer"}}},"modelShort":{"type":"keyword"},"modelYear":{"type":"date","format":"year"},"numberOfCylinders":{"type":"integer"},"numberOfDoors":{"type":"integer"},"options":{"properties":{"basePrice":{"type":"float"},"bpm":{"type":"float"},"co2":{"type":"integer"},"optionCode":{"type":"keyword"},"optionId":{"type":"keyword"},"optionName":{"type":"keyword"},"optionPrice":{"type":"float"},"optionText":{"type":"keyword"},"optionTrace":{"type":"object","dynamic":"true","enabled":false},"optionType":{"type":"keyword"},"retailPrice":{"type":"float"},"rules":{"dynamic":"true","properties":{"discounts":{"properties":{"basePriceNet":{"type":"float"},"basePriceNetSecundair":{"type":"float"},"retailPrice":{"type":"float"},"retailPriceSecundair":{"type":"float"}}},"excludes":{"type":"keyword"},"includes":{"type":"keyword"},"newPrices":{"properties":{"basePriceNet":{"type":"float"},"basePriceNetSecundair":{"type":"float"},"retailPrice":{"type":"float"},"retailPriceSecundair":{"type":"float"}}},"optionIncludes":{"properties":{"includes":{"type":"integer"},"when":{"type":"integer"},"whenNot":{"type":"integer"}}},"requires":{"type":"keyword"},"when":{"type":"keyword"},"whenNot":{"type":"keyword"}}},"categories":{"type":"keyword"},"vehicleId":{"type":"keyword"},"weight":{"type":"integer"},"rvPercentage":{"type":"double"},"source":{"type":"keyword"},"externalId":{"type":"keyword"},"terbergCategories":{"type":"nested","properties":{"configuratorGroup":{"type":"keyword"},"configuratorSubgroup":{"type":"keyword"}}},"items":{"type":"object","dynamic":"true"},"originalType":{"type":"keyword"}}},"overriddenBy":{"type":"keyword"},"payloadAllowance":{"type":"integer"},"purchId":{"type":"keyword"},"reasonForFailure":{"type":"nested","properties":{"failedFields":{"type":"object","dynamic":"true","enabled":false},"failureType":{"type":"keyword"},"matrix":{"type":"keyword"},"stage":{"type":"keyword"}}},"replacementCostSegment":{"type":"float"},"replacementCostSegmentMin1":{"type":"float"},"replacementCostSegmentMin2":{"type":"float"},"reserved":{"type":"boolean"},"reservedBy":{"type":"keyword"},"retailPrice":{"type":"float"},"retailPriceInclDeliveryCharge":{"type":"float"},"rimSizeFront":{"type":"keyword"},"rimSizeFrontAllWeather":{"type":"keyword"},"rimSizeFrontWinter":{"type":"keyword"},"rimSizeRear":{"type":"keyword"},"rimSizeRearAllWeather":{"type":"keyword"},"rimSizeRearWinter":{"type":"keyword"},"roadTaxFuelType":{"type":"keyword"},"rvBasePercentage":{"type":"float"},"rvMarketabilityCode":{"type":"keyword"},"seatingCapacity":{"type":"integer"},"secondaryFuelType":{"type":"keyword"},"segment":{"type":"keyword"},"segmentMinusOne":{"type":"keyword"},"segmentMinusTwo":{"type":"keyword"},"selectedFuelForFuelPrice":{"type":"keyword"},"serviceLifeTireAllWeatherFront":{"type":"float"},"serviceLifeTireAllWeatherRear":{"type":"float"},"serviceLifeTireFront":{"type":"float"},"serviceLifeTireRear":{"type":"float"},"serviceLifeTireWinterFront":{"type":"float"},"serviceLifeTireWinterRear":{"type":"float"},"startTimeReservation":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"stock":{"type":"integer"},"stockOptions":{"properties":{"code":{"type":"keyword"},"configuratorGroup":{"type":"keyword"},"configuratorSubGroup":{"type":"keyword"},"id":{"type":"keyword"},"name":{"type":"keyword"},"price":{"type":"double"},"retailPrice":{"type":"double"},"rvPercentage":{"type":"double"},"type":{"type":"keyword"}}},"tankCapacity":{"type":"integer"},"tareWeight":{"type":"integer"},"terbergOptions":{"properties":{"code":{"type":"keyword"},"deliveredByFactory":{"type":"keyword"},"id":{"type":"keyword"},"make":{"type":"keyword"},"model":{"type":"keyword"},"name":{"type":"keyword"},"price":{"type":"double"},"priceIncludingBtw":{"type":"double"},"rvPercentage":{"type":"double"}}},"tireFrontAllWeatherPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireFrontPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireFrontWinterPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireHeightFront":{"type":"integer"},"tireHeightFrontAllWeather":{"type":"integer"},"tireHeightFrontWinter":{"type":"integer"},"tireHeightRear":{"type":"integer"},"tireHeightRearAllWeather":{"type":"integer"},"tireHeightRearWinter":{"type":"integer"},"tireRatingFront":{"type":"keyword"},"tireRatingFrontAllWeather":{"type":"keyword"},"tireRatingFrontWinter":{"type":"keyword"},"tireRatingRear":{"type":"keyword"},"tireRatingRearAllWeather":{"type":"keyword"},"tireRatingRearWinter":{"type":"keyword"},"tireRearAllWeatherPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireRearPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireRearWinterPrice":{"properties":{"budget":{"type":"float"},"normal":{"type":"float"},"premium":{"type":"float"}}},"tireScoreCorrection":{"type":"float"},"tireScoreTrace":{"properties":{"stage":{"type":"keyword"},"values":{"type":"object","dynamic":"true"}}},"tireSizeFront":{"type":"keyword"},"tireSizeFrontAllWeather":{"type":"keyword"},"tireSizeFrontWinter":{"type":"keyword"},"tireSizeRear":{"type":"keyword"},"tireSizeRearAllWeather":{"type":"keyword"},"tireSizeRearWinter":{"type":"keyword"},"tireTypeFront":{"type":"keyword"},"tireTypeRear":{"type":"keyword"},"tireTypeFrontAllWeather":{"type":"keyword"},"tireTypeFrontWinter":{"type":"keyword"},"tireTypeRearAllWeather":{"type":"keyword"},"tireTypeRearWinter":{"type":"keyword"},"tireWidthFront":{"type":"integer"},"tireWidthFrontAllWeather":{"type":"integer"},"tireWidthFrontWinter":{"type":"integer"},"tireWidthRear":{"type":"integer"},"tireWidthRearAllWeather":{"type":"integer"},"tireWidthRearWinter":{"type":"integer"},"tiresDriveScore":{"type":"float"},"tiresDrivenWheelsScore":{"type":"float"},"tiresMakeTypeScore":{"type":"float"},"transmissionType":{"type":"keyword"},"transmissionTypeLabel":{"type":"keyword"},"typeOfCarInDutch":{"type":"keyword"},"vehicleId":{"type":"keyword"},"versionName":{"type":"text","fields":{"search":{"type":"text","analyzer":"search_analyzer","search_analyzer":"search_query_analyzer"}}},"trimLevel":{"type":"text"},"warrantyDealerPeriod":{"type":"integer"},"winterTiresAvailable":{"type":"boolean"},"energyConsumption":{"type":"float"},"batteryType":{"type":"text"},"electricRange":{"type":"integer"},"onboardChargerKWh":{"type":"float"},"domesticChargerAvailability":{"type":"keyword"},"fastChargerAvailability":{"type":"keyword"},"batteryKWh":{"type":"float"},"domesticChargeDuration":{"type":"float"},"fastChargeDuration":{"type":"float"},"wirelessCharge":{"type":"keyword"},"maxSpeed":{"type":"integer"},"maxSpeedElectric":{"type":"integer"},"source":{"type":"keyword"},"externalId":{"type":"keyword","fields":{"search":{"type":"text","analyzer":"search_vehicleId_analyzer","search_analyzer":"search_query_analyzer"}}},"terbergCategories":{"type":"nested","properties":{"configuratorGroup":{"type":"keyword"},"configuratorSubgroup":{"type":"keyword"}}}}}},"settings":{"index":{"number_of_shards":"3","analysis":{"analyzer":{"search_query_analyzer":{"filter":["lowercase","asciifolding"],"type":"custom","tokenizer":"standard"},"search_analyzer":{"filter":["lowercase","asciifolding"],"type":"custom","tokenizer":"nl_edgeNgram"},"hieranalyzer":{"tokenizer":"path_hierarchy"},"search_vehicleId_analyzer":{"filter":["lowercase","asciifolding"],"type":"custom","tokenizer":"nl_edgeNgramMinSeven"}},"tokenizer":{"nl_edgeNgram":{"token_chars":["letter","digit","punctuation"],"min_gram":"2","type":"edgeNGram","max_gram":"15"},"nl_edgeNgramMinSeven":{"token_chars":["letter","digit"],"min_gram":"3","type":"edgeNGram","max_gram":"7"}}},"number_of_replicas":"1"}}}
```
```
# Start reindex async
POST _reindex?wait_for_completion=false
{
"source": {
"index": "terberg-archive-v5"
},
"dest": {
"index": "terberg-archive-v6"
}
}
# Check status
GET /_tasks/{id}
```
```
# Change archive alias
POST _aliases
{
"actions": [
{
"add": {
"index": "terberg-archive-v6",
"alias": "terberg-archive"
}
},
{
"remove": {
"index": "terberg-archive-v5",
"alias": "terberg-archive"
}
}
]
}
```
# Testscenario's verwacht op acceptatie:
**Banden/velgen**
1. Als een afwijkende velg-optie wordt gekozen in de carculator leidt dit tot een ander bandenmaat in de calculatie;
2. Als een afwijkende velg-optie wordt gekozen in de carculator waar geen bandenmaat voor beschikbaar is, dan wordt de standaard maat gebruikt, maar is dit zichbaar in mijnmobility-leaseadviseur-scherm;
3. Als een afwijkende velg-optie wordt gekozen in mijnmobility leidt dit tot een ander bandenmaat in de calculatie;
4. Als een afwijkende velg-optie wordt gekozen in de mijnmobility waar geen bandenmaat voor beschikbaar is, dan wordt de standaard maat gebruikt, maar is dit zichbaar in mijnmobility-leaseadviseur-scherm;
**Pakketten/opties**
1. Het is mogelijk in mijnmobility om middels een tooltip de beschrijving van pakketten/ opties te zien.
**Nieuwe auto's op voorraad**
1. Het is mogelijk om een token op te vragen voor supply-api;
2. Het is mogelijk om middels de (supply)-api een 'new car' in te schieten die automatisch calculeerbaar wordt gezet:
a) Segment en Onderhoudssegment wordt automatisch toegekend;
b) Restwaarde wordt automatisch gescoord o.b.v. JATO match;
c) Kortingstrategie-regels worden allen toegepast op 'niet-geregistreerde' auto's.
d) *Er kan een callback-url worden meegegeven om status change (ready for calculation) aan door te geven;*
e) *Als een auto calculeerbaar wordt/ gepubliceerd, wordt dit naar eventuele callback url gestuurd als update;*
2. Het is mogelijk om via UI in leasedoc een 'new car' te maken op basis van een bestaand leaseobject of geheel handmatig;
3. Het is mogelijk om handmatig een auto te publiceren/ of de-publiceren in Elastic;
4. Het is mogelijk om in mijnmobility een nieuwe voorraad-auto te calculeren:
a) De overnameprijs (in-bpm/ex btw) wordt gebruikt als investering;
b) Eventuele leeftijd van auto heet geen invloed op BPM (wordt beschouwd als nieuwe auto);
c) De verwachte beschikbaarheid, kenteken, km-stand wordt indien beschikbaar getoond;
d) De opties die in het object zitten wordt getoond als voorraad-opties in de configurator/ calculatiescherm;
**Non-breaking (for now) - Cars in Stock**
1. Het blijft mogelijk om via Cars-in-stock autos te calculeren die in de customcar index zijn gezet door CIS:
a) Occasions en NewCars blijven qua berekening en uitkomsten gelijk aan productie (oude situatie);
b) Opties worden juist getoond / worden juist gecalculeerd (oude situatie);
c) Parkeren, bestellen, bewerken en hercalculeren blijven werken gelijk aan productie (oude situatie), bijvoorbeeld gebruik internal supplier ID
**LeaseDoc Broker**
1. Een bericht vanuit CRM-servicebus wordt opgehaald en als zo volledig als een occasion of newcar in te schieten via suppy-api:
a) sequenceId wordt gezet in externalId (tbv bestellen van interne voorraad in AX);
b)