submenu to choose customer or user
This commit is contained in:
20
tools.py
20
tools.py
@@ -4,6 +4,8 @@ from authentication import PasswordTools
|
|||||||
from views import View
|
from views import View
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from sqlalchemy import select, update, insert, delete
|
from sqlalchemy import select, update, insert, delete
|
||||||
|
from datetime import datetime, date
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Tools:
|
class Tools:
|
||||||
@@ -159,7 +161,7 @@ class CustomerTools:
|
|||||||
self.view.display_results(result)
|
self.view.display_results(result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def create(self) -> None:
|
def create(self, user_id) -> None:
|
||||||
"""
|
"""
|
||||||
Create a new customer with minimum information
|
Create a new customer with minimum information
|
||||||
:return: None; creates object in DB
|
:return: None; creates object in DB
|
||||||
@@ -170,6 +172,7 @@ class CustomerTools:
|
|||||||
email=customer['email'],
|
email=customer['email'],
|
||||||
phone=customer['phone'],
|
phone=customer['phone'],
|
||||||
company=customer['company'],
|
company=customer['company'],
|
||||||
|
commercial_id=user_id,
|
||||||
)
|
)
|
||||||
self.db.add(new_customer)
|
self.db.add(new_customer)
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
@@ -184,7 +187,7 @@ class CustomerTools:
|
|||||||
cust = self.db.get(Customer, my_id)
|
cust = self.db.get(Customer, my_id)
|
||||||
item, value = self.view.prompt_for_customer_update()
|
item, value = self.view.prompt_for_customer_update()
|
||||||
stmt = (update(Customer).where(Customer.id == my_id).values(
|
stmt = (update(Customer).where(Customer.id == my_id).values(
|
||||||
**{item: value}))
|
**{item: value}, last_update=datetime.now()))
|
||||||
self.db.execute(stmt)
|
self.db.execute(stmt)
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
self.view.display_change(cust.name, item, value)
|
self.view.display_change(cust.name, item, value)
|
||||||
@@ -253,15 +256,20 @@ class ContractTools:
|
|||||||
select(Contract).where(Contract.signed == 0))
|
select(Contract).where(Contract.signed == 0))
|
||||||
self.view.display_results(result)
|
self.view.display_results(result)
|
||||||
|
|
||||||
def create(self) -> None:
|
def create(self,
|
||||||
|
customer_options,
|
||||||
|
commercial_options) -> None:
|
||||||
"""
|
"""
|
||||||
Create a new contracts with minimum information
|
Create a new contracts with minimum information
|
||||||
:return: None; creates object in DB
|
:return: None; creates object in DB
|
||||||
"""
|
"""
|
||||||
contract = self.view.prompt_for_contract()
|
contract = self.view.prompt_for_contract(customer_options,
|
||||||
|
commercial_options)
|
||||||
|
if not contract['amount']:
|
||||||
|
contract['amount'] = 0
|
||||||
new_contract = Contract(
|
new_contract = Contract(
|
||||||
customer=contract['customer'],
|
customer_id=contract['customer'],
|
||||||
commercial=contract['commercial'],
|
commercial_id=contract['commercial'],
|
||||||
amount=contract['amount'],
|
amount=contract['amount'],
|
||||||
)
|
)
|
||||||
self.db.add(new_contract)
|
self.db.add(new_contract)
|
||||||
|
|||||||
8
views.py
8
views.py
@@ -78,11 +78,13 @@ class View:
|
|||||||
}
|
}
|
||||||
return self.prompt_for_update(options)
|
return self.prompt_for_update(options)
|
||||||
|
|
||||||
def prompt_for_contract(self) -> dict:
|
def prompt_for_contract(self, customer_options, commercial_options) -> dict:
|
||||||
contract = {}
|
contract = {}
|
||||||
print("** New contract **")
|
print("** New contract **")
|
||||||
contract['customer'] = input("Customer (id) ? : ")
|
print("Customer ? :")
|
||||||
contract['commercial'] = input("Commercial (id) ")
|
contract['customer'] = return_menu(customer_options)
|
||||||
|
print("Commercial ? :")
|
||||||
|
contract['commercial'] = return_menu(commercial_options)
|
||||||
contract['amount'] = input("Budget ? : ")
|
contract['amount'] = input("Budget ? : ")
|
||||||
return contract
|
return contract
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user