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()