• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Preisrechner mit Distanz Transitzeit und Nettopreis

med47

New member
Hallo Leute ich brauche eure Hilfe
wie bekomme ich hier eine Mindestpreis z.B. bis 150 Km für 100,00 € und ab 150 Km je Lastkilometer für 0.80 €
das ist mein code
Code:
var distCount = 3;
var distCalcCount = 0;
var dist = new Array(distCount);
var dura = new Array(distCount);

var HOME_TO_START = 0;
var START_TO_END = 1;
var END_TO_HOME = 2;

var Veh1 = "Veh1";
var Veh2 = "Veh2";
var Veh3 = "Veh3";

var baseP = 0;
var baseKP = 0;
var transportKP = 0;
var timeFactor = 1;

var addressError = false;

window.onload = addVehicleNamesToButtons;

function getPrice(vehicleType) {
	showWaitingAnimation();
	clearResults();

	var zipStart = document.getElementById('zipStartInput').value;
	var zipEnd = document.getElementById('zipEndInput').value;
	
	setRates(vehicleType);
	
	distCalcCount = 0;
	addressError = false;
	calcDistanceAndPrice(HOME_TO_START, zipHome, zipStart);
	calcDistanceAndPrice(START_TO_END, zipStart, zipEnd);
	calcDistanceAndPrice(END_TO_HOME, zipEnd, zipHome);
	
	return true;
} 

function clearResults() {
	document.getElementById('addressError').innerHTML = '';
	document.getElementById('vehicleError').innerHTML = '';
	document.getElementById('distance').innerHTML = '';
	document.getElementById('duration').innerHTML = '';
	document.getElementById('price').innerHTML = '';
	document.getElementById('googleCopyright').innerHTML = '';
}

function showWaitingAnimation() {
	var animation = document.getElementById("waitingAnimation");
	animation.innerHTML = '<img src="http://www.med47.de/images/ajax-loader.gif">';
	animation.style.display = '';
}

function hideWaitingAnimation() {
	document.getElementById('waitingAnimation').style.display = "none";
}

function setRates(vehicle) {
	if (vehicle == Veh1) {
		baseP = 00;
		baseKP = 0.00;
		transportKP = 0.70;
		timeFactor = 1.1;
	}
	if (vehicle == Veh2) {
		baseP = 00;
		baseKP = 0.0;
		transportKP = 0.80;
		timeFactor = 1.2;
	}
	if (vehicle == Veh3) {
		baseP = 00;
		baseKP = 0.00;
		transportKP = 1.10;
		timeFactor = 1.5;
	}
}

function calcDistanceAndPrice(i, zipStart, zipEnd) {
	var request = {
		origin: zipStart,
		destination: zipEnd,
		region: "DE",
		travelMode: google.maps.TravelMode.DRIVING,
		unitSystem: google.maps.UnitSystem.METRIC,
		provideRouteAlternatives: false
	};
	directionsService.route(request, function(result, status) {
		if (status == google.maps.DirectionsStatus.OK) {
			dist[i] = result.routes[0].legs[0].distance.value / 1000;
			dura[i] = result.routes[0].legs[0].duration.value * timeFactor;
			if (i == START_TO_END) {
				document.getElementById('zipStartInput').value = result.routes[0].legs[0].start_address;
				document.getElementById('zipEndInput').value = result.routes[0].legs[0].end_address;
			}
		} else {
			addressError = true;
		}
		
		if (++distCalcCount == distCount) {
			if (addressError) {
				document.getElementById('addressError').innerHTML = 'Preisberechnung für diesen Start- und Zielort ist nicht möglich...'; 
				document.getElementById('distance').innerHTML = 'k. A.';
				document.getElementById('duration').innerHTML = 'k. A.';
				document.getElementById('price').innerHTML = 'k. A.';
			} else {
				document.getElementById('price').innerHTML = Math.round(doPriceCalculation()) + " €";
				document.getElementById('distance').innerHTML = Math.round(dist[START_TO_END]) + " km";
				var hours = Math.floor(dura[START_TO_END] / 3600);
				var minutes = Math.round(((dura[START_TO_END] / 3600) - hours) * 60);
				document.getElementById('duration').innerHTML = hours + " Std. " + minutes + " Min.";
				document.getElementById('googleCopyright').innerHTML = "Entfernungsberechnung basierend auf: " + result.routes[0].copyrights;
			}
			hideWaitingAnimation();
		}
	});
}

function doPriceCalculation() {
	return baseP + ((dist[HOME_TO_START] + dist[END_TO_HOME]) * baseKP) + (dist[START_TO_END] * transportKP);
}

function addVehicleNamesToButtons() {
	document.getElementById('btnVeh1').innerHTML = "PKW";
	document.getElementById('btnVeh2').innerHTML = "BUS";
	document.getElementById('btnVeh3').innerHTML = "LKW 7.5 to";
}
würde mich sehr freuen wenn ihr mir helfen könntet.
noch eine kleine info das ist mein preisrechner Preisrechner zur Angebotskalkulation für Kurier- und Sonderfahrten: MED 47 Kurierdienst
 
In deiner doPriceCalculation() musst du diese Logik einfach mit einbauen. Du kannst einfach ein if einbauen, das prüft, ob die Entfernung kleiner als 150 km ist und dann entsprechend etwas anderes zurückgibt.

PS: globale Variablen sind gar keine gute Idee. Es ist besser, wenn du mit Parametern arbeitest.
 
Zurück
Oben