Преглед на файлове

Merge pull request #1706 from nabinhait/field_currency

[fix] Get field currency for child doc
version-14
Nabin Hait преди 9 години
родител
ревизия
3debd7f602
променени са 1 файла, в които са добавени 13 реда и са изтрити 5 реда
  1. +13
    -5
      frappe/model/meta.py

+ 13
- 5
frappe/model/meta.py Целия файл

@@ -280,21 +280,29 @@ def get_field_currency(df, doc=None):
if not getattr(frappe.local, "field_currency", None):
frappe.local.field_currency = frappe._dict()

if not frappe.local.field_currency.get((doc.doctype, doc.parent or doc.name), {}).get(df.fieldname):
if not (frappe.local.field_currency.get((doc.doctype, doc.name), {}).get(df.fieldname) or
(doc.parent and frappe.local.field_currency.get((doc.doctype, doc.parent), {}).get(df.fieldname))):

ref_docname = doc.parent or doc.name

if ":" in cstr(df.get("options")):
split_opts = df.get("options").split(":")
if len(split_opts)==3:
currency = frappe.db.get_value(split_opts[0], doc.get(split_opts[1]), split_opts[2])
else:
currency = doc.get(df.get("options"))
if not currency and doc.parent:
currency = frappe.db.get_value(doc.parenttype, doc.parent, df.get("options"))
if doc.parent:
if currency:
ref_docname = doc.name
else:
currency = frappe.db.get_value(doc.parenttype, doc.parent, df.get("options"))

if currency:
frappe.local.field_currency.setdefault((doc.doctype, doc.parent or doc.name), frappe._dict())\
frappe.local.field_currency.setdefault((doc.doctype, ref_docname), frappe._dict())\
.setdefault(df.fieldname, currency)

return frappe.local.field_currency.get((doc.doctype, doc.parent or doc.name), {}).get(df.fieldname)
return frappe.local.field_currency.get((doc.doctype, doc.name), {}).get(df.fieldname) or \
(doc.parent and frappe.local.field_currency.get((doc.doctype, doc.parent), {}).get(df.fieldname))

def get_field_precision(df, doc=None, currency=None):
"""get precision based on DocField options and fieldvalue in doc"""


Зареждане…
Отказ
Запис