def get_contractors(conn): cursor = conn.cursor() cursor.execute(""" SELECT id, name FROM contractors WHERE active = 1 ORDER BY name """) return cursor.fetchall() def get_all_contractors(conn): cursor = conn.cursor() cursor.execute(""" SELECT id, name, active FROM contractors ORDER BY name """) return cursor.fetchall() def add_contractor(conn, name): cursor = conn.cursor() cursor.execute(""" INSERT OR IGNORE INTO contractors(name) VALUES(?) """, (name,)) conn.commit() return cursor.rowcount > 0 def add_contractors_bulk(conn, text): cursor = conn.cursor() added = 0 exists = 0 for line in text.splitlines(): name = line.strip() if not name: continue cursor.execute( """ INSERT OR IGNORE INTO contractors(name) VALUES(?) """, (name,), ) if cursor.rowcount: added += 1 else: exists += 1 conn.commit() return added, exists def activate_contractor(conn, contractor_id): cursor = conn.cursor() cursor.execute(""" UPDATE contractors SET active = 1 WHERE id = ? """, (contractor_id,)) conn.commit() def disable_contractor(conn, contractor_id): cursor = conn.cursor() cursor.execute(""" UPDATE contractors SET active = 0 WHERE id = ? """, (contractor_id,)) conn.commit() def delete_contractor(conn, contractor_id): cursor = conn.cursor() cursor.execute( """ UPDATE documents_1c SET contractor_id = NULL WHERE contractor_id = ? """, (contractor_id,), ) cursor.execute( """ DELETE FROM contractors WHERE id = ? """, (contractor_id,), ) conn.commit()