Compare commits

...

24 Commits

Author SHA1 Message Date
rohitwaghchaure
84c049071c Merge pull request #22077 from rohitwaghchaure/show-disabled-items-stock-balance
fix: show disabled items in the stock balance
2020-06-02 12:38:35 +05:30
Rohit Waghchaure
8b819e3a7f fix: show disabled items in the stock balance 2020-06-02 12:34:46 +05:30
Sahil Khan
7e4f8fa04d Merge branch 'v11-pre-release' into version-11 2020-06-01 15:39:40 +05:30
Sahil Khan
652181600d bumped to version 11.1.77 2020-06-01 15:59:40 +05:50
Sahil Khan
e4f300c903 Merge branch 'version-11-hotfix' of https://github.com/frappe/erpnext into v11-pre-release 2020-06-01 15:38:31 +05:30
Mangesh-Khairnar
d839c46f10 fix: make transaction date of the oldest transaction as the last integration date (#22015)
* fix: make transaction date of the oldest transaction as the last integration date

* fix: only save end date when transactions are returned
2020-05-29 10:16:59 +05:30
Suraj Shetty
6d45dfd6e8 Merge pull request #21217 from gavindsouza/freeze-v11 2020-05-26 11:49:41 +05:30
Sahil Khan
5caa40857d Merge branch 'v11-pre-release' into version-11 2020-05-21 14:55:08 +05:30
Sahil Khan
78b7f69e0c bumped to version 11.1.76 2020-05-21 15:15:08 +05:50
Sahil Khan
8d9b58d801 Merge branch 'version-11-hotfix' of https://github.com/frappe/erpnext into v11-pre-release 2020-05-21 14:52:13 +05:30
sahil28297
a611cc5916 fix(patch): use translated string while setting notification template (#21680) 2020-05-11 19:28:30 +05:30
sahil28297
c6466c7d97 fix(item): patch to rename duplicate item_code values to name (#21621) 2020-05-07 12:11:42 +05:30
Sahil Khan
b35db7e819 Merge branch 'v11-pre-release' into version-11 2020-04-22 12:20:15 +05:30
Sahil Khan
44875482ac bumped to version 11.1.75 2020-04-22 12:40:15 +05:50
Sahil Khan
f06cc233a8 Merge branch 'version-11-hotfix' of https://github.com/frappe/erpnext into v11-pre-release 2020-04-22 11:55:01 +05:30
Sun Howwrongbum
fdd93cba03 fix: alter 'other_charges_calculation' to Long Text (#21304) 2020-04-16 22:45:12 +05:30
Gavin D'souza
10f53f04d7 chore: pinned python requirements
dependencies from pip freeze of version-11 production environment
2020-04-09 12:26:32 +05:30
Sahil Khan
884dc28af6 Merge branch 'v11-pre-release' into version-11 2020-03-17 12:12:23 +05:30
Sahil Khan
a506930b63 bumped to version 11.1.74 2020-03-17 12:32:23 +05:50
Sahil Khan
f6836c1d89 Merge branch 'version-11-hotfix' of https://github.com/frappe/erpnext into v11-pre-release 2020-03-17 12:06:42 +05:30
Don-Leopardo
3e2fe12c9d Fix: sql injection (#20816) 2020-03-16 22:36:19 +05:30
Saqib
5b2ca9e133 fix: is_pos gets reset on making s_inv from s_ord (#20888)
* s_inv has is_pos default set as 1
2020-03-16 17:50:35 +05:30
Chinmay Pai
f8dc7b32d5 fix: use ERPNext in welcome email when default company is not set (#20837)
Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>
2020-03-16 13:50:09 +05:30
RJPvT
0393cb5c43 fix: smaller then instead of bigger then :-( dumb mistake (#20693)
* fix: smaller then instead of bigger then :-( dumb mistake

* fix: comment on get_all

* Update erpnext/projects/doctype/task/task.py

Co-Authored-By: Himanshu <himanshuwarekar@yahoo.com>

* Update erpnext/projects/doctype/task/task.py

Co-Authored-By: Himanshu <himanshuwarekar@yahoo.com>

Co-authored-by: Himanshu <himanshuwarekar@yahoo.com>
2020-02-26 12:49:48 +05:30
23 changed files with 77 additions and 54 deletions

View File

@@ -5,7 +5,7 @@ import frappe
from erpnext.hooks import regional_overrides
from frappe.utils import getdate
__version__ = '11.1.73'
__version__ = '11.1.77'
def get_default_company(user=None):
'''Get default company for user'''

View File

@@ -6,6 +6,7 @@ from __future__ import unicode_literals
import frappe, json
from frappe.model.document import Document
from frappe import _
from frappe.desk.search import sanitize_searchfield
class BankGuarantee(Document):
def validate(self):
@@ -22,5 +23,8 @@ class BankGuarantee(Document):
@frappe.whitelist()
def get_vouchar_detials(column_list, doctype, docname):
column_list = json.loads(column_list)
for col in column_list:
sanitize_searchfield(col)
return frappe.db.sql(''' select {columns} from `tab{doctype}` where name=%s'''
.format(columns=", ".join(json.loads(column_list)), doctype=doctype), docname, as_dict=1)[0]

View File

@@ -2454,7 +2454,7 @@
"columns": 0,
"fetch_if_empty": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -4903,7 +4903,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2019-04-22 12:45:49.728359",
"modified": "2020-04-16 19:04:18.599264",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice",

View File

@@ -2544,7 +2544,7 @@
"columns": 0,
"fetch_if_empty": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -5816,7 +5816,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2019-04-22 12:45:41.109345",
"modified": "2020-04-16 19:05:00.498772",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",

View File

@@ -2176,7 +2176,7 @@
"columns": 0,
"fetch_if_empty": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -3948,7 +3948,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2019-06-24 20:55:03.466766",
"modified": "2020-04-16 18:54:54.840653",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Order",

View File

@@ -1395,7 +1395,7 @@
"collapsible": 0,
"columns": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -2845,7 +2845,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2019-01-07 16:52:01.505553",
"modified": "2020-04-16 19:05:41.924303",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Quotation",

View File

@@ -114,10 +114,11 @@ def add_account_subtype(account_subtype):
@frappe.whitelist()
def sync_transactions(bank, bank_account):
last_sync_date = frappe.db.get_value("Bank Account", bank_account, "last_integration_date")
if last_sync_date:
start_date = formatdate(last_sync_date, "YYYY-MM-dd")
'''Sync transactions based on the last integration date as the start date, after sync is completed
add the transaction date of the oldest transaction as the last integration date'''
last_transaction_date = frappe.db.get_value("Bank Account", bank_account, "last_integration_date")
if last_transaction_date:
start_date = formatdate(last_transaction_date, "YYYY-MM-dd")
else:
start_date = formatdate(add_months(today(), -12), "YYYY-MM-dd")
end_date = formatdate(today(), "YYYY-MM-dd")
@@ -125,13 +126,17 @@ def sync_transactions(bank, bank_account):
try:
transactions = get_transactions(bank=bank, bank_account=bank_account, start_date=start_date, end_date=end_date)
result = []
if transactions:
for transaction in transactions:
result.append(new_bank_transaction(transaction))
for transaction in reversed(transactions):
result += new_bank_transaction(transaction)
frappe.db.set_value("Bank Account", bank_account, "last_integration_date", getdate(end_date))
if result:
last_transaction_date = frappe.db.get_value('Bank Transaction', result.pop(), 'date')
frappe.logger().info("Plaid added {} new Bank Transactions from '{}' between {} and {}".format(
len(result), bank_account, start_date, end_date))
frappe.db.set_value("Bank Account", bank_account, "last_integration_date", last_transaction_date)
return result
except Exception:
frappe.log_error(frappe.get_traceback(), _("Plaid transactions sync error"))

View File

@@ -386,5 +386,5 @@ def get_procedure_prescribed(patient):
return frappe.db.sql("""select pp.name, pp.procedure, pp.parent, ct.practitioner,
ct.encounter_date, pp.practitioner, pp.date, pp.department
from `tabPatient Encounter` ct, `tabProcedure Prescription` pp
where ct.patient='{0}' and pp.parent=ct.name and pp.appointment_booked=0
order by ct.creation desc""".format(patient))
where ct.patient=%(patient)s and pp.parent=ct.name and pp.appointment_booked=0
order by ct.creation desc""", {"patient": patient})

View File

@@ -48,12 +48,17 @@ def get_abbreviated_name(name, company):
@frappe.whitelist()
def get_children(doctype, parent=None, company=None, is_root=False):
condition = ''
var_dict = {
"name": get_root_of("Department"),
"parent": parent,
"company": company,
}
if company == parent:
condition = "name='{0}'".format(get_root_of("Department"))
condition = "name=%(name)s"
elif company:
condition = "parent_department='{0}' and company='{1}'".format(parent, company)
condition = "parent_department=%(parent)s and company=%(company)s"
else:
condition = "parent_department = '{0}'".format(parent)
condition = "parent_department = %(parent)s"
return frappe.db.sql("""
select
@@ -62,7 +67,7 @@ def get_children(doctype, parent=None, company=None, is_root=False):
from `tab{doctype}`
where
{condition}
order by name""".format(doctype=doctype, condition=condition), as_dict=1)
order by name""".format(doctype=doctype, condition=condition), var_dict, as_dict=1)
@frappe.whitelist()
def add_node():

View File

@@ -496,6 +496,7 @@ erpnext.patches.v10_0.rename_offer_letter_to_job_offer
execute:frappe.delete_doc('DocType', 'Production Planning Tool', ignore_missing=True)
erpnext.patches.v10_0.migrate_daily_work_summary_settings_to_daily_work_summary_group # 24-12-2018
erpnext.patches.v10_0.add_default_cash_flow_mappers
erpnext.patches.v11_0.rename_duplicate_item_code_values
erpnext.patches.v11_0.make_quality_inspection_template
erpnext.patches.v10_0.update_status_for_multiple_source_in_po
erpnext.patches.v10_0.set_auto_created_serial_no_in_stock_entry

View File

@@ -0,0 +1,8 @@
import frappe
def execute():
items = []
items = frappe.db.sql("""select item_code from `tabItem` group by item_code having count(*) > 1""", as_dict=True)
if items:
for item in items:
frappe.db.sql("""update `tabItem` set item_code=name where item_code = %s""", (item.item_code))

View File

@@ -1,9 +1,10 @@
from __future__ import unicode_literals
from frappe import _
import frappe
def execute():
hr_settings = frappe.get_single("HR Settings")
hr_settings.leave_approval_notification_template = "Leave Approval Notification"
hr_settings.leave_status_notification_template = "Leave Status Notification"
hr_settings.save()
hr_settings.leave_approval_notification_template = _("Leave Approval Notification")
hr_settings.leave_status_notification_template = _("Leave Status Notification")
hr_settings.save()

View File

@@ -199,10 +199,10 @@ def set_multiple_status(names, status):
task.save()
def set_tasks_as_overdue():
tasks = frappe.get_all("Task", filters={'status':['not in',['Cancelled', 'Closed']]})
tasks = frappe.get_all("Task", filters={"status": ["not in", ["Cancelled", "Closed"]]}, fields=["name", "status", "review_date"])
for task in tasks:
if frappe.db.get_value("Task", task.name, "status") in 'Pending Review':
if getdate(frappe.db.get_value("Task", task.name, "review_date")) < getdate(today()):
if task.status == "Pending Review":
if getdate(task.review_date) > getdate(today()):
continue
frappe.get_doc("Task", task.name).update_status()

View File

@@ -379,7 +379,7 @@ def get_gstins_for_company(company):
`tabDynamic Link`.parent = `tabAddress`.name and
`tabDynamic Link`.parenttype = 'Address' and
`tabDynamic Link`.link_doctype = 'Company' and
`tabDynamic Link`.link_name = '{0}'""".format(company))
`tabDynamic Link`.link_name = %(company)s""", {"company": company})
return company_gstins
def get_address_details(data, doc, company_address, billing_address):

View File

@@ -1687,7 +1687,7 @@
"columns": 0,
"fetch_if_empty": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -3224,7 +3224,7 @@
"istable": 0,
"max_attachments": 1,
"menu_index": 0,
"modified": "2019-06-25 15:31:04.724730",
"modified": "2020-04-16 19:05:32.197858",
"modified_by": "Administrator",
"module": "Selling",
"name": "Quotation",

View File

@@ -1981,7 +1981,7 @@
"columns": 0,
"fetch_if_empty": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -4204,7 +4204,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2019-04-05 03:44:46.037178",
"modified": "2020-04-16 19:05:14.867404",
"modified_by": "Administrator",
"module": "Selling",
"name": "Sales Order",

View File

@@ -622,7 +622,6 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False):
target.set_advances()
def set_missing_values(source, target):
target.is_pos = 0
target.ignore_pricing_rule = 1
target.flags.ignore_permissions = True
target.run_method("set_missing_values")

View File

@@ -141,6 +141,6 @@ def insert_record(records):
raise
def welcome_email():
site_name = get_default_company()
title = _("Welcome to {0}".format(site_name))
return title
site_name = get_default_company() or "ERPNext"
title = _("Welcome to {0}").format(site_name)
return title

View File

@@ -2156,7 +2156,7 @@
"collapsible": 0,
"columns": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -4296,7 +4296,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2019-01-07 16:51:52.357859",
"modified": "2020-04-16 19:05:56.439204",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note",

View File

@@ -400,7 +400,6 @@ def make_sales_invoice(source_name, target_doc=None):
invoiced_qty_map = get_invoiced_qty_map(source_name)
def set_missing_values(source, target):
target.is_pos = 0
target.ignore_pricing_rule = 1
target.run_method("set_missing_values")
target.run_method("set_po_nos")

View File

@@ -1945,7 +1945,7 @@
"collapsible": 0,
"columns": 0,
"fieldname": "other_charges_calculation",
"fieldtype": "Text",
"fieldtype": "Long Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -3708,7 +3708,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2018-11-02 19:59:01.423485",
"modified": "2020-04-16 19:06:51.546358",
"modified_by": "Administrator",
"module": "Stock",
"name": "Purchase Receipt",

View File

@@ -233,7 +233,7 @@ def get_item_details(items, sle, filters):
`tabItem` item
{cf_join}
where
item.name in ({item_codes}) and ifnull(item.disabled, 0) = 0
item.name in ({item_codes})
""".format(cf_field=cf_field, cf_join=cf_join, item_codes=item_codes), as_dict=1)
for item in res:

View File

@@ -1,10 +1,11 @@
frappe
unidecode
pygithub
googlemaps
python-stdnum
braintree
gocardless_pro
woocommerce
pandas
plaid-python
Unidecode==1.1.1
PyGithub==1.45
googlemaps==4.2.0
python-stdnum==1.13
braintree==3.59.0;python_version<"3.6"
braintree==4.0.0;python_version>="3.6"
gocardless-pro==1.16.0
WooCommerce==2.1.1
pandas==0.24.2
plaid-python==3.7.0