Merge branch 'develop' into iff-invoicing
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 3dab054..71f2e12 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -1619,22 +1619,23 @@
for pos_payment_method in pos_profile.get('payments'):
pos_payment_method = pos_payment_method.as_dict()
-
+
payment_mode = get_mode_of_payment_info(pos_payment_method.mode_of_payment, doc.company)
- payment_mode[0].default = pos_payment_method.default
- append_payment(payment_mode[0])
+ if payment_mode:
+ payment_mode[0].default = pos_payment_method.default
+ append_payment(payment_mode[0])
def get_all_mode_of_payments(doc):
return frappe.db.sql("""
- select mpa.default_account, mpa.parent, mp.type as type
- from `tabMode of Payment Account` mpa,`tabMode of Payment` mp
+ select mpa.default_account, mpa.parent, mp.type as type
+ from `tabMode of Payment Account` mpa,`tabMode of Payment` mp
where mpa.parent = mp.name and mpa.company = %(company)s and mp.enabled = 1""",
{'company': doc.company}, as_dict=1)
def get_mode_of_payment_info(mode_of_payment, company):
return frappe.db.sql("""
- select mpa.default_account, mpa.parent, mp.type as type
- from `tabMode of Payment Account` mpa,`tabMode of Payment` mp
+ select mpa.default_account, mpa.parent, mp.type as type
+ from `tabMode of Payment Account` mpa,`tabMode of Payment` mp
where mpa.parent = mp.name and mpa.company = %s and mp.enabled = 1 and mp.name = %s""",
(company, mode_of_payment), as_dict=1)
diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.js b/erpnext/hr/doctype/leave_allocation/leave_allocation.js
index 210a73c..e9e129c 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.js
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.js
@@ -5,20 +5,23 @@
frappe.ui.form.on("Leave Allocation", {
onload: function(frm) {
+ // Ignore cancellation of doctype on cancel all.
+ frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"];
+
if(!frm.doc.from_date) frm.set_value("from_date", frappe.datetime.get_today());
frm.set_query("employee", function() {
return {
query: "erpnext.controllers.queries.employee_query"
- }
+ };
});
frm.set_query("leave_type", function() {
return {
filters: {
is_lwp: 0
}
- }
- })
+ };
+ });
},
refresh: function(frm) {
diff --git a/erpnext/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js
index 4001a45..d62e418 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.js
+++ b/erpnext/hr/doctype/leave_application/leave_application.js
@@ -19,6 +19,10 @@
frm.set_query("employee", erpnext.queries.employee);
},
onload: function(frm) {
+
+ // Ignore cancellation of doctype on cancel all.
+ frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"];
+
if (!frm.doc.posting_date) {
frm.set_value("posting_date", frappe.datetime.get_today());
}
diff --git a/erpnext/hr/doctype/leave_encashment/leave_encashment.js b/erpnext/hr/doctype/leave_encashment/leave_encashment.js
index 701c2f0..71a3422 100644
--- a/erpnext/hr/doctype/leave_encashment/leave_encashment.js
+++ b/erpnext/hr/doctype/leave_encashment/leave_encashment.js
@@ -2,6 +2,10 @@
// For license information, please see license.txt
frappe.ui.form.on('Leave Encashment', {
+ onload: function(frm) {
+ // Ignore cancellation of doctype on cancel all.
+ frm.ignore_doctypes_on_cancel_all = ["Leave Ledger Entry"];
+ },
setup: function(frm) {
frm.set_query("leave_type", function() {
return {
@@ -33,7 +37,7 @@
doc: frm.doc,
callback: function(r) {
frm.refresh_fields();
- }
+ }
});
}
}
diff --git a/erpnext/www/support/index.html b/erpnext/www/support/index.html
index 93da503..12b4c2c 100644
--- a/erpnext/www/support/index.html
+++ b/erpnext/www/support/index.html
@@ -9,6 +9,33 @@
<p class="hero-subtitle">{{ greeting_subtitle }}</p>
{% endif %}
</div>
+ <div class="search-container">
+ <div class="website-search" id="search-container">
+ <div class="dropdown">
+ <div class="search-icon">
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor" stroke-width="2" stroke-linecap="round"
+ stroke-linejoin="round"
+ class="feather feather-search">
+ <circle cx="11" cy="11" r="8"></circle>
+ <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
+ </svg>
+ </div>
+ <input type="search" class="form-control" placeholder="Search the docs (Press ? to focus)" />
+ <div class="overflow-hidden shadow dropdown-menu w-100">
+ </div>
+ </div>
+ </div>
+ <button class="navbar-toggler" type="button"
+ data-toggle="collapse"
+ data-target="#navbarSupportedContent"
+ aria-controls="navbarSupportedContent"
+ aria-expanded="false"
+ aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ </div>
</div>
</section>
@@ -54,5 +81,21 @@
</div>
</section>
{% endif %}
+{% endblock %}
-{% endblock %}
\ No newline at end of file
+{%- block script -%}
+<script>
+ frappe.ready(() => {
+ frappe.setup_search('#search-container', 'kb');
+ });
+</script>
+{%- endblock -%}
+
+{%- block style -%}
+<style>
+ .search-container {
+ margin-top: 1.2rem;
+ max-width: 500px;
+ }
+</style>
+{%- endblock -%}