(function($){
$("#hp-hintalaskuri").submit(function(e){
e.preventDefault();
const postinumero=$("#hp-hintalaskuri-postinumero").val(),
tuloswrapper=$("#hp-hintalaskuri-tulos"),
tuloswrapperadmin=$("#hp-hintalaskuri-tulos-admin"),
rakennusvuosi=parseFloat($("#hp-hintalaskuri-rakennusvuosi").val())||0,
laattaneliot=parseFloat($("#hp-hintalaskuri-laattaneliot").val())||0,
silikonisaumat=parseFloat($("#hp-hintalaskuri-silikonisaumat").val())||0,
posliiniallas_qty=parseFloat($("#hp-hintalaskuri-posliiniallas").val())||0,
rosteriallas_qty=parseFloat($("#hp-hintalaskuri-rosteriallas").val())||0,
pontto_qty=parseFloat($("#hp-hintalaskuri-pontto").val())||0,
lasiovi_qty=parseFloat($("#hp-hintalaskuri-lasiovi").val())||0,
lasiseina_qty=parseFloat($("#hp-hintalaskuri-lasiseina").val())||0,
kaakelit_qty=parseFloat($("#hp-hintalaskuri-kaakelit").val())||0,
laattasaumat_qty=parseFloat($("#hp-hintalaskuri-laattasaumat").val())||0,
kuivatilat_markatila_qty=parseFloat($("#hp-hintalaskuri-kuivatilat-markatila").val())||0,
kuivatila_qty=parseFloat($("#hp-hintalaskuri-kuivatila").val())||0,
tulos_lopullinen=$("#hp-hintalaskuri-lopullinen-tulos-admin");
const alue1=(393.32*(Math.pow(laattaneliot, -0.518)))*laattaneliot;
const alue2=(695.88*(Math.pow(laattaneliot, -0.685)))*laattaneliot;
const alue3=(313.87*(Math.pow(laattaneliot, -0.475)))*laattaneliot;
const alue4=(254.36*(Math.pow(laattaneliot, -0.36)))*laattaneliot;
$.getJSON("data.json", function(data){
const alue=data.find(o=> o.Postinumero===postinumero);
function laskeLasiseina(){
if(lasiseina_qty >=1&&lasiseina_qty < 6){
return 120;
}else if(lasiseina_qty >=6){
return 180;
}else{
return 0;
}}
function laskeLaattasaumat(){
if(laattasaumat_qty >=1&&laattasaumat_qty < 6){
return 150;
}else if(laattasaumat_qty > 6){
return 150 + (laattasaumat_qty - 5) * 10;
}else{
return 0;
}}
function laskeKuivatilat1(){
if(kuivatilat_markatila_qty >=1&&kuivatilat_markatila_qty <=10){
return 50 * kuivatilat_markatila_qty;
}else if(kuivatilat_markatila_qty > 10&&kuivatilat_markatila_qty <=20){
return 500 + (kuivatilat_markatila_qty - 10) * 40;
}else if(kuivatilat_markatila_qty > 20){
return 900 + (kuivatilat_markatila_qty - 20) * 35;
}else{
return 0;
}}
function laskeKuivatilat2(){
if(kuivatila_qty >=1&&kuivatila_qty <=10){
return 50 * kuivatila_qty + 400;
}else if(kuivatila_qty > 10&&kuivatila_qty <=20){
return 500 + (kuivatila_qty - 10) * 40 + 400;
}else if(kuivatila_qty > 20){
return 900 + (kuivatila_qty - 20) * 35 + 400;
}else{
return 0;
}}
function laskeTulos(){
if(alue.markkina_alue==='I'){
const aluehinta=alue1;
return aluehinta;
}
if(alue.markkina_alue==='II'){
const aluehinta=alue2;
return aluehinta;
}
if(alue.markkina_alue==='III'){
const aluehinta=alue3;
return aluehinta;
}
if(alue.markkina_alue==='IV'){
const aluehinta=alue4;
return aluehinta;
}
const tulos=aluehinta;
return tulos;
}
const laskeDesign=((posliiniallas_qty + rosteriallas_qty + pontto_qty + lasiovi_qty) * 30) + (kaakelit_qty * 60) + laskeLasiseina();
const laskeHuolto=laskeLaattasaumat() + laskeKuivatilat1() + laskeKuivatilat2();
const maxhinta=Math.max(alue1, alue2, alue3, alue4);
const maxhinta_total=laskeDesign + laskeHuolto + maxhinta;
const ovh=laskeTulos() + laskeDesign + laskeHuolto;
const laskeDesignProsentti=(laskeDesign / ovh) * 100;
const laskeHuoltoProsentti=(laskeHuolto / ovh) * 100;
const provisio=(laskeTulos() + laskeDesign) * 0.1;
const provisiomax=provisio + (0.3 * (maxhinta - laskeTulos()));
const date=new Date();
const vuosi=date.getFullYear();
const ika=vuosi - rakennusvuosi;
if(ika <=1&&alue.etäisyys < 50){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.5;
const vahennysprosentti='-50%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=2&&ika <=7&&alue.etäisyys < 50){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.8;
const vahennysprosentti='-20%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=8&&ika <=14&&alue.etäisyys < 50){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.85;
const vahennysprosentti='-15%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=15&&ika <=24&&alue.etäisyys < 50){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.9;
const vahennysprosentti='-10%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=25&&alue.etäisyys < 50){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 1;
const vahennysprosentti='0%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika <=1&&alue.etäisyys >=50&&alue.etäisyys < 100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.55;
const vahennysprosentti='-45%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=2&&ika <=7&&alue.etäisyys >=50&&alue.etäisyys < 100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.85;
const vahennysprosentti='-15%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=8&&ika <=14&&alue.etäisyys >=50&&alue.etäisyys < 100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.90;
const vahennysprosentti='-10%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=15&&ika <=24&&alue.etäisyys >=50&&alue.etäisyys < 100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.95;
const vahennysprosentti='-5%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=25&&alue.etäisyys >=50&&alue.etäisyys < 100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 1.05;
const vahennysprosentti='+5%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika <=1&&alue.etäisyys >=100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.60;
const vahennysprosentti='-40%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=2&&ika <=7&&alue.etäisyys >=100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.90;
const vahennysprosentti='-10%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=8&&ika <=14&&alue.etäisyys >=100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 0.95;
const vahennysprosentti='-5%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=15&&ika <=24&&alue.etäisyys >=100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 1;
const vahennysprosentti='0%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
if(ika >=25&&alue.etäisyys >=100){
function laskeVahennys(){
const ovh_vahennetty_calc=ovh * 1.1;
const vahennysprosentti='+10%';
return { ovh_vahennetty_calc, vahennysprosentti };}}
const { ovh_vahennetty_calc, vahennysprosentti }=laskeVahennys();
const tarkista_vahennetty=ovh_vahennetty_calc <=800 ? 800:ovh_vahennetty_calc;
tuloswrapperadmin.append('<h4>Erittely</h4>' +
'<strong>Hohde-design:</strong> ' + laskeDesign.toFixed(2) + ' € (' + Math.round(laskeDesignProsentti) + '%) <br>' +
'<strong>Huoltotyöt:</strong> ' + laskeHuolto.toFixed(2) + ' € (' + Math.round(laskeHuoltoProsentti) + '%) <br><br>' +
'<strong>Etäisyys:</strong> ' + alue.etäisyys + 'km <br>' +
'<strong>Ikä:</strong> ' + ika + ' vuotta <br><br>' +
'<strong>Vähennys:</strong> ' + vahennysprosentti + '<br><br>' +
'<strong>OVH-vähennys:</strong> '+ tarkista_vahennetty.toFixed(2) + ' € (provisio ' + provisio.toFixed(2) + ' €)<br>' +
'<form id="hp-hintalaskuri-kauppahinta">' +
'<label for="hp-hintalaskuri-lopullinen-kauppahinta"><strong>Lopullinen kauppahinta</strong></label>' +
'<input type="number" id="hp-hintalaskuri-lopullinen-kauppahinta" required>' +
'<button type="submit">Laske hinta</button>' +
'</form>'
);
tuloswrapper.append('<h4>Hinta-arvio</h4>' +
'<strong>OVH:</strong> ' + ovh.toFixed(2) + ' € <br>' +
'<strong>Maksimihinta:</strong> ' + maxhinta_total.toFixed(2) + ' €'
);
$("#hp-hintalaskuri-kauppahinta").submit(function(e){
e.preventDefault();
const kauppahinta=parseFloat($("#hp-hintalaskuri-lopullinen-kauppahinta").val());
const kauppahinta_calc=(0.1 * ovh) + (0.3 * (kauppahinta - ovh));
const kauppahinta_prosentti=(kauppahinta_calc / kauppahinta) * 100;
tulos_lopullinen.append('<h4>Provisio</h4>' +
'<strong>Provisio €</strong> ' + kauppahinta_calc.toFixed(2) + ' € <br>' +
'<strong>Provisio %</strong> ' + Math.round(kauppahinta_prosentti) + ' %'
);
});
});
});
$("#clear").click(function(e){
e.preventDefault();
$("#hp-hintalaskuri-tulos").empty();
$("#hp-hintalaskuri-tulos-admin").empty();
$("#hp-hintalaskuri-lopullinen-tulos-admin").empty();
});
})(jQuery);