optimize(various)
This commit is contained in:
parent
4d0b8da0e5
commit
708e47aadf
@ -27,7 +27,7 @@ def get_default_currency():
|
|||||||
'''Returns the currency of the default company'''
|
'''Returns the currency of the default company'''
|
||||||
company = get_default_company()
|
company = get_default_company()
|
||||||
if company:
|
if company:
|
||||||
return frappe.db.get_value('Company', company, 'default_currency')
|
return frappe.get_cached_value('Company', company, 'default_currency')
|
||||||
|
|
||||||
def get_default_cost_center(company):
|
def get_default_cost_center(company):
|
||||||
'''Returns the default cost center of the company'''
|
'''Returns the default cost center of the company'''
|
||||||
@ -37,7 +37,7 @@ def get_default_cost_center(company):
|
|||||||
if not frappe.flags.company_cost_center:
|
if not frappe.flags.company_cost_center:
|
||||||
frappe.flags.company_cost_center = {}
|
frappe.flags.company_cost_center = {}
|
||||||
if not company in frappe.flags.company_cost_center:
|
if not company in frappe.flags.company_cost_center:
|
||||||
frappe.flags.company_cost_center[company] = frappe.db.get_value('Company', company, 'cost_center')
|
frappe.flags.company_cost_center[company] = frappe.get_cached_value('Company', company, 'cost_center')
|
||||||
return frappe.flags.company_cost_center[company]
|
return frappe.flags.company_cost_center[company]
|
||||||
|
|
||||||
def get_company_currency(company):
|
def get_company_currency(company):
|
||||||
@ -45,7 +45,7 @@ def get_company_currency(company):
|
|||||||
if not frappe.flags.company_currency:
|
if not frappe.flags.company_currency:
|
||||||
frappe.flags.company_currency = {}
|
frappe.flags.company_currency = {}
|
||||||
if not company in frappe.flags.company_currency:
|
if not company in frappe.flags.company_currency:
|
||||||
frappe.flags.company_currency[company] = frappe.db.get_value('Company', company, 'default_currency')
|
frappe.flags.company_currency[company] = frappe.get_cached_value('Company', company, 'default_currency')
|
||||||
return frappe.flags.company_currency[company]
|
return frappe.flags.company_currency[company]
|
||||||
|
|
||||||
def set_perpetual_inventory(enable=1, company=None):
|
def set_perpetual_inventory(enable=1, company=None):
|
||||||
@ -58,7 +58,7 @@ def set_perpetual_inventory(enable=1, company=None):
|
|||||||
|
|
||||||
def encode_company_abbr(name, company):
|
def encode_company_abbr(name, company):
|
||||||
'''Returns name encoded with company abbreviation'''
|
'''Returns name encoded with company abbreviation'''
|
||||||
company_abbr = frappe.db.get_value("Company", company, "abbr")
|
company_abbr = frappe.get_cached_value('Company', company, "abbr")
|
||||||
parts = name.rsplit(" - ", 1)
|
parts = name.rsplit(" - ", 1)
|
||||||
|
|
||||||
if parts[-1].lower() != company_abbr.lower():
|
if parts[-1].lower() != company_abbr.lower():
|
||||||
@ -74,7 +74,7 @@ def is_perpetual_inventory_enabled(company):
|
|||||||
frappe.local.enable_perpetual_inventory = {}
|
frappe.local.enable_perpetual_inventory = {}
|
||||||
|
|
||||||
if not company in frappe.local.enable_perpetual_inventory:
|
if not company in frappe.local.enable_perpetual_inventory:
|
||||||
frappe.local.enable_perpetual_inventory[company] = frappe.db.get_value("Company",
|
frappe.local.enable_perpetual_inventory[company] = frappe.get_cached_value('Company',
|
||||||
company, "enable_perpetual_inventory") or 0
|
company, "enable_perpetual_inventory") or 0
|
||||||
|
|
||||||
return frappe.local.enable_perpetual_inventory[company]
|
return frappe.local.enable_perpetual_inventory[company]
|
||||||
@ -87,7 +87,7 @@ def get_default_finance_book(company=None):
|
|||||||
frappe.local.default_finance_book = {}
|
frappe.local.default_finance_book = {}
|
||||||
|
|
||||||
if not company in frappe.local.default_finance_book:
|
if not company in frappe.local.default_finance_book:
|
||||||
frappe.local.default_finance_book[company] = frappe.db.get_value("Company",
|
frappe.local.default_finance_book[company] = frappe.get_cached_value('Company',
|
||||||
company, "default_finance_book")
|
company, "default_finance_book")
|
||||||
|
|
||||||
return frappe.local.default_finance_book[company]
|
return frappe.local.default_finance_book[company]
|
||||||
@ -108,7 +108,7 @@ def get_region(company=None):
|
|||||||
You can also set global company flag in `frappe.flags.company`
|
You can also set global company flag in `frappe.flags.company`
|
||||||
'''
|
'''
|
||||||
if company or frappe.flags.company:
|
if company or frappe.flags.company:
|
||||||
return frappe.db.get_value('Company',
|
return frappe.get_cached_value('Company',
|
||||||
company or frappe.flags.company, 'country')
|
company or frappe.flags.company, 'country')
|
||||||
elif frappe.flags.country:
|
elif frappe.flags.country:
|
||||||
return frappe.flags.country
|
return frappe.flags.country
|
||||||
|
@ -119,7 +119,7 @@ class Account(NestedSet):
|
|||||||
|
|
||||||
def validate_account_currency(self):
|
def validate_account_currency(self):
|
||||||
if not self.account_currency:
|
if not self.account_currency:
|
||||||
self.account_currency = frappe.db.get_value("Company", self.company, "default_currency")
|
self.account_currency = frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
|
|
||||||
elif self.account_currency != frappe.db.get_value("Account", self.name, "account_currency"):
|
elif self.account_currency != frappe.db.get_value("Account", self.name, "account_currency"):
|
||||||
if frappe.db.get_value("GL Entry", {"account": self.name}):
|
if frappe.db.get_value("GL Entry", {"account": self.name}):
|
||||||
@ -181,7 +181,7 @@ def get_account_currency(account):
|
|||||||
def generator():
|
def generator():
|
||||||
account_currency, company = frappe.db.get_value("Account", account, ["account_currency", "company"])
|
account_currency, company = frappe.db.get_value("Account", account, ["account_currency", "company"])
|
||||||
if not account_currency:
|
if not account_currency:
|
||||||
account_currency = frappe.db.get_value("Company", company, "default_currency")
|
account_currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
|
|
||||||
return account_currency
|
return account_currency
|
||||||
|
|
||||||
@ -192,7 +192,7 @@ def on_doctype_update():
|
|||||||
|
|
||||||
def get_account_autoname(account_number, account_name, company):
|
def get_account_autoname(account_number, account_name, company):
|
||||||
# first validate if company exists
|
# first validate if company exists
|
||||||
company = frappe.db.get_value("Company", company, ["abbr", "name"], as_dict=True)
|
company = frappe.get_cached_value('Company', company, ["abbr", "name"], as_dict=True)
|
||||||
if not company:
|
if not company:
|
||||||
frappe.throw(_('Company {0} does not exist').format(company))
|
frappe.throw(_('Company {0} does not exist').format(company))
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ def create_charts(company, chart_template=None, existing_company=None):
|
|||||||
"report_type": report_type,
|
"report_type": report_type,
|
||||||
"account_number": account_number,
|
"account_number": account_number,
|
||||||
"account_type": child.get("account_type"),
|
"account_type": child.get("account_type"),
|
||||||
"account_currency": frappe.db.get_value("Company", company, "default_currency"),
|
"account_currency": frappe.get_cached_value('Company', company, "default_currency"),
|
||||||
"tax_rate": child.get("tax_rate")
|
"tax_rate": child.get("tax_rate")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ class AccountingPeriod(Document):
|
|||||||
self.bootstrap_doctypes_for_closing()
|
self.bootstrap_doctypes_for_closing()
|
||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
company_abbr = frappe.db.get_value("Company", self.company, "abbr")
|
company_abbr = frappe.get_cached_value('Company', self.company, "abbr")
|
||||||
self.name = " - ".join([self.period_name, company_abbr])
|
self.name = " - ".join([self.period_name, company_abbr])
|
||||||
|
|
||||||
def validate_overlap(self):
|
def validate_overlap(self):
|
||||||
|
@ -81,7 +81,7 @@ def validate_expense_against_budget(args):
|
|||||||
|
|
||||||
if args.get('company') and not args.fiscal_year:
|
if args.get('company') and not args.fiscal_year:
|
||||||
args.fiscal_year = get_fiscal_year(args.get('posting_date'), company=args.get('company'))[0]
|
args.fiscal_year = get_fiscal_year(args.get('posting_date'), company=args.get('company'))[0]
|
||||||
frappe.flags.exception_approver_role = frappe.db.get_value('Company',
|
frappe.flags.exception_approver_role = frappe.get_cached_value('Company',
|
||||||
args.get('company'), 'exception_budget_approver_role')
|
args.get('company'), 'exception_budget_approver_role')
|
||||||
|
|
||||||
if not args.account:
|
if not args.account:
|
||||||
@ -155,7 +155,7 @@ def compare_expense_with_budget(args, budget_amount, action_for, action, budget_
|
|||||||
actual_expense = amount or get_actual_expense(args)
|
actual_expense = amount or get_actual_expense(args)
|
||||||
if actual_expense > budget_amount:
|
if actual_expense > budget_amount:
|
||||||
diff = actual_expense - budget_amount
|
diff = actual_expense - budget_amount
|
||||||
currency = frappe.db.get_value('Company', args.company, 'default_currency')
|
currency = frappe.get_cached_value('Company', args.company, 'default_currency')
|
||||||
|
|
||||||
msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It will exceed by {5}").format(
|
msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It will exceed by {5}").format(
|
||||||
_(action_for), frappe.bold(args.account), args.budget_against_field,
|
_(action_for), frappe.bold(args.account), args.budget_against_field,
|
||||||
|
@ -85,7 +85,7 @@ class ExchangeRateRevaluation(Document):
|
|||||||
if self.total_gain_loss == 0:
|
if self.total_gain_loss == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
unrealized_exchange_gain_loss_account = frappe.db.get_value("Company", self.company,
|
unrealized_exchange_gain_loss_account = frappe.get_cached_value('Company', self.company,
|
||||||
"unrealized_exchange_gain_loss_account")
|
"unrealized_exchange_gain_loss_account")
|
||||||
if not unrealized_exchange_gain_loss_account:
|
if not unrealized_exchange_gain_loss_account:
|
||||||
frappe.throw(_("Please set Unrealized Exchange Gain/Loss Account in Company {0}")
|
frappe.throw(_("Please set Unrealized Exchange Gain/Loss Account in Company {0}")
|
||||||
|
@ -69,8 +69,8 @@ class JournalEntry(AccountsController):
|
|||||||
def validate_inter_company_accounts(self):
|
def validate_inter_company_accounts(self):
|
||||||
if self.voucher_type == "Inter Company Journal Entry" and self.inter_company_journal_entry_reference:
|
if self.voucher_type == "Inter Company Journal Entry" and self.inter_company_journal_entry_reference:
|
||||||
doc = frappe.get_doc("Journal Entry", self.inter_company_journal_entry_reference)
|
doc = frappe.get_doc("Journal Entry", self.inter_company_journal_entry_reference)
|
||||||
account_currency = frappe.db.get_value("Company", self.company, "default_currency")
|
account_currency = frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
previous_account_currency = frappe.db.get_value("Company", doc.company, "default_currency")
|
previous_account_currency = frappe.get_cached_value('Company', doc.company, "default_currency")
|
||||||
if account_currency == previous_account_currency:
|
if account_currency == previous_account_currency:
|
||||||
if self.total_credit != doc.total_debit or self.total_debit != doc.total_credit:
|
if self.total_credit != doc.total_debit or self.total_debit != doc.total_credit:
|
||||||
frappe.throw(_("Total Credit/ Debit Amount should be same as linked Journal Entry"))
|
frappe.throw(_("Total Credit/ Debit Amount should be same as linked Journal Entry"))
|
||||||
@ -611,7 +611,7 @@ def get_default_bank_cash_account(company, account_type=None, mode_of_payment=No
|
|||||||
account (of that type), otherwise return empty dict.
|
account (of that type), otherwise return empty dict.
|
||||||
'''
|
'''
|
||||||
if account_type=="Bank":
|
if account_type=="Bank":
|
||||||
account = frappe.db.get_value("Company", company, "default_bank_account")
|
account = frappe.get_cached_value('Company', company, "default_bank_account")
|
||||||
if not account:
|
if not account:
|
||||||
account_list = frappe.get_all("Account", filters = {"company": company,
|
account_list = frappe.get_all("Account", filters = {"company": company,
|
||||||
"account_type": "Bank", "is_group": 0})
|
"account_type": "Bank", "is_group": 0})
|
||||||
@ -619,7 +619,7 @@ def get_default_bank_cash_account(company, account_type=None, mode_of_payment=No
|
|||||||
account = account_list[0].name
|
account = account_list[0].name
|
||||||
|
|
||||||
elif account_type=="Cash":
|
elif account_type=="Cash":
|
||||||
account = frappe.db.get_value("Company", company, "default_cash_account")
|
account = frappe.get_cached_value('Company', company, "default_cash_account")
|
||||||
if not account:
|
if not account:
|
||||||
account_list = frappe.get_all("Account", filters = {"company": company,
|
account_list = frappe.get_all("Account", filters = {"company": company,
|
||||||
"account_type": "Cash", "is_group": 0})
|
"account_type": "Cash", "is_group": 0})
|
||||||
@ -711,7 +711,7 @@ def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_cur
|
|||||||
|
|
||||||
|
|
||||||
def get_payment_entry(ref_doc, args):
|
def get_payment_entry(ref_doc, args):
|
||||||
cost_center = frappe.db.get_value("Company", ref_doc.company, "cost_center")
|
cost_center = frappe.get_cached_value('Company', ref_doc.company, "cost_center")
|
||||||
exchange_rate = 1
|
exchange_rate = 1
|
||||||
if args.get("party_account"):
|
if args.get("party_account"):
|
||||||
# Modified to include the posting date for which the exchange rate is required.
|
# Modified to include the posting date for which the exchange rate is required.
|
||||||
|
@ -133,7 +133,7 @@ class OpeningInvoiceCreationTool(Document):
|
|||||||
def get_invoice_dict(self, row=None):
|
def get_invoice_dict(self, row=None):
|
||||||
def get_item_dict():
|
def get_item_dict():
|
||||||
default_uom = frappe.db.get_single_value("Stock Settings", "stock_uom") or _("Nos")
|
default_uom = frappe.db.get_single_value("Stock Settings", "stock_uom") or _("Nos")
|
||||||
cost_center = frappe.db.get_value("Company", self.company, "cost_center")
|
cost_center = frappe.get_cached_value('Company', self.company, "cost_center")
|
||||||
if not cost_center:
|
if not cost_center:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("Please set the Default Cost Center in {0} company.").format(frappe.bold(self.company))
|
_("Please set the Default Cost Center in {0} company.").format(frappe.bold(self.company))
|
||||||
@ -171,7 +171,7 @@ class OpeningInvoiceCreationTool(Document):
|
|||||||
"posting_date": row.posting_date,
|
"posting_date": row.posting_date,
|
||||||
frappe.scrub(party_type): row.party,
|
frappe.scrub(party_type): row.party,
|
||||||
"doctype": "Sales Invoice" if self.invoice_type == "Sales" else "Purchase Invoice",
|
"doctype": "Sales Invoice" if self.invoice_type == "Sales" else "Purchase Invoice",
|
||||||
"currency": frappe.db.get_value("Company", self.company, "default_currency")
|
"currency": frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
})
|
})
|
||||||
|
|
||||||
if self.invoice_type == "Sales":
|
if self.invoice_type == "Sales":
|
||||||
|
@ -515,7 +515,7 @@ class PaymentEntry(AccountsController):
|
|||||||
def calculate_deductions(self, tax_details):
|
def calculate_deductions(self, tax_details):
|
||||||
return {
|
return {
|
||||||
"account": tax_details['tax']['account_head'],
|
"account": tax_details['tax']['account_head'],
|
||||||
"cost_center": frappe.db.get_value("Company", self.company, "cost_center"),
|
"cost_center": frappe.get_cached_value('Company', self.company, "cost_center"),
|
||||||
"amount": self.total_allocated_amount * (tax_details['tax']['rate'] / 100)
|
"amount": self.total_allocated_amount * (tax_details['tax']['rate'] / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -535,7 +535,7 @@ def get_outstanding_reference_documents(args):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
party_account_currency = get_account_currency(args.get("party_account"))
|
party_account_currency = get_account_currency(args.get("party_account"))
|
||||||
company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency")
|
company_currency = frappe.get_cached_value('Company', args.get("company"), "default_currency")
|
||||||
|
|
||||||
# Get negative outstanding sales /purchase invoices
|
# Get negative outstanding sales /purchase invoices
|
||||||
negative_outstanding_invoices = []
|
negative_outstanding_invoices = []
|
||||||
@ -686,7 +686,7 @@ def get_account_details(account, date):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_company_defaults(company):
|
def get_company_defaults(company):
|
||||||
fields = ["write_off_account", "exchange_gain_loss_account", "cost_center"]
|
fields = ["write_off_account", "exchange_gain_loss_account", "cost_center"]
|
||||||
ret = frappe.db.get_value("Company", company, fields, as_dict=1)
|
ret = frappe.get_cached_value('Company', company, fields, as_dict=1)
|
||||||
|
|
||||||
for fieldname in fields:
|
for fieldname in fields:
|
||||||
if not ret[fieldname]:
|
if not ret[fieldname]:
|
||||||
|
@ -151,7 +151,7 @@ class TestPaymentEntry(unittest.TestCase):
|
|||||||
|
|
||||||
def test_payment_entry_against_ec(self):
|
def test_payment_entry_against_ec(self):
|
||||||
|
|
||||||
payable = frappe.db.get_value('Company', "_Test Company", 'default_payable_account')
|
payable = frappe.get_cached_value('Company', "_Test Company", 'default_payable_account')
|
||||||
ec = make_expense_claim(payable, 300, 300, "_Test Company", "Travel Expenses - _TC")
|
ec = make_expense_claim(payable, 300, 300, "_Test Company", "Travel Expenses - _TC")
|
||||||
pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300)
|
pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300)
|
||||||
pe.reference_no = "1"
|
pe.reference_no = "1"
|
||||||
|
@ -28,7 +28,7 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
.format(self.closing_account_head))
|
.format(self.closing_account_head))
|
||||||
|
|
||||||
account_currency = get_account_currency(self.closing_account_head)
|
account_currency = get_account_currency(self.closing_account_head)
|
||||||
company_currency = frappe.db.get_value("Company", self.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
if account_currency != company_currency:
|
if account_currency != company_currency:
|
||||||
frappe.throw(_("Currency of the Closing Account must be {0}").format(company_currency))
|
frappe.throw(_("Currency of the Closing Account must be {0}").format(company_currency))
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ class POSProfile(Document):
|
|||||||
|
|
||||||
def get_item_groups(pos_profile):
|
def get_item_groups(pos_profile):
|
||||||
item_groups = []
|
item_groups = []
|
||||||
pos_profile = frappe.get_doc('POS Profile', pos_profile)
|
pos_profile = frappe.get_cached_doc('POS Profile', pos_profile)
|
||||||
|
|
||||||
if pos_profile.get('item_groups'):
|
if pos_profile.get('item_groups'):
|
||||||
# Get items based on the item groups defined in the POS profile
|
# Get items based on the item groups defined in the POS profile
|
||||||
|
@ -14,5 +14,5 @@ class PurchaseTaxesandChargesTemplate(Document):
|
|||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
if self.company and self.title:
|
if self.company and self.title:
|
||||||
abbr = frappe.db.get_value('Company', self.company, 'abbr')
|
abbr = frappe.get_cached_value('Company', self.company, 'abbr')
|
||||||
self.name = '{0} - {1}'.format(self.title, abbr)
|
self.name = '{0} - {1}'.format(self.title, abbr)
|
||||||
|
@ -495,7 +495,7 @@ def make_address(args, customer):
|
|||||||
address = frappe.get_doc('Address', name)
|
address = frappe.get_doc('Address', name)
|
||||||
else:
|
else:
|
||||||
address = frappe.new_doc('Address')
|
address = frappe.new_doc('Address')
|
||||||
address.country = frappe.db.get_value('Company', args.get('company'), 'country')
|
address.country = frappe.get_cached_value('Company', args.get('company'), 'country')
|
||||||
address.append('links', {
|
address.append('links', {
|
||||||
'link_doctype': 'Customer',
|
'link_doctype': 'Customer',
|
||||||
'link_name': customer
|
'link_name': customer
|
||||||
|
@ -345,7 +345,7 @@ class SalesInvoice(SellingController):
|
|||||||
update_multi_mode_option(self, pos)
|
update_multi_mode_option(self, pos)
|
||||||
|
|
||||||
if not self.account_for_change_amount:
|
if not self.account_for_change_amount:
|
||||||
self.account_for_change_amount = frappe.db.get_value('Company', self.company, 'default_cash_account')
|
self.account_for_change_amount = frappe.get_cached_value('Company', self.company, 'default_cash_account')
|
||||||
|
|
||||||
if pos:
|
if pos:
|
||||||
self.allow_print_before_pay = pos.allow_print_before_pay
|
self.allow_print_before_pay = pos.allow_print_before_pay
|
||||||
@ -501,7 +501,7 @@ class SalesInvoice(SellingController):
|
|||||||
|
|
||||||
def validate_write_off_account(self):
|
def validate_write_off_account(self):
|
||||||
if flt(self.write_off_amount) and not self.write_off_account:
|
if flt(self.write_off_amount) and not self.write_off_account:
|
||||||
self.write_off_account = frappe.db.get_value('Company', self.company, 'write_off_account')
|
self.write_off_account = frappe.get_cached_value('Company', self.company, 'write_off_account')
|
||||||
|
|
||||||
if flt(self.write_off_amount) and not self.write_off_account:
|
if flt(self.write_off_amount) and not self.write_off_account:
|
||||||
msgprint(_("Please enter Write Off Account"), raise_exception=1)
|
msgprint(_("Please enter Write Off Account"), raise_exception=1)
|
||||||
@ -830,7 +830,7 @@ class SalesInvoice(SellingController):
|
|||||||
# write off entries, applicable if only pos
|
# write off entries, applicable if only pos
|
||||||
if self.write_off_account and self.write_off_amount:
|
if self.write_off_account and self.write_off_amount:
|
||||||
write_off_account_currency = get_account_currency(self.write_off_account)
|
write_off_account_currency = get_account_currency(self.write_off_account)
|
||||||
default_cost_center = frappe.db.get_value('Company', self.company, 'cost_center')
|
default_cost_center = frappe.get_cached_value('Company', self.company, 'cost_center')
|
||||||
|
|
||||||
gl_entries.append(
|
gl_entries.append(
|
||||||
self.get_gl_dict({
|
self.get_gl_dict({
|
||||||
@ -1285,7 +1285,7 @@ def validate_inter_company_invoice(doc, doctype):
|
|||||||
frappe.throw(_("No {0} found for Inter Company Transactions.").format(partytype))
|
frappe.throw(_("No {0} found for Inter Company Transactions.").format(partytype))
|
||||||
|
|
||||||
company = details.get("company")
|
company = details.get("company")
|
||||||
default_currency = frappe.db.get_value("Company", company, "default_currency")
|
default_currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
if default_currency != doc.currency:
|
if default_currency != doc.currency:
|
||||||
frappe.throw(_("Company currencies of both the companies should match for Inter Company Transactions."))
|
frappe.throw(_("Company currencies of both the companies should match for Inter Company Transactions."))
|
||||||
|
|
||||||
|
@ -1324,14 +1324,14 @@ class TestSalesInvoice(unittest.TestCase):
|
|||||||
return si
|
return si
|
||||||
|
|
||||||
def test_company_monthly_sales(self):
|
def test_company_monthly_sales(self):
|
||||||
existing_current_month_sales = frappe.db.get_value("Company", "_Test Company", "total_monthly_sales")
|
existing_current_month_sales = frappe.get_cached_value('Company', "_Test Company", "total_monthly_sales")
|
||||||
|
|
||||||
si = create_sales_invoice()
|
si = create_sales_invoice()
|
||||||
current_month_sales = frappe.db.get_value("Company", "_Test Company", "total_monthly_sales")
|
current_month_sales = frappe.get_cached_value('Company', "_Test Company", "total_monthly_sales")
|
||||||
self.assertEqual(current_month_sales, existing_current_month_sales + si.base_grand_total)
|
self.assertEqual(current_month_sales, existing_current_month_sales + si.base_grand_total)
|
||||||
|
|
||||||
si.cancel()
|
si.cancel()
|
||||||
current_month_sales = frappe.db.get_value("Company", "_Test Company", "total_monthly_sales")
|
current_month_sales = frappe.get_cached_value('Company', "_Test Company", "total_monthly_sales")
|
||||||
self.assertEqual(current_month_sales, existing_current_month_sales)
|
self.assertEqual(current_month_sales, existing_current_month_sales)
|
||||||
|
|
||||||
def test_rounding_adjustment(self):
|
def test_rounding_adjustment(self):
|
||||||
|
@ -14,7 +14,7 @@ class SalesTaxesandChargesTemplate(Document):
|
|||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
if self.company and self.title:
|
if self.company and self.title:
|
||||||
abbr = frappe.db.get_value('Company', self.company, 'abbr')
|
abbr = frappe.get_cached_value('Company', self.company, 'abbr')
|
||||||
self.name = '{0} - {1}'.format(self.title, abbr)
|
self.name = '{0} - {1}'.format(self.title, abbr)
|
||||||
|
|
||||||
def set_missing_values(self):
|
def set_missing_values(self):
|
||||||
|
@ -115,7 +115,7 @@ def validate_account_for_perpetual_inventory(gl_map):
|
|||||||
|
|
||||||
def round_off_debit_credit(gl_map):
|
def round_off_debit_credit(gl_map):
|
||||||
precision = get_field_precision(frappe.get_meta("GL Entry").get_field("debit"),
|
precision = get_field_precision(frappe.get_meta("GL Entry").get_field("debit"),
|
||||||
currency=frappe.db.get_value("Company", gl_map[0].company, "default_currency", cache=True))
|
currency=frappe.get_cached_value('Company', gl_map[0].company, "default_currency"))
|
||||||
|
|
||||||
debit_credit_diff = 0.0
|
debit_credit_diff = 0.0
|
||||||
for entry in gl_map:
|
for entry in gl_map:
|
||||||
@ -161,7 +161,7 @@ def make_round_off_gle(gl_map, debit_credit_diff):
|
|||||||
gl_map.append(round_off_gle)
|
gl_map.append(round_off_gle)
|
||||||
|
|
||||||
def get_round_off_account_and_cost_center(company):
|
def get_round_off_account_and_cost_center(company):
|
||||||
round_off_account, round_off_cost_center = frappe.db.get_value("Company", company,
|
round_off_account, round_off_cost_center = frappe.get_cached_value('Company', company,
|
||||||
["round_off_account", "round_off_cost_center"]) or [None, None]
|
["round_off_account", "round_off_cost_center"]) or [None, None]
|
||||||
if not round_off_account:
|
if not round_off_account:
|
||||||
frappe.throw(_("Please mention Round Off Account in Company"))
|
frappe.throw(_("Please mention Round Off Account in Company"))
|
||||||
|
@ -210,7 +210,7 @@ def get_party_account(party_type, party, company):
|
|||||||
if not account and party_type in ['Customer', 'Supplier']:
|
if not account and party_type in ['Customer', 'Supplier']:
|
||||||
default_account_name = "default_receivable_account" \
|
default_account_name = "default_receivable_account" \
|
||||||
if party_type=="Customer" else "default_payable_account"
|
if party_type=="Customer" else "default_payable_account"
|
||||||
account = frappe.db.get_value("Company", company, default_account_name)
|
account = frappe.get_cached_value('Company', company, default_account_name)
|
||||||
|
|
||||||
existing_gle_currency = get_party_gle_currency(party_type, party, company)
|
existing_gle_currency = get_party_gle_currency(party_type, party, company)
|
||||||
if existing_gle_currency:
|
if existing_gle_currency:
|
||||||
@ -273,8 +273,8 @@ def validate_party_accounts(doc):
|
|||||||
|
|
||||||
party_account_currency = frappe.db.get_value("Account", account.account, "account_currency")
|
party_account_currency = frappe.db.get_value("Account", account.account, "account_currency")
|
||||||
existing_gle_currency = get_party_gle_currency(doc.doctype, doc.name, account.company)
|
existing_gle_currency = get_party_gle_currency(doc.doctype, doc.name, account.company)
|
||||||
company_default_currency = frappe.db.get_value("Company",
|
company_default_currency = frappe.get_cached_value('Company',
|
||||||
frappe.db.get_default("Company"), "default_currency", cache=True)
|
frappe.db.get_default("Company"), "default_currency")
|
||||||
|
|
||||||
if existing_gle_currency and party_account_currency != existing_gle_currency:
|
if existing_gle_currency and party_account_currency != existing_gle_currency:
|
||||||
frappe.throw(_("Accounting entries have already been made in currency {0} for company {1}. Please select a receivable or payable account with currency {0}.").format(existing_gle_currency, account.company))
|
frappe.throw(_("Accounting entries have already been made in currency {0} for company {1}. Please select a receivable or payable account with currency {0}.").format(existing_gle_currency, account.company))
|
||||||
@ -402,7 +402,7 @@ def get_pyt_term_template(party_name, party_type, company=None):
|
|||||||
template = frappe.db.get_value("Supplier Group", supplier.supplier_group, fieldname='payment_terms')
|
template = frappe.db.get_value("Supplier Group", supplier.supplier_group, fieldname='payment_terms')
|
||||||
|
|
||||||
if not template and company:
|
if not template and company:
|
||||||
template = frappe.db.get_value("Company", company, fieldname='payment_terms')
|
template = frappe.get_cached_value('Company', company, fieldname='payment_terms')
|
||||||
return template
|
return template
|
||||||
|
|
||||||
def validate_party_frozen_disabled(party_type, party_name):
|
def validate_party_frozen_disabled(party_type, party_name):
|
||||||
@ -454,7 +454,7 @@ def get_dashboard_info(party_type, party):
|
|||||||
company = frappe.db.get_default("company") or frappe.get_all("Company")[0].name
|
company = frappe.db.get_default("company") or frappe.get_all("Company")[0].name
|
||||||
party_account_currency = get_party_account_currency(party_type, party, company)
|
party_account_currency = get_party_account_currency(party_type, party, company)
|
||||||
company_default_currency = get_default_currency() \
|
company_default_currency = get_default_currency() \
|
||||||
or frappe.db.get_value('Company', company, 'default_currency')
|
or frappe.get_cached_value('Company', company, 'default_currency')
|
||||||
|
|
||||||
if party_account_currency==company_default_currency:
|
if party_account_currency==company_default_currency:
|
||||||
total_field = "base_grand_total"
|
total_field = "base_grand_total"
|
||||||
|
@ -132,7 +132,7 @@ class ReceivablePayableReport(object):
|
|||||||
if not self.filters.get("company"):
|
if not self.filters.get("company"):
|
||||||
self.filters["company"] = frappe.db.get_single_value('Global Defaults', 'default_company')
|
self.filters["company"] = frappe.db.get_single_value('Global Defaults', 'default_company')
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", self.filters.get("company"), "default_currency")
|
company_currency = frappe.get_cached_value('Company', self.filters.get("company"), "default_currency")
|
||||||
|
|
||||||
return_entries = self.get_return_entries(args.get("party_type"))
|
return_entries = self.get_return_entries(args.get("party_type"))
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ def execute(filters=None):
|
|||||||
period_list = get_period_list(filters.from_fiscal_year, filters.to_fiscal_year,
|
period_list = get_period_list(filters.from_fiscal_year, filters.to_fiscal_year,
|
||||||
filters.periodicity, company=filters.company)
|
filters.periodicity, company=filters.company)
|
||||||
|
|
||||||
currency = filters.presentation_currency or frappe.db.get_value("Company", filters.company, "default_currency")
|
currency = filters.presentation_currency or frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
asset = get_data(filters.company, "Asset", "Debit", period_list,
|
asset = get_data(filters.company, "Asset", "Debit", period_list,
|
||||||
only_current_fiscal_year=False, filters=filters,
|
only_current_fiscal_year=False, filters=filters,
|
||||||
@ -65,7 +65,7 @@ def get_provisional_profit_loss(asset, liability, equity, period_list, company,
|
|||||||
total_row = {}
|
total_row = {}
|
||||||
if asset and (liability or equity):
|
if asset and (liability or equity):
|
||||||
total = total_row_total=0
|
total = total_row_total=0
|
||||||
currency = currency or frappe.db.get_value("Company", company, "default_currency")
|
currency = currency or frappe.get_cached_value('Company', company, "default_currency")
|
||||||
total_row = {
|
total_row = {
|
||||||
"account_name": "'" + _("Total (Credit)") + "'",
|
"account_name": "'" + _("Total (Credit)") + "'",
|
||||||
"account": "'" + _("Total (Credit)") + "'",
|
"account": "'" + _("Total (Credit)") + "'",
|
||||||
|
@ -29,7 +29,7 @@ def execute(filters=None):
|
|||||||
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
for cash_flow_account in cash_flow_accounts:
|
for cash_flow_account in cash_flow_accounts:
|
||||||
section_data = []
|
section_data = []
|
||||||
|
@ -358,7 +358,7 @@ def execute(filters=None):
|
|||||||
|
|
||||||
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
data = compute_data(filters, company_currency, net_profit_loss, period_list, mappers, cash_flow_accounts)
|
data = compute_data(filters, company_currency, net_profit_loss, period_list, mappers, cash_flow_accounts)
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ def get_balance_sheet_data(fiscal_year, companies, columns, filters):
|
|||||||
"account_name": "'" + _("Unclosed Fiscal Years Profit / Loss (Credit)") + "'",
|
"account_name": "'" + _("Unclosed Fiscal Years Profit / Loss (Credit)") + "'",
|
||||||
"account": "'" + _("Unclosed Fiscal Years Profit / Loss (Credit)") + "'",
|
"account": "'" + _("Unclosed Fiscal Years Profit / Loss (Credit)") + "'",
|
||||||
"warn_if_negative": True,
|
"warn_if_negative": True,
|
||||||
"currency": frappe.db.get_value("Company", filters.company, "default_currency")
|
"currency": frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
}
|
}
|
||||||
for company in companies:
|
for company in companies:
|
||||||
unclosed[company] = opening_balance
|
unclosed[company] = opening_balance
|
||||||
@ -91,7 +91,7 @@ def get_profit_loss_data(fiscal_year, companies, columns, filters):
|
|||||||
return data, None, chart
|
return data, None, chart
|
||||||
|
|
||||||
def get_income_expense_data(companies, fiscal_year, filters):
|
def get_income_expense_data(companies, fiscal_year, filters):
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
income = get_data(companies, "Income", "Credit", fiscal_year, filters, True)
|
income = get_data(companies, "Income", "Credit", fiscal_year, filters, True)
|
||||||
|
|
||||||
expense = get_data(companies, "Expense", "Debit", fiscal_year, filters, True)
|
expense = get_data(companies, "Expense", "Debit", fiscal_year, filters, True)
|
||||||
@ -106,7 +106,7 @@ def get_cash_flow_data(fiscal_year, companies, filters):
|
|||||||
income, expense, net_profit_loss = get_income_expense_data(companies, fiscal_year, filters)
|
income, expense, net_profit_loss = get_income_expense_data(companies, fiscal_year, filters)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
for cash_flow_account in cash_flow_accounts:
|
for cash_flow_account in cash_flow_accounts:
|
||||||
section_data = []
|
section_data = []
|
||||||
@ -215,7 +215,7 @@ def get_data(companies, root_type, balance_must_be, fiscal_year, filters=None, i
|
|||||||
return out
|
return out
|
||||||
|
|
||||||
def get_company_currency(filters=None):
|
def get_company_currency(filters=None):
|
||||||
return frappe.db.get_value("Company", filters.get('company'), "default_currency")
|
return frappe.get_cached_value('Company', filters.get('company'), "default_currency")
|
||||||
|
|
||||||
def calculate_values(accounts_by_name, gl_entries_by_account, companies, fiscal_year, filters):
|
def calculate_values(accounts_by_name, gl_entries_by_account, companies, fiscal_year, filters):
|
||||||
for entries in gl_entries_by_account.values():
|
for entries in gl_entries_by_account.values():
|
||||||
@ -267,7 +267,7 @@ def get_companies(filters):
|
|||||||
return all_companies, companies
|
return all_companies, companies
|
||||||
|
|
||||||
def get_subsidiary_companies(company):
|
def get_subsidiary_companies(company):
|
||||||
lft, rgt = frappe.db.get_value('Company',
|
lft, rgt = frappe.get_cached_value('Company',
|
||||||
company, ["lft", "rgt"])
|
company, ["lft", "rgt"])
|
||||||
|
|
||||||
return frappe.db.sql_list("""select name from `tabCompany`
|
return frappe.db.sql_list("""select name from `tabCompany`
|
||||||
@ -321,7 +321,7 @@ def set_gl_entries_by_account(from_date, to_date, root_lft, root_rgt, filters, g
|
|||||||
accounts_by_name, ignore_closing_entries=False):
|
accounts_by_name, ignore_closing_entries=False):
|
||||||
"""Returns a dict like { "account": [gl entries], ... }"""
|
"""Returns a dict like { "account": [gl entries], ... }"""
|
||||||
|
|
||||||
company_lft, company_rgt = frappe.db.get_value('Company',
|
company_lft, company_rgt = frappe.get_cached_value('Company',
|
||||||
filters.get('company'), ["lft", "rgt"])
|
filters.get('company'), ["lft", "rgt"])
|
||||||
|
|
||||||
additional_conditions = get_additional_conditions(from_date, ignore_closing_entries, filters)
|
additional_conditions = get_additional_conditions(from_date, ignore_closing_entries, filters)
|
||||||
|
@ -162,7 +162,7 @@ def get_appropriate_currency(company, filters=None):
|
|||||||
if filters and filters.get("presentation_currency"):
|
if filters and filters.get("presentation_currency"):
|
||||||
return filters["presentation_currency"]
|
return filters["presentation_currency"]
|
||||||
else:
|
else:
|
||||||
return frappe.db.get_value("Company", company, "default_currency")
|
return frappe.get_cached_value('Company', company, "default_currency")
|
||||||
|
|
||||||
|
|
||||||
def calculate_values(
|
def calculate_values(
|
||||||
|
@ -72,7 +72,7 @@ def validate_party(filters):
|
|||||||
|
|
||||||
def set_account_currency(filters):
|
def set_account_currency(filters):
|
||||||
if filters.get("account") or (filters.get('party') and len(filters.party) == 1):
|
if filters.get("account") or (filters.get('party') and len(filters.party) == 1):
|
||||||
filters["company_currency"] = frappe.db.get_value("Company", filters.company, "default_currency")
|
filters["company_currency"] = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
account_currency = None
|
account_currency = None
|
||||||
|
|
||||||
if filters.get("account"):
|
if filters.get("account"):
|
||||||
|
@ -11,7 +11,7 @@ from frappe.utils import flt
|
|||||||
|
|
||||||
def execute(filters=None):
|
def execute(filters=None):
|
||||||
if not filters: filters = frappe._dict()
|
if not filters: filters = frappe._dict()
|
||||||
filters.currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
filters.currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
gross_profit_data = GrossProfitGenerator(filters)
|
gross_profit_data = GrossProfitGenerator(filters)
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ def get_net_profit_loss(income, expense, period_list, company, currency=None, co
|
|||||||
"account_name": "'" + _("Profit for the year") + "'",
|
"account_name": "'" + _("Profit for the year") + "'",
|
||||||
"account": "'" + _("Profit for the year") + "'",
|
"account": "'" + _("Profit for the year") + "'",
|
||||||
"warn_if_negative": True,
|
"warn_if_negative": True,
|
||||||
"currency": currency or frappe.db.get_value("Company", company, "default_currency")
|
"currency": currency or frappe.get_cached_value('Company', company, "default_currency")
|
||||||
}
|
}
|
||||||
|
|
||||||
has_value = False
|
has_value = False
|
||||||
|
@ -96,7 +96,7 @@ def accumulate_values_into_parents(accounts, accounts_by_name):
|
|||||||
|
|
||||||
def prepare_data(accounts, filters, total_row, parent_children_map, based_on):
|
def prepare_data(accounts, filters, total_row, parent_children_map, based_on):
|
||||||
data = []
|
data = []
|
||||||
company_currency = frappe.db.get_value("Company", filters.get("company"), "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.get("company"), "default_currency")
|
||||||
|
|
||||||
for d in accounts:
|
for d in accounts:
|
||||||
has_value = False
|
has_value = False
|
||||||
|
@ -26,7 +26,7 @@ def _execute(filters=None, additional_table_columns=None, additional_query_colum
|
|||||||
suppliers = list(set([d.supplier for d in invoice_list]))
|
suppliers = list(set([d.supplier for d in invoice_list]))
|
||||||
supplier_details = get_supplier_details(suppliers)
|
supplier_details = get_supplier_details(suppliers)
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for inv in invoice_list:
|
for inv in invoice_list:
|
||||||
|
@ -25,7 +25,7 @@ def _execute(filters, additional_table_columns=None, additional_query_columns=No
|
|||||||
#Cost Center & Warehouse Map
|
#Cost Center & Warehouse Map
|
||||||
invoice_cc_wh_map = get_invoice_cc_wh_map(invoice_list)
|
invoice_cc_wh_map = get_invoice_cc_wh_map(invoice_list)
|
||||||
invoice_so_dn_map = get_invoice_so_dn_map(invoice_list)
|
invoice_so_dn_map = get_invoice_so_dn_map(invoice_list)
|
||||||
company_currency = frappe.db.get_value("Company", filters.get("company"), "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.get("company"), "default_currency")
|
||||||
mode_of_payments = get_mode_of_payments([inv.name for inv in invoice_list])
|
mode_of_payments = get_mode_of_payments([inv.name for inv in invoice_list])
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
|
@ -25,7 +25,7 @@ def get_data(filters, show_party_name):
|
|||||||
party_filters = {"name": filters.get("party")} if filters.get("party") else {}
|
party_filters = {"name": filters.get("party")} if filters.get("party") else {}
|
||||||
parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field],
|
parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field],
|
||||||
filters = party_filters, order_by="name")
|
filters = party_filters, order_by="name")
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
opening_balances = get_opening_balances(filters)
|
opening_balances = get_opening_balances(filters)
|
||||||
balances_within_period = get_balances_within_period(filters)
|
balances_within_period = get_balances_within_period(filters)
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ def get_balance_on(account=None, date=None, party_type=None, party=None, company
|
|||||||
|
|
||||||
# If group and currency same as company,
|
# If group and currency same as company,
|
||||||
# always return balance based on debit and credit in company currency
|
# always return balance based on debit and credit in company currency
|
||||||
if acc.account_currency == frappe.db.get_value("Company", acc.company, "default_currency"):
|
if acc.account_currency == frappe.get_cached_value('Company', acc.company, "default_currency"):
|
||||||
in_account_currency = False
|
in_account_currency = False
|
||||||
else:
|
else:
|
||||||
cond.append("""gle.account = "%s" """ % (frappe.db.escape(account, percent=False), ))
|
cond.append("""gle.account = "%s" """ % (frappe.db.escape(account, percent=False), ))
|
||||||
@ -275,7 +275,7 @@ def add_cc(args=None):
|
|||||||
|
|
||||||
if args.parent_cost_center == args.company:
|
if args.parent_cost_center == args.company:
|
||||||
args.parent_cost_center = "{0} - {1}".format(args.parent_cost_center,
|
args.parent_cost_center = "{0} - {1}".format(args.parent_cost_center,
|
||||||
frappe.db.get_value('Company', args.company, 'abbr'))
|
frappe.get_cached_value('Company', args.company, 'abbr'))
|
||||||
|
|
||||||
cc = frappe.new_doc("Cost Center")
|
cc = frappe.new_doc("Cost Center")
|
||||||
cc.update(args)
|
cc.update(args)
|
||||||
@ -498,7 +498,7 @@ def remove_ref_doc_link_from_pe(ref_type, ref_no):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_company_default(company, fieldname):
|
def get_company_default(company, fieldname):
|
||||||
value = frappe.db.get_value("Company", company, fieldname)
|
value = frappe.get_cached_value('Company', company, fieldname)
|
||||||
|
|
||||||
if not value:
|
if not value:
|
||||||
throw(_("Please set default {0} in Company {1}")
|
throw(_("Please set default {0} in Company {1}")
|
||||||
@ -570,7 +570,7 @@ def get_stock_rbnb_difference(posting_date, company):
|
|||||||
stock_rbnb = flt(pr_valuation_amount, 2) - flt(pi_valuation_amount, 2)
|
stock_rbnb = flt(pr_valuation_amount, 2) - flt(pi_valuation_amount, 2)
|
||||||
|
|
||||||
# Balance as per system
|
# Balance as per system
|
||||||
stock_rbnb_account = "Stock Received But Not Billed - " + frappe.db.get_value("Company", company, "abbr")
|
stock_rbnb_account = "Stock Received But Not Billed - " + frappe.get_cached_value('Company', company, "abbr")
|
||||||
sys_bal = get_balance_on(stock_rbnb_account, posting_date, in_account_currency=False)
|
sys_bal = get_balance_on(stock_rbnb_account, posting_date, in_account_currency=False)
|
||||||
|
|
||||||
# Amount should be credited
|
# Amount should be credited
|
||||||
@ -707,7 +707,7 @@ def get_children(doctype, parent, company, is_root=False):
|
|||||||
|
|
||||||
if doctype == 'Account':
|
if doctype == 'Account':
|
||||||
sort_accounts(acc, is_root, key="value")
|
sort_accounts(acc, is_root, key="value")
|
||||||
company_currency = frappe.db.get_value("Company", company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
for each in acc:
|
for each in acc:
|
||||||
each["company_currency"] = company_currency
|
each["company_currency"] = company_currency
|
||||||
each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False))
|
each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False))
|
||||||
@ -809,7 +809,7 @@ def get_autoname_with_number(number_value, doc_title, name, company):
|
|||||||
name_split=name.split("-")
|
name_split=name.split("-")
|
||||||
parts = [doc_title.strip(), name_split[len(name_split)-1].strip()]
|
parts = [doc_title.strip(), name_split[len(name_split)-1].strip()]
|
||||||
else:
|
else:
|
||||||
abbr = frappe.db.get_value("Company", company, ["abbr"], as_dict=True)
|
abbr = frappe.get_cached_value('Company', company, ["abbr"], as_dict=True)
|
||||||
parts = [doc_title.strip(), abbr.abbr]
|
parts = [doc_title.strip(), abbr.abbr]
|
||||||
if cstr(number_value).strip():
|
if cstr(number_value).strip():
|
||||||
parts.insert(0, cstr(number_value).strip())
|
parts.insert(0, cstr(number_value).strip())
|
||||||
|
@ -410,7 +410,7 @@ def get_asset_naming_series():
|
|||||||
def make_purchase_invoice(asset, item_code, gross_purchase_amount, company, posting_date):
|
def make_purchase_invoice(asset, item_code, gross_purchase_amount, company, posting_date):
|
||||||
pi = frappe.new_doc("Purchase Invoice")
|
pi = frappe.new_doc("Purchase Invoice")
|
||||||
pi.company = company
|
pi.company = company
|
||||||
pi.currency = frappe.db.get_value("Company", company, "default_currency")
|
pi.currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
pi.set_posting_time = 1
|
pi.set_posting_time = 1
|
||||||
pi.posting_date = posting_date
|
pi.posting_date = posting_date
|
||||||
pi.append("items", {
|
pi.append("items", {
|
||||||
@ -429,7 +429,7 @@ def make_purchase_invoice(asset, item_code, gross_purchase_amount, company, post
|
|||||||
def make_sales_invoice(asset, item_code, company, serial_no=None):
|
def make_sales_invoice(asset, item_code, company, serial_no=None):
|
||||||
si = frappe.new_doc("Sales Invoice")
|
si = frappe.new_doc("Sales Invoice")
|
||||||
si.company = company
|
si.company = company
|
||||||
si.currency = frappe.db.get_value("Company", company, "default_currency")
|
si.currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(company)
|
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(company)
|
||||||
si.append("items", {
|
si.append("items", {
|
||||||
"item_code": item_code,
|
"item_code": item_code,
|
||||||
@ -504,7 +504,7 @@ def get_asset_account(account_name, asset=None, asset_category=None, company=Non
|
|||||||
asset_category = asset_category, company = company)
|
asset_category = asset_category, company = company)
|
||||||
|
|
||||||
if not account:
|
if not account:
|
||||||
account = frappe.db.get_value('Company', company, account_name)
|
account = frappe.get_cached_value('Company', company, account_name)
|
||||||
|
|
||||||
if not account:
|
if not account:
|
||||||
frappe.throw(_("Set {0} in asset category {1} or company {2}")
|
frappe.throw(_("Set {0} in asset category {1} or company {2}")
|
||||||
|
@ -35,7 +35,7 @@ def make_depreciation_entry(asset_name, date=None):
|
|||||||
fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \
|
fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \
|
||||||
get_depreciation_accounts(asset)
|
get_depreciation_accounts(asset)
|
||||||
|
|
||||||
depreciation_cost_center, depreciation_series = frappe.db.get_value("Company", asset.company,
|
depreciation_cost_center, depreciation_series = frappe.get_cached_value('Company', asset.company,
|
||||||
["depreciation_cost_center", "series_for_depreciation_entry"])
|
["depreciation_cost_center", "series_for_depreciation_entry"])
|
||||||
|
|
||||||
depreciation_cost_center = asset.cost_center or depreciation_cost_center
|
depreciation_cost_center = asset.cost_center or depreciation_cost_center
|
||||||
@ -93,7 +93,7 @@ def get_depreciation_accounts(asset):
|
|||||||
depreciation_expense_account = accounts.depreciation_expense_account
|
depreciation_expense_account = accounts.depreciation_expense_account
|
||||||
|
|
||||||
if not accumulated_depreciation_account or not depreciation_expense_account:
|
if not accumulated_depreciation_account or not depreciation_expense_account:
|
||||||
accounts = frappe.db.get_value("Company", asset.company,
|
accounts = frappe.get_cached_value('Company', asset.company,
|
||||||
["accumulated_depreciation_account", "depreciation_expense_account"])
|
["accumulated_depreciation_account", "depreciation_expense_account"])
|
||||||
|
|
||||||
if not accumulated_depreciation_account:
|
if not accumulated_depreciation_account:
|
||||||
@ -116,7 +116,7 @@ def scrap_asset(asset_name):
|
|||||||
elif asset.status in ("Cancelled", "Sold", "Scrapped"):
|
elif asset.status in ("Cancelled", "Sold", "Scrapped"):
|
||||||
frappe.throw(_("Asset {0} cannot be scrapped, as it is already {1}").format(asset.name, asset.status))
|
frappe.throw(_("Asset {0} cannot be scrapped, as it is already {1}").format(asset.name, asset.status))
|
||||||
|
|
||||||
depreciation_series = frappe.db.get_value("Company", asset.company, "series_for_depreciation_entry")
|
depreciation_series = frappe.get_cached_value('Company', asset.company, "series_for_depreciation_entry")
|
||||||
|
|
||||||
je = frappe.new_doc("Journal Entry")
|
je = frappe.new_doc("Journal Entry")
|
||||||
je.voucher_type = "Journal Entry"
|
je.voucher_type = "Journal Entry"
|
||||||
@ -189,7 +189,7 @@ def get_gl_entries_on_asset_disposal(asset, selling_amount=0):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_disposal_account_and_cost_center(company):
|
def get_disposal_account_and_cost_center(company):
|
||||||
disposal_account, depreciation_cost_center = frappe.db.get_value("Company", company,
|
disposal_account, depreciation_cost_center = frappe.get_cached_value('Company', company,
|
||||||
["disposal_account", "depreciation_cost_center"])
|
["disposal_account", "depreciation_cost_center"])
|
||||||
|
|
||||||
if not disposal_account:
|
if not disposal_account:
|
||||||
|
@ -36,7 +36,7 @@ class AssetValueAdjustment(Document):
|
|||||||
fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \
|
fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \
|
||||||
get_depreciation_accounts(asset)
|
get_depreciation_accounts(asset)
|
||||||
|
|
||||||
depreciation_cost_center, depreciation_series = frappe.db.get_value("Company", asset.company,
|
depreciation_cost_center, depreciation_series = frappe.get_cached_value('Company', asset.company,
|
||||||
["depreciation_cost_center", "series_for_depreciation_entry"])
|
["depreciation_cost_center", "series_for_depreciation_entry"])
|
||||||
|
|
||||||
je = frappe.new_doc("Journal Entry")
|
je = frappe.new_doc("Journal Entry")
|
||||||
|
@ -183,7 +183,7 @@ class TestPurchaseOrder(unittest.TestCase):
|
|||||||
"supplier" : "_Test Supplier",
|
"supplier" : "_Test Supplier",
|
||||||
"is_subcontracted" : "No",
|
"is_subcontracted" : "No",
|
||||||
"schedule_date": add_days(nowdate(), 1),
|
"schedule_date": add_days(nowdate(), 1),
|
||||||
"currency" : frappe.db.get_value("Company", "_Test Company", "default_currency"),
|
"currency" : frappe.get_cached_value('Company', "_Test Company", "default_currency"),
|
||||||
"conversion_factor" : 1,
|
"conversion_factor" : 1,
|
||||||
"items" : get_same_items(),
|
"items" : get_same_items(),
|
||||||
"group_same_items": 1
|
"group_same_items": 1
|
||||||
@ -520,7 +520,7 @@ def create_purchase_order(**args):
|
|||||||
po.company = args.company or "_Test Company"
|
po.company = args.company or "_Test Company"
|
||||||
po.supplier = args.customer or "_Test Supplier"
|
po.supplier = args.customer or "_Test Supplier"
|
||||||
po.is_subcontracted = args.is_subcontracted or "No"
|
po.is_subcontracted = args.is_subcontracted or "No"
|
||||||
po.currency = args.currency or frappe.db.get_value("Company", po.company, "default_currency")
|
po.currency = args.currency or frappe.get_cached_value('Company', po.company, "default_currency")
|
||||||
po.conversion_factor = args.conversion_factor or 1
|
po.conversion_factor = args.conversion_factor or 1
|
||||||
po.supplier_warehouse = args.supplier_warehouse or None
|
po.supplier_warehouse = args.supplier_warehouse or None
|
||||||
|
|
||||||
|
@ -606,7 +606,7 @@ class AccountsController(TransactionBase):
|
|||||||
@property
|
@property
|
||||||
def company_abbr(self):
|
def company_abbr(self):
|
||||||
if not hasattr(self, "_abbr"):
|
if not hasattr(self, "_abbr"):
|
||||||
self._abbr = frappe.db.get_value("Company", self.company, "abbr")
|
self._abbr = frappe.get_cached_value('Company', self.company, "abbr")
|
||||||
|
|
||||||
return self._abbr
|
return self._abbr
|
||||||
|
|
||||||
@ -841,7 +841,7 @@ def get_taxes_and_charges(master_doctype, master_name):
|
|||||||
def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company):
|
def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company):
|
||||||
"""common validation for currency and price list currency"""
|
"""common validation for currency and price list currency"""
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", company, "default_currency", cache=True)
|
company_currency = frappe.get_cached_value('Company', company, "default_currency")
|
||||||
|
|
||||||
if not conversion_rate:
|
if not conversion_rate:
|
||||||
throw(_("{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.").format(
|
throw(_("{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.").format(
|
||||||
|
@ -12,7 +12,7 @@ def print_settings_for_item_table(doc):
|
|||||||
}
|
}
|
||||||
doc.hide_in_print_layout = ["uom", "stock_uom"]
|
doc.hide_in_print_layout = ["uom", "stock_uom"]
|
||||||
|
|
||||||
doc.flags.compact_item_print = cint(frappe.db.get_value("Print Settings", None, "compact_item_print"))
|
doc.flags.compact_item_print = cint(frappe.db.get_single_value("Print Settings", "compact_item_print"))
|
||||||
|
|
||||||
if doc.flags.compact_item_print:
|
if doc.flags.compact_item_print:
|
||||||
doc.print_templates["description"] = "templates/print_formats/includes/item_table_description.html"
|
doc.print_templates["description"] = "templates/print_formats/includes/item_table_description.html"
|
||||||
|
@ -8,6 +8,7 @@ from frappe import _, throw
|
|||||||
from erpnext.stock.get_item_details import get_bin_details
|
from erpnext.stock.get_item_details import get_bin_details
|
||||||
from erpnext.stock.utils import get_incoming_rate
|
from erpnext.stock.utils import get_incoming_rate
|
||||||
from erpnext.stock.get_item_details import get_conversion_factor
|
from erpnext.stock.get_item_details import get_conversion_factor
|
||||||
|
from erpnext.stock.doctype.item.item import get_item_defaults, set_item_default
|
||||||
|
|
||||||
from erpnext.controllers.stock_controller import StockController
|
from erpnext.controllers.stock_controller import StockController
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ class SellingController(StockController):
|
|||||||
self.validate_selling_price()
|
self.validate_selling_price()
|
||||||
self.set_qty_as_per_stock_uom()
|
self.set_qty_as_per_stock_uom()
|
||||||
self.set_po_nos()
|
self.set_po_nos()
|
||||||
check_active_sales_items(self)
|
set_default_income_account_for_item(self)
|
||||||
|
|
||||||
def set_missing_values(self, for_validate=False):
|
def set_missing_values(self, for_validate=False):
|
||||||
super(SellingController, self).set_missing_values(for_validate)
|
super(SellingController, self).set_missing_values(for_validate)
|
||||||
@ -349,24 +350,8 @@ class SellingController(StockController):
|
|||||||
from erpnext.controllers.buying_controller import validate_item_type
|
from erpnext.controllers.buying_controller import validate_item_type
|
||||||
validate_item_type(self, "is_sales_item", "sales")
|
validate_item_type(self, "is_sales_item", "sales")
|
||||||
|
|
||||||
def check_active_sales_items(obj):
|
def set_default_income_account_for_item(obj):
|
||||||
for d in obj.get("items"):
|
for d in obj.get("items"):
|
||||||
if d.item_code:
|
if d.item_code:
|
||||||
item = frappe.db.sql("""select i.docstatus, id.income_account
|
|
||||||
from `tabItem` i, `tabItem Default` id
|
|
||||||
where i.name=%s and id.parent=i.name and id.company=%s""",
|
|
||||||
(d.item_code, obj.company), as_dict=True)
|
|
||||||
|
|
||||||
if getattr(d, "income_account", None):
|
if getattr(d, "income_account", None):
|
||||||
doc = frappe.get_doc("Item", d.item_code)
|
set_item_default(d.item_code, obj.company, 'income_account', d.income_account)
|
||||||
if item and not item[0].income_account:
|
|
||||||
for default in doc.item_defaults:
|
|
||||||
if default.company == obj.company:
|
|
||||||
default.income_account = d.income_account
|
|
||||||
break
|
|
||||||
elif not item:
|
|
||||||
doc.append("item_defaults", {
|
|
||||||
"company": obj.company,
|
|
||||||
"income_account": d.income_account
|
|
||||||
})
|
|
||||||
doc.save(ignore_permissions=True)
|
|
||||||
|
@ -217,7 +217,7 @@ def make_quotation(source_name, target_doc=None):
|
|||||||
from erpnext.controllers.accounts_controller import get_default_taxes_and_charges
|
from erpnext.controllers.accounts_controller import get_default_taxes_and_charges
|
||||||
quotation = frappe.get_doc(target)
|
quotation = frappe.get_doc(target)
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", quotation.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', quotation.company, "default_currency")
|
||||||
party_account_currency = get_party_account_currency("Customer", quotation.customer,
|
party_account_currency = get_party_account_currency("Customer", quotation.customer,
|
||||||
quotation.company) if quotation.customer else company_currency
|
quotation.company) if quotation.customer else company_currency
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ def setup_currency_exchange():
|
|||||||
}).insert()
|
}).insert()
|
||||||
|
|
||||||
def setup_mode_of_payment():
|
def setup_mode_of_payment():
|
||||||
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
|
company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
|
||||||
account_dict = {'Cash': 'Cash - '+ company_abbr , 'Bank': 'National Bank - '+ company_abbr}
|
account_dict = {'Cash': 'Cash - '+ company_abbr , 'Bank': 'National Bank - '+ company_abbr}
|
||||||
for payment_mode in frappe.get_all('Mode of Payment', fields = ["name", "type"]):
|
for payment_mode in frappe.get_all('Mode of Payment', fields = ["name", "type"]):
|
||||||
if payment_mode.type:
|
if payment_mode.type:
|
||||||
@ -317,7 +317,7 @@ def setup_account():
|
|||||||
frappe.flags.in_import = False
|
frappe.flags.in_import = False
|
||||||
|
|
||||||
def setup_account_to_expense_type():
|
def setup_account_to_expense_type():
|
||||||
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
|
company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
|
||||||
expense_types = [{'name': _('Calls'), "account": "Sales Expenses - "+ company_abbr},
|
expense_types = [{'name': _('Calls'), "account": "Sales Expenses - "+ company_abbr},
|
||||||
{'name': _('Food'), "account": "Entertainment Expenses - "+ company_abbr},
|
{'name': _('Food'), "account": "Entertainment Expenses - "+ company_abbr},
|
||||||
{'name': _('Medical'), "account": "Utility Expenses - "+ company_abbr},
|
{'name': _('Medical'), "account": "Utility Expenses - "+ company_abbr},
|
||||||
@ -354,7 +354,7 @@ def setup_budget():
|
|||||||
budget.submit()
|
budget.submit()
|
||||||
|
|
||||||
def setup_pos_profile():
|
def setup_pos_profile():
|
||||||
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
|
company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
|
||||||
pos = frappe.new_doc('POS Profile')
|
pos = frappe.new_doc('POS Profile')
|
||||||
pos.user = frappe.db.get_global('demo_accounts_user')
|
pos.user = frappe.db.get_global('demo_accounts_user')
|
||||||
pos.pos_profile_name = "Demo POS Profile"
|
pos.pos_profile_name = "Demo POS Profile"
|
||||||
|
@ -28,7 +28,7 @@ def work():
|
|||||||
si.posting_date = frappe.flags.current_date
|
si.posting_date = frappe.flags.current_date
|
||||||
for d in si.get("items"):
|
for d in si.get("items"):
|
||||||
if not d.income_account:
|
if not d.income_account:
|
||||||
d.income_account = "Sales - {}".format(frappe.db.get_value('Company', si.company, 'abbr'))
|
d.income_account = "Sales - {}".format(frappe.get_cached_value('Company', si.company, 'abbr'))
|
||||||
si.insert()
|
si.insert()
|
||||||
si.submit()
|
si.submit()
|
||||||
frappe.db.commit()
|
frappe.db.commit()
|
||||||
@ -106,7 +106,7 @@ def make_pos_invoice():
|
|||||||
si.posting_date = frappe.flags.current_date
|
si.posting_date = frappe.flags.current_date
|
||||||
for d in si.get("items"):
|
for d in si.get("items"):
|
||||||
if not d.income_account:
|
if not d.income_account:
|
||||||
d.income_account = "Sales - {}".format(frappe.db.get_value('Company', si.company, 'abbr'))
|
d.income_account = "Sales - {}".format(frappe.get_cached_value('Company', si.company, 'abbr'))
|
||||||
si.set_missing_values()
|
si.set_missing_values()
|
||||||
make_payment_entries_for_pos_invoice(si)
|
make_payment_entries_for_pos_invoice(si)
|
||||||
si.insert()
|
si.insert()
|
||||||
|
@ -78,7 +78,7 @@ def make_stock_entry_from_pro(pro_id, purpose):
|
|||||||
st.posting_date = frappe.flags.current_date
|
st.posting_date = frappe.flags.current_date
|
||||||
st.fiscal_year = str(frappe.flags.current_date.year)
|
st.fiscal_year = str(frappe.flags.current_date.year)
|
||||||
for d in st.get("items"):
|
for d in st.get("items"):
|
||||||
d.cost_center = "Main - " + frappe.db.get_value('Company', st.company, 'abbr')
|
d.cost_center = "Main - " + frappe.get_cached_value('Company', st.company, 'abbr')
|
||||||
st.insert()
|
st.insert()
|
||||||
frappe.db.commit()
|
frappe.db.commit()
|
||||||
st.submit()
|
st.submit()
|
||||||
|
@ -51,7 +51,7 @@ def work():
|
|||||||
# get supplier details
|
# get supplier details
|
||||||
supplier = get_random("Supplier")
|
supplier = get_random("Supplier")
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
|
company_currency = frappe.get_cached_value('Company', "Wind Power LLC", "default_currency")
|
||||||
party_account_currency = get_party_account_currency("Supplier", supplier, "Wind Power LLC")
|
party_account_currency = get_party_account_currency("Supplier", supplier, "Wind Power LLC")
|
||||||
if company_currency == party_account_currency:
|
if company_currency == party_account_currency:
|
||||||
exchange_rate = 1
|
exchange_rate = 1
|
||||||
|
@ -84,7 +84,7 @@ def make_quotation():
|
|||||||
# get customer, currency and exchange_rate
|
# get customer, currency and exchange_rate
|
||||||
customer = get_random("Customer")
|
customer = get_random("Customer")
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
|
company_currency = frappe.get_cached_value('Company', "Wind Power LLC", "default_currency")
|
||||||
party_account_currency = get_party_account_currency("Customer", customer, "Wind Power LLC")
|
party_account_currency = get_party_account_currency("Customer", customer, "Wind Power LLC")
|
||||||
if company_currency == party_account_currency:
|
if company_currency == party_account_currency:
|
||||||
exchange_rate = 1
|
exchange_rate = 1
|
||||||
|
@ -55,7 +55,7 @@ def make_delivery_note():
|
|||||||
for d in dn.get("items"):
|
for d in dn.get("items"):
|
||||||
if not d.expense_account:
|
if not d.expense_account:
|
||||||
d.expense_account = ("Cost of Goods Sold - {0}".format(
|
d.expense_account = ("Cost of Goods Sold - {0}".format(
|
||||||
frappe.db.get_value('Company', dn.company, 'abbr')))
|
frappe.get_cached_value('Company', dn.company, 'abbr')))
|
||||||
dn.insert()
|
dn.insert()
|
||||||
try:
|
try:
|
||||||
dn.submit()
|
dn.submit()
|
||||||
|
@ -86,7 +86,7 @@ class ClinicalProcedure(Document):
|
|||||||
# in stock uom
|
# in stock uom
|
||||||
se_child.transfer_qty = flt(item.transfer_qty)
|
se_child.transfer_qty = flt(item.transfer_qty)
|
||||||
se_child.conversion_factor = flt(item.conversion_factor)
|
se_child.conversion_factor = flt(item.conversion_factor)
|
||||||
cost_center = frappe.db.get_value('Company', self.company, 'cost_center')
|
cost_center = frappe.get_cached_value('Company', self.company, 'cost_center')
|
||||||
se_child.cost_center = cost_center
|
se_child.cost_center = cost_center
|
||||||
se_child.expense_account = expense_account
|
se_child.expense_account = expense_account
|
||||||
return stock_entry.as_dict()
|
return stock_entry.as_dict()
|
||||||
@ -146,7 +146,7 @@ def create_stock_entry(doc):
|
|||||||
expense_account = get_account(None, "expense_account", "Healthcare Settings", doc.company)
|
expense_account = get_account(None, "expense_account", "Healthcare Settings", doc.company)
|
||||||
|
|
||||||
for item_line in stock_entry.items:
|
for item_line in stock_entry.items:
|
||||||
cost_center = frappe.db.get_value('Company', doc.company, 'cost_center')
|
cost_center = frappe.get_cached_value('Company', doc.company, 'cost_center')
|
||||||
#item_line.s_warehouse = warehouse #deaful source warehouse set, stock entry to copy to lines
|
#item_line.s_warehouse = warehouse #deaful source warehouse set, stock entry to copy to lines
|
||||||
item_line.cost_center = cost_center
|
item_line.cost_center = cost_center
|
||||||
#if not expense_account:
|
#if not expense_account:
|
||||||
|
@ -48,7 +48,7 @@ def get_receivable_account(company):
|
|||||||
receivable_account = get_account(None, "receivable_account", "Healthcare Settings", company)
|
receivable_account = get_account(None, "receivable_account", "Healthcare Settings", company)
|
||||||
if receivable_account:
|
if receivable_account:
|
||||||
return receivable_account
|
return receivable_account
|
||||||
return frappe.db.get_value("Company", company, "default_receivable_account")
|
return frappe.get_cached_value('Company', company, "default_receivable_account")
|
||||||
|
|
||||||
def get_income_account(practitioner, company):
|
def get_income_account(practitioner, company):
|
||||||
if(practitioner):
|
if(practitioner):
|
||||||
@ -58,7 +58,7 @@ def get_income_account(practitioner, company):
|
|||||||
income_account = get_account(None, "income_account", "Healthcare Settings", company)
|
income_account = get_account(None, "income_account", "Healthcare Settings", company)
|
||||||
if income_account:
|
if income_account:
|
||||||
return income_account
|
return income_account
|
||||||
return frappe.db.get_value("Company", company, "default_income_account")
|
return frappe.get_cached_value('Company', company, "default_income_account")
|
||||||
|
|
||||||
def get_account(parent_type, parent_field, parent, company):
|
def get_account(parent_type, parent_field, parent, company):
|
||||||
if(parent_type):
|
if(parent_type):
|
||||||
|
@ -25,7 +25,7 @@ class Department(NestedSet):
|
|||||||
|
|
||||||
def before_rename(self, old, new, merge=False):
|
def before_rename(self, old, new, merge=False):
|
||||||
# renaming consistency with abbreviation
|
# renaming consistency with abbreviation
|
||||||
if not frappe.db.get_value('Company', self.company, 'abbr') in new:
|
if not frappe.get_cached_value('Company', self.company, 'abbr') in new:
|
||||||
new = get_abbreviated_name(new, self.company)
|
new = get_abbreviated_name(new, self.company)
|
||||||
|
|
||||||
return new
|
return new
|
||||||
@ -41,7 +41,7 @@ def on_doctype_update():
|
|||||||
frappe.db.add_index("Department", ["lft", "rgt"])
|
frappe.db.add_index("Department", ["lft", "rgt"])
|
||||||
|
|
||||||
def get_abbreviated_name(name, company):
|
def get_abbreviated_name(name, company):
|
||||||
abbr = frappe.db.get_value('Company', company, 'abbr')
|
abbr = frappe.get_cached_value('Company', company, 'abbr')
|
||||||
new_name = '{0} - {1}'.format(name, abbr)
|
new_name = '{0} - {1}'.format(name, abbr)
|
||||||
return new_name
|
return new_name
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ def get_holiday_list_for_employee(employee, raise_exception=True):
|
|||||||
company=frappe.db.get_value("Global Defaults", None, "default_company")
|
company=frappe.db.get_value("Global Defaults", None, "default_company")
|
||||||
|
|
||||||
if not holiday_list:
|
if not holiday_list:
|
||||||
holiday_list = frappe.db.get_value("Company", company, "default_holiday_list")
|
holiday_list = frappe.get_cached_value('Company', company, "default_holiday_list")
|
||||||
|
|
||||||
if not holiday_list and raise_exception:
|
if not holiday_list and raise_exception:
|
||||||
frappe.throw(_('Please set a default Holiday List for Employee {0} or Company {1}').format(employee, company))
|
frappe.throw(_('Please set a default Holiday List for Employee {0} or Company {1}').format(employee, company))
|
||||||
|
@ -53,11 +53,11 @@ class ExpenseClaim(AccountsController):
|
|||||||
|
|
||||||
def set_payable_account(self):
|
def set_payable_account(self):
|
||||||
if not self.payable_account and not self.is_paid:
|
if not self.payable_account and not self.is_paid:
|
||||||
self.payable_account = frappe.db.get_value("Company", self.company, "default_payable_account")
|
self.payable_account = frappe.get_cached_value('Company', self.company, "default_payable_account")
|
||||||
|
|
||||||
def set_cost_center(self):
|
def set_cost_center(self):
|
||||||
if not self.cost_center:
|
if not self.cost_center:
|
||||||
self.cost_center = frappe.db.get_value('Company', self.company, 'cost_center')
|
self.cost_center = frappe.get_cached_value('Company', self.company, 'cost_center')
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
if self.approval_status=="Draft":
|
if self.approval_status=="Draft":
|
||||||
@ -311,8 +311,8 @@ def get_advances(employee, advance_id=None):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_expense_claim(
|
def get_expense_claim(
|
||||||
employee_name, company, employee_advance_name, posting_date, paid_amount, claimed_amount):
|
employee_name, company, employee_advance_name, posting_date, paid_amount, claimed_amount):
|
||||||
default_payable_account = frappe.db.get_value("Company", company, "default_payable_account")
|
default_payable_account = frappe.get_cached_value('Company', company, "default_payable_account")
|
||||||
default_cost_center = frappe.db.get_value('Company', company, 'cost_center')
|
default_cost_center = frappe.get_cached_value('Company', company, 'cost_center')
|
||||||
|
|
||||||
expense_claim = frappe.new_doc('Expense Claim')
|
expense_claim = frappe.new_doc('Expense Claim')
|
||||||
expense_claim.company = company
|
expense_claim.company = company
|
||||||
|
@ -100,7 +100,7 @@ class TestExpenseClaim(unittest.TestCase):
|
|||||||
self.assertEquals(len(gl_entry), 0)
|
self.assertEquals(len(gl_entry), 0)
|
||||||
|
|
||||||
def get_payable_account(company):
|
def get_payable_account(company):
|
||||||
return frappe.db.get_value('Company', company, 'default_payable_account')
|
return frappe.get_cached_value('Company', company, 'default_payable_account')
|
||||||
|
|
||||||
def make_expense_claim(payable_account,claim_amount, sanctioned_amount, company, account, project=None, task_name=None):
|
def make_expense_claim(payable_account,claim_amount, sanctioned_amount, company, account, project=None, task_name=None):
|
||||||
expense_claim = frappe.get_doc({
|
expense_claim = frappe.get_doc({
|
||||||
|
@ -37,7 +37,7 @@ class JobOpening(WebsiteGenerator):
|
|||||||
|
|
||||||
if self.staffing_plan and self.planned_vacancies:
|
if self.staffing_plan and self.planned_vacancies:
|
||||||
staffing_plan_company = frappe.db.get_value("Staffing Plan", self.staffing_plan, "company")
|
staffing_plan_company = frappe.db.get_value("Staffing Plan", self.staffing_plan, "company")
|
||||||
lft, rgt = frappe.db.get_value("Company", staffing_plan_company, ["lft", "rgt"])
|
lft, rgt = frappe.get_cached_value('Company', staffing_plan_company, ["lft", "rgt"])
|
||||||
|
|
||||||
designation_counts = get_designation_counts(self.designation, self.company)
|
designation_counts = get_designation_counts(self.designation, self.company)
|
||||||
current_count = designation_counts['employee_count'] + designation_counts['job_openings']
|
current_count = designation_counts['employee_count'] + designation_counts['job_openings']
|
||||||
|
@ -196,7 +196,7 @@ class PayrollEntry(Document):
|
|||||||
return account_dict
|
return account_dict
|
||||||
|
|
||||||
def get_default_payroll_payable_account(self):
|
def get_default_payroll_payable_account(self):
|
||||||
payroll_payable_account = frappe.db.get_value("Company",
|
payroll_payable_account = frappe.get_cached_value('Company',
|
||||||
{"company_name": self.company}, "default_payroll_payable_account")
|
{"company_name": self.company}, "default_payroll_payable_account")
|
||||||
|
|
||||||
if not payroll_payable_account:
|
if not payroll_payable_account:
|
||||||
|
@ -330,12 +330,12 @@ def get_salary_component_account(sal_comp):
|
|||||||
sal_comp.save()
|
sal_comp.save()
|
||||||
|
|
||||||
def create_account(company):
|
def create_account(company):
|
||||||
salary_account = frappe.db.get_value("Account", "Salary - " + frappe.db.get_value('Company', company, 'abbr'))
|
salary_account = frappe.db.get_value("Account", "Salary - " + frappe.get_cached_value('Company', company, 'abbr'))
|
||||||
if not salary_account:
|
if not salary_account:
|
||||||
frappe.get_doc({
|
frappe.get_doc({
|
||||||
"doctype": "Account",
|
"doctype": "Account",
|
||||||
"account_name": "Salary",
|
"account_name": "Salary",
|
||||||
"parent_account": "Indirect Expenses - " + frappe.db.get_value('Company', company, 'abbr'),
|
"parent_account": "Indirect Expenses - " + frappe.get_cached_value('Company', company, 'abbr'),
|
||||||
"company": company
|
"company": company
|
||||||
}).insert()
|
}).insert()
|
||||||
return salary_account
|
return salary_account
|
||||||
|
@ -52,7 +52,7 @@ class StaffingPlan(Document):
|
|||||||
.format(overlap[0][0], staffing_plan_detail.designation)))
|
.format(overlap[0][0], staffing_plan_detail.designation)))
|
||||||
|
|
||||||
def validate_with_parent_plan(self, staffing_plan_detail):
|
def validate_with_parent_plan(self, staffing_plan_detail):
|
||||||
if not frappe.db.get_value("Company", self.company, "parent_company"):
|
if not frappe.get_cached_value('Company', self.company, "parent_company"):
|
||||||
return # No parent, nothing to validate
|
return # No parent, nothing to validate
|
||||||
|
|
||||||
# Get staffing plan applicable for the company (Parent Company)
|
# Get staffing plan applicable for the company (Parent Company)
|
||||||
@ -74,7 +74,7 @@ class StaffingPlan(Document):
|
|||||||
parent_company)), ParentCompanyError)
|
parent_company)), ParentCompanyError)
|
||||||
|
|
||||||
#Get vacanices already planned for all companies down the hierarchy of Parent Company
|
#Get vacanices already planned for all companies down the hierarchy of Parent Company
|
||||||
lft, rgt = frappe.db.get_value("Company", parent_company, ["lft", "rgt"])
|
lft, rgt = frappe.get_cached_value('Company', parent_company, ["lft", "rgt"])
|
||||||
all_sibling_details = frappe.db.sql("""select sum(spd.vacancies) as vacancies,
|
all_sibling_details = frappe.db.sql("""select sum(spd.vacancies) as vacancies,
|
||||||
sum(spd.total_estimated_cost) as total_estimated_cost
|
sum(spd.total_estimated_cost) as total_estimated_cost
|
||||||
from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name
|
from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name
|
||||||
@ -123,7 +123,7 @@ def get_designation_counts(designation, company):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
employee_counts_dict = {}
|
employee_counts_dict = {}
|
||||||
lft, rgt = frappe.db.get_value("Company", company, ["lft", "rgt"])
|
lft, rgt = frappe.get_cached_value('Company', company, ["lft", "rgt"])
|
||||||
employee_counts_dict["employee_count"] = frappe.db.sql("""select count(*) from `tabEmployee`
|
employee_counts_dict["employee_count"] = frappe.db.sql("""select count(*) from `tabEmployee`
|
||||||
where designation = %s and status='Active'
|
where designation = %s and status='Active'
|
||||||
and company in (select name from tabCompany where lft>=%s and rgt<=%s)
|
and company in (select name from tabCompany where lft>=%s and rgt<=%s)
|
||||||
@ -148,7 +148,7 @@ def get_active_staffing_plan_details(company, designation, from_date=getdate(now
|
|||||||
and to_date >= %s and from_date <= %s """, (company, designation, from_date, to_date), as_dict = 1)
|
and to_date >= %s and from_date <= %s """, (company, designation, from_date, to_date), as_dict = 1)
|
||||||
|
|
||||||
if not staffing_plan:
|
if not staffing_plan:
|
||||||
parent_company = frappe.db.get_value("Company", company, "parent_company")
|
parent_company = frappe.get_cached_value('Company', company, "parent_company")
|
||||||
if parent_company:
|
if parent_company:
|
||||||
staffing_plan = get_active_staffing_plan_details(parent_company,
|
staffing_plan = get_active_staffing_plan_details(parent_company,
|
||||||
designation, from_date, to_date)
|
designation, from_date, to_date)
|
||||||
|
@ -16,7 +16,7 @@ def execute(filters=None):
|
|||||||
emp_map = get_employee_details()
|
emp_map = get_employee_details()
|
||||||
|
|
||||||
holiday_list = [emp_map[d]["holiday_list"] for d in emp_map if emp_map[d]["holiday_list"]]
|
holiday_list = [emp_map[d]["holiday_list"] for d in emp_map if emp_map[d]["holiday_list"]]
|
||||||
default_holiday_list = frappe.db.get_value("Company", filters.get("company"), "default_holiday_list")
|
default_holiday_list = frappe.get_cached_value('Company', filters.get("company"), "default_holiday_list")
|
||||||
holiday_list.append(default_holiday_list)
|
holiday_list.append(default_holiday_list)
|
||||||
holiday_list = list(set(holiday_list))
|
holiday_list = list(set(holiday_list))
|
||||||
holiday_map = get_holiday(holiday_list, filters["month"])
|
holiday_map = get_holiday(holiday_list, filters["month"])
|
||||||
|
@ -105,7 +105,7 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
if employee:
|
if employee:
|
||||||
holiday_list = get_holiday_list_for_employee(employee)
|
holiday_list = get_holiday_list_for_employee(employee)
|
||||||
else:
|
else:
|
||||||
holiday_list = frappe.db.get_value("Company", self.company, "default_holiday_list")
|
holiday_list = frappe.get_cached_value('Company', self.company, "default_holiday_list")
|
||||||
|
|
||||||
holidays = frappe.db.sql_list('''select holiday_date from `tabHoliday` where parent=%s''', holiday_list)
|
holidays = frappe.db.sql_list('''select holiday_date from `tabHoliday` where parent=%s''', holiday_list)
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ def get_bom_items_as_dict(bom, company, qty=1, fetch_exploded=1, fetch_scrap_ite
|
|||||||
["Cost Center", "cost_center", "cost_center"], ["Warehouse", "default_warehouse", ""]]:
|
["Cost Center", "cost_center", "cost_center"], ["Warehouse", "default_warehouse", ""]]:
|
||||||
company_in_record = frappe.db.get_value(d[0], item_details.get(d[1]), "company")
|
company_in_record = frappe.db.get_value(d[0], item_details.get(d[1]), "company")
|
||||||
if not item_details.get(d[1]) or (company_in_record and company != company_in_record):
|
if not item_details.get(d[1]) or (company_in_record and company != company_in_record):
|
||||||
item_dict[item][d[1]] = frappe.db.get_value("Company", company, d[2]) if d[2] else None
|
item_dict[item][d[1]] = frappe.get_cached_value('Company', company, d[2]) if d[2] else None
|
||||||
|
|
||||||
return item_dict
|
return item_dict
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ class Workstation(Document):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_default_holiday_list():
|
def get_default_holiday_list():
|
||||||
return frappe.db.get_value("Company", frappe.defaults.get_user_default("Company"), "default_holiday_list")
|
return frappe.get_cached_value('Company', frappe.defaults.get_user_default("Company"), "default_holiday_list")
|
||||||
|
|
||||||
def check_if_within_operating_hours(workstation, operation, from_datetime, to_datetime):
|
def check_if_within_operating_hours(workstation, operation, from_datetime, to_datetime):
|
||||||
if from_datetime and to_datetime:
|
if from_datetime and to_datetime:
|
||||||
|
@ -7,6 +7,6 @@ def execute():
|
|||||||
currency = frappe.db.get_default("currency")
|
currency = frappe.db.get_default("currency")
|
||||||
for doc in frappe.get_all('Pricing Rule', fields = ["company", "name"]):
|
for doc in frappe.get_all('Pricing Rule', fields = ["company", "name"]):
|
||||||
if doc.company:
|
if doc.company:
|
||||||
currency = frappe.db.get_value("Company", doc.company, "default_currency")
|
currency = frappe.get_cached_value('Company', doc.company, "default_currency")
|
||||||
|
|
||||||
frappe.db.sql("""update `tabPricing Rule` set currency = %s where name = %s""",(currency, doc.name))
|
frappe.db.sql("""update `tabPricing Rule` set currency = %s where name = %s""",(currency, doc.name))
|
||||||
|
@ -6,7 +6,7 @@ import frappe
|
|||||||
from erpnext.regional.india.setup import update_address_template
|
from erpnext.regional.india.setup import update_address_template
|
||||||
|
|
||||||
def execute():
|
def execute():
|
||||||
if frappe.db.get_value('Company', {'country': 'India'}, 'name'):
|
if frappe.get_cached_value('Company', {'country': 'India'}, 'name'):
|
||||||
address_template = frappe.db.get_value('Address Template', 'India', 'template')
|
address_template = frappe.db.get_value('Address Template', 'India', 'template')
|
||||||
if not address_template or "gstin" not in address_template:
|
if not address_template or "gstin" not in address_template:
|
||||||
update_address_template()
|
update_address_template()
|
||||||
|
@ -56,7 +56,7 @@ def get_parent_account(company, master_type):
|
|||||||
parent_account = None
|
parent_account = None
|
||||||
|
|
||||||
if "receivables_group" in frappe.db.get_table_columns("Company"):
|
if "receivables_group" in frappe.db.get_table_columns("Company"):
|
||||||
parent_account = frappe.db.get_value("Company", company,
|
parent_account = frappe.get_cached_value('Company', company,
|
||||||
"receivables_group" if master_type=="Customer" else "payables_group")
|
"receivables_group" if master_type=="Customer" else "payables_group")
|
||||||
if not parent_account:
|
if not parent_account:
|
||||||
parent_account = frappe.db.get_value("Account", {"company": company,
|
parent_account = frappe.db.get_value("Account", {"company": company,
|
||||||
|
@ -31,7 +31,7 @@ def execute():
|
|||||||
sle_against_companies = frappe.db.sql_list("""select distinct company from `tabStock Ledger Entry`""")
|
sle_against_companies = frappe.db.sql_list("""select distinct company from `tabStock Ledger Entry`""")
|
||||||
|
|
||||||
if len(sle_against_companies) == 1:
|
if len(sle_against_companies) == 1:
|
||||||
company = frappe.db.get_value("Company", sle_against_companies[0],
|
company = frappe.get_cached_value('Company', sle_against_companies[0],
|
||||||
fieldname=["name", "abbr"], as_dict=1)
|
fieldname=["name", "abbr"], as_dict=1)
|
||||||
set_company_to_warehouse(company.name)
|
set_company_to_warehouse(company.name)
|
||||||
make_warehouse_nestedset(company)
|
make_warehouse_nestedset(company)
|
||||||
|
@ -111,8 +111,8 @@ def get_regional_address_details(out, doctype, company):
|
|||||||
out.taxes = get_taxes_and_charges(master_doctype, default_tax)
|
out.taxes = get_taxes_and_charges(master_doctype, default_tax)
|
||||||
|
|
||||||
def calculate_annual_eligible_hra_exemption(doc):
|
def calculate_annual_eligible_hra_exemption(doc):
|
||||||
basic_component = frappe.db.get_value("Company", doc.company, "basic_component")
|
basic_component = frappe.get_cached_value('Company', doc.company, "basic_component")
|
||||||
hra_component = frappe.db.get_value("Company", doc.company, "hra_component")
|
hra_component = frappe.get_cached_value('Company', doc.company, "hra_component")
|
||||||
annual_exemption, monthly_exemption, hra_amount = 0, 0, 0
|
annual_exemption, monthly_exemption, hra_amount = 0, 0, 0
|
||||||
if hra_component and basic_component:
|
if hra_component and basic_component:
|
||||||
assignment = get_salary_assignment(doc.employee, getdate())
|
assignment = get_salary_assignment(doc.employee, getdate())
|
||||||
|
@ -33,7 +33,7 @@ def validate_filters(filters, account_details):
|
|||||||
|
|
||||||
def set_account_currency(filters):
|
def set_account_currency(filters):
|
||||||
|
|
||||||
filters["company_currency"] = frappe.db.get_value("Company", filters.company, "default_currency")
|
filters["company_currency"] = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
return filters
|
return filters
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ def get_gl_entries(filters):
|
|||||||
def get_result_as_list(data, filters):
|
def get_result_as_list(data, filters):
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
accounts = frappe.get_all("Account", filters={"Company": filters.company}, fields=["name", "account_number"])
|
accounts = frappe.get_all("Account", filters={"Company": filters.company}, fields=["name", "account_number"])
|
||||||
|
|
||||||
for d in data:
|
for d in data:
|
||||||
|
@ -322,7 +322,7 @@ def get_credit_limit(customer, company):
|
|||||||
credit_limit = frappe.db.get_value("Customer Group", customer_group, "credit_limit")
|
credit_limit = frappe.db.get_value("Customer Group", customer_group, "credit_limit")
|
||||||
|
|
||||||
if not credit_limit:
|
if not credit_limit:
|
||||||
credit_limit = frappe.db.get_value("Company", company, "credit_limit")
|
credit_limit = frappe.get_cached_value('Company', company, "credit_limit")
|
||||||
|
|
||||||
return flt(credit_limit)
|
return flt(credit_limit)
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ class InstallationNote(TransactionBase):
|
|||||||
self.validate_installation_date()
|
self.validate_installation_date()
|
||||||
self.check_item_table()
|
self.check_item_table()
|
||||||
|
|
||||||
from erpnext.controllers.selling_controller import check_active_sales_items
|
from erpnext.controllers.selling_controller import set_default_income_account_for_item
|
||||||
check_active_sales_items(self)
|
set_default_income_account_for_item(self)
|
||||||
|
|
||||||
def is_serial_no_added(self, item_code, serial_no):
|
def is_serial_no_added(self, item_code, serial_no):
|
||||||
has_serial_no = frappe.db.get_value("Item", item_code, "has_serial_no")
|
has_serial_no = frappe.db.get_value("Item", item_code, "has_serial_no")
|
||||||
|
@ -157,7 +157,7 @@ def get_sales_summary(invoice_list):
|
|||||||
return {'net_total': net_total, 'grand_total': grand_total, 'total_qty': total_qty}
|
return {'net_total': net_total, 'grand_total': grand_total, 'total_qty': total_qty}
|
||||||
|
|
||||||
def get_company_currency(doc):
|
def get_company_currency(doc):
|
||||||
currency = frappe.db.get_value("Company", doc.company, "default_currency")
|
currency = frappe.get_cached_value('Company', doc.company, "default_currency")
|
||||||
return frappe.get_doc('Currency', currency)
|
return frappe.get_doc('Currency', currency)
|
||||||
|
|
||||||
def get_invoices(filters):
|
def get_invoices(filters):
|
||||||
|
@ -75,7 +75,7 @@ class Company(NestedSet):
|
|||||||
.format(self.get(field), self.name))
|
.format(self.get(field), self.name))
|
||||||
|
|
||||||
def validate_currency(self):
|
def validate_currency(self):
|
||||||
self.previous_default_currency = frappe.db.get_value("Company", self.name, "default_currency")
|
self.previous_default_currency = frappe.get_cached_value('Company', self.name, "default_currency")
|
||||||
if self.default_currency and self.previous_default_currency and \
|
if self.default_currency and self.previous_default_currency and \
|
||||||
self.default_currency != self.previous_default_currency and \
|
self.default_currency != self.previous_default_currency and \
|
||||||
self.check_if_transactions_exist():
|
self.check_if_transactions_exist():
|
||||||
@ -161,7 +161,7 @@ class Company(NestedSet):
|
|||||||
frappe.flags.country_change = False
|
frappe.flags.country_change = False
|
||||||
|
|
||||||
if not self.get('__islocal') and \
|
if not self.get('__islocal') and \
|
||||||
self.country != frappe.db.get_value('Company', self.name, 'country'):
|
self.country != frappe.get_cached_value('Company', self.name, 'country'):
|
||||||
frappe.flags.country_change = True
|
frappe.flags.country_change = True
|
||||||
|
|
||||||
def set_default_accounts(self):
|
def set_default_accounts(self):
|
||||||
@ -361,7 +361,7 @@ def replace_abbr(company, old, new):
|
|||||||
|
|
||||||
|
|
||||||
def get_name_with_abbr(name, company):
|
def get_name_with_abbr(name, company):
|
||||||
company_abbr = frappe.db.get_value("Company", company, "abbr")
|
company_abbr = frappe.get_cached_value('Company', company, "abbr")
|
||||||
parts = name.split(" - ")
|
parts = name.split(" - ")
|
||||||
|
|
||||||
if parts[-1].lower() != company_abbr.lower():
|
if parts[-1].lower() != company_abbr.lower():
|
||||||
@ -505,7 +505,7 @@ def get_timeline_data(doctype, name):
|
|||||||
out = {}
|
out = {}
|
||||||
date_to_value_dict = {}
|
date_to_value_dict = {}
|
||||||
|
|
||||||
history = frappe.db.get_value("Company", name, "transactions_annual_history")
|
history = frappe.get_cached_value('Company', name, "transactions_annual_history")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
date_to_value_dict = json.loads(history) if history and '{' in history else None
|
date_to_value_dict = json.loads(history) if history and '{' in history else None
|
||||||
@ -514,7 +514,7 @@ def get_timeline_data(doctype, name):
|
|||||||
|
|
||||||
if date_to_value_dict is None:
|
if date_to_value_dict is None:
|
||||||
update_transactions_annual_history(name, True)
|
update_transactions_annual_history(name, True)
|
||||||
history = frappe.db.get_value("Company", name, "transactions_annual_history")
|
history = frappe.get_cached_value('Company', name, "transactions_annual_history")
|
||||||
return json.loads(history) if history and '{' in history else {}
|
return json.loads(history) if history and '{' in history else {}
|
||||||
|
|
||||||
return date_to_value_dict
|
return date_to_value_dict
|
||||||
|
@ -22,7 +22,7 @@ class EmailDigest(Document):
|
|||||||
self.from_date, self.to_date = self.get_from_to_date()
|
self.from_date, self.to_date = self.get_from_to_date()
|
||||||
self.set_dates()
|
self.set_dates()
|
||||||
self._accounts = {}
|
self._accounts = {}
|
||||||
self.currency = frappe.db.get_value("Company", self.company, "default_currency")
|
self.currency = frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
|
|
||||||
def get_users(self):
|
def get_users(self):
|
||||||
"""get list of users"""
|
"""get list of users"""
|
||||||
|
@ -178,7 +178,7 @@ def get_item_group_defaults(item, company):
|
|||||||
item = frappe.get_cached_doc("Item", item)
|
item = frappe.get_cached_doc("Item", item)
|
||||||
item_group = frappe.get_cached_doc("Item Group", item.item_group)
|
item_group = frappe.get_cached_doc("Item Group", item.item_group)
|
||||||
|
|
||||||
for d in item_group.item_defaults:
|
for d in item_group.item_group_defaults or []:
|
||||||
if d.company == company:
|
if d.company == company:
|
||||||
return d.as_dict()
|
return d.as_dict()
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ def make_tax_account(company, account_name, tax_rate):
|
|||||||
}).insert(ignore_permissions=True, ignore_mandatory=True)
|
}).insert(ignore_permissions=True, ignore_mandatory=True)
|
||||||
except frappe.NameError:
|
except frappe.NameError:
|
||||||
frappe.message_log.pop()
|
frappe.message_log.pop()
|
||||||
abbr = frappe.db.get_value('Company', company, 'abbr')
|
abbr = frappe.get_cached_value('Company', company, 'abbr')
|
||||||
account = '{0} - {1}'.format(account_name, abbr)
|
account = '{0} - {1}'.format(account_name, abbr)
|
||||||
return frappe.get_doc('Account', account)
|
return frappe.get_doc('Account', account)
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ class ShoppingCartSettings(Document):
|
|||||||
|
|
||||||
def validate_exchange_rates_exist(self):
|
def validate_exchange_rates_exist(self):
|
||||||
"""check if exchange rates exist for all Price List currencies (to company's currency)"""
|
"""check if exchange rates exist for all Price List currencies (to company's currency)"""
|
||||||
company_currency = frappe.db.get_value("Company", self.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', self.company, "default_currency")
|
||||||
if not company_currency:
|
if not company_currency:
|
||||||
msgprint(_("Please specify currency in Company") + ": " + self.company,
|
msgprint(_("Please specify currency in Company") + ": " + self.company,
|
||||||
raise_exception=ShoppingCartSetupError)
|
raise_exception=ShoppingCartSetupError)
|
||||||
|
@ -51,4 +51,4 @@ def get_warehouse_account(warehouse, warehouse_account=None):
|
|||||||
return account
|
return account
|
||||||
|
|
||||||
def get_company_default_inventory_account(company):
|
def get_company_default_inventory_account(company):
|
||||||
return frappe.db.get_value('Company', company, 'default_inventory_account')
|
return frappe.get_cached_value('Company', company, 'default_inventory_account')
|
@ -937,6 +937,20 @@ def get_item_defaults(item_code, company):
|
|||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
def set_item_default(item_code, company, fieldname, value):
|
||||||
|
item = frappe.get_cached_doc('Item', item_code)
|
||||||
|
|
||||||
|
for d in item.item_defaults:
|
||||||
|
if d.company == company:
|
||||||
|
if not d.get(fieldname):
|
||||||
|
frappe.db.set_value(d.doctype, d.name, fieldname, value)
|
||||||
|
return
|
||||||
|
|
||||||
|
# no row found, add a new row for the company
|
||||||
|
d = item.append('item_defaults', {fieldname: value, company: company})
|
||||||
|
d.db_insert()
|
||||||
|
item.clear_cache()
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_uom_conv_factor(uom, stock_uom):
|
def get_uom_conv_factor(uom, stock_uom):
|
||||||
uoms = [uom, stock_uom]
|
uoms = [uom, stock_uom]
|
||||||
|
@ -81,7 +81,7 @@ class LandedCostVoucher(Document):
|
|||||||
total_applicable_charges = sum([flt(d.applicable_charges) for d in self.get("items")])
|
total_applicable_charges = sum([flt(d.applicable_charges) for d in self.get("items")])
|
||||||
|
|
||||||
precision = get_field_precision(frappe.get_meta("Landed Cost Item").get_field("applicable_charges"),
|
precision = get_field_precision(frappe.get_meta("Landed Cost Item").get_field("applicable_charges"),
|
||||||
currency=frappe.db.get_value("Company", self.company, "default_currency", cache=True))
|
currency=frappe.get_cached_value('Company', self.company, "default_currency"))
|
||||||
|
|
||||||
diff = flt(self.total_taxes_and_charges) - flt(total_applicable_charges)
|
diff = flt(self.total_taxes_and_charges) - flt(total_applicable_charges)
|
||||||
diff = flt(diff, precision)
|
diff = flt(diff, precision)
|
||||||
|
@ -377,7 +377,7 @@ def make_purchase_receipt(**args):
|
|||||||
"serial_no": args.serial_no,
|
"serial_no": args.serial_no,
|
||||||
"stock_uom": args.stock_uom or "_Test UOM",
|
"stock_uom": args.stock_uom or "_Test UOM",
|
||||||
"uom": args.uom or "_Test UOM",
|
"uom": args.uom or "_Test UOM",
|
||||||
"cost_center": args.cost_center or frappe.db.get_value('Company', pr.company, 'cost_center'),
|
"cost_center": args.cost_center or frappe.get_cached_value('Company', pr.company, 'cost_center'),
|
||||||
"asset_location": args.location or "Test Location"
|
"asset_location": args.location or "Test Location"
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -623,14 +623,14 @@ class StockEntry(StockController):
|
|||||||
["Cost Center", "cost_center", "cost_center"]]:
|
["Cost Center", "cost_center", "cost_center"]]:
|
||||||
company = frappe.db.get_value(d[0], ret.get(d[1]), "company")
|
company = frappe.db.get_value(d[0], ret.get(d[1]), "company")
|
||||||
if not ret[d[1]] or (company and self.company != company):
|
if not ret[d[1]] or (company and self.company != company):
|
||||||
ret[d[1]] = frappe.db.get_value("Company", self.company, d[2]) if d[2] else None
|
ret[d[1]] = frappe.get_cached_value('Company', self.company, d[2]) if d[2] else None
|
||||||
|
|
||||||
# update uom
|
# update uom
|
||||||
if args.get("uom") and for_update:
|
if args.get("uom") and for_update:
|
||||||
ret.update(get_uom_details(args.get('item_code'), args.get('uom'), args.get('qty')))
|
ret.update(get_uom_details(args.get('item_code'), args.get('uom'), args.get('qty')))
|
||||||
|
|
||||||
if not ret["expense_account"]:
|
if not ret["expense_account"]:
|
||||||
ret["expense_account"] = frappe.db.get_value("Company", self.company, "stock_adjustment_account")
|
ret["expense_account"] = frappe.get_cached_value('Company', self.company, "stock_adjustment_account")
|
||||||
|
|
||||||
args['posting_date'] = self.posting_date
|
args['posting_date'] = self.posting_date
|
||||||
args['posting_time'] = self.posting_time
|
args['posting_time'] = self.posting_time
|
||||||
|
@ -21,9 +21,9 @@ class StockReconciliation(StockController):
|
|||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
if not self.expense_account:
|
if not self.expense_account:
|
||||||
self.expense_account = frappe.db.get_value("Company", self.company, "stock_adjustment_account")
|
self.expense_account = frappe.get_cached_value('Company', self.company, "stock_adjustment_account")
|
||||||
if not self.cost_center:
|
if not self.cost_center:
|
||||||
self.cost_center = frappe.db.get_value("Company", self.company, "cost_center")
|
self.cost_center = frappe.get_cached_value('Company', self.company, "cost_center")
|
||||||
self.validate_posting_time()
|
self.validate_posting_time()
|
||||||
self.remove_items_with_no_change()
|
self.remove_items_with_no_change()
|
||||||
self.validate_data()
|
self.validate_data()
|
||||||
|
@ -14,7 +14,7 @@ class Warehouse(NestedSet):
|
|||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
if self.company:
|
if self.company:
|
||||||
suffix = " - " + frappe.db.get_value("Company", self.company, "abbr")
|
suffix = " - " + frappe.get_cached_value('Company', self.company, "abbr")
|
||||||
if not self.warehouse_name.endswith(suffix):
|
if not self.warehouse_name.endswith(suffix):
|
||||||
self.name = self.warehouse_name + suffix
|
self.name = self.warehouse_name + suffix
|
||||||
else:
|
else:
|
||||||
@ -87,7 +87,7 @@ class Warehouse(NestedSet):
|
|||||||
self.recalculate_bin_qty(new_name)
|
self.recalculate_bin_qty(new_name)
|
||||||
|
|
||||||
def get_new_warehouse_name_without_abbr(self, name):
|
def get_new_warehouse_name_without_abbr(self, name):
|
||||||
company_abbr = frappe.db.get_value("Company", self.company, "abbr")
|
company_abbr = frappe.get_cached_value('Company', self.company, "abbr")
|
||||||
parts = name.rsplit(" - ", 1)
|
parts = name.rsplit(" - ", 1)
|
||||||
|
|
||||||
if parts[-1].lower() == company_abbr.lower():
|
if parts[-1].lower() == company_abbr.lower():
|
||||||
|
@ -39,34 +39,18 @@ def get_item_details(args):
|
|||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
args = process_args(args)
|
args = process_args(args)
|
||||||
item_doc = frappe.get_doc("Item", args.item_code)
|
item = frappe.get_cached_doc("Item", args.item_code)
|
||||||
item = item_doc
|
|
||||||
|
|
||||||
validate_item_details(args, item)
|
validate_item_details(args, item)
|
||||||
|
|
||||||
out = get_basic_details(args, item)
|
out = get_basic_details(args, item)
|
||||||
|
|
||||||
get_party_item_code(args, item_doc, out)
|
get_party_item_code(args, item, out)
|
||||||
|
|
||||||
if frappe.db.exists("Product Bundle", args.item_code):
|
set_valuation_rate(out, args)
|
||||||
valuation_rate = 0.0
|
|
||||||
bundled_items = frappe.get_doc("Product Bundle", args.item_code)
|
|
||||||
|
|
||||||
for bundle_item in bundled_items.items:
|
|
||||||
valuation_rate += \
|
|
||||||
flt(get_valuation_rate(bundle_item.item_code, args.company, out.get("warehouse")).get("valuation_rate") \
|
|
||||||
* bundle_item.qty)
|
|
||||||
|
|
||||||
out.update({
|
|
||||||
"valuation_rate": valuation_rate
|
|
||||||
})
|
|
||||||
|
|
||||||
else:
|
|
||||||
out.update(get_valuation_rate(args.item_code, args.company, out.get("warehouse")))
|
|
||||||
|
|
||||||
update_party_blanket_order(args, out)
|
update_party_blanket_order(args, out)
|
||||||
|
|
||||||
get_price_list_rate(args, item_doc, out)
|
get_price_list_rate(args, item, out)
|
||||||
|
|
||||||
if args.customer and cint(args.is_pos):
|
if args.customer and cint(args.is_pos):
|
||||||
out.update(get_pos_profile_item_details(args.company, args))
|
out.update(get_pos_profile_item_details(args.company, args))
|
||||||
@ -80,6 +64,24 @@ def get_item_details(args):
|
|||||||
args[key] = value
|
args[key] = value
|
||||||
|
|
||||||
out.update(get_pricing_rule_for_item(args))
|
out.update(get_pricing_rule_for_item(args))
|
||||||
|
|
||||||
|
update_stock(args, out)
|
||||||
|
|
||||||
|
if args.transaction_date and item.lead_time_days:
|
||||||
|
out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
|
||||||
|
item.lead_time_days)
|
||||||
|
|
||||||
|
if args.get("is_subcontracted") == "Yes":
|
||||||
|
out.bom = args.get('bom') or get_default_bom(args.item_code)
|
||||||
|
|
||||||
|
get_gross_profit(out)
|
||||||
|
if args.doctype == 'Material Request':
|
||||||
|
out.rate = args.rate or out.price_list_rate
|
||||||
|
out.amount = flt(args.qty * out.rate)
|
||||||
|
|
||||||
|
return out
|
||||||
|
|
||||||
|
def update_stock(args, out):
|
||||||
if (args.get("doctype") == "Delivery Note" or
|
if (args.get("doctype") == "Delivery Note" or
|
||||||
(args.get("doctype") == "Sales Invoice" and args.get('update_stock'))) \
|
(args.get("doctype") == "Sales Invoice" and args.get('update_stock'))) \
|
||||||
and out.warehouse and out.stock_qty > 0:
|
and out.warehouse and out.stock_qty > 0:
|
||||||
@ -99,19 +101,24 @@ def get_item_details(args):
|
|||||||
reserved_so = get_so_reservation_for_item(args)
|
reserved_so = get_so_reservation_for_item(args)
|
||||||
out.serial_no = get_serial_no(out, args.serial_no, sales_order=reserved_so)
|
out.serial_no = get_serial_no(out, args.serial_no, sales_order=reserved_so)
|
||||||
|
|
||||||
if args.transaction_date and item.lead_time_days:
|
|
||||||
out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
|
|
||||||
item.lead_time_days)
|
|
||||||
|
|
||||||
if args.get("is_subcontracted") == "Yes":
|
def set_valuation_rate(out, args):
|
||||||
out.bom = args.get('bom') or get_default_bom(args.item_code)
|
if frappe.db.exists("Product Bundle", args.item_code):
|
||||||
|
valuation_rate = 0.0
|
||||||
|
bundled_items = frappe.get_doc("Product Bundle", args.item_code)
|
||||||
|
|
||||||
get_gross_profit(out)
|
for bundle_item in bundled_items.items:
|
||||||
if args.doctype == 'Material Request':
|
valuation_rate += \
|
||||||
out.rate = args.rate or out.price_list_rate
|
flt(get_valuation_rate(bundle_item.item_code, args.company, out.get("warehouse")).get("valuation_rate") \
|
||||||
out.amount = flt(args.qty * out.rate)
|
* bundle_item.qty)
|
||||||
|
|
||||||
|
out.update({
|
||||||
|
"valuation_rate": valuation_rate
|
||||||
|
})
|
||||||
|
|
||||||
|
else:
|
||||||
|
out.update(get_valuation_rate(args.item_code, args.company, out.get("warehouse")))
|
||||||
|
|
||||||
return out
|
|
||||||
|
|
||||||
def process_args(args):
|
def process_args(args):
|
||||||
if isinstance(args, string_types):
|
if isinstance(args, string_types):
|
||||||
@ -215,10 +222,9 @@ def get_basic_details(args, item):
|
|||||||
warehouse = user_default_warehouse or item_defaults.get("default_warehouse") or\
|
warehouse = user_default_warehouse or item_defaults.get("default_warehouse") or\
|
||||||
item_group_defaults.get("default_warehouse") or args.warehouse
|
item_group_defaults.get("default_warehouse") or args.warehouse
|
||||||
|
|
||||||
material_request_type = ''
|
|
||||||
if args.get('doctype') == "Material Request" and not args.get('material_request_type'):
|
if args.get('doctype') == "Material Request" and not args.get('material_request_type'):
|
||||||
args['material_request_type'] = frappe.db.get_value('Material Request',
|
args['material_request_type'] = frappe.db.get_value('Material Request',
|
||||||
args.get('name'), 'material_request_type')
|
args.get('name'), 'material_request_type', cache=True)
|
||||||
|
|
||||||
#Set the UOM to the Default Sales UOM or Default Purchase UOM if configured in the Item Master
|
#Set the UOM to the Default Sales UOM or Default Purchase UOM if configured in the Item Master
|
||||||
if not args.uom:
|
if not args.uom:
|
||||||
@ -297,7 +303,7 @@ def get_basic_details(args, item):
|
|||||||
["Cost Center", "cost_center", "cost_center"],
|
["Cost Center", "cost_center", "cost_center"],
|
||||||
["Warehouse", "warehouse", ""]]:
|
["Warehouse", "warehouse", ""]]:
|
||||||
if not out[d[1]]:
|
if not out[d[1]]:
|
||||||
out[d[1]] = frappe.db.get_value("Company", args.company, d[2]) if d[2] else None
|
out[d[1]] = frappe.get_cached_value('Company', args.company, d[2]) if d[2] else None
|
||||||
|
|
||||||
for fieldname in ("item_name", "item_group", "barcodes", "brand", "stock_uom"):
|
for fieldname in ("item_name", "item_group", "barcodes", "brand", "stock_uom"):
|
||||||
out[fieldname] = item.get(fieldname)
|
out[fieldname] = item.get(fieldname)
|
||||||
@ -319,12 +325,12 @@ def get_default_deferred_revenue_account(args, item):
|
|||||||
if item.enable_deferred_revenue:
|
if item.enable_deferred_revenue:
|
||||||
return (item.deferred_revenue_account
|
return (item.deferred_revenue_account
|
||||||
or args.deferred_revenue_account
|
or args.deferred_revenue_account
|
||||||
or frappe.db.get_value("Company", args.company, "default_deferred_revenue_account"))
|
or frappe.get_cached_value('Company', args.company, "default_deferred_revenue_account"))
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_default_cost_center(args, item, item_group):
|
def get_default_cost_center(args, item, item_group):
|
||||||
return (frappe.db.get_value("Project", args.get("project"), "cost_center")
|
return (frappe.db.get_value("Project", args.get("project"), "cost_center", cache=True)
|
||||||
or (item.get("selling_cost_center") if args.get("customer") else item.get("buying_cost_center"))
|
or (item.get("selling_cost_center") if args.get("customer") else item.get("buying_cost_center"))
|
||||||
or (item_group.get("selling_cost_center") if args.get("customer") else item_group.get("buying_cost_center"))
|
or (item_group.get("selling_cost_center") if args.get("customer") else item_group.get("buying_cost_center"))
|
||||||
or args.get("cost_center"))
|
or args.get("cost_center"))
|
||||||
@ -363,20 +369,12 @@ def get_price_list_rate(args, item_doc, out):
|
|||||||
|
|
||||||
def insert_item_price(args):
|
def insert_item_price(args):
|
||||||
"""Insert Item Price if Price List and Price List Rate are specified and currency is the same"""
|
"""Insert Item Price if Price List and Price List Rate are specified and currency is the same"""
|
||||||
if frappe.db.get_value("Price List", args.price_list, "currency") == args.currency \
|
if frappe.db.get_value("Price List", args.price_list, "currency", cache=True) == args.currency \
|
||||||
and cint(frappe.db.get_single_value("Stock Settings", "auto_insert_price_list_rate_if_missing")):
|
and cint(frappe.db.get_single_value("Stock Settings", "auto_insert_price_list_rate_if_missing")):
|
||||||
if frappe.has_permission("Item Price", "write"):
|
if frappe.has_permission("Item Price", "write"):
|
||||||
price_list_rate = (args.rate / args.get('conversion_factor')
|
price_list_rate = (args.rate / args.get('conversion_factor')
|
||||||
if args.get("conversion_factor") else args.rate)
|
if args.get("conversion_factor") else args.rate)
|
||||||
|
|
||||||
item_price = frappe.get_doc({
|
|
||||||
"doctype": "Item Price",
|
|
||||||
"price_list": args.price_list,
|
|
||||||
"item_code": args.item_code,
|
|
||||||
"currency": args.currency,
|
|
||||||
"price_list_rate": price_list_rate
|
|
||||||
})
|
|
||||||
|
|
||||||
name = frappe.db.get_value('Item Price',
|
name = frappe.db.get_value('Item Price',
|
||||||
{'item_code': args.item_code, 'price_list': args.price_list, 'currency': args.currency}, 'name')
|
{'item_code': args.item_code, 'price_list': args.price_list, 'currency': args.currency}, 'name')
|
||||||
|
|
||||||
@ -387,6 +385,13 @@ def insert_item_price(args):
|
|||||||
frappe.msgprint(_("Item Price updated for {0} in Price List {1}").format(args.item_code,
|
frappe.msgprint(_("Item Price updated for {0} in Price List {1}").format(args.item_code,
|
||||||
args.price_list))
|
args.price_list))
|
||||||
else:
|
else:
|
||||||
|
item_price = frappe.get_doc({
|
||||||
|
"doctype": "Item Price",
|
||||||
|
"price_list": args.price_list,
|
||||||
|
"item_code": args.item_code,
|
||||||
|
"currency": args.currency,
|
||||||
|
"price_list_rate": price_list_rate
|
||||||
|
})
|
||||||
item_price.insert()
|
item_price.insert()
|
||||||
frappe.msgprint(_("Item Price added for {0} in Price List {1}").format(args.item_code,
|
frappe.msgprint(_("Item Price added for {0} in Price List {1}").format(args.item_code,
|
||||||
args.price_list))
|
args.price_list))
|
||||||
@ -501,7 +506,7 @@ def validate_conversion_rate(args, meta):
|
|||||||
from erpnext.controllers.accounts_controller import validate_conversion_rate
|
from erpnext.controllers.accounts_controller import validate_conversion_rate
|
||||||
|
|
||||||
if (not args.conversion_rate
|
if (not args.conversion_rate
|
||||||
and args.currency==frappe.db.get_value("Company", args.company, "default_currency")):
|
and args.currency==frappe.get_cached_value('Company', args.company, "default_currency")):
|
||||||
args.conversion_rate = 1.0
|
args.conversion_rate = 1.0
|
||||||
|
|
||||||
# validate currency conversion rate
|
# validate currency conversion rate
|
||||||
@ -513,7 +518,7 @@ def validate_conversion_rate(args, meta):
|
|||||||
frappe._dict({"fields": args})))
|
frappe._dict({"fields": args})))
|
||||||
|
|
||||||
if (not args.plc_conversion_rate
|
if (not args.plc_conversion_rate
|
||||||
and args.price_list_currency==frappe.db.get_value("Price List", args.price_list, "currency")):
|
and args.price_list_currency==frappe.db.get_value("Price List", args.price_list, "currency", cache=True)):
|
||||||
args.plc_conversion_rate = 1.0
|
args.plc_conversion_rate = 1.0
|
||||||
|
|
||||||
# validate price list currency conversion rate
|
# validate price list currency conversion rate
|
||||||
@ -535,7 +540,7 @@ def get_party_item_code(args, item_doc, out):
|
|||||||
if customer_item_code:
|
if customer_item_code:
|
||||||
out.customer_item_code = customer_item_code[0].ref_code
|
out.customer_item_code = customer_item_code[0].ref_code
|
||||||
else:
|
else:
|
||||||
customer_group = frappe.db.get_value("Customer", args.customer, "customer_group")
|
customer_group = frappe.db.get_value("Customer", args.customer, "customer_group", cache=True)
|
||||||
customer_group_item_code = item_doc.get("customer_items", {"customer_group": customer_group})
|
customer_group_item_code = item_doc.get("customer_items", {"customer_group": customer_group})
|
||||||
if customer_group_item_code and not customer_group_item_code[0].customer_name:
|
if customer_group_item_code and not customer_group_item_code[0].customer_name:
|
||||||
out.customer_item_code = customer_group_item_code[0].ref_code
|
out.customer_item_code = customer_group_item_code[0].ref_code
|
||||||
@ -547,8 +552,8 @@ def get_party_item_code(args, item_doc, out):
|
|||||||
def get_pos_profile_item_details(company, args, pos_profile=None, update_data=False):
|
def get_pos_profile_item_details(company, args, pos_profile=None, update_data=False):
|
||||||
res = frappe._dict()
|
res = frappe._dict()
|
||||||
|
|
||||||
if not pos_profile:
|
if not frappe.flags.pos_profile and not pos_profile:
|
||||||
pos_profile = get_pos_profile(company, args.get('pos_profile'))
|
pos_profile = frappe.flags.pos_profile = get_pos_profile(company, args.get('pos_profile'))
|
||||||
|
|
||||||
if pos_profile:
|
if pos_profile:
|
||||||
for fieldname in ("income_account", "cost_center", "warehouse", "expense_account"):
|
for fieldname in ("income_account", "cost_center", "warehouse", "expense_account"):
|
||||||
@ -564,7 +569,7 @@ def get_pos_profile_item_details(company, args, pos_profile=None, update_data=Fa
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_pos_profile(company, pos_profile=None, user=None):
|
def get_pos_profile(company, pos_profile=None, user=None):
|
||||||
if pos_profile:
|
if pos_profile:
|
||||||
return frappe.get_doc('POS Profile', pos_profile)
|
return frappe.get_cached_doc('POS Profile', pos_profile)
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
user = frappe.session['user']
|
user = frappe.session['user']
|
||||||
@ -618,7 +623,7 @@ def get_serial_no_batchwise(args, sales_order=None):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_conversion_factor(item_code, uom):
|
def get_conversion_factor(item_code, uom):
|
||||||
variant_of = frappe.db.get_value("Item", item_code, "variant_of")
|
variant_of = frappe.db.get_value("Item", item_code, "variant_of", cache=True)
|
||||||
filters = {"parent": item_code, "uom": uom}
|
filters = {"parent": item_code, "uom": uom}
|
||||||
if variant_of:
|
if variant_of:
|
||||||
filters["parent"] = ("in", (item_code, variant_of))
|
filters["parent"] = ("in", (item_code, variant_of))
|
||||||
@ -633,7 +638,7 @@ def get_projected_qty(item_code, warehouse):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_bin_details(item_code, warehouse):
|
def get_bin_details(item_code, warehouse):
|
||||||
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
|
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
|
||||||
["projected_qty", "actual_qty"], as_dict=True) \
|
["projected_qty", "actual_qty"], as_dict=True, cache=True) \
|
||||||
or {"projected_qty": 0, "actual_qty": 0}
|
or {"projected_qty": 0, "actual_qty": 0}
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
|
@ -100,7 +100,7 @@ class update_entries_after(object):
|
|||||||
|
|
||||||
self.company = frappe.db.get_value("Warehouse", self.warehouse, "company")
|
self.company = frappe.db.get_value("Warehouse", self.warehouse, "company")
|
||||||
self.precision = get_field_precision(frappe.get_meta("Stock Ledger Entry").get_field("stock_value"),
|
self.precision = get_field_precision(frappe.get_meta("Stock Ledger Entry").get_field("stock_value"),
|
||||||
currency=frappe.db.get_value("Company", self.company, "default_currency", cache=True))
|
currency=frappe.get_cached_value('Company', self.company, "default_currency"))
|
||||||
|
|
||||||
self.prev_stock_value = self.previous_sle.stock_value or 0.0
|
self.prev_stock_value = self.previous_sle.stock_value or 0.0
|
||||||
self.stock_queue = json.loads(self.previous_sle.stock_queue or "[]")
|
self.stock_queue = json.loads(self.previous_sle.stock_queue or "[]")
|
||||||
|
@ -40,9 +40,9 @@ def unauthorized_user(supplier):
|
|||||||
|
|
||||||
def update_supplier_details(context):
|
def update_supplier_details(context):
|
||||||
supplier_doc = frappe.get_doc("Supplier", context.doc.supplier)
|
supplier_doc = frappe.get_doc("Supplier", context.doc.supplier)
|
||||||
context.doc.currency = supplier_doc.default_currency or frappe.db.get_value("Company", context.doc.company, "default_currency")
|
context.doc.currency = supplier_doc.default_currency or frappe.get_cached_value('Company', context.doc.company, "default_currency")
|
||||||
context.doc.currency_symbol = frappe.db.get_value("Currency", context.doc.currency, "symbol")
|
context.doc.currency_symbol = frappe.db.get_value("Currency", context.doc.currency, "symbol", cache=True)
|
||||||
context.doc.number_format = frappe.db.get_value("Currency", context.doc.currency, "number_format")
|
context.doc.number_format = frappe.db.get_value("Currency", context.doc.currency, "number_format", cache=True)
|
||||||
context.doc.buying_price_list = supplier_doc.default_price_list or ''
|
context.doc.buying_price_list = supplier_doc.default_price_list or ''
|
||||||
|
|
||||||
def get_link_quotation(supplier, rfq):
|
def get_link_quotation(supplier, rfq):
|
||||||
|
@ -27,7 +27,7 @@ def get_site_info(site_info):
|
|||||||
company = company[0][0] if company else None
|
company = company[0][0] if company else None
|
||||||
|
|
||||||
if company:
|
if company:
|
||||||
domain = frappe.db.get_value('Company', cstr(company), 'domain')
|
domain = frappe.get_cached_value('Company', cstr(company), 'domain')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'company': company,
|
'company': company,
|
||||||
|
@ -54,7 +54,7 @@ def get_help_messages():
|
|||||||
if get_level() > 6:
|
if get_level() > 6:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
domain = frappe.db.get_value('Company', erpnext.get_default_company(), 'domain')
|
domain = frappe.get_cached_value('Company', erpnext.get_default_company(), 'domain')
|
||||||
messages = []
|
messages = []
|
||||||
|
|
||||||
message_settings = [
|
message_settings = [
|
||||||
|
@ -103,7 +103,7 @@ def get_price(item_code, price_list, customer_group, company, qty=1):
|
|||||||
price_obj["formatted_price"] = fmt_money(price_obj["price_list_rate"], currency=price_obj["currency"])
|
price_obj["formatted_price"] = fmt_money(price_obj["price_list_rate"], currency=price_obj["currency"])
|
||||||
|
|
||||||
price_obj["currency_symbol"] = not cint(frappe.db.get_default("hide_currency_symbol")) \
|
price_obj["currency_symbol"] = not cint(frappe.db.get_default("hide_currency_symbol")) \
|
||||||
and (frappe.db.get_value("Currency", price_obj.currency, "symbol") or price_obj.currency) \
|
and (frappe.db.get_value("Currency", price_obj.currency, "symbol", cache=True) or price_obj.currency) \
|
||||||
or ""
|
or ""
|
||||||
|
|
||||||
uom_conversion_factor = frappe.db.sql("""select C.conversion_factor
|
uom_conversion_factor = frappe.db.sql("""select C.conversion_factor
|
||||||
|
@ -7,7 +7,7 @@ from erpnext.setup.doctype.setup_progress.setup_progress import get_action_compl
|
|||||||
|
|
||||||
def get_slide_settings():
|
def get_slide_settings():
|
||||||
defaults = frappe.defaults.get_defaults()
|
defaults = frappe.defaults.get_defaults()
|
||||||
domain = frappe.db.get_value('Company', erpnext.get_default_company(), 'domain')
|
domain = frappe.get_cached_value('Company', erpnext.get_default_company(), 'domain')
|
||||||
company = defaults.get("company") or ''
|
company = defaults.get("company") or ''
|
||||||
currency = defaults.get("currency") or ''
|
currency = defaults.get("currency") or ''
|
||||||
|
|
||||||
|
@ -234,6 +234,6 @@ def create_users(args_data):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def update_default_domain_actions_and_get_state():
|
def update_default_domain_actions_and_get_state():
|
||||||
domain = frappe.db.get_value('Company', erpnext.get_default_company(), 'domain')
|
domain = frappe.get_cached_value('Company', erpnext.get_default_company(), 'domain')
|
||||||
update_domain_actions(domain)
|
update_domain_actions(domain)
|
||||||
return get_domain_actions_state(domain)
|
return get_domain_actions_state(domain)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user