refactor: refactor contextual print setting implementation

This commit is contained in:
prssanna
2020-10-29 14:19:34 +05:30
parent bc6a2b2f9c
commit 71e5b60df1
20 changed files with 68 additions and 135 deletions

View File

@@ -22,6 +22,7 @@ from six import text_type
from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_accounting_dimensions
from erpnext.stock.get_item_details import get_item_warehouse, _get_item_tax_template, get_item_tax_map
from erpnext.stock.doctype.packed_item.packed_item import make_packing_list
from erpnext.controllers.print_settings import set_print_templates_for_item_table, set_print_templates_for_taxes
force_item_fields = ("item_group", "brand", "stock_uom", "is_fixed_asset", "item_tax_rate", "pricing_rules")
@@ -29,6 +30,19 @@ class AccountsController(TransactionBase):
def __init__(self, *args, **kwargs):
super(AccountsController, self).__init__(*args, **kwargs)
def get_print_settings(self):
print_setting_fields = []
items_field = self.meta.get_field('items')
if items_field and items_field.fieldtype == 'Table':
print_setting_fields += ['compact_item_print', 'print_uom_after_quantity']
taxes_field = self.meta.get_field('taxes')
if taxes_field and taxes_field.fieldtype == 'Table':
print_setting_fields += ['print_taxes_with_zero_amount']
return print_setting_fields
@property
def company_currency(self):
if not hasattr(self, "__company_currency"):
@@ -138,7 +152,7 @@ class AccountsController(TransactionBase):
elif self.doctype in ("Quotation", "Purchase Order", "Sales Order"):
self.validate_non_invoice_documents_schedule()
def before_print(self):
def before_print(self, settings=None):
if self.doctype in ['Purchase Order', 'Sales Order', 'Sales Invoice', 'Purchase Invoice',
'Supplier Quotation', 'Purchase Receipt', 'Delivery Note', 'Quotation']:
if self.get("group_same_items"):
@@ -151,6 +165,9 @@ class AccountsController(TransactionBase):
else:
df.set("print_hide", 1)
set_print_templates_for_item_table(self, settings)
set_print_templates_for_taxes(self, settings)
def calculate_paid_amount(self):
if hasattr(self, "is_pos") or hasattr(self, "is_paid"):
is_paid = self.get("is_pos") or self.get("is_paid")