From 3a6a6fa806827553a98f6e63ba09fec4c1c7eb09 Mon Sep 17 00:00:00 2001 From: Shadrak Gurupnor Date: Thu, 23 Jan 2025 16:29:29 +0530 Subject: [PATCH] fix(partner): Remove legacy contract check * Remove redundant code block from Invoice * Fetch certificate count of partner --- press/api/partner.py | 8 +++----- press/press/doctype/invoice/invoice.py | 13 ------------- press/press/doctype/team/team.py | 8 +++----- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/press/api/partner.py b/press/api/partner.py index 5467af3ade..e67e3da46f 100644 --- a/press/api/partner.py +++ b/press/api/partner.py @@ -86,10 +86,8 @@ def transfer_credits(amount, customer, partner): amt = frappe.utils.flt(amount) partner_doc = frappe.get_doc("Team", partner) credits_available = partner_doc.get_balance() - partner_level, legacy_contract = partner_doc.get_partner_level() - # no discount for partners on legacy contract - # TODO: remove legacy contract check - discount_percent = 0.0 if legacy_contract == 1 else DISCOUNT_MAP.get(partner_level) + partner_level, certificates = partner_doc.get_partner_level() + discount_percent = DISCOUNT_MAP.get(partner_level) if credits_available < amt: frappe.throw(f"Insufficient Credits to transfer. Credits Available: {credits_available}") @@ -221,7 +219,7 @@ def get_prev_month_partner_contribution(partner_email): @frappe.whitelist() def calculate_partner_tier(contribution, currency): - partner_tier = frappe.qb.DocType("Partner Teir") + partner_tier = frappe.qb.DocType("Partner Tier") query = frappe.qb.from_(partner_tier).select(partner_tier.name) if currency == "INR": query = query.where(partner_tier.target_in_inr <= contribution).orderby( diff --git a/press/press/doctype/invoice/invoice.py b/press/press/doctype/invoice/invoice.py index c524faceea..6f3ae9c8a6 100644 --- a/press/press/doctype/invoice/invoice.py +++ b/press/press/doctype/invoice/invoice.py @@ -622,19 +622,6 @@ def validate_items(self): def compute_free_credits(self): self.free_credits = sum([d.amount for d in self.credit_allocations if d.source == "Free Credits"]) - def apply_partner_discount(self): - if self.flags.on_partner_conversion: - return - - team = frappe.get_cached_doc("Team", self.team) - partner_level, legacy_contract = team.get_partner_level() - PartnerDiscounts = {"Entry": 0, "Bronze": 0.05, "Silver": 0.1, "Gold": 0.15} - discount_percent = 0.1 if legacy_contract == 1 else PartnerDiscounts.get(partner_level) - self.discount_note = "New Partner Discount" - for item in self.items: - if item.document_type in ("Site", "Server", "Database Server"): - item.discount_percentage = discount_percent - def calculate_discounts(self): for item in self.items: if item.discount_percentage: diff --git a/press/press/doctype/team/team.py b/press/press/doctype/team/team.py index b3b1e34ec0..9b01e16243 100644 --- a/press/press/doctype/team/team.py +++ b/press/press/doctype/team/team.py @@ -999,9 +999,9 @@ def get_partner_level(self): if response.ok: res = response.json() partner_level = res.get("message") - legacy_contract = res.get("legacy_contract") + certificate_count = res.get("certificates") if partner_level: - return partner_level, legacy_contract + return partner_level, certificate_count return None self.add_comment(text="Failed to fetch partner level" + "

" + response.text) @@ -1194,9 +1194,7 @@ def notify_with_email(self, recipients: list[str], **kwargs): def send_telegram_alert_for_failed_payment(self, invoice): team_url = get_url_to_form("Team", self.name) invoice_url = get_url_to_form("Invoice", invoice) - message = ( - f"Failed Invoice Payment [{invoice}]({invoice_url}) of" f" Partner: [{self.name}]({team_url})" - ) + message = f"Failed Invoice Payment [{invoice}]({invoice_url}) of Partner: [{self.name}]({team_url})" TelegramMessage.enqueue(message=message) @frappe.whitelist()