fixed strings for translation
This commit is contained in:
parent
5d4ffa6cf8
commit
2c45899a02
@ -114,7 +114,7 @@ class JournalVoucher(AccountsController):
|
||||
if self.cheque_no:
|
||||
if self.cheque_date:
|
||||
r.append(_('Reference #{0} dated {1}').format(self.cheque_no, formatdate(self.cheque_date)))
|
||||
else :
|
||||
else:
|
||||
msgprint(_("Please enter Reference date"), raise_exception=1)
|
||||
|
||||
for d in self.get('entries'):
|
||||
|
@ -86,9 +86,7 @@ class Customer(TransactionBase):
|
||||
|
||||
def validate_name_with_customer_group(self):
|
||||
if frappe.db.exists("Customer Group", self.name):
|
||||
frappe.msgprint("An Customer Group exists with same name (%s), \
|
||||
please change the Customer name or rename the Customer Group" %
|
||||
self.name, raise_exception=1)
|
||||
frappe.throw("A Customer Group exists with same name please change the Customer name or rename the Customer Group")
|
||||
|
||||
def delete_customer_address(self):
|
||||
addresses = frappe.db.sql("""select name, lead from `tabAddress`
|
||||
@ -140,7 +138,7 @@ class Customer(TransactionBase):
|
||||
@frappe.whitelist()
|
||||
def get_dashboard_info(customer):
|
||||
if not frappe.has_permission("Customer", "read", customer):
|
||||
frappe.msgprint("No Permission", raise_exception=True)
|
||||
frappe.msgprint(_("Not permitted"), raise_exception=True)
|
||||
|
||||
out = {}
|
||||
for doctype in ["Opportunity", "Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]:
|
||||
|
@ -4,12 +4,7 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe.utils import add_days, cstr, flt, nowdate, cint, now
|
||||
|
||||
from frappe import session, msgprint
|
||||
from erpnext.stock.utils import get_valid_serial_nos
|
||||
|
||||
|
||||
from frappe.utils import flt, now
|
||||
from frappe.model.document import Document
|
||||
|
||||
class StockLedger(Document):
|
||||
|
@ -4,15 +4,14 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import msgprint
|
||||
from frappe.utils import flt, getdate, add_days
|
||||
from frappe import _
|
||||
from frappe.utils import flt, getdate, add_days, formatdate
|
||||
from frappe.model.controller import DocListController
|
||||
from datetime import date
|
||||
|
||||
class StockFreezeError(frappe.ValidationError): pass
|
||||
|
||||
class StockLedgerEntry(DocListController):
|
||||
|
||||
def validate(self):
|
||||
from erpnext.stock.utils import validate_warehouse_company
|
||||
self.validate_mandatory()
|
||||
@ -55,11 +54,7 @@ class StockLedgerEntry(DocListController):
|
||||
mandatory = ['warehouse','posting_date','voucher_type','voucher_no','actual_qty','company']
|
||||
for k in mandatory:
|
||||
if not self.get(k):
|
||||
msgprint("Stock Ledger Entry: '%s' is mandatory" % k, raise_exception = 1)
|
||||
elif k == 'warehouse':
|
||||
if not frappe.db.exists("Warehouse", self.get(k)):
|
||||
msgprint("Warehouse: '%s' does not exist in the system. Please check." %
|
||||
self.get(k), raise_exception = 1)
|
||||
frappe.throw(_("{0} is required").format(k))
|
||||
|
||||
def validate_item(self):
|
||||
item_det = frappe.db.sql("""select name, has_batch_no, docstatus,
|
||||
@ -89,15 +84,14 @@ class StockLedgerEntry(DocListController):
|
||||
if stock_frozen_upto:
|
||||
stock_auth_role = frappe.db.get_value('Stock Settings', None,'stock_auth_role')
|
||||
if getdate(self.posting_date) <= getdate(stock_frozen_upto) and not stock_auth_role in frappe.user.get_roles():
|
||||
msgprint("You are not authorized to do / modify back dated stock entries before %s" % getdate(stock_frozen_upto).strftime('%d-%m-%Y'), raise_exception=StockFreezeError)
|
||||
frappe.throw(_("Entries before {0} are frozen").format(formatdate(stock_frozen_upto)), StockFreezeError)
|
||||
|
||||
stock_frozen_upto_days = int(frappe.db.get_value('Stock Settings', None, 'stock_frozen_upto_days') or 0)
|
||||
if stock_frozen_upto_days:
|
||||
stock_auth_role = frappe.db.get_value('Stock Settings', None,'stock_auth_role')
|
||||
older_than_x_days_ago = (add_days(getdate(self.posting_date), stock_frozen_upto_days) <= date.today())
|
||||
if older_than_x_days_ago and not stock_auth_role in frappe.user.get_roles():
|
||||
msgprint("You are not authorized to do / modify back dated stock entries older than %d days ago" %stock_frozen_upto_days, raise_exception=StockFreezeError)
|
||||
|
||||
frappe.throw(_("Not allowed to update entries older than {0}").format(stock_frozen_upto_days), StockFreezeError)
|
||||
|
||||
def scrub_posting_time(self):
|
||||
if not self.posting_time or self.posting_time == '00:0':
|
||||
|
@ -4,7 +4,7 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.utils import cstr, flt, cint
|
||||
from frappe import msgprint, _
|
||||
from frappe import _
|
||||
|
||||
|
||||
from frappe.model.document import Document
|
||||
@ -12,33 +12,28 @@ from frappe.model.document import Document
|
||||
class StockUOMReplaceUtility(Document):
|
||||
def validate_mandatory(self):
|
||||
if not cstr(self.item_code):
|
||||
msgprint("Please Enter an Item.")
|
||||
raise Exception
|
||||
frappe.throw(_("Item is required"))
|
||||
|
||||
if not cstr(self.new_stock_uom):
|
||||
msgprint("Please Enter New Stock UOM.")
|
||||
raise Exception
|
||||
frappe.throw(_("New Stock UOM is required"))
|
||||
|
||||
if cstr(self.current_stock_uom) == cstr(self.new_stock_uom):
|
||||
msgprint("Current Stock UOM and Stock UOM are same.")
|
||||
raise Exception
|
||||
frappe.throw(_("New Stock UOM must be different from current stock UOM"))
|
||||
|
||||
# check conversion factor
|
||||
if not flt(self.conversion_factor):
|
||||
msgprint("Please Enter Conversion Factor.")
|
||||
raise Exception
|
||||
frappe.throw(_("Conversion Factor is required"))
|
||||
|
||||
stock_uom = frappe.db.get_value("Item", self.item_code, "stock_uom")
|
||||
if cstr(self.new_stock_uom) == cstr(stock_uom):
|
||||
msgprint("Item Master is already updated with New Stock UOM " + cstr(self.new_stock_uom))
|
||||
raise Exception
|
||||
frappe.throw(_("Item is updated"))
|
||||
|
||||
def update_item_master(self):
|
||||
item_doc = frappe.get_doc("Item", self.item_code)
|
||||
item_doc.stock_uom = self.new_stock_uom
|
||||
item_doc.save()
|
||||
|
||||
msgprint(_("Default UOM updated in item ") + self.item_code)
|
||||
frappe.msgprint(_("Stock UOM updatd for Item {0}").format(self.item_code))
|
||||
|
||||
def update_bin(self):
|
||||
# update bin
|
||||
@ -59,7 +54,7 @@ class StockUOMReplaceUtility(Document):
|
||||
(self.new_stock_uom, self.item_code) )
|
||||
|
||||
# acknowledge user
|
||||
msgprint(" All Bins Updated Successfully.")
|
||||
frappe.msgprint(_("Stock balances updated"))
|
||||
|
||||
def update_stock_ledger_entry(self):
|
||||
# update stock ledger entry
|
||||
@ -75,7 +70,7 @@ class StockUOMReplaceUtility(Document):
|
||||
where item_code=%s""", (self.new_stock_uom, self.item_code))
|
||||
|
||||
# acknowledge user
|
||||
msgprint("Stock Ledger Entries Updated Successfully.")
|
||||
frappe.msgprint(_("Stock Ledger entries balances updated"))
|
||||
|
||||
# update item valuation
|
||||
if flt(self.conversion_factor) != flt(1):
|
||||
@ -84,7 +79,7 @@ class StockUOMReplaceUtility(Document):
|
||||
update_entries_after({"item_code": self.item_code, "warehouse": w[0]})
|
||||
|
||||
# acknowledge user
|
||||
msgprint("Item Valuation Updated Successfully.")
|
||||
frappe.msgprint(_("Item valuation updated"))
|
||||
|
||||
# Update Stock UOM
|
||||
def update_stock_uom(self):
|
||||
@ -102,14 +97,11 @@ class StockUOMReplaceUtility(Document):
|
||||
current_is_integer = frappe.db.get_value("UOM", self.current_stock_uom, "must_be_whole_number")
|
||||
new_is_integer = frappe.db.get_value("UOM", self.new_stock_uom, "must_be_whole_number")
|
||||
|
||||
if current_is_integer and not new_is_integer:
|
||||
frappe.msgprint("New UOM must be of type Whole Number", raise_exception=True)
|
||||
|
||||
if not current_is_integer and new_is_integer:
|
||||
frappe.msgprint("New UOM must NOT be of type Whole Number", raise_exception=True)
|
||||
frappe.throw(_("New UOM must NOT be of type Whole Number"))
|
||||
|
||||
if current_is_integer and new_is_integer and cint(self.conversion_factor)!=self.conversion_factor:
|
||||
frappe.msgprint("Conversion Factor cannot be fraction", raise_exception=True)
|
||||
frappe.throw(_("Conversion factor cannot be in fractions"))
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_stock_uom(item_code):
|
||||
|
@ -56,7 +56,7 @@ class Warehouse(Document):
|
||||
ac_doc.ignore_permissions = True
|
||||
ac_doc.insert()
|
||||
|
||||
msgprint(_("Account Head") + ": " + ac_doc.name + _(" created"))
|
||||
msgprint(_("Account head {0} created"))
|
||||
|
||||
def validate_parent_account(self):
|
||||
if not self.create_account_under:
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import flt
|
||||
|
||||
def execute(filters=None):
|
||||
@ -37,12 +38,12 @@ def get_columns(filters):
|
||||
def get_conditions(filters):
|
||||
conditions = ""
|
||||
if not filters.get("from_date"):
|
||||
frappe.msgprint("Please enter From Date", raise_exception=1)
|
||||
frappe.throw(_("'From Date' is required"))
|
||||
|
||||
if filters.get("to_date"):
|
||||
conditions += " and posting_date <= '%s'" % filters["to_date"]
|
||||
else:
|
||||
frappe.msgprint("Please enter To Date", raise_exception=1)
|
||||
frappe.throw(_("'To Date' is required"))
|
||||
|
||||
return conditions
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import getdate, flt
|
||||
|
||||
def execute(filters=None):
|
||||
@ -13,7 +14,7 @@ def execute(filters=None):
|
||||
avg_daily_outgoing = 0
|
||||
diff = ((getdate(filters.get("to_date")) - getdate(filters.get("from_date"))).days)+1
|
||||
if diff <= 0:
|
||||
frappe.msgprint("To Date should not be less than eual to From Date",raise_exception=1)
|
||||
frappe.throw(_("'From Date' must be after 'To Date'"))
|
||||
|
||||
columns = get_columns()
|
||||
items = get_item_info()
|
||||
@ -87,5 +88,5 @@ def get_condition(filters):
|
||||
if filters.get("from_date") and filters.get("to_date"):
|
||||
conditions += " and posting_date between '%s' and '%s'" % (filters["from_date"],filters["to_date"])
|
||||
else:
|
||||
frappe.msgprint("Please set date in from date field",raise_exception=1)
|
||||
frappe.throw(_("From and To dates required"))
|
||||
return conditions
|
@ -3,6 +3,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import flt
|
||||
|
||||
def execute(filters=None):
|
||||
@ -37,12 +38,12 @@ def get_columns(filters):
|
||||
def get_conditions(filters):
|
||||
conditions = ""
|
||||
if not filters.get("from_date"):
|
||||
frappe.msgprint("Please enter From Date", raise_exception=1)
|
||||
frappe.throw(_("'From Date' is required"))
|
||||
|
||||
if filters.get("to_date"):
|
||||
conditions += " and posting_date <= '%s'" % filters["to_date"]
|
||||
else:
|
||||
frappe.msgprint("Please enter To Date", raise_exception=1)
|
||||
frappe.throw(_("'To Date' is required"))
|
||||
|
||||
return conditions
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import session, msgprint
|
||||
from frappe import session, _
|
||||
from frappe.utils import today
|
||||
|
||||
|
||||
@ -15,8 +15,7 @@ class CustomerIssue(TransactionBase):
|
||||
|
||||
def validate(self):
|
||||
if session['user'] != 'Guest' and not self.customer:
|
||||
msgprint("Please select Customer from whom issue is raised",
|
||||
raise_exception=True)
|
||||
frappe.throw(_("Customer is required"))
|
||||
|
||||
if self.status=="Closed" and \
|
||||
frappe.db.get_value("Customer Issue", self.name, "status")!="Closed":
|
||||
@ -30,8 +29,7 @@ class CustomerIssue(TransactionBase):
|
||||
(self.name))
|
||||
if lst:
|
||||
lst1 = ','.join([x[0] for x in lst])
|
||||
msgprint("Maintenance Visit No. "+lst1+" already created against this customer issue. So can not be Cancelled")
|
||||
raise Exception
|
||||
frappe.throw(_("Cancel Material Visit {0} before cancelling this Customer Issue").format(lst1))
|
||||
else:
|
||||
frappe.db.set(self, 'status', 'Cancelled')
|
||||
|
||||
|
@ -151,7 +151,8 @@
|
||||
"oldfieldname": "maintenance_visit_details",
|
||||
"oldfieldtype": "Table",
|
||||
"options": "Maintenance Visit Purpose",
|
||||
"permlevel": 0
|
||||
"permlevel": 0,
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "more_info",
|
||||
@ -277,7 +278,7 @@
|
||||
"icon": "icon-file-text",
|
||||
"idx": 1,
|
||||
"is_submittable": 1,
|
||||
"modified": "2014-01-20 17:48:57.000000",
|
||||
"modified": "2014-01-20 17:48:57.000001",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Support",
|
||||
"name": "Maintenance Visit",
|
||||
|
@ -3,12 +3,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe.utils import cstr
|
||||
|
||||
from frappe import msgprint
|
||||
|
||||
|
||||
from frappe import _
|
||||
|
||||
from erpnext.utilities.transaction_base import TransactionBase
|
||||
|
||||
@ -24,10 +19,6 @@ class MaintenanceVisit(TransactionBase):
|
||||
|
||||
|
||||
def validate(self):
|
||||
if not self.get('maintenance_visit_details'):
|
||||
msgprint("Please enter maintenance details")
|
||||
raise Exception
|
||||
|
||||
self.validate_serial_no()
|
||||
|
||||
def update_customer_issue(self, flag):
|
||||
@ -72,7 +63,7 @@ class MaintenanceVisit(TransactionBase):
|
||||
if check:
|
||||
check_lst = [x[0] for x in check]
|
||||
check_lst =','.join(check_lst)
|
||||
msgprint("To cancel this, you need to cancel Maintenance Visit(s) "+cstr(check_lst)+" created after this maintenance visit against same "+check_for_doctype)
|
||||
frappe.throw(_("Cancel Material Visits {0} before cancelling this Maintenance Visit").format(check_lst))
|
||||
raise Exception
|
||||
else:
|
||||
self.update_customer_issue(0)
|
||||
|
@ -6,7 +6,7 @@ from __future__ import unicode_literals
|
||||
import frappe
|
||||
import frappe.utils
|
||||
from frappe.utils import cstr
|
||||
from frappe import msgprint, throw, _
|
||||
from frappe import throw, _
|
||||
from frappe.model.document import Document
|
||||
|
||||
class Newsletter(Document):
|
||||
@ -20,10 +20,7 @@ class Newsletter(Document):
|
||||
self.recipients = self.test_email_id.split(",")
|
||||
self.send_to_doctype = "Lead"
|
||||
self.send_bulk()
|
||||
msgprint("{send} {email}".format**{
|
||||
"send": _("Scheduled to send to"),
|
||||
"email": self.test_email_id
|
||||
})
|
||||
frappe.msgprint(_("Scheduled to send to {0}").format(self.test_email_id))
|
||||
|
||||
def send_emails(self):
|
||||
"""send emails to leads and customers"""
|
||||
@ -33,11 +30,7 @@ class Newsletter(Document):
|
||||
self.recipients = self.get_recipients()
|
||||
self.send_bulk()
|
||||
|
||||
msgprint("{send} {recipients} {doctype}(s)".format(**{
|
||||
"send": _("Scheduled to send to"),
|
||||
"recipients": len(self.recipients),
|
||||
"doctype": self.send_to_doctype
|
||||
}))
|
||||
frappe.msgprint(_("Scheduled to send to {0} recipients").format(len(self.recipients)))
|
||||
|
||||
frappe.db.set(self, "email_sent", 1)
|
||||
|
||||
@ -103,12 +96,11 @@ class Newsletter(Document):
|
||||
|
||||
def validate_send(self):
|
||||
if self.get("__islocal"):
|
||||
throw(_("Please save the Newsletter before sending."))
|
||||
throw(_("Please save the Newsletter before sending"))
|
||||
|
||||
from frappe import conf
|
||||
if (conf.get("status") or None) == "Trial":
|
||||
throw(_("Sending newsletters is not allowed for Trial users, \
|
||||
to prevent abuse of this feature."))
|
||||
throw(_("Newsletters is not allowed for Trial users"))
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_lead_options():
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from frappe.utils.email_lib.receive import POP3Mailbox
|
||||
import _socket, poplib
|
||||
@ -22,7 +22,7 @@ class SupportEmailSettings(Document):
|
||||
inc_email.host = self.mail_server
|
||||
inc_email.use_ssl = self.use_ssl
|
||||
try:
|
||||
err_msg = 'User Name or Support Password missing. Please enter and try again.'
|
||||
err_msg = _('User Name or Support Password missing. Please enter and try again.')
|
||||
if not (self.mail_login and self.mail_password):
|
||||
raise AttributeError, err_msg
|
||||
inc_email.username = self.mail_login
|
||||
@ -37,9 +37,8 @@ class SupportEmailSettings(Document):
|
||||
pop_mb.connect()
|
||||
except _socket.error, e:
|
||||
# Invalid mail server -- due to refusing connection
|
||||
frappe.msgprint('Invalid POP3 Mail Server. Please rectify and try again.')
|
||||
frappe.msgprint(_('Invalid Mail Server. Please rectify and try again.'))
|
||||
raise
|
||||
except poplib.error_proto, e:
|
||||
frappe.msgprint('Invalid User Name or Support Password. Please rectify and try again.')
|
||||
frappe.msgprint(_('Invalid User Name or Support Password. Please rectify and try again.'))
|
||||
raise
|
||||
|
@ -16,12 +16,12 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe import _, msgprint
|
||||
from frappe import _
|
||||
from frappe.utils import cint, comma_or
|
||||
|
||||
def validate_status(status, options):
|
||||
if status not in options:
|
||||
msgprint(_("Status must be one of ") + comma_or(options), raise_exception=True)
|
||||
frappe.throw(_("Status must be one of {0}").format(comma_or(options)))
|
||||
|
||||
def build_filter_conditions(filters):
|
||||
conditions, filter_values = [], []
|
||||
|
@ -4,8 +4,8 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe import msgprint, throw, _
|
||||
from frappe.utils import cstr, cint
|
||||
from frappe import throw, _
|
||||
from frappe.utils import cstr
|
||||
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
|
||||
class Note(Document):
|
||||
@ -18,11 +18,11 @@ class Note(Document):
|
||||
def onload(self):
|
||||
if not self.public and frappe.session.user != self.owner:
|
||||
if frappe.session.user not in [d.user for d in self.get("share_with")]:
|
||||
frappe.msgprint("You are not authorized to read this record.", raise_exception=True)
|
||||
frappe.throw(_("Not permitted"), frappe.PermissionError)
|
||||
|
||||
def validate(self):
|
||||
if not self.get("__islocal"):
|
||||
if frappe.session.user != self.owner:
|
||||
if frappe.session.user not in frappe.db.sql_list("""select user from `tabNote User`
|
||||
where parent=%s and permission='Edit'""", self.name):
|
||||
frappe.msgprint("You are not authorized to edit this record.", raise_exception=True)
|
||||
frappe.throw(_("Not permitted"), frappe.PermissionError)
|
||||
|
@ -20,7 +20,6 @@ def get_doctypes():
|
||||
@frappe.whitelist()
|
||||
def upload(select_doctype=None, rows=None):
|
||||
from frappe.utils.datautils import read_csv_content_from_uploaded_file
|
||||
from frappe.modules import scrub
|
||||
from frappe.model.rename_doc import rename_doc
|
||||
|
||||
if not select_doctype:
|
||||
@ -32,12 +31,11 @@ def upload(select_doctype=None, rows=None):
|
||||
if not rows:
|
||||
rows = read_csv_content_from_uploaded_file()
|
||||
if not rows:
|
||||
frappe.msgprint(_("Please select a valid csv file with data."))
|
||||
raise Exception
|
||||
frappe.throw(_("Please select a valid csv file with data"))
|
||||
|
||||
if len(rows) > 500:
|
||||
frappe.msgprint(_("Max 500 rows only."))
|
||||
raise Exception
|
||||
max_rows = 500
|
||||
if len(rows) > max_rows:
|
||||
frappe.throw(_("Maximum {0} rows allowed").format(max_rows))
|
||||
|
||||
rename_log = []
|
||||
for row in rows:
|
||||
|
@ -34,12 +34,9 @@ class SMSControl(Document):
|
||||
'ERPNXT'
|
||||
if len(sender_name) > 6 and \
|
||||
frappe.db.get_default("country") == "India":
|
||||
throw(_("""
|
||||
As per TRAI rule, sender name must be exactly 6 characters.
|
||||
throw("""As per TRAI rule, sender name must be exactly 6 characters.
|
||||
Kindly change sender name in Setup --> Global Defaults.
|
||||
|
||||
Note: Hyphen, space, numeric digit, special characters are not allowed.
|
||||
"""))
|
||||
Note: Hyphen, space, numeric digit, special characters are not allowed.""")
|
||||
return sender_name
|
||||
|
||||
def get_contact_number(self, arg):
|
||||
|
@ -71,8 +71,7 @@ class TransactionBase(StatusUpdater):
|
||||
if ref_dn not in item_ref_dn:
|
||||
item_ref_dn.append(ref_dn)
|
||||
elif not val.get("allow_duplicate_prev_row_id"):
|
||||
frappe.msgprint(_("Row ") + cstr(d.idx + 1) +
|
||||
_(": Duplicate row from same ") + key, raise_exception=1)
|
||||
frappe.throw(_("Duplicate row {0} with same {1}").format(d.idx, key))
|
||||
elif ref_dn:
|
||||
ref_doc.setdefault(key, [])
|
||||
if ref_dn not in ref_doc[key]:
|
||||
@ -112,7 +111,4 @@ def validate_uom_is_integer(doc, uom_field, qty_fields):
|
||||
for f in qty_fields:
|
||||
if d.get(f):
|
||||
if cint(d.get(f))!=d.get(f):
|
||||
frappe.msgprint(_("For UOM") + " '" + d.get(uom_field) \
|
||||
+ "': " + _("Quantity cannot be a fraction.") \
|
||||
+ " " + _("In Row") + ": " + str(d.idx),
|
||||
raise_exception=UOMMustBeIntegerError)
|
||||
frappe.throw(_("Quantity cannot be a fraction in row {0}").format(d.idx), UOMMustBeIntegerError)
|
||||
|
Loading…
Reference in New Issue
Block a user