zapamietanie akcji
This commit is contained in:
+6
-2
@@ -11,7 +11,7 @@ from .models import User, Vehicle, FuelEntry, CompanySettings, AppSetting, Orlen
|
||||
from .services import calculate_costs, fetch_orlen_price, fetch_orlen_range, invoice_period, fetch_ure_stations, aggregate_ure_companies, POLISH_REGIONS
|
||||
from .station_catalog import sync_station_catalog
|
||||
from . import THEMES
|
||||
from .vat import effective_vat_rate, global_vat_override, save_global_vat_override
|
||||
from .vat import entry_vat_rate, freeze_vat_action, global_vat_override, save_global_vat_override
|
||||
from .domain.costs import calculate_net_price_costs, calculate_net_price_comparison
|
||||
|
||||
main = Blueprint("main", __name__)
|
||||
@@ -70,6 +70,7 @@ def parse_fuel_entry_form(entry):
|
||||
fuel_type = (request.form.get("fuel_type") or "").upper()
|
||||
if fuel_type not in FUEL_TYPES:
|
||||
raise ValueError("Nieprawidłowy rodzaj paliwa")
|
||||
previous_fueled_at = entry.fueled_at
|
||||
fueled_at = datetime.fromisoformat(request.form.get("fueled_at", ""))
|
||||
liters = Decimal(request.form.get("liters", ""))
|
||||
price = Decimal(request.form.get("price_per_liter", ""))
|
||||
@@ -99,6 +100,8 @@ def parse_fuel_entry_form(entry):
|
||||
wholesale_price = (request.form.get("wholesale_price") or "").strip()
|
||||
entry.wholesale_price = Decimal(wholesale_price) if wholesale_price else None
|
||||
entry.wholesale_source = (request.form.get("wholesale_source") or "").strip() or None
|
||||
settings = vehicle.company or (vehicle.owner.company if vehicle.owner else None) or CompanySettings.query.first()
|
||||
freeze_vat_action(entry, settings.vat_rate, previous_fueled_at)
|
||||
return vehicle
|
||||
|
||||
|
||||
@@ -110,7 +113,7 @@ def calculate_entry_settlement(entry, fallback_settings=None):
|
||||
separately and never counted as a Last Price saving.
|
||||
"""
|
||||
entry_settings = entry.vehicle.company or (entry.vehicle.owner.company if entry.vehicle and entry.vehicle.owner else None) or fallback_settings or CompanySettings.query.first()
|
||||
vat_rate = effective_vat_rate(entry_settings.vat_rate, entry.fueled_at)
|
||||
vat_rate = entry_vat_rate(entry, entry_settings.vat_rate)
|
||||
vat_deduction_percent = entry_settings.vat_deduction_percent
|
||||
retail_price = Decimal(entry.price_per_liter)
|
||||
rule = FuelCardStationRule.query.filter_by(
|
||||
@@ -318,6 +321,7 @@ def fuel():
|
||||
except Exception: pass
|
||||
station_label = station_company.company_name if station_company else request.form.get("station")
|
||||
e = FuelEntry(vehicle_id=vehicle.id, user_id=current_user.id, fueled_at=fueled_at, liters=Decimal(request.form["liters"]), price_per_liter=Decimal(request.form["price_per_liter"]), fuel_type=request.form["fuel_type"], odometer=odometer, station=station_label, station_company_id=station_company.id if station_company else None, invoice_number=request.form.get("invoice_number"), used_fuel_card="used_fuel_card" in request.form, wholesale_price=wholesale, wholesale_source=source)
|
||||
freeze_vat_action(e, settings.vat_rate)
|
||||
vehicle.current_odometer = odometer; db.session.add(e); db.session.commit(); response = ok_response("Zapisano tankowanie", redirect=url_for("main.dashboard")); return response or redirect(url_for("main.dashboard"))
|
||||
allowed=list(settings.allowed_stations)
|
||||
company_favorites=list(settings.favorite_stations)
|
||||
|
||||
Reference in New Issue
Block a user