mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-03 20:29:09 +00:00
* feat: introduce doctypes for repost
* refactor: basic filters and validations
* chore: basic validations
* chore: added barebones function to generate ledger entries
* chore: repost on submit
* chore: repost in background
* chore: include payment entry and journal entry
* chore: ignore repost doc on cancel
* chore: preview method
* chore: rudimentary form of preview
* refactor: preview template
* refactor: basic background colors to differentiate old and new
* chore: remove commented code
* test: basic functionality
* chore: fix conflict
* chore: prevent repost on invoices with deferred accounting
* refactor(test): rename and test basic validations and methods
* refactor(test): test all validations
* fix(test): use proper name account name
* refactor(test): fix failing test case
* refactor(test): clear old entries
* refactor(test): simpler logic to clear old records
* refactor(test): make use of deletion flag
* refactor(test): split into multiple test cases
(cherry picked from commit e64b004eca)
# Conflicts:
# erpnext/accounts/doctype/journal_entry/journal_entry.js
106 lines
3.1 KiB
Python
106 lines
3.1 KiB
Python
import frappe
|
|
|
|
from erpnext.stock.doctype.item.test_item import create_item
|
|
|
|
|
|
class AccountsTestMixin:
|
|
def create_customer(self, customer_name="_Test Customer", currency=None):
|
|
if not frappe.db.exists("Customer", customer_name):
|
|
customer = frappe.new_doc("Customer")
|
|
customer.customer_name = customer_name
|
|
customer.type = "Individual"
|
|
|
|
if currency:
|
|
customer.default_currency = currency
|
|
customer.save()
|
|
self.customer = customer.name
|
|
else:
|
|
self.customer = customer_name
|
|
|
|
def create_supplier(self, supplier_name="_Test Supplier", currency=None):
|
|
if not frappe.db.exists("Supplier", supplier_name):
|
|
supplier = frappe.new_doc("Supplier")
|
|
supplier.supplier_name = supplier_name
|
|
supplier.supplier_type = "Individual"
|
|
supplier.supplier_group = "Local"
|
|
|
|
if currency:
|
|
supplier.default_currency = currency
|
|
supplier.save()
|
|
self.supplier = supplier.name
|
|
else:
|
|
self.supplier = supplier_name
|
|
|
|
def create_item(self, item_name="_Test Item", is_stock=0, warehouse=None, company=None):
|
|
item = create_item(item_name, is_stock_item=is_stock, warehouse=warehouse, company=company)
|
|
self.item = item.name
|
|
|
|
def create_company(self, company_name="_Test Company", abbr="_TC"):
|
|
self.company_abbr = abbr
|
|
if frappe.db.exists("Company", company_name):
|
|
company = frappe.get_doc("Company", company_name)
|
|
else:
|
|
company = frappe.get_doc(
|
|
{
|
|
"doctype": "Company",
|
|
"company_name": company_name,
|
|
"country": "India",
|
|
"default_currency": "INR",
|
|
"create_chart_of_accounts_based_on": "Standard Template",
|
|
"chart_of_accounts": "Standard",
|
|
}
|
|
)
|
|
company = company.save()
|
|
|
|
self.company = company.name
|
|
self.cost_center = company.cost_center
|
|
self.warehouse = "Stores - " + abbr
|
|
self.finished_warehouse = "Finished Goods - " + abbr
|
|
self.income_account = "Sales - " + abbr
|
|
self.expense_account = "Cost of Goods Sold - " + abbr
|
|
self.debit_to = "Debtors - " + abbr
|
|
self.debit_usd = "Debtors USD - " + abbr
|
|
self.cash = "Cash - " + abbr
|
|
self.creditors = "Creditors - " + abbr
|
|
self.retained_earnings = "Retained Earnings - " + abbr
|
|
|
|
# Deferred revenue, expense and bank accounts
|
|
other_accounts = [
|
|
frappe._dict(
|
|
{
|
|
"attribute_name": "deferred_revenue",
|
|
"account_name": "Deferred Revenue",
|
|
"parent_account": "Current Liabilities - " + abbr,
|
|
}
|
|
),
|
|
frappe._dict(
|
|
{
|
|
"attribute_name": "deferred_expense",
|
|
"account_name": "Deferred Expense",
|
|
"parent_account": "Current Assets - " + abbr,
|
|
}
|
|
),
|
|
frappe._dict(
|
|
{
|
|
"attribute_name": "bank",
|
|
"account_name": "HDFC",
|
|
"parent_account": "Bank Accounts - " + abbr,
|
|
}
|
|
),
|
|
]
|
|
for acc in other_accounts:
|
|
acc_name = acc.account_name + " - " + abbr
|
|
if frappe.db.exists("Account", acc_name):
|
|
setattr(self, acc.attribute_name, acc_name)
|
|
else:
|
|
new_acc = frappe.get_doc(
|
|
{
|
|
"doctype": "Account",
|
|
"account_name": acc.account_name,
|
|
"parent_account": acc.parent_account,
|
|
"company": self.company,
|
|
}
|
|
)
|
|
new_acc.save()
|
|
setattr(self, acc.attribute_name, new_acc.name)
|