Merge pull request #16073 from deepeshgarg007/receivable-summary
Accounts receivable summary print fix
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index cd3cbe9..7ed225f 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -10,6 +10,7 @@
from erpnext.stock.get_item_details import get_conversion_factor
from erpnext.buying.utils import validate_for_items, update_last_purchase_rate
from erpnext.stock.stock_ledger import get_valuation_rate
+from frappe.contacts.doctype.address.address import get_address_display
from erpnext.controllers.stock_controller import StockController
@@ -39,6 +40,7 @@
self.set_qty_as_per_stock_uom()
self.validate_stock_or_nonstock_items()
self.validate_warehouse()
+ self.set_supplier_address()
if self.doctype=="Purchase Invoice":
self.validate_purchase_receipt_if_update_stock()
@@ -96,6 +98,16 @@
if not d.cost_center and lc_voucher_data and lc_voucher_data[0][1]:
d.db_set('cost_center', lc_voucher_data[0][1])
+ def set_supplier_address(self):
+ address_dict = {
+ 'supplier_address': 'address_display',
+ 'shipping_address': 'shipping_address_display'
+ }
+
+ for address_field, address_display_field in address_dict.items():
+ if self.get(address_field):
+ self.set(address_display_field, get_address_display(self.get(address_field)))
+
def set_total_in_words(self):
from frappe.utils import money_in_words
if self.meta.get_field("base_in_words"):
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index be5f64e..5c203af 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -8,6 +8,7 @@
from erpnext.stock.get_item_details import get_bin_details
from erpnext.stock.utils import get_incoming_rate
from erpnext.stock.get_item_details import get_conversion_factor
+from frappe.contacts.doctype.address.address import get_address_display
from erpnext.controllers.stock_controller import StockController
@@ -40,6 +41,7 @@
self.validate_selling_price()
self.set_qty_as_per_stock_uom()
self.set_po_nos()
+ self.set_customer_address()
check_active_sales_items(self)
def set_missing_values(self, for_validate=False):
@@ -344,6 +346,17 @@
po_nos = frappe.get_all('Sales Order', 'po_no', filters = {'name': ('in', sales_orders)})
self.po_no = ', '.join(list(set([d.po_no for d in po_nos if d.po_no])))
+ def set_customer_address(self):
+ address_dict = {
+ 'customer_address': 'address_display',
+ 'shipping_address_name': 'shipping_address',
+ 'company_address': 'company_address_display'
+ }
+
+ for address_field, address_display_field in address_dict.items():
+ if self.get(address_field):
+ self.set(address_display_field, get_address_display(self.get(address_field)))
+
def validate_items(self):
# validate items to see if they have is_sales_item enabled
from erpnext.controllers.buying_controller import validate_item_type
diff --git a/erpnext/public/css/erpnext.css b/erpnext/public/css/erpnext.css
index 460efbf..c55e422 100644
--- a/erpnext/public/css/erpnext.css
+++ b/erpnext/public/css/erpnext.css
@@ -346,6 +346,11 @@
body[data-route="pos"] .collapse-btn {
cursor: pointer;
}
+@media (max-width: 767px) {
+ body[data-route="pos"] .page-actions {
+ max-width: 110px;
+ }
+}
.price-info {
position: absolute;
left: 0;
diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py
index 0c55b43..e0ad7ac 100644
--- a/erpnext/stock/doctype/packed_item/packed_item.py
+++ b/erpnext/stock/doctype/packed_item/packed_item.py
@@ -49,8 +49,9 @@
pi.qty = flt(qty)
pi.description = description
if not pi.warehouse:
- pi.warehouse = (main_item_row.warehouse
- if (doc.get('is_pos') or not item.default_warehouse) else item.default_warehouse)
+ pi.warehouse = (main_item_row.warehouse if ((doc.get('is_pos')
+ or not item.default_warehouse) and main_item_row.warehouse) else item.default_warehouse)
+
if not pi.batch_no:
pi.batch_no = cstr(main_item_row.get("batch_no"))
if not pi.target_warehouse: