zapamietanie akcji
This commit is contained in:
@@ -21,8 +21,54 @@ def add_station_access_mode() -> None:
|
||||
))
|
||||
|
||||
|
||||
def add_fuel_entry_vat_action_snapshot() -> None:
|
||||
inspector = inspect(db.engine)
|
||||
columns = {column["name"] for column in inspector.get_columns("fuel_entry")}
|
||||
additions = {
|
||||
"vat_action_frozen": "BOOLEAN NOT NULL DEFAULT 0",
|
||||
"vat_action_applied": "BOOLEAN NOT NULL DEFAULT 0",
|
||||
"vat_action_name": "VARCHAR(160)",
|
||||
"vat_action_rate": "NUMERIC(6, 3)",
|
||||
"vat_action_start": "DATE",
|
||||
"vat_action_end": "DATE",
|
||||
}
|
||||
for name, definition in additions.items():
|
||||
if name not in columns:
|
||||
db.session.execute(text(f"ALTER TABLE fuel_entry ADD COLUMN {name} {definition}"))
|
||||
|
||||
settings = dict(db.session.execute(text(
|
||||
"SELECT key, value FROM app_setting WHERE key IN "
|
||||
"('global_vat_override_enabled','global_vat_override_name','global_vat_override_rate',"
|
||||
"'global_vat_override_start','global_vat_override_end')"
|
||||
)).all())
|
||||
if settings.get("global_vat_override_enabled") == "1" and settings.get("global_vat_override_rate"):
|
||||
conditions = ["vat_action_applied = 0"]
|
||||
params = {
|
||||
"name": settings.get("global_vat_override_name") or "Projekt rządowy",
|
||||
"rate": settings["global_vat_override_rate"],
|
||||
"start": settings.get("global_vat_override_start") or None,
|
||||
"end": settings.get("global_vat_override_end") or None,
|
||||
}
|
||||
if params["start"]:
|
||||
conditions.append("DATE(fueled_at) >= DATE(:start)")
|
||||
if params["end"]:
|
||||
conditions.append("DATE(fueled_at) <= DATE(:end)")
|
||||
db.session.execute(text(f"""
|
||||
UPDATE fuel_entry
|
||||
SET vat_action_frozen = 1,
|
||||
vat_action_applied = 1,
|
||||
vat_action_name = :name,
|
||||
vat_action_rate = :rate,
|
||||
vat_action_start = :start,
|
||||
vat_action_end = :end
|
||||
WHERE {' AND '.join(conditions)}
|
||||
"""), params)
|
||||
db.session.execute(text("UPDATE fuel_entry SET vat_action_frozen = 1 WHERE vat_action_frozen = 0"))
|
||||
|
||||
|
||||
MIGRATIONS: tuple[Migration, ...] = (
|
||||
Migration("20260713_company_station_access_mode", add_station_access_mode),
|
||||
Migration("20260719_fuel_entry_vat_action_snapshot", add_fuel_entry_vat_action_snapshot),
|
||||
)
|
||||
|
||||
def ensure_migration_table() -> None:
|
||||
|
||||
Reference in New Issue
Block a user