| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- {% extends 'base.html' %}
- {% block content %}
- <div class="row justify-content-center">
- <div class="col-md-8">
- <div class="card">
- <div class="card-header">Simulación para: <strong>{{ casa.nombre }}</strong></div>
- <div class="card-body">
- <div class="alert alert-secondary mb-4">
- <div class="row">
- <div class="col-md-6"><strong>Ubicación:</strong> {{ casa.ciudad.nombre_ciudad }}, {{ casa.ciudad.provincia }}</div>
- <div class="col-md-6"><strong>Área Disponible:</strong> {{ casa.area_techo }} m²</div>
- <div class="col-md-6"><strong>Orientación:</strong> {{ casa.orientacion }}</div>
- <div class="col-md-6"><strong>Inclinación:</strong> {{ casa.inclinacion }}°</div>
- </div>
- </div>
- <form action="{{ url_for('main.calculate') }}" method="POST">
- <input type="hidden" name="id_casa" value="{{ casa.id_casa }}">
-
- <div class="mb-3">
- <label for="id_panel" class="form-label">Modelo de Panel</label>
- <select name="id_panel" class="form-select" id="panelSelect" required onchange="updateMaxPanels()">
- {% for panel in paneles %}
- <option value="{{ panel.id_panel }}" data-area="{{ panel.area_m2 }}">
- {{ panel.marca }} {{ panel.modelo }} ({{ panel.eficiencia_r * 100 }}% Eficiencia, {{ panel.area_m2 }} m²)
- </option>
- {% endfor %}
- </select>
- </div>
- <div class="mb-3">
- <label for="cantidad" class="form-label">Cantidad de Paneles</label>
- <input type="number" name="cantidad" id="cantidadInput" class="form-control" required min="1">
- <div id="maxPanelsHelp" class="form-text text-muted"></div>
- </div>
- <hr>
- <h5>Datos de Factura Eléctrica (Opcional)</h5>
- <p class="text-muted small">Ingresa tu consumo mensual para estimar el ahorro en tu factura.</p>
-
- <div class="mb-3">
- <label for="consumo_kwh" class="form-label">Consumo Mensual (kWh)</label>
- <input type="number" step="0.1" name="consumo_kwh" id="consumoInput" class="form-control" placeholder="Ej: 350">
- </div>
- <div class="mb-3">
- <label for="precio_kwh" class="form-label">Precio del kWh ($)</label>
- <input type="text" class="form-control" value="{{ precio_kwh }}" readonly disabled>
- <div class="form-text">Este valor se configura en los ajustes del sistema.</div>
- </div>
- <button type="submit" class="btn btn-success w-100">Calcular</button>
- <a href="{{ url_for('main.casas') }}" class="btn btn-link w-100 mt-2">Volver a Mis Casas</a>
- </form>
- </div>
- </div>
- </div>
- </div>
- <script>
- function updateMaxPanels() {
- const houseArea = {{ casa.area_techo }};
- const select = document.getElementById('panelSelect');
- const selectedOption = select.options[select.selectedIndex];
- const panelArea = parseFloat(selectedOption.getAttribute('data-area'));
-
- const maxPanels = Math.floor(houseArea / panelArea);
-
- const helpText = document.getElementById('maxPanelsHelp');
- helpText.innerText = `Máximo recomendado para tu techo: ${maxPanels} paneles`;
-
- const input = document.getElementById('cantidadInput');
- input.max = maxPanels;
- }
-
- // Run on load
- document.addEventListener('DOMContentLoaded', updateMaxPanels);
- </script>
- {% endblock %}
|