Merge pull request #3822 from neilLasrado/item-uom
Changed UOM validation for Item Master
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 8081459..7edd69f 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -50,7 +50,7 @@
merged_gl_map.append(entry)
# filter zero debit and credit entries
- merged_gl_map = filter(lambda x: flt(x.debit)!=0 or flt(x.credit)!=0, merged_gl_map)
+ merged_gl_map = filter(lambda x: flt(x.debit, 9)!=0 or flt(x.credit, 9)!=0, merged_gl_map)
return merged_gl_map
def check_if_in_list(gle, gl_map):
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index 24079c1..12fdc20 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -152,8 +152,8 @@
self.gross_pay = flt(self.arrear_amount) + flt(self.leave_encashment_amount)
for d in self.get("earnings"):
if cint(d.e_depends_on_lwp) == 1:
- d.e_modified_amount = rounded(flt(d.e_amount) * flt(self.payment_days)
- / cint(self.total_days_in_month), 2)
+ d.e_modified_amount = rounded((flt(d.e_amount) * flt(self.payment_days)
+ / cint(self.total_days_in_month)), self.precision("e_modified_amount", "earnings"))
elif not self.payment_days:
d.e_modified_amount = 0
elif not d.e_modified_amount:
@@ -164,8 +164,8 @@
self.total_deduction = 0
for d in self.get('deductions'):
if cint(d.d_depends_on_lwp) == 1:
- d.d_modified_amount = rounded(flt(d.d_amount) * flt(self.payment_days)
- / cint(self.total_days_in_month), 2)
+ d.d_modified_amount = rounded((flt(d.d_amount) * flt(self.payment_days)
+ / cint(self.total_days_in_month)), self.precision("d_modified_amount", "deductions"))
elif not self.payment_days:
d.d_modified_amount = 0
elif not d.d_modified_amount:
@@ -174,10 +174,13 @@
self.total_deduction += flt(d.d_modified_amount)
def calculate_net_pay(self):
+ disable_rounded_total = cint(frappe.db.get_value("Global Defaults", None, "disable_rounded_total"))
+
self.calculate_earning_total()
self.calculate_ded_total()
self.net_pay = flt(self.gross_pay) - flt(self.total_deduction)
- self.rounded_total = rounded(self.net_pay)
+ self.rounded_total = rounded(self.net_pay,
+ self.precision("net_pay") if disable_rounded_total else 0)
def on_submit(self):
if(self.email_check == 1):
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 4982ba5..8e3aab1 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -191,3 +191,4 @@
erpnext.patches.v5_4.fix_missing_item_images
erpnext.patches.v5_4.stock_entry_additional_costs
erpnext.patches.v5_4.cleanup_journal_entry
+execute:frappe.db.sql("update `tabProduction Order` pro set description = (select description from tabItem where name=pro.production_item) where ifnull(description, '') = ''")
diff --git a/erpnext/patches/v5_4/cleanup_journal_entry.py b/erpnext/patches/v5_4/cleanup_journal_entry.py
index 5de17c7..442132a 100644
--- a/erpnext/patches/v5_4/cleanup_journal_entry.py
+++ b/erpnext/patches/v5_4/cleanup_journal_entry.py
@@ -1,7 +1,7 @@
import frappe
def execute():
- frappe.reload_doctype("Journal Entry")
+ frappe.reload_doctype("Journal Entry Account")
for doctype, fieldname in (
("Sales Order", "against_sales_order"),
("Purchase Order", "against_purchase_order"),
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 62f5b88..f263f34 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -98,7 +98,7 @@
if f in ["stock_uom", "conversion_factor"] or not item.get(f):
item.set(f, item_details.get(f))
- if self.difference_account:
+ if self.difference_account and not item.expense_account:
item.expense_account = self.difference_account
if not item.transfer_qty:
diff --git a/erpnext/utilities/doctype/address/address.json b/erpnext/utilities/doctype/address/address.json
index a4d7a55..7f4143a 100644
--- a/erpnext/utilities/doctype/address/address.json
+++ b/erpnext/utilities/doctype/address/address.json
@@ -1,268 +1,268 @@
{
- "allow_import": 1,
- "allow_rename": 1,
- "creation": "2013-01-10 16:34:32",
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Master",
+ "allow_import": 1,
+ "allow_rename": 1,
+ "creation": "2013-01-10 16:34:32",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Master",
"fields": [
{
- "fieldname": "address_details",
- "fieldtype": "Section Break",
- "label": "",
- "options": "icon-map-marker",
+ "fieldname": "address_details",
+ "fieldtype": "Section Break",
+ "label": "",
+ "options": "icon-map-marker",
"permlevel": 0
- },
+ },
{
- "description": "Name of person or organization that this address belongs to.",
- "fieldname": "address_title",
- "fieldtype": "Data",
- "in_list_view": 0,
- "label": "Address Title",
- "permlevel": 0,
+ "description": "Name of person or organization that this address belongs to.",
+ "fieldname": "address_title",
+ "fieldtype": "Data",
+ "in_list_view": 0,
+ "label": "Address Title",
+ "permlevel": 0,
"reqd": 0
- },
+ },
{
- "fieldname": "address_type",
- "fieldtype": "Select",
- "in_list_view": 1,
- "label": "Address Type",
- "options": "Billing\nShipping\nOffice\nPersonal\nPlant\nPostal\nShop\nSubsidiary\nWarehouse\nOther",
- "permlevel": 0,
+ "fieldname": "address_type",
+ "fieldtype": "Select",
+ "in_list_view": 1,
+ "label": "Address Type",
+ "options": "Billing\nShipping\nOffice\nPersonal\nPlant\nPostal\nShop\nSubsidiary\nWarehouse\nOther",
+ "permlevel": 0,
"reqd": 1
- },
+ },
{
- "fieldname": "address_line1",
- "fieldtype": "Data",
- "label": "Address Line 1",
- "permlevel": 0,
+ "fieldname": "address_line1",
+ "fieldtype": "Data",
+ "label": "Address Line 1",
+ "permlevel": 0,
"reqd": 1
- },
+ },
{
- "fieldname": "address_line2",
- "fieldtype": "Data",
- "label": "Address Line 2",
+ "fieldname": "address_line2",
+ "fieldtype": "Data",
+ "label": "Address Line 2",
"permlevel": 0
- },
+ },
{
- "fieldname": "city",
- "fieldtype": "Data",
- "in_filter": 1,
- "in_list_view": 1,
- "label": "City/Town",
- "permlevel": 0,
- "reqd": 1,
+ "fieldname": "city",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "in_list_view": 1,
+ "label": "City/Town",
+ "permlevel": 0,
+ "reqd": 1,
"search_index": 1
- },
+ },
{
- "fieldname": "state",
- "fieldtype": "Data",
- "in_filter": 1,
- "in_list_view": 0,
- "label": "State",
- "permlevel": 0,
+ "fieldname": "state",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "in_list_view": 0,
+ "label": "State",
+ "permlevel": 0,
"search_index": 0
- },
+ },
{
- "fieldname": "pincode",
- "fieldtype": "Data",
- "in_filter": 1,
- "in_list_view": 0,
- "label": "Pincode",
- "permlevel": 0,
+ "fieldname": "pincode",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "in_list_view": 0,
+ "label": "Postal Code",
+ "permlevel": 0,
"search_index": 1
- },
+ },
{
- "fieldname": "country",
- "fieldtype": "Link",
- "in_filter": 1,
- "in_list_view": 0,
- "label": "Country",
- "options": "Country",
- "permlevel": 0,
- "reqd": 1,
+ "fieldname": "country",
+ "fieldtype": "Link",
+ "in_filter": 1,
+ "in_list_view": 0,
+ "label": "Country",
+ "options": "Country",
+ "permlevel": 0,
+ "reqd": 1,
"search_index": 1
- },
+ },
{
- "fieldname": "column_break0",
- "fieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 0,
+ "fieldname": "column_break0",
+ "fieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 0,
"width": "50%"
- },
+ },
{
- "fieldname": "email_id",
- "fieldtype": "Data",
- "label": "Email Id",
+ "fieldname": "email_id",
+ "fieldtype": "Data",
+ "label": "Email Id",
"permlevel": 0
- },
+ },
{
- "fieldname": "phone",
- "fieldtype": "Data",
- "label": "Phone",
- "permlevel": 0,
+ "fieldname": "phone",
+ "fieldtype": "Data",
+ "label": "Phone",
+ "permlevel": 0,
"reqd": 0
- },
+ },
{
- "fieldname": "fax",
- "fieldtype": "Data",
- "in_filter": 1,
- "label": "Fax",
+ "fieldname": "fax",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "label": "Fax",
"permlevel": 0
- },
+ },
{
- "default": "0",
- "description": "",
- "fieldname": "is_primary_address",
- "fieldtype": "Check",
- "label": "Preferred Billing Address",
+ "default": "0",
+ "description": "",
+ "fieldname": "is_primary_address",
+ "fieldtype": "Check",
+ "label": "Preferred Billing Address",
"permlevel": 0
- },
+ },
{
- "default": "0",
- "description": "",
- "fieldname": "is_shipping_address",
- "fieldtype": "Check",
- "in_list_view": 0,
- "label": "Preferred Shipping Address",
+ "default": "0",
+ "description": "",
+ "fieldname": "is_shipping_address",
+ "fieldtype": "Check",
+ "in_list_view": 0,
+ "label": "Preferred Shipping Address",
"permlevel": 0
- },
+ },
{
- "fieldname": "linked_with",
- "fieldtype": "Section Break",
- "label": "Reference",
- "options": "icon-pushpin",
+ "fieldname": "linked_with",
+ "fieldtype": "Section Break",
+ "label": "Reference",
+ "options": "icon-pushpin",
"permlevel": 0
- },
+ },
{
- "fieldname": "customer",
- "fieldtype": "Link",
- "label": "Customer",
- "options": "Customer",
+ "fieldname": "customer",
+ "fieldtype": "Link",
+ "label": "Customer",
+ "options": "Customer",
"permlevel": 0
- },
+ },
{
- "fieldname": "customer_name",
- "fieldtype": "Data",
- "in_filter": 1,
- "in_list_view": 0,
- "label": "Customer Name",
- "permlevel": 0,
+ "fieldname": "customer_name",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "in_list_view": 0,
+ "label": "Customer Name",
+ "permlevel": 0,
"read_only": 1
- },
+ },
{
- "fieldname": "supplier",
- "fieldtype": "Link",
- "label": "Supplier",
- "options": "Supplier",
+ "fieldname": "supplier",
+ "fieldtype": "Link",
+ "label": "Supplier",
+ "options": "Supplier",
"permlevel": 0
- },
+ },
{
- "fieldname": "supplier_name",
- "fieldtype": "Data",
- "in_filter": 1,
- "in_list_view": 0,
- "label": "Supplier Name",
- "permlevel": 0,
- "read_only": 1,
+ "fieldname": "supplier_name",
+ "fieldtype": "Data",
+ "in_filter": 1,
+ "in_list_view": 0,
+ "label": "Supplier Name",
+ "permlevel": 0,
+ "read_only": 1,
"search_index": 0
- },
+ },
{
- "fieldname": "sales_partner",
- "fieldtype": "Link",
- "label": "Sales Partner",
- "options": "Sales Partner",
+ "fieldname": "sales_partner",
+ "fieldtype": "Link",
+ "label": "Sales Partner",
+ "options": "Sales Partner",
"permlevel": 0
- },
+ },
{
- "fieldname": "column_break_22",
- "fieldtype": "Column Break",
+ "fieldname": "column_break_22",
+ "fieldtype": "Column Break",
"permlevel": 0
- },
+ },
{
- "depends_on": "eval:!doc.supplier && !doc.sales_partner",
- "fieldname": "lead",
- "fieldtype": "Link",
- "label": "Lead",
- "options": "Lead",
+ "depends_on": "eval:!doc.supplier && !doc.sales_partner",
+ "fieldname": "lead",
+ "fieldtype": "Link",
+ "label": "Lead",
+ "options": "Lead",
"permlevel": 0
- },
+ },
{
- "depends_on": "eval:!doc.supplier && !doc.sales_partner",
- "fieldname": "lead_name",
- "fieldtype": "Data",
- "label": "Lead Name",
- "permlevel": 0,
+ "depends_on": "eval:!doc.supplier && !doc.sales_partner",
+ "fieldname": "lead_name",
+ "fieldtype": "Data",
+ "label": "Lead Name",
+ "permlevel": 0,
"read_only": 1
}
- ],
- "icon": "icon-map-marker",
- "idx": 1,
- "in_dialog": 0,
- "modified": "2015-08-10 19:42:18.331818",
- "modified_by": "Administrator",
- "module": "Utilities",
- "name": "Address",
- "owner": "Administrator",
+ ],
+ "icon": "icon-map-marker",
+ "idx": 1,
+ "in_dialog": 0,
+ "modified": "2015-08-10 19:42:18.331819",
+ "modified_by": "Administrator",
+ "module": "Utilities",
+ "name": "Address",
+ "owner": "Administrator",
"permissions": [
{
- "apply_user_permissions": 1,
- "create": 1,
- "delete": 0,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Sales User",
- "share": 1,
- "submit": 0,
+ "apply_user_permissions": 1,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Sales User",
+ "share": 1,
+ "submit": 0,
"write": 1
- },
+ },
{
- "apply_user_permissions": 1,
- "create": 1,
- "delete": 0,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase User",
- "share": 1,
- "submit": 0,
+ "apply_user_permissions": 1,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase User",
+ "share": 1,
+ "submit": 0,
"write": 1
- },
+ },
{
- "apply_user_permissions": 1,
- "create": 1,
- "delete": 0,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Maintenance User",
- "share": 1,
- "submit": 0,
+ "apply_user_permissions": 1,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Maintenance User",
+ "share": 1,
+ "submit": 0,
"write": 1
- },
+ },
{
- "apply_user_permissions": 1,
- "create": 1,
- "delete": 0,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Accounts User",
- "share": 1,
- "submit": 0,
+ "apply_user_permissions": 1,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Accounts User",
+ "share": 1,
+ "submit": 0,
"write": 1
}
- ],
- "search_fields": "customer, supplier, sales_partner, country, state",
- "sort_field": "modified",
+ ],
+ "search_fields": "customer, supplier, sales_partner, country, state",
+ "sort_field": "modified",
"sort_order": "DESC"
-}
\ No newline at end of file
+}