Merge branch 'hotfix'
This commit is contained in:
commit
e9b37abfca
@ -5,7 +5,7 @@ import frappe
|
||||
from erpnext.hooks import regional_overrides
|
||||
from frappe.utils import getdate
|
||||
|
||||
__version__ = '10.0.4'
|
||||
__version__ = '10.0.5'
|
||||
|
||||
def get_default_company(user=None):
|
||||
'''Get default company for user'''
|
||||
|
@ -63,7 +63,11 @@ class POSProfile(Document):
|
||||
|
||||
if len(default_mode_of_payment) > 1:
|
||||
frappe.throw(_("Multiple default mode of payment is not allowed"))
|
||||
|
||||
def validate_customer_territory_group(self):
|
||||
if not frappe.db.get_single_value('POS Settings', 'use_pos_in_offline_mode'):
|
||||
return
|
||||
|
||||
if not self.territory:
|
||||
frappe.throw(_("Territory is Required in POS Profile"), title="Mandatory Field")
|
||||
|
||||
@ -103,7 +107,7 @@ def get_item_groups(pos_profile):
|
||||
if pos_profile.get('item_groups'):
|
||||
# Get items based on the item groups defined in the POS profile
|
||||
for data in pos_profile.get('item_groups'):
|
||||
item_groups.extend(["'%s'"%d.name for d in get_child_nodes('Item Group', data.item_group)])
|
||||
item_groups.extend(["'%s'" % frappe.db.escape(d.name) for d in get_child_nodes('Item Group', data.item_group)])
|
||||
|
||||
return list(set(item_groups))
|
||||
|
||||
|
@ -66,12 +66,12 @@ def get_mode_of_payments(filters):
|
||||
invoice_list = get_invoices(filters)
|
||||
invoice_list_names = ",".join(['"' + invoice['name'] + '"' for invoice in invoice_list])
|
||||
if invoice_list:
|
||||
inv_mop = frappe.db.sql("""select a.owner,a.posting_date,b.mode_of_payment
|
||||
inv_mop = frappe.db.sql("""select a.owner,a.posting_date, ifnull(b.mode_of_payment, '')
|
||||
from `tabSales Invoice` a, `tabSales Invoice Payment` b
|
||||
where a.name = b.parent
|
||||
and a.name in ({invoice_list_names})
|
||||
union
|
||||
select a.owner,a.posting_date,b.mode_of_payment
|
||||
select a.owner,a.posting_date, ifnull(b.mode_of_payment, '')
|
||||
from `tabSales Invoice` a, `tabPayment Entry` b,`tabPayment Entry Reference` c
|
||||
where a.name = c.reference_name
|
||||
and b.name = c.parent
|
||||
|
@ -252,6 +252,9 @@ def add_ac(args=None):
|
||||
if not ac.parent_account:
|
||||
ac.parent_account = args.get("parent")
|
||||
|
||||
if ac.is_root:
|
||||
ac.parent_account=''
|
||||
|
||||
ac.old_parent = ""
|
||||
ac.freeze_account = "No"
|
||||
if cint(ac.get("is_root")):
|
||||
|
@ -25,7 +25,7 @@ erpnext.crop.update_item_rate_uom = function(frm, cdt, cdn) {
|
||||
let material_list = ['materials_required', 'produce', 'byproducts'];
|
||||
material_list.forEach((material) => {
|
||||
frm.doc[material].forEach((item, index) => {
|
||||
if (item.name == cdn){
|
||||
if (item.name == cdn && item.item_code){
|
||||
frappe.call({
|
||||
method:'erpnext.agriculture.doctype.crop.crop.get_item_details',
|
||||
args: {
|
||||
|
@ -431,7 +431,7 @@ class BuyingController(StockController):
|
||||
d.schedule_date = self.schedule_date
|
||||
|
||||
if d.schedule_date and getdate(d.schedule_date) < getdate(self.transaction_date):
|
||||
frappe.throw(_("Expected Date cannot be before Transaction Date"))
|
||||
frappe.throw(_("Row #{0}: Reqd by Date cannot be before Transaction Date").format(d.idx))
|
||||
else:
|
||||
frappe.throw(_("Please enter Schedule Date"))
|
||||
frappe.throw(_("Please enter Reqd by Date"))
|
||||
|
||||
|
@ -591,7 +591,7 @@ def validate_bom_no(item, bom_no):
|
||||
frappe.throw(_("BOM {0} does not belong to Item {1}").format(bom_no, item))
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_children(doctype, parent=None, is_tree=False):
|
||||
def get_children(doctype, parent=None, is_root=False, **filters):
|
||||
if not parent:
|
||||
frappe.msgprint(_('Please select a BOM'))
|
||||
return
|
||||
|
@ -521,6 +521,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
|
||||
if(r.message) {
|
||||
me.frm.set_value("due_date", r.message);
|
||||
frappe.ui.form.trigger(me.frm.doc.doctype, "currency");
|
||||
me.recalculate_terms();
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -530,6 +531,29 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
|
||||
}
|
||||
},
|
||||
|
||||
recalculate_terms: function() {
|
||||
const doc = this.frm.doc;
|
||||
|
||||
if (doc.payment_terms_template) {
|
||||
this.payment_terms_template();
|
||||
} else if (doc.payment_schedule) {
|
||||
const me = this;
|
||||
|
||||
doc.payment_schedule.forEach(
|
||||
function(term) {
|
||||
if (term.payment_term) {
|
||||
me.payment_term(doc, term.doctype, term.name);
|
||||
} else {
|
||||
frappe.model.set_value(
|
||||
term.doctype, term.name, 'due_date',
|
||||
doc.posting_date || doc.transaction_date
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
get_company_currency: function() {
|
||||
return erpnext.get_currency(this.frm.doc.company);
|
||||
},
|
||||
|
@ -7,7 +7,9 @@ def update_itemised_tax_data(doc):
|
||||
itemised_tax = get_itemised_tax(doc.taxes)
|
||||
|
||||
for row in doc.items:
|
||||
tax_rate = sum([tax.get('tax_rate', 0) for d, tax in itemised_tax.get(row.item_code).items()])
|
||||
tax_rate = 0.0
|
||||
if itemised_tax.get(row.item_code):
|
||||
tax_rate = sum([tax.get('tax_rate', 0) for d, tax in itemised_tax.get(row.item_code).items()])
|
||||
|
||||
row.tax_rate = flt(tax_rate, row.precision("tax_rate"))
|
||||
row.tax_amount = flt((row.net_amount * tax_rate) / 100, row.precision("net_amount"))
|
||||
|
Loading…
Reference in New Issue
Block a user