mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-06 05:39:12 +00:00
fix: Missing commits from hotfix branch (#17997)
* fix: merge conflict * fix: restored missing set_gst_state_and_state_number function * fix: style linting as per codacy * fix: Fixes related to customer/lead merging * fix: merge conflict * fix: Fixes related to customer/lead merging * fix: Assign isue/opportunity to user * fix: Assign isue/opportunity to user * fix: Replaced Invoice type by GST Category * fix: merge conflict * fix: merge conflict * fix: test cases * fix: test cases
This commit is contained in:
@@ -52,7 +52,9 @@ def get_cart_quotation(doc=None):
|
||||
@frappe.whitelist()
|
||||
def place_order():
|
||||
quotation = _get_cart_quotation()
|
||||
quotation.company = frappe.db.get_value("Shopping Cart Settings", None, "company")
|
||||
cart_settings = frappe.db.get_value("Shopping Cart Settings", None,
|
||||
["company", "allow_items_not_in_stock"], as_dict=1)
|
||||
quotation.company = cart_settings.company
|
||||
if not quotation.get("customer_address"):
|
||||
throw(_("{0} is required").format(_(quotation.meta.get_label("customer_address"))))
|
||||
|
||||
@@ -65,14 +67,16 @@ def place_order():
|
||||
|
||||
from erpnext.selling.doctype.quotation.quotation import _make_sales_order
|
||||
sales_order = frappe.get_doc(_make_sales_order(quotation.name, ignore_permissions=True))
|
||||
for item in sales_order.get("items"):
|
||||
item.reserved_warehouse, is_stock_item = frappe.db.get_value("Item",
|
||||
item.item_code, ["website_warehouse", "is_stock_item"])
|
||||
|
||||
if is_stock_item:
|
||||
item_stock = get_qty_in_stock(item.item_code, "website_warehouse")
|
||||
if item.qty > item_stock.stock_qty[0][0]:
|
||||
throw(_("Only {0} in stock for item {1}").format(item_stock.stock_qty[0][0], item.item_code))
|
||||
if not cart_settings.allow_items_not_in_stock:
|
||||
for item in sales_order.get("items"):
|
||||
item.reserved_warehouse, is_stock_item = frappe.db.get_value("Item",
|
||||
item.item_code, ["website_warehouse", "is_stock_item"])
|
||||
|
||||
if is_stock_item:
|
||||
item_stock = get_qty_in_stock(item.item_code, "website_warehouse")
|
||||
if item.qty > item_stock.stock_qty[0][0]:
|
||||
throw(_("Only {0} in stock for item {1}").format(item_stock.stock_qty[0][0], item.item_code))
|
||||
|
||||
sales_order.flags.ignore_permissions = True
|
||||
sales_order.insert()
|
||||
@@ -241,7 +245,7 @@ def _get_cart_quotation(party=None):
|
||||
party = get_party()
|
||||
|
||||
quotation = frappe.get_all("Quotation", fields=["name"], filters=
|
||||
{party.doctype.lower(): party.name, "order_type": "Shopping Cart", "docstatus": 0},
|
||||
{"party_name": party.name, "order_type": "Shopping Cart", "docstatus": 0},
|
||||
order_by="modified desc", limit_page_length=1)
|
||||
|
||||
if quotation:
|
||||
@@ -256,7 +260,7 @@ def _get_cart_quotation(party=None):
|
||||
"status": "Draft",
|
||||
"docstatus": 0,
|
||||
"__islocal": 1,
|
||||
(party.doctype.lower()): party.name
|
||||
"party_name": party.name
|
||||
})
|
||||
|
||||
qdoc.contact_person = frappe.db.get_value("Contact", {"email_id": frappe.session.user})
|
||||
@@ -336,9 +340,9 @@ def _set_price_list(quotation, cart_settings):
|
||||
|
||||
# check if customer price list exists
|
||||
selling_price_list = None
|
||||
if quotation.customer:
|
||||
if quotation.party_name:
|
||||
from erpnext.accounts.party import get_default_price_list
|
||||
selling_price_list = get_default_price_list(frappe.get_doc("Customer", quotation.customer))
|
||||
selling_price_list = get_default_price_list(frappe.get_doc("Customer", quotation.party_name))
|
||||
|
||||
# else check for territory based price list
|
||||
if not selling_price_list:
|
||||
@@ -350,9 +354,9 @@ def set_taxes(quotation, cart_settings):
|
||||
"""set taxes based on billing territory"""
|
||||
from erpnext.accounts.party import set_taxes
|
||||
|
||||
customer_group = frappe.db.get_value("Customer", quotation.customer, "customer_group")
|
||||
customer_group = frappe.db.get_value("Customer", quotation.party_name, "customer_group")
|
||||
|
||||
quotation.taxes_and_charges = set_taxes(quotation.customer, "Customer",
|
||||
quotation.taxes_and_charges = set_taxes(quotation.party_name, "Customer",
|
||||
quotation.transaction_date, quotation.company, customer_group=customer_group, supplier_group=None,
|
||||
tax_category=quotation.tax_category, billing_address=quotation.customer_address,
|
||||
shipping_address=quotation.shipping_address_name, use_for_shopping_cart=1)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,6 @@ class TestShoppingCart(unittest.TestCase):
|
||||
self.assertEqual(quotation.quotation_to, "Customer")
|
||||
self.assertEqual(quotation.contact_person,
|
||||
frappe.db.get_value("Contact", dict(email_id="test_cart_user@example.com")))
|
||||
self.assertEqual(quotation.lead, None)
|
||||
self.assertEqual(quotation.contact_email, frappe.session.user)
|
||||
|
||||
return quotation
|
||||
@@ -44,8 +43,7 @@ class TestShoppingCart(unittest.TestCase):
|
||||
# test if quotation with customer is fetched
|
||||
quotation = _get_cart_quotation()
|
||||
self.assertEqual(quotation.quotation_to, "Customer")
|
||||
self.assertEqual(quotation.customer, "_Test Customer")
|
||||
self.assertEqual(quotation.lead, None)
|
||||
self.assertEqual(quotation.party_name, "_Test Customer")
|
||||
self.assertEqual(quotation.contact_email, frappe.session.user)
|
||||
|
||||
return quotation
|
||||
@@ -107,10 +105,11 @@ class TestShoppingCart(unittest.TestCase):
|
||||
|
||||
from erpnext.accounts.party import set_taxes
|
||||
|
||||
tax_rule_master = set_taxes(quotation.customer, "Customer",
|
||||
tax_rule_master = set_taxes(quotation.party_name, "Customer",
|
||||
quotation.transaction_date, quotation.company, customer_group=None, supplier_group=None,
|
||||
tax_category=quotation.tax_category, billing_address=quotation.customer_address,
|
||||
shipping_address=quotation.shipping_address_name, use_for_shopping_cart=1)
|
||||
|
||||
self.assertEqual(quotation.taxes_and_charges, tax_rule_master)
|
||||
self.assertEqual(quotation.total_taxes_and_charges, 1000.0)
|
||||
|
||||
@@ -123,7 +122,7 @@ class TestShoppingCart(unittest.TestCase):
|
||||
"doctype": "Quotation",
|
||||
"quotation_to": "Customer",
|
||||
"order_type": "Shopping Cart",
|
||||
"customer": get_party(frappe.session.user).name,
|
||||
"party_name": get_party(frappe.session.user).name,
|
||||
"docstatus": 0,
|
||||
"contact_email": frappe.session.user,
|
||||
"selling_price_list": "_Test Price List Rest of the World",
|
||||
|
||||
Reference in New Issue
Block a user