let specialseason;
let scdw;
let grupo;
let num_days;
let num_cond;
let num_cad;
let gps;
let aero_entrega;
let aero_devolucao;
let total_days;
let total_insurance;
let total_drivers;
let total_airport_ent;
let total_airport_dev;
let total_gps;
let total_chairs;
let total_without_airport_with_tax;
function setup() {
createCanvas(600, 500);
specialseason = createCheckbox("special season", false)
specialseason.changed(checkboxSS)
createElement("h5", "grupo")
grupo = createInput("")
grupo.input(grupoChanged)
createElement("h5", "num dias")
num_days = createInput("")
num_days.input(numDaysChanged)
scdw = createCheckbox("scdw", false)
scdw.changed(checkboxSCDW)
aero_entrega = createCheckbox("entrega aeroporto", false)
aero_entrega.changed(checkboxAeroEntrega)
aero_devolucao = createCheckbox("devolucao aeroporto", false)
aero_devolucao.changed(checkboxAeroDevolucao)
createElement("h5", "num condutores extra")
num_cond = createInput("")
num_cond.input(numCondutoresChanged)
createElement("h5", "num cadeiras")
num_cad = createInput("")
num_cad.input(numCadChanged)
gps = createCheckbox("gps", false)
gps.changed(checkboxGPS)
}
function checkboxSCDW() {
calculate()
}
function checkboxSS() {
//console.log(specialseason.checked())
calculate()
}
function numDaysChanged() {
//console.log(this.value())
calculate()
}
function numCondutoresChanged() {
calculate()
}
function numCadChanged() {
calculate()
}
function grupoChanged() {
calculate()
}
function checkboxGPS() {
calculate()
}
function checkboxAeroEntrega() {
calculate()
}
function checkboxAeroDevolucao() {
calculate()
}
function calculate() {
}
function draw() {
background(220);
fill(0);
textSize(16);
text(`Special Season: ${specialseason.checked() ? "Yes" : "No"}`, 10, 30);
text(`Group: ${grupo.value()}`, 10, 60);
text(`Num. days: ${num_days.value()}`, 10, 90);
text(`Insurance: ${scdw.checked() ? "SCDW" : "Mandatory"}`, 10, 120);
text(`Airport delivery: ${aero_entrega.checked() ? "Yes" : "No"}`, 10, 150);
text(`Airport pickup: ${aero_devolucao.checked() ? "Yes" : "No"}`, 10, 180);
text(`Num. drivers: ${num_cond.value()}`, 10, 210);
text(`Num. chairs: ${num_cad.value()}`, 10, 240);
text(`GPS: ${gps.checked() ? "Yes" : "No"}`, 10, 270);
price_day = 0
if (!specialseason.checked()) {
if(grupo.value().toLowerCase() === "a") {
let nd = num_days.value()
if (nd <= 2)
price_day = 17.78
else if (nd <= 6)
price_day = 14.91
else
price_day = 13.28
}
else if(grupo.value().toLowerCase() === "b") {
let nd = num_days.value()
if (nd <= 2)
price_day = 22.33
else if (nd <= 6)
price_day = 19.22
else
price_day = 17.58
}
else if(grupo.value().toLowerCase() === "c") {
let nd = num_days.value()
if (nd <= 2)
price_day = 27.48
else if (nd <= 6)
price_day = 25.82
else
price_day = 21.76
}
else if(grupo.value().toLowerCase() === "d") {
let nd = num_days.value()
if (nd <= 2)
price_day = 67.46
else if (nd <= 6)
price_day = 63.36
else
price_day = 58.85
}
else if(grupo.value().toLowerCase() === "m") {
let nd = num_days.value()
if (nd <= 2)
price_day = 22.33
else if (nd <= 6)
price_day = 19.22
else
price_day = 17.58
}
}
else {
if(grupo.value().toLowerCase() === "a") {
let nd = num_days.value()
if (nd <= 2)
price_day = 29.34
else if (nd <= 6)
price_day = 27.66
else
price_day = 24.30
}
else if(grupo.value().toLowerCase() === "b") {
let nd = num_days.value()
if (nd <= 2)
price_day = 43.85
else if (nd <= 6)
price_day = 39.14
else
price_day = 34.96
}
else if(grupo.value().toLowerCase() === "c") {
let nd = num_days.value()
if (nd <= 2)
price_day = 53.28
else if (nd <= 6)
price_day = 48.20
else
price_day = 44.10
}
else if(grupo.value().toLowerCase() === "d") {
let nd = num_days.value()
if (nd <= 2)
price_day = 87.25
else if (nd <= 6)
price_day = 83.16
else
price_day = 79.06
}
else if(grupo.value().toLowerCase() === "m") {
let nd = num_days.value()
if (nd <= 2)
price_day = 43.85
else if (nd <= 6)
price_day = 39.14
else
price_day = 34.96
}
}
total_days = (num_days.value() * price_day)
insurance_day = 0
if (specialseason.checked()) {
if (grupo.value().toLowerCase() === "d") {
if (scdw.checked())
insurance_day = 21.23
else
insurance_day = 8.61
}
else {
if (scdw.checked())
insurance_day = 17.13
else
insurance_day = 8.61
}
}
else {
if (grupo.value().toLowerCase() === "d") {
if (scdw.checked())
insurance_day = 17.13
else
insurance_day = 8.61
}
else {
if (scdw.checked())
insurance_day = 15.08
else
insurance_day = 8.61
}
}
total_insurance = (num_days.value() * insurance_day)
total_airport_ent = aero_entrega.checked() ? 12.95 : 0
total_airport_dev = aero_devolucao.checked() ? 12.95 : 0
total_drivers = num_cond.value() * num_days.value() * 8.61
total_chairs = num_cad.value() * num_days.value() * 2.87
total_gps = gps.checked() ? num_days.value() * 4.10 : 0
total_no_tax = total_days + total_insurance + total_airport_ent + total_airport_dev + total_drivers + total_chairs + total_gps
total_tax = total_no_tax * 0.22
total_with_tax = total_no_tax + total_tax
total_without_airport_with_tax = ((total_no_tax - total_airport_ent - total_airport_dev) * 1.22) / num_days.value()
text(`${total_days.toFixed(2)}`, 300, 90);
text(`${total_insurance.toFixed(2)}`, 300, 120);
text(`${total_airport_ent.toFixed(2)}`, 300, 150);
text(`${total_airport_dev.toFixed(2)}`, 300, 180);
text(`${total_drivers.toFixed(2)}`, 300, 210);
text(`${total_chairs.toFixed(2)}`, 300, 240);
text(`${total_gps.toFixed(2)}`, 300, 270);
text(`Total before tax: ${total_no_tax.toFixed(2)}`, 300, 300);
text(`Tax: ${total_tax.toFixed(2)}`, 300, 330);
text(`Total after tax: ${total_with_tax.toFixed(2)}`, 300, 360);
text(`\n\nPrice per day\n(without airport and with VAT): ${total_without_airport_with_tax.toFixed(2)}`, 300, 360);
}