65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
|
|
from app.services.db_service import db
|
||
|
|
from app.models.subcontractor_rate_model import SubcontractorRate
|
||
|
|
|
||
|
|
|
||
|
|
class SubcontractorRateService:
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def save_rate(form):
|
||
|
|
|
||
|
|
rate = SubcontractorRate(
|
||
|
|
subcontractor_id=form.get("subcontractor_id"),
|
||
|
|
category=form.get("category"),
|
||
|
|
item_code=form.get("item_code"),
|
||
|
|
item_name=form.get("item_name"),
|
||
|
|
unit=form.get("unit"),
|
||
|
|
rate=form.get("rate"),
|
||
|
|
effective_from=form.get("effective_from"),
|
||
|
|
effective_to=form.get("effective_to") or None,
|
||
|
|
status=form.get("status")
|
||
|
|
)
|
||
|
|
|
||
|
|
db.session.add(rate)
|
||
|
|
db.session.commit()
|
||
|
|
return rate
|
||
|
|
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def get_all_rates():
|
||
|
|
|
||
|
|
return (
|
||
|
|
SubcontractorRate.query
|
||
|
|
.order_by(SubcontractorRate.created_at.desc())
|
||
|
|
.all()
|
||
|
|
)
|
||
|
|
@staticmethod
|
||
|
|
def get_rate(rate_id):
|
||
|
|
|
||
|
|
return SubcontractorRate.query.get_or_404(rate_id)
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def update_rate(rate_id, form):
|
||
|
|
|
||
|
|
rate = SubcontractorRate.query.get_or_404(rate_id)
|
||
|
|
|
||
|
|
rate.subcontractor_id = form.get("subcontractor_id")
|
||
|
|
rate.category = form.get("category")
|
||
|
|
rate.item_code = form.get("item_code")
|
||
|
|
rate.item_name = form.get("item_name")
|
||
|
|
rate.unit = form.get("unit")
|
||
|
|
rate.rate = form.get("rate")
|
||
|
|
rate.effective_from = form.get("effective_from")
|
||
|
|
rate.effective_to = form.get("effective_to") or None
|
||
|
|
rate.status = form.get("status")
|
||
|
|
|
||
|
|
db.session.commit()
|
||
|
|
return rate
|
||
|
|
|
||
|
|
@staticmethod
|
||
|
|
def delete_rate(rate_id):
|
||
|
|
|
||
|
|
rate = SubcontractorRate.query.get_or_404(rate_id)
|
||
|
|
|
||
|
|
db.session.delete(rate)
|
||
|
|
|
||
|
|
db.session.commit()
|