[perpetual accounting] [minor] patch for intial setup

This commit is contained in:
Nabin Hait
2013-08-12 12:24:08 +05:30
parent fd6a650e12
commit 4af2dbf84d
5 changed files with 26 additions and 41 deletions

View File

@@ -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):

View File

@@ -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")

View File

@@ -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`"):

View File

@@ -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"],
}); });

View File

@@ -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)