diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py index f9f6df15572..c6299edbc92 100644 --- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py +++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py @@ -289,26 +289,25 @@ class JournalVoucher(AccountsController): def set_print_format_fields(self): for d in self.get('entries'): - result = frappe.db.get_value("Account", d.account, - ["account_type", "master_type"]) + acc = frappe.db.get_value("Account", d.account, ["account_type", "master_type"], as_dict=1) - if not result: - continue + if not acc: continue - account_type, master_type = result - - if master_type in ['Supplier', 'Customer']: + if acc.master_type in ['Supplier', 'Customer']: if not self.pay_to_recd_from: - self.pay_to_recd_from = frappe.db.get_value(master_type, - ' - '.join(d.account.split(' - ')[:-1]), - master_type == 'Customer' and 'customer_name' or 'supplier_name') + self.pay_to_recd_from = frappe.db.get_value(acc.master_type, ' - '.join(d.account.split(' - ')[:-1]), + acc.master_type == 'Customer' and 'customer_name' or 'supplier_name') + if self.voucher_type in ["Credit Note", "Debit Note"]: + self.set_total_amount(d.debit or d.credit) - if account_type in ['Bank', 'Cash']: - company_currency = get_company_currency(self.company) - amt = flt(d.debit) and d.debit or d.credit - self.total_amount = fmt_money(amt, currency=company_currency) - from frappe.utils import money_in_words - self.total_amount_in_words = money_in_words(amt, company_currency) + if acc.account_type in ['Bank', 'Cash']: + self.set_total_amount(d.debit or d.credit) + + def set_total_amount(self, amt): + company_currency = get_company_currency(self.company) + self.total_amount = fmt_money(amt, currency=company_currency) + from frappe.utils import money_in_words + self.total_amount_in_words = money_in_words(amt, company_currency) def check_credit_days(self): date_diff = 0 diff --git a/erpnext/accounts/print_format/credit_note/credit_note.json b/erpnext/accounts/print_format/credit_note/credit_note.json index 31507b480d3..ac0de75037f 100644 --- a/erpnext/accounts/print_format/credit_note/credit_note.json +++ b/erpnext/accounts/print_format/credit_note/credit_note.json @@ -4,9 +4,9 @@ "doc_type": "Journal Voucher", "docstatus": 0, "doctype": "Print Format", - "html": "{%- from \"templates/print_formats/standard_macros.html\" import add_header -%}\n\n
\n {%- if not doc.get(\"print_heading\") and not doc.get(\"select_print_heading\") \n and doc.set(\"select_print_heading\", _(\"Credit Note\")) -%}{%- endif -%}\n {{ add_header(0, 1, doc, letter_head, no_letterhead) }}\n\n {%- for label, value in (\n (_(\"Credit To\"), doc.pay_to_recd_from),\n (_(\"Date\"), frappe.utils.formatdate(doc.voucher_date)),\n (_(\"Amount\"), \"\" + doc.total_amount + \"
\" + (doc.total_amount_in_words or \"\") + \"
\"),\n (_(\"Remarks\"), doc.remark)\n ) -%}\n\n
\n
\n
{{ value }}
\n
\n\n {%- endfor -%}\n\n
\n
\n

\n {{ _(\"For\") }} {{ doc.company }},
\n
\n
\n
\n {{ _(\"Authorized Signatory\") }}\n

\n
\n\n\n", + "html": "{%- from \"templates/print_formats/standard_macros.html\" import add_header -%}\n\n
\n {%- if not doc.get(\"print_heading\") and not doc.get(\"select_print_heading\") \n and doc.set(\"select_print_heading\", _(\"Credit Note\")) -%}{%- endif -%}\n {{ add_header(0, 1, doc, letter_head, no_letterhead) }}\n\n {%- for label, value in (\n (_(\"Credit To\"), doc.pay_to_recd_from),\n (_(\"Date\"), frappe.utils.formatdate(doc.voucher_date)),\n (_(\"Amount\"), \"\" + frappe.utils.cstr(doc.total_amount) + \"
\" + (doc.total_amount_in_words or \"\") + \"
\"),\n (_(\"Remarks\"), doc.remark)\n ) -%}\n\n
\n
\n
{{ value }}
\n
\n\n {%- endfor -%}\n\n
\n
\n

\n {{ _(\"For\") }} {{ doc.company }},
\n
\n
\n
\n {{ _(\"Authorized Signatory\") }}\n

\n
\n\n\n", "idx": 2, - "modified": "2014-08-29 13:20:15.789533", + "modified": "2014-10-17 17:20:02.740340", "modified_by": "Administrator", "module": "Accounts", "name": "Credit Note", diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index ab6e4baec8a..f12f396abd8 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -23,7 +23,7 @@ class Quotation(SellingController): self.validate_order_type() self.validate_for_items() self.validate_uom_is_integer("stock_uom", "qty") - self.quotation_to = "Customer" if self.customer else "Lead" + self.validate_quotation_to() def has_sales_order(self): return frappe.db.get_value("Sales Order Item", {"prevdoc_docname": self.name, "docstatus": 1}) @@ -54,6 +54,13 @@ class Quotation(SellingController): if is_sales_item == 'No': frappe.throw(_("Item {0} must be Sales Item").format(d.item_code)) + def validate_quotation_to(self): + if self.customer: + self.quotation_to = "Customer" + self.lead = None + elif self.lead: + self.quotation_to = "Lead" + def update_opportunity(self): for opportunity in list(set([d.prevdoc_docname for d in self.get("quotation_details")])): if opportunity: @@ -139,8 +146,8 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): return doclist def _make_customer(source_name, ignore_permissions=False): - quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type"]) - if quotation and quotation[0]: + quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type", "customer"]) + if quotation and quotation[0] and not quotation[2]: lead_name = quotation[0] customer_name = frappe.db.get_value("Customer", {"lead_name": lead_name}, ["name", "customer_name"], as_dict=True)