12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import psycopg2
- class DataConsumer():
- """To query database"""
- def __init__(self, credentials):
- self.conn = psycopg2.connect(credentials)
- def __del__(self):
- self.conn.close()
- def getProductSet(self):
- cursor = self.conn.cursor()
- cursor.execute("SELECT * from Product")
- rows = cursor.fetchall()
- cursor.close()
- return rows
- def addProduct(self, name):
- cursor = self.conn.cursor()
- cursor.execute("INSERT INTO Product (pro_name) VALUES (%s)", (name,))
- cursor.close()
- def getCompanyNames(self):
- cursor = self.conn.cursor()
- cursor.execute("SELECT com_name FROM Company")
- ans = []
- for t in cursor:
- ans.append(t[0])
- cursor.close()
- return ans
- def getOrdersOfCompany(self, company):
- cursor = self.conn.cursor()
- cursor.execute("SELECT ord_id, ord_date FROM bookorder NATURAL JOIN company WHERE com_name = %s", (company,))
- rows = cursor.fetchall()
- cursor.close()
- return rows
- def getItemsOfOrder(self, bookId):
- cursor = self.conn.cursor()
- cursor.execute("SELECT ori_id, ori_quantity, pro_name, ori_deliveryduedate FROM ordereditem NATURAL JOIN product WHERE ord_id = %s", (bookId,))
- rows = cursor.fetchall()
- cursor.close()
- return rows
-
- def getWarehousesOfCompany(self, company):
- cursor = self.conn.cursor()
- cursor.execute("SELECT war_id, add_number, add_name, add_city FROM warehouse AS w JOIN company AS c ON w.com_id = c.com_id JOIN postaladdress AS p ON w.add_id = p.add_id WHERE com_name = %s", (company,))
- rows = cursor.fetchall()
- cursor.close()
- return rows
- def addOrder(self, company, houseId, proList, proQuantityList, dueDate):
- # Create cursor to execute SQL statements
- cursor = self.conn.cursor()
- # Create book order
- cursor.execute("INSERT INTO bookorder(ord_date, com_id) SELECT %s, com_id FROM company WHERE com_name = %s", (dueDate, company))
- # Retrieve id of the newly created bookorder
- cursor.execute("SELECT CURRVAL('bookorder_ord_id_seq')")
- ordId = cursor.fetchone()[0]
- # Add ordered items
- for k in range(len(proList)):
- proName = proList[k]
- proQuantity = proQuantityList[k]
- cursor.execute("INSERT INTO ordereditem(ori_quantity, ori_deliveryduedate, pro_id, ord_id, war_id) SELECT %s, %s, pro_id, %s, %s FROM product WHERE pro_name = %s", (proQuantity, dueDate, ordId, houseId, proName))
- cursor.close()
- def commit(self):
- """Make the changes to the database persistent"""
- self.conn.commit()
|