Merge branch 'develop' into refactor/file/production_plan.py
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 2610c86..9dff116 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -37,7 +37,7 @@
def autoname(self):
from erpnext.accounts.utils import get_autoname_with_number
- self.name = get_autoname_with_number(self.account_number, self.account_name, None, self.company)
+ self.name = get_autoname_with_number(self.account_number, self.account_name, self.company)
def validate(self):
from erpnext.accounts.utils import validate_field_number
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py
index 31055c3..e8b34bb 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.py
+++ b/erpnext/accounts/doctype/cost_center/cost_center.py
@@ -16,7 +16,7 @@
from erpnext.accounts.utils import get_autoname_with_number
self.name = get_autoname_with_number(
- self.cost_center_number, self.cost_center_name, None, self.company
+ self.cost_center_number, self.cost_center_name, self.company
)
def validate(self):
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 608f082..e51938b 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -2429,7 +2429,6 @@
target.closing_text = letter_text.get("closing_text")
target.language = letter_text.get("language")
amounts = calculate_interest_and_amount(
- target.posting_date,
target.outstanding_amount,
target.rate_of_interest,
target.dunning_fee,
diff --git a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
index 9d2deea..449ebdc 100644
--- a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
+++ b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
@@ -22,8 +22,7 @@
{
"label": _("Payment Document Type"),
"fieldname": "payment_document_type",
- "fieldtype": "Link",
- "options": "Doctype",
+ "fieldtype": "Data",
"width": 130,
},
{
@@ -33,15 +32,15 @@
"options": "payment_document_type",
"width": 140,
},
- {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 100},
+ {"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120},
{"label": _("Cheque/Reference No"), "fieldname": "cheque_no", "width": 120},
- {"label": _("Clearance Date"), "fieldname": "clearance_date", "fieldtype": "Date", "width": 100},
+ {"label": _("Clearance Date"), "fieldname": "clearance_date", "fieldtype": "Date", "width": 120},
{
"label": _("Against Account"),
"fieldname": "against",
"fieldtype": "Link",
"options": "Account",
- "width": 170,
+ "width": 200,
},
{"label": _("Amount"), "fieldname": "amount", "fieldtype": "Currency", "width": 120},
]
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index f61e8ac..c5eb7d8 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -1037,7 +1037,7 @@
frappe.db.set_value("Cost Center", docname, "cost_center_name", cost_center_name.strip())
- new_name = get_autoname_with_number(cost_center_number, cost_center_name, docname, company)
+ new_name = get_autoname_with_number(cost_center_number, cost_center_name, company)
if docname != new_name:
frappe.rename_doc("Cost Center", docname, new_name, force=1, merge=merge)
return new_name
@@ -1060,16 +1060,14 @@
)
-def get_autoname_with_number(number_value, doc_title, name, company):
+def get_autoname_with_number(number_value, doc_title, company):
"""append title with prefix as number and suffix as company's abbreviation separated by '-'"""
- if name:
- name_split = name.split("-")
- parts = [doc_title.strip(), name_split[len(name_split) - 1].strip()]
- else:
- abbr = frappe.get_cached_value("Company", company, ["abbr"], as_dict=True)
- parts = [doc_title.strip(), abbr.abbr]
+ company_abbr = frappe.get_cached_value("Company", company, "abbr")
+ parts = [doc_title.strip(), company_abbr]
+
if cstr(number_value).strip():
parts.insert(0, cstr(number_value).strip())
+
return " - ".join(parts)
diff --git a/erpnext/assets/doctype/asset_repair/test_asset_repair.py b/erpnext/assets/doctype/asset_repair/test_asset_repair.py
index 2786349..6e06f52 100644
--- a/erpnext/assets/doctype/asset_repair/test_asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/test_asset_repair.py
@@ -129,6 +129,18 @@
def test_gl_entries_with_perpetual_inventory(self):
set_depreciation_settings_in_company(company="_Test Company with perpetual inventory")
+ asset_category = frappe.get_doc("Asset Category", "Computers")
+ asset_category.append(
+ "accounts",
+ {
+ "company_name": "_Test Company with perpetual inventory",
+ "fixed_asset_account": "_Test Fixed Asset - TCP1",
+ "accumulated_depreciation_account": "_Test Accumulated Depreciations - TCP1",
+ "depreciation_expense_account": "_Test Depreciations - TCP1",
+ },
+ )
+ asset_category.save()
+
asset_repair = create_asset_repair(
capitalize_repair_cost=1,
stock_consumption=1,
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 584266d..5659ad0 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -6,6 +6,7 @@
from frappe import ValidationError, _, msgprint
from frappe.contacts.doctype.address.address import get_address_display
from frappe.utils import cint, cstr, flt, getdate
+from frappe.utils.data import nowtime
from erpnext.accounts.doctype.budget.budget import validate_expense_against_budget
from erpnext.accounts.party import get_party_details
@@ -289,12 +290,16 @@
# Get outgoing rate based on original item cost based on valuation method
if not d.get(frappe.scrub(ref_doctype)):
+ posting_time = self.get("posting_time")
+ if not posting_time and self.doctype == "Purchase Order":
+ posting_time = nowtime()
+
outgoing_rate = get_incoming_rate(
{
"item_code": d.item_code,
"warehouse": d.get("from_warehouse"),
"posting_date": self.get("posting_date") or self.get("transation_date"),
- "posting_time": self.get("posting_time"),
+ "posting_time": posting_time,
"qty": -1 * flt(d.get("stock_qty")),
"serial_no": d.get("serial_no"),
"batch_no": d.get("batch_no"),
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index dc69888..490504a 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -389,6 +389,7 @@
"capital_work_in_progress_account": "Capital Work in Progress",
"asset_received_but_not_billed": "Asset Received But Not Billed",
"expenses_included_in_asset_valuation": "Expenses Included In Asset Valuation",
+ "default_expense_account": "Cost of Goods Sold",
}
if self.enable_perpetual_inventory:
@@ -398,7 +399,6 @@
"default_inventory_account": "Stock",
"stock_adjustment_account": "Stock Adjustment",
"expenses_included_in_valuation": "Expenses Included In Valuation",
- "default_expense_account": "Cost of Goods Sold",
}
)
diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
index 4e76ae7..7b984d3 100644
--- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
@@ -729,15 +729,19 @@
sr.expense_account = args.expense_account or (
(
frappe.get_cached_value("Company", sr.company, "stock_adjustment_account")
- or "Stock Adjustment - _TC"
+ or frappe.get_cached_value(
+ "Account", {"account_type": "Stock Adjustment", "company": sr.company}, "name"
+ )
)
if frappe.get_all("Stock Ledger Entry", {"company": sr.company})
- else "Temporary Opening - _TC"
+ else frappe.get_cached_value(
+ "Account", {"account_type": "Temporary", "company": sr.company}, "name"
+ )
)
sr.cost_center = (
args.cost_center
or frappe.get_cached_value("Company", sr.company, "cost_center")
- or "_Test Cost Center - _TC"
+ or frappe.get_cached_value("Cost Center", filters={"is_group": 0, "company": sr.company})
)
sr.append(