Suntem pregătiți să te susținem 24/7 atât tehnic cât și consultativ!
Calea Bogdăneștilor nr.6A
Timișoara, jud Timiș
office@openhouse-imobiliare.ro
(+40) 751 946 446
Seize cutting-edge interfaces
Help Finding Information Online
Parties and family gatherings are popular this time of year. Whether you’re celebrating an anniversary, a birthday, graduation, a holiday or the start of your favorite sport.
Transform B2C e-services
Going Wireless With Your Headphones
Without a doubt there is something very relaxing and pleasurable about cooking and eating grilled food. There are countless ways you can turn your grilling.
Calculator Venituri Estimative din Regim Hotelier
📊📈 Calculator Venituri Estimative din Regim Hotelier
Estimează-ți veniturile cu precizie în doar câteva click-uri
🛌 Capacitate Cazare
Adaugă locuri de dormit pentru a-ți crește venitul lunar
⭐ Facilități Extra
Adaugă facilități extra, pentru a crește prețul/noapte.
În plus, oaspeții vor rezerva mult mai des proprietatea ta!
💰 Costuri Operationale
Costurile operaționale te vor ajuta să ajustezi și să estimezi cât mai corect venitul tău NET Lunar!
📈 Analiză Financiară
Preț/Noapte
0
lei
Venit Lunar Estimativ
0
lei
Costuri Operationale Lunare
0
lei
Venit Net Lunar Estimativ
0
lei
Venit Net Anual Estimativ
0
lei
`;
revenueSummaryContainer.innerHTML = summaryHTML;
}
function showCompetitors() { // Funcția ORIGINALĂ afișare competitori
// Obține valorile și aplică trim() și replace('ș', 's') pentru a elimina spațiile albe și normaliza 'ș' în 's'
const city = document.getElementById('city').value.toLowerCase().trim().replace('ș', 's');
const propertyType = document.getElementById('propertyType').value.toLowerCase().trim();
const location = document.getElementById('location').value.toLowerCase().trim();
console.log("Criteriile selectate (TRIMMED):");
console.log("Oraș (TRIMMED):", city, ", Lungime:", city.length, ", Coduri caractere:", getCharacterCodes(city));
console.log("Tip Proprietate (TRIMMED):", propertyType, ", Lungime:", propertyType.length, ", Coduri caractere:", getCharacterCodes(propertyType));
console.log("Locație (TRIMMED):", location, ", Lungime:", location.length, ", Coduri caractere:", getCharacterCodes(location));
const filteredCompetitors = competitorData.filter(competitor => {
console.log("Verifică competitor:", competitor.numeCompetitor);
const competitorCity = competitor.oras.toLowerCase().trim().replace('ș', 's'); // Aplică replace('ș', 's') și pentru datele competitorului
const competitorPropertyType = competitor.tipProprietate.toLowerCase().trim();
const competitorLocation = competitor.zonaOras.toLowerCase().trim();
console.log("Oraș competitor (TRIMMED):", competitorCity, ", Lungime:", competitorCity.length, ", Coduri caractere:", getCharacterCodes(competitorCity));
console.log("Tip Proprietate competitor (TRIMMED):", competitorPropertyType, ", Lungime:", competitorPropertyType.length, ", Coduri caractere:", getCharacterCodes(competitorPropertyType));
console.log("Locație competitor (TRIMMED):", competitorLocation, ", Lungime:", competitorLocation.length, ", Coduri caractere:", getCharacterCodes(competitorLocation));
return competitorCity === city &&
competitorPropertyType === propertyType &&
competitorLocation === location;
});
console.log("Competitori filtrati:", filteredCompetitors);
if (filteredCompetitors.length === 0) {
alert("Nu există competitori în baza de date pentru criteriile selectate.");
return;
}
let tableHTML = '
'; // Învăluie tabelul în div-ul wrapper
}
// Funcție auxiliară pentru a obține codurile caracterelor dintr-un șir
function getCharacterCodes(str) {
let codes = [];
for (let i = 0; i 0) {
cleaningTaxSummaryHTML += `
`; // Adaugă un div container pentru sumarul taxei de curățenie
cleaningTaxSummaryHTML += `
Taxa de curățenie: ${cleaningTaxCost.toFixed(2)} RON/lună (${(cleaningTaxCost / 30.0 / parseFloat(document.getElementById('occupancy').value) * 100).toFixed(2)} RON/sejur la ${parseFloat(document.getElementById('occupancy').value)}% ocupare)
`; // Afișează costul lunar și pe sejur
if (taxBearer === 'guest') {
cleaningTaxSummaryHTML += `
`; // Închide div-ul container pentru sumarul taxei de curățenie
}
if (revenueSummaryElement) {
const existingCleaningSummary = resultsContainer.querySelector('.cleaning-tax-summary');
if (existingCleaningSummary) {
if(cleaningTaxSummaryHTML) {
resultsContainer.replaceChild(document.createRange().createContextualFragment(cleaningTaxSummaryHTML), existingCleaningSummary); // Înlocuiește sumarul existent
} else {
resultsContainer.removeChild(existingCleaningSummary); // Șterge sumarul dacă taxa de curățenie este 0
}
} else if (cleaningTaxSummaryHTML) {
resultsContainer.insertBefore(document.createRange().createContextualFragment(cleaningTaxSummaryHTML), revenueSummaryElement); // Inserăm înainte de revenue-summary dacă nu există deja
}
} else if (cleaningTaxSummaryHTML) {
resultsContainer.innerHTML += cleaningTaxSummaryHTML; // Adaugă la final dacă nu există revenue-summary încă
}
}
// Eveniment pentru câmpul "Taxa de curățenie" pentru a afișa/ascunde sectiunile următoare
document.getElementById('cleaningFee').addEventListener('input', function() {
const cleaningFeeValue = parseFloat(this.value);
const interventionsSection = document.getElementById('cleaningInterventionsSection');
const taxBearerSection = document.getElementById('taxBearerSection');
if (cleaningFeeValue > 0) {
interventionsSection.style.display = 'block'; // Afișează sectiunea pentru nr. interventii
taxBearerSection.style.display = 'block'; // Afișează sectiunea pentru cine suportă taxa
} else {
interventionsSection.style.display = 'none'; // Ascunde sectiunile
taxBearerSection.style.display = 'none';
}
});
// Event listener pentru slider-ul de ocupare
document.getElementById('occupancy').addEventListener('input', function() {
document.getElementById('occupancyValue').textContent = this.value + '%'; // Actualizează valoarea afișată în timp real
});
// Event listener pentru input-ul numeric de capacitate
document.getElementById('capacity').addEventListener('input', function() {
document.getElementById('capacityValueDisplay').textContent = this.value; // Actualizează valoarea afișată în timp real
});
// Generăm opțiunile pentru dropdown-ul "Număr intervenții curățenie/lună" la încărcarea paginii
generateInterventionOptions();
Împreună putem face sejururi memorabile în case remarcabile