116 lines
1.9 KiB
Python
116 lines
1.9 KiB
Python
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()
|