Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Tak z ciekawości popatrzyłem na skrypt obliczający cenę. Niestety informatyk się nie popisał. Poniżej skrypt liczący cenę i zaokrąglający ją do dwóch miejsc po przecinku. Aby działał na stronie wystarczy zastąpić nim istniejący skrypt.

var float_glass_price_list = [112, 146, 213, 314, 437, 583, 896]
var opti_glass_price_list = [250, 330, 440, 550, 750, 1150, 1250]
var glass_thickness = [4, 6, 8, 10, 12, 15, 19]

function wycena() {
    var length = parseInt(document.kalkulator.dlugosc.value) * 0.01;
    var height = parseInt(document.kalkulator.wysokosc.value) * 0.01;
    var width = parseInt(document.kalkulator.szerokosc.value) * 0.01;
    var glass_type = document.kalkulator.rodzaj.value == "b" ? "opti" : "float"

    var total_price;
    var area;
    if (document.kalkulator.rodzaj.value == "a" || document.kalkulator.rodzaj.value == "b") {
        area = calculate_area(length, height, width, glass_thickness[map_thickness_to_position()])
        total_price = area * get_glass_price_by_type(glass_type)
    } else {
        area = calculate_area(length, height, width, glass_thickness[map_thickness_to_position()])
        var opti_area = calculate_opti_area(length, height, width, glass_thickness[map_thickness_to_position()])
        var remaining_area = area - opti_area;
        total_price = remaining_area * get_glass_price_by_type("float") + opti_area * get_glass_price_by_type("opti")
    }

    document.kalkulator.cena.value = Math.round(total_price * 100) / 100
}

function get_glass_price_by_type(typ) {
    var index = map_thickness_to_position()

    return typ == "float" ? float_glass_price_list[index] : opti_glass_price_list[index]
}

function map_thickness_to_position() {
    var thickness = []
    thickness["a"] = 0;
    thickness["b"] = 1;
    thickness["c"] = 2;
    thickness["d"] = 3;
    thickness["e"] = 4;
    thickness["f"] = 5;
    thickness["g"] = 6;

    return thickness[document.kalkulator.grubosc.value]
}

function calculate_opti_area(length, height, width, glass_thickness) {
    glass_thickness = glass_thickness * 0.001

    if (document.kalkulator.rodzaj.value == "c") return length * height

    var front_and_rear_area = length * height
    var side_area = (height - glass_thickness) * (width - 2 * glass_thickness)

    return front_and_rear_area + 2 * side_area

}

function calculate_area(length, height, width, glass_thickness) {
    glass_thickness = glass_thickness * 0.001

    var bottom_area = length * (width - 2 * glass_thickness)
    var side_area = (height - glass_thickness) * (width - 2 * glass_thickness)
    var front_and_rear_area = length * height

    return bottom_area + 2 * front_and_rear_area + 2 * side_area
}

 

 

Edytowane przez rekawiczka
  • 2 miesiące temu...
  • 3 tygodnie później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.


×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

By using this site, you agree to our Warunki użytkowania.