mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-25 07:54:46 +00:00
[perpetual accounting] [minor] patch for intial setup
This commit is contained in:
@@ -269,7 +269,7 @@ def create_stock_in_hand_jv(reverse=False):
|
|||||||
"posting_date": today,
|
"posting_date": today,
|
||||||
"fiscal_year": fiscal_year,
|
"fiscal_year": fiscal_year,
|
||||||
"voucher_type": "Journal Entry",
|
"voucher_type": "Journal Entry",
|
||||||
"user_remark": (_("Auto Inventory Accounting") + ": " +
|
"user_remark": (_("Perpetual Accounting") + ": " +
|
||||||
(_("Disabled") if reverse else _("Enabled")) + ". " +
|
(_("Disabled") if reverse else _("Enabled")) + ". " +
|
||||||
_("Journal Entry for inventory that is received but not yet invoiced"))
|
_("Journal Entry for inventory that is received but not yet invoiced"))
|
||||||
},
|
},
|
||||||
@@ -297,14 +297,14 @@ def create_stock_in_hand_jv(reverse=False):
|
|||||||
|
|
||||||
msgprint(_("""These adjustment vouchers book the difference between \
|
msgprint(_("""These adjustment vouchers book the difference between \
|
||||||
the total value of received items and the total value of invoiced items, \
|
the total value of received items and the total value of invoiced items, \
|
||||||
as a required step to use Auto Inventory Accounting.
|
as a required step to use Perpetual Accounting.
|
||||||
This is an approximation to get you started.
|
This is an approximation to get you started.
|
||||||
You will need to submit these vouchers after checking if the values are correct.
|
You will need to submit these vouchers after checking if the values are correct.
|
||||||
For more details, read: \
|
For more details, read: \
|
||||||
<a href="http://erpnext.com/auto-inventory-accounting" target="_blank">\
|
<a href="http://erpnext.com/auto-inventory-accounting" target="_blank">\
|
||||||
Auto Inventory Accounting</a>"""))
|
Perpetual Accounting</a>"""))
|
||||||
|
|
||||||
webnotes.msgprint("""Please refresh the system to get effect of Auto Inventory Accounting""")
|
webnotes.msgprint("""Please refresh the system to get effect of Perpetual Accounting""")
|
||||||
|
|
||||||
|
|
||||||
def get_stock_rbnb_value(company):
|
def get_stock_rbnb_value(company):
|
||||||
|
|||||||
@@ -2,8 +2,12 @@ import webnotes
|
|||||||
from webnotes.utils import cint
|
from webnotes.utils import cint
|
||||||
|
|
||||||
def execute():
|
def execute():
|
||||||
|
import patches.march_2013.p08_create_aii_accounts
|
||||||
|
patches.march_2013.p08_create_aii_accounts.execute()
|
||||||
|
|
||||||
copy_perpetual_accounting_settings()
|
copy_perpetual_accounting_settings()
|
||||||
set_missing_cost_center()
|
set_missing_cost_center()
|
||||||
|
|
||||||
|
|
||||||
def set_missing_cost_center():
|
def set_missing_cost_center():
|
||||||
reload_docs = [
|
reload_docs = [
|
||||||
@@ -17,8 +21,7 @@ def set_missing_cost_center():
|
|||||||
if cint(webnotes.defaults.get_global_default("perpetual_accounting")):
|
if cint(webnotes.defaults.get_global_default("perpetual_accounting")):
|
||||||
for dt in ["Serial No", "Stock Reconciliation", "Stock Entry"]:
|
for dt in ["Serial No", "Stock Reconciliation", "Stock Entry"]:
|
||||||
webnotes.conn.sql("""update `tab%s` t1, tabCompany t2
|
webnotes.conn.sql("""update `tab%s` t1, tabCompany t2
|
||||||
set t1.cost_center=t2.stock_adjustment_cost_center
|
set t1.cost_center=t2.cost_center where t1.company = t2.name""" % dt)
|
||||||
where t1.company = t2.name""" % dt)
|
|
||||||
|
|
||||||
def copy_perpetual_accounting_settings():
|
def copy_perpetual_accounting_settings():
|
||||||
webnotes.reload_doc("accounts", "doctype", "accounts_settings")
|
webnotes.reload_doc("accounts", "doctype", "accounts_settings")
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ def execute():
|
|||||||
create_chart_of_accounts_if_not_exists()
|
create_chart_of_accounts_if_not_exists()
|
||||||
add_group_accounts()
|
add_group_accounts()
|
||||||
add_ledger_accounts()
|
add_ledger_accounts()
|
||||||
add_aii_cost_center()
|
|
||||||
set_default_accounts()
|
set_default_accounts()
|
||||||
|
|
||||||
def set_default_accounts():
|
def set_default_accounts():
|
||||||
@@ -79,26 +78,7 @@ def add_accounts(accounts_to_add, check_fn=None):
|
|||||||
"company": company
|
"company": company
|
||||||
})
|
})
|
||||||
account.insert()
|
account.insert()
|
||||||
|
|
||||||
def add_aii_cost_center():
|
|
||||||
for company, abbr in webnotes.conn.sql("""select name, abbr from `tabCompany`"""):
|
|
||||||
if not webnotes.conn.sql("""select name from `tabCost Center` where cost_center_name =
|
|
||||||
'Auto Inventory Accounting' and company = %s""", company):
|
|
||||||
parent_cost_center = webnotes.conn.get_value("Cost Center",
|
|
||||||
{"parent_cost_center['']": '', "company": company})
|
|
||||||
|
|
||||||
if not parent_cost_center:
|
|
||||||
webnotes.errprint("Company " + company + "does not have a root cost center")
|
|
||||||
continue
|
|
||||||
|
|
||||||
cc = webnotes.bean({
|
|
||||||
"doctype": "Cost Center",
|
|
||||||
"cost_center_name": "Auto Inventory Accounting",
|
|
||||||
"parent_cost_center": parent_cost_center,
|
|
||||||
"group_or_ledger": "Ledger",
|
|
||||||
"company": company
|
|
||||||
})
|
|
||||||
cc.insert()
|
|
||||||
|
|
||||||
def create_chart_of_accounts_if_not_exists():
|
def create_chart_of_accounts_if_not_exists():
|
||||||
for company in webnotes.conn.sql("select name from `tabCompany`"):
|
for company in webnotes.conn.sql("select name from `tabCompany`"):
|
||||||
|
|||||||
@@ -122,5 +122,5 @@ $.extend(erpnext.complete_setup, {
|
|||||||
|
|
||||||
fy_start_list: ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct'],
|
fy_start_list: ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct'],
|
||||||
|
|
||||||
domains: ['', "Manufacturing", "Retail", "Distribution", "Services"],
|
domains: ['', "Manufacturing", "Retail", "Distribution", "Services", "Other"],
|
||||||
});
|
});
|
||||||
@@ -5,7 +5,7 @@ from __future__ import unicode_literals
|
|||||||
import webnotes
|
import webnotes
|
||||||
from webnotes import _, msgprint
|
from webnotes import _, msgprint
|
||||||
|
|
||||||
from webnotes.utils import cstr
|
from webnotes.utils import cstr, cint
|
||||||
from webnotes.model.doc import Document
|
from webnotes.model.doc import Document
|
||||||
from webnotes.model.code import get_obj
|
from webnotes.model.code import get_obj
|
||||||
import webnotes.defaults
|
import webnotes.defaults
|
||||||
@@ -58,11 +58,15 @@ class DocType:
|
|||||||
|
|
||||||
def create_default_warehouses(self):
|
def create_default_warehouses(self):
|
||||||
for whname in ("Stores", "Work In Progress", "Finished Goods"):
|
for whname in ("Stores", "Work In Progress", "Finished Goods"):
|
||||||
webnotes.bean({
|
wh = {
|
||||||
"doctype":"Warehouse",
|
"doctype":"Warehouse",
|
||||||
"warehouse_name": whname,
|
"warehouse_name": whname,
|
||||||
"company": self.doc.name
|
"company": self.doc.name
|
||||||
}).insert()
|
}
|
||||||
|
if cint(webnotes.defaults.get_global_default("perpetual_accounting")):
|
||||||
|
wh.update({"account": "Stock In Hand - " + self.doc.abbr})
|
||||||
|
|
||||||
|
webnotes.bean(wh).insert()
|
||||||
|
|
||||||
def create_default_web_page(self):
|
def create_default_web_page(self):
|
||||||
if not webnotes.conn.get_value("Website Settings", None, "home_page"):
|
if not webnotes.conn.get_value("Website Settings", None, "home_page"):
|
||||||
@@ -242,8 +246,8 @@ class DocType:
|
|||||||
"default_expense_account": "Cost of Goods Sold",
|
"default_expense_account": "Cost of Goods Sold",
|
||||||
"receivables_group": "Accounts Receivable",
|
"receivables_group": "Accounts Receivable",
|
||||||
"payables_group": "Accounts Payable",
|
"payables_group": "Accounts Payable",
|
||||||
|
"default_cash_account": "Cash",
|
||||||
"stock_received_but_not_billed": "Stock Received But Not Billed",
|
"stock_received_but_not_billed": "Stock Received But Not Billed",
|
||||||
"stock_in_hand_account": "Stock In Hand",
|
|
||||||
"stock_adjustment_account": "Stock Adjustment",
|
"stock_adjustment_account": "Stock Adjustment",
|
||||||
"expenses_included_in_valuation": "Expenses Included In Valuation"
|
"expenses_included_in_valuation": "Expenses Included In Valuation"
|
||||||
}
|
}
|
||||||
@@ -253,9 +257,6 @@ class DocType:
|
|||||||
if not self.doc.fields.get(a) and webnotes.conn.exists("Account", account_name):
|
if not self.doc.fields.get(a) and webnotes.conn.exists("Account", account_name):
|
||||||
webnotes.conn.set(self.doc, a, account_name)
|
webnotes.conn.set(self.doc, a, account_name)
|
||||||
|
|
||||||
if not self.doc.stock_adjustment_cost_center:
|
|
||||||
webnotes.conn.set(self.doc, "stock_adjustment_cost_center", self.doc.cost_center)
|
|
||||||
|
|
||||||
def create_default_cost_center(self):
|
def create_default_cost_center(self):
|
||||||
cc_list = [
|
cc_list = [
|
||||||
{
|
{
|
||||||
@@ -272,14 +273,15 @@ class DocType:
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
for cc in cc_list:
|
for cc in cc_list:
|
||||||
cc.update({"doctype": "Cost Center"})
|
if webnotes.conn.exists("Cost Center", cc.cost_center_name + ' - ' + self.doc.abbr):
|
||||||
cc_bean = webnotes.bean(cc)
|
cc.update({"doctype": "Cost Center"})
|
||||||
cc_bean.ignore_permissions = True
|
cc_bean = webnotes.bean(cc)
|
||||||
|
cc_bean.ignore_permissions = True
|
||||||
|
|
||||||
if cc.get("cost_center_name") == self.doc.name:
|
if cc.get("cost_center_name") == self.doc.name:
|
||||||
cc_bean.ignore_mandatory = True
|
cc_bean.ignore_mandatory = True
|
||||||
|
|
||||||
cc_bean.insert()
|
cc_bean.insert()
|
||||||
|
|
||||||
webnotes.conn.set(self.doc, "cost_center", "Main - " + self.doc.abbr)
|
webnotes.conn.set(self.doc, "cost_center", "Main - " + self.doc.abbr)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user