Skip to content

Commit 04f67dc

Browse files
fix: fetch correct price list when creating SI (#7)
1 parent d5ad972 commit 04f67dc

2 files changed

Lines changed: 27 additions & 21 deletions

File tree

simple_subscription/simple_subscription/doctype/simple_subscription/simple_subscription.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
from enum import Enum
77

88
import frappe
9+
from erpnext.accounts.doctype.sales_invoice.sales_invoice import SalesInvoice
10+
from erpnext.accounts.party import get_party_details
911
from frappe import _
1012
from frappe.model.document import Document
11-
12-
from erpnext.accounts.doctype.sales_invoice.sales_invoice import SalesInvoice
13+
from frappe.utils import today
1314

1415

1516
class Frequency(Enum):
@@ -47,6 +48,7 @@ def create_invoice(self, from_date: date, to_date: date) -> SalesInvoice:
4748
invoice = frappe.new_doc("Sales Invoice")
4849
invoice.company = self.company
4950
invoice.customer = self.customer
51+
invoice.selling_price_list = self.get_price_list()
5052
for row in self.items:
5153
invoice.append(
5254
"items",
@@ -62,6 +64,28 @@ def create_invoice(self, from_date: date, to_date: date) -> SalesInvoice:
6264
invoice.set_missing_values()
6365
return invoice.insert()
6466

67+
def get_price_list(self) -> str | None:
68+
currency = self.currency or frappe.get_cached_value("Company", self.company, "default_currency")
69+
70+
party_details = get_party_details(
71+
party=self.customer,
72+
account=None,
73+
party_type="Customer",
74+
company=self.company,
75+
posting_date=today(),
76+
currency=currency,
77+
doctype="Sales Invoice",
78+
fetch_payment_terms_template=False,
79+
)
80+
81+
price_list = (
82+
party_details.selling_price_list
83+
or frappe.db.get_single_value("Selling Settings", "selling_price_list")
84+
or frappe.db.get_value("Price List", {"selling": 1, "currency": currency, "enabled": 1})
85+
)
86+
87+
return price_list or None
88+
6589

6690
@frappe.whitelist()
6791
def create_current_invoice(subscription_name: str, silent=False):

simple_subscription/simple_subscription/doctype/simple_subscription_item/simple_subscription_item.py

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import frappe
55
from frappe.model.document import Document
66
from erpnext.stock.get_item_details import get_item_details
7-
from erpnext.accounts.party import get_party_details
87
from frappe.utils import today
98

109

@@ -16,24 +15,7 @@ def current_rate(self):
1615
"Company", parent.company, "default_currency"
1716
)
1817

19-
party_details = get_party_details(
20-
party=parent.customer,
21-
account=None,
22-
party_type="Customer",
23-
company=parent.company,
24-
posting_date=today(),
25-
currency=currency,
26-
doctype="Sales Invoice",
27-
fetch_payment_terms_template=False,
28-
)
29-
30-
price_list = (
31-
party_details.selling_price_list
32-
or frappe.db.get_single_value("Selling Settings", "selling_price_list")
33-
or frappe.db.get_value(
34-
"Price List", {"selling": 1, "currency": currency, "enabled": 1}
35-
)
36-
)
18+
price_list = parent.get_price_list()
3719

3820
item_details = get_item_details(
3921
{

0 commit comments

Comments
 (0)