Commit bd38aafa authored by Pratik Vyas's avatar Pratik Vyas
Browse files

Merge branch 'develop'

parents ac4d34d6 27efedc6
develop 4.0.0 4.0.0-beta1 v11.1.5 v11.1.4 v11.1.3 v11.1.2 v11.1.1 v11.1.0 v11.0.3 v11.0.3-beta.51 v11.0.3-beta.50 v11.0.3-beta.49 v11.0.3-beta.48 v11.0.3-beta.47 v11.0.3-beta.46 v11.0.3-beta.45 v11.0.3-beta.44 v11.0.3-beta.43 v11.0.3-beta.42 v11.0.3-beta.41 v11.0.3-beta.40 v11.0.3-beta.39 v11.0.3-beta.38 v11.0.3-beta.37 v11.0.3-beta.36 v11.0.3-beta.35 v11.0.3-beta.34 v11.0.3-beta.33 v11.0.3-beta.32 v11.0.3-beta.31 v11.0.3-beta.30 v11.0.3-beta.29 v11.0.3-beta.28 v11.0.3-beta.27 v11.0.3-beta.26 v11.0.3-beta.25 v11.0.3-beta.24 v11.0.3-beta.23 v11.0.3-beta.22 v11.0.3-beta.21 v11.0.3-beta.20 v11.0.3-beta.19 v11.0.3-beta.18 v11.0.3-beta.17 v11.0.3-beta.16 v11.0.3-beta.15 v11.0.3-beta.14 v11.0.3-beta.13 v11.0.3-beta.12 v11.0.3-beta.11 v11.0.3-beta.10 v11.0.3-beta.9 v11.0.3-beta.8 v11.0.3-beta.7 v11.0.3-beta.6 v11.0.3-beta.5 v11.0.3-beta.4 v11.0.3-beta.3 v11.0.3-beta.2 v11.0.3-beta.1 v11.0.2 v11.0.1 v11.0.0-beta v10.1.71 v10.1.70 v10.1.69 v10.1.68 v10.1.67 v10.1.66 v10.1.65 v10.1.64 v10.1.63 v10.1.62 v10.1.61 v10.1.60 v10.1.59 v10.1.58 v10.1.57 v10.1.56 v10.1.55 v10.1.54 v10.1.53 v10.1.52 v10.1.51 v10.1.50 v10.1.49 v10.1.49-beta.1 v10.1.48 v10.1.47 v10.1.46 v10.1.45 v10.1.44 v10.1.43 v10.1.42 v10.1.41 v10.1.40 v10.1.39 v10.1.38 v10.1.37 v10.1.36 v10.1.35 v10.1.34 v10.1.33 v10.1.32 v10.1.31 v10.1.30 v10.1.29 v10.1.28 v10.1.27 v10.1.26 v10.1.25 v10.1.24 v10.1.23 v10.1.22 v10.1.21 v10.1.20 v10.1.19 v10.1.18 v10.1.17 v10.1.16 v10.1.15 v10.1.14 v10.1.13 v10.1.12 v10.1.11 v10.1.10 v10.1.9 v10.1.8 v10.1.7 v10.1.6 v10.1.5 v10.1.4 v10.1.3 v10.1.2 v10.1.1 v10.1.0 v10.0.25 v10.0.24 v10.0.23 v10.0.22 v10.0.21 v10.0.20 v10.0.19 v10.0.18 v10.0.17 v10.0.16 v10.0.15 v10.0.14 v10.0.13 v10.0.12 v10.0.11 v10.0.10 v10.0.9 v10.0.8 v10.0.7 v10.0.6 v10.0.5 v10.0.4 v10.0.3 v10.0.2 v10.0.1 v10.0.0 v9.2.25 v9.2.24 v9.2.23 v9.2.22 v9.2.21 v9.2.20 v9.2.19 v9.2.18 v9.2.17 v9.2.16 v9.2.15 v9.2.14 v9.2.13 v9.2.12 v9.2.11 v9.2.10 v9.2.9 v9.2.8 v9.2.7 v9.2.6 v9.2.5 v9.2.4 v9.2.3 v9.2.2 v9.2.1 v9.2.0 v9.1.11 v9.1.10 v9.1.9 v9.1.8 v9.1.7 v9.1.6 v9.1.5 v9.1.4 v9.1.3 v9.1.2 v9.1.1 v9.1.0 v9.0.10 v9.0.9 v9.0.8 v9.0.7 v9.0.6 v9.0.5 v9.0.4 v9.0.3 v9.0.2 v9.0.1 v9.0.0 v8.10.9 v8.10.8 v8.10.7 v8.10.6 v8.10.5 v8.10.4 v8.10.3 v8.10.2 v8.10.1 v8.10.0 v8.9.4 v8.9.3 v8.9.2 v8.9.1 v8.9.0 v8.8.5 v8.8.4 v8.8.3 v8.8.2 v8.8.1 v8.8.0 v8.7.11 v8.7.10 v8.7.9 v8.7.8 v8.7.7 v8.7.6 v8.7.5 v8.7.4 v8.7.3 v8.7.2 v8.7.1 v8.7.0 v8.6.8 v8.6.7 v8.6.6 v8.6.5 v8.6.4 v8.6.3 v8.6.2 v8.6.1 v8.6.0 v8.5.8 v8.5.7 v8.5.6 v8.5.5 v8.5.4 v8.5.3 v8.5.2 v8.5.1 v8.5.0 v8.4.1 v8.4.0 v8.3.10 v8.3.9 v8.3.8 v8.3.7 v8.3.6 v8.3.5 v8.3.4 v8.3.3 v8.3.2 v8.3.1 v8.3.0 v8.2.7 v8.2.6 v8.2.5 v8.2.4 v8.2.3 v8.2.2 v8.2.1 v8.2.0 v8.1.4 v8.1.3 v8.1.2 v8.1.1 v8.1.0 v8.0.71 v8.0.70 v8.0.69 v8.0.68 v8.0.67 v8.0.66 v8.0.65 v8.0.64 v8.0.63 v8.0.62 v8.0.61 v8.0.60 v8.0.59 v8.0.58 v8.0.57 v8.0.56 v8.0.55 v8.0.54 v8.0.53 v8.0.52 v8.0.51 v8.0.50 v8.0.49 v8.0.48 v8.0.47 v8.0.46 v8.0.45 v8.0.44 v8.0.43 v8.0.42 v8.0.41 v8.0.40 v8.0.39 v8.0.38 v8.0.37 v8.0.36 v8.0.35 v8.0.34 v8.0.33 v8.0.32 v8.0.31 v8.0.30 v8.0.29 v8.0.28 v8.0.27 v8.0.26 v8.0.25 v8.0.24 v8.0.23 v8.0.22 v8.0.21 v8.0.20 v8.0.19 v8.0.18 v8.0.17 v8.0.16 v8.0.15 v8.0.14 v8.0.13 v8.0.12 v8.0.11 v8.0.10 v8.0.9 v8.0.8 v8.0.7 v8.0.6 v8.0.5 v8.0.4 v8.0.3 v8.0.2 v8.0.1 v8.0.0 v7.2.31 v7.2.30 v7.2.29 v7.2.28 v7.2.27 v7.2.26 v7.2.25 v7.2.24 v7.2.23 v7.2.22 v7.2.21 v7.2.20 v7.2.19 v7.2.18 v7.2.17 v7.2.16 v7.2.15 v7.2.14 v7.2.13 v7.2.12 v7.2.11 v7.2.10 v7.2.9 v7.2.8 v7.2.7 v7.2.6 v7.2.5 v7.2.4 v7.2.3 v7.2.2 v7.2.1 v7.2.0 v7.1.29 v7.1.28 v7.1.27 v7.1.26 v7.1.25 v7.1.24 v7.1.23 v7.1.22 v7.1.21 v7.1.20 v7.1.19 v7.1.18 v7.1.17 v7.1.16 v7.1.15 v7.1.14 v7.1.13 v7.1.12 v7.1.11 v7.1.10 v7.1.9 v7.1.8 v7.1.7 v7.1.6 v7.1.5 v7.1.4 v7.1.3 v7.1.2 v7.1.1 v7.1.0 v7.0.47 v7.0.46 v7.0.45 v7.0.44 v7.0.43 v7.0.42 v7.0.41 v7.0.40 v7.0.39 v7.0.38 v7.0.37 v7.0.36 v7.0.35 v7.0.34 v7.0.33 v7.0.32 v7.0.31 v7.0.30 v7.0.29 v7.0.28 v7.0.27 v7.0.26 v7.0.25 v7.0.24 v7.0.23 v7.0.22 v7.0.21 v7.0.20 v7.0.19 v7.0.18 v7.0.17 v7.0.16 v7.0.15 v7.0.14 v7.0.13 v7.0.12 v7.0.11 v7.0.10 v7.0.9 v7.0.8 v7.0.7 v7.0.6 v7.0.5 v7.0.4 v7.0.3 v7.0.2 v7.0.1 v7.0.0 v6.27.24 v6.27.23 v6.27.22 v6.27.21 v6.27.20 v6.27.19 v6.27.18 v6.27.17 v6.27.16 v6.27.15 v6.27.14 v6.27.13 v6.27.12 v6.27.11 v6.27.10 v6.27.9 v6.27.8 v6.27.7 v6.27.6 v6.27.5 v6.27.4 v6.27.3 v6.27.2 v6.27.1 v6.27.0 v6.26.6 v6.26.5 v6.26.4 v6.26.3 v6.26.2 v6.26.1 v6.26.0 v6.25.6 v6.25.5 v6.25.4 v6.25.3 v6.25.2 v6.25.1 v6.25.0 v6.24.10 v6.24.9 v6.24.8 v6.24.7 v6.24.6 v6.24.5 v6.24.4 v6.24.3 v6.24.2 v6.24.1 v6.24.0 v6.23.3 v6.23.2 v6.23.1 v6.23.0 v6.22.7 v6.22.6 v6.22.5 v6.22.4 v6.22.3 v6.22.2 v6.22.1 v6.22.0 v6.21.0 v6.20.2 v6.20.1 v6.20.0 v6.19.3 v6.19.2 v6.19.1 v6.19.0 v6.18.1 v6.18.0 v6.17.6 v6.17.5 v6.17.4 v6.17.3 v6.17.2 v6.17.1 v6.17.0 v6.16.4 v6.16.3 v6.16.2 v6.16.1 v6.16.0 v6.15.4 v6.15.3 v6.15.2 v6.15.1 v6.15.0 v6.14.1 v6.14.0 v6.13.5 v6.13.4 v6.13.3 v6.13.2 v6.13.1 v6.13.0 v6.12.4 v6.12.3 v6.12.2 v6.12.1 v6.12.0 v6.11.0 v6.10.4 v6.10.3 v6.10.2 v6.10.1 v6.10.0 v6.9.3 v6.9.2 v6.9.1 v6.9.0 v6.8.2 v6.8.1 v6.8.0 v6.7.11 v6.7.10 v6.7.9 v6.7.8 v6.7.7 v6.7.6 v6.7.5 v6.7.4 v6.7.3 v6.7.2 v6.7.1 v6.7.0 v6.6.5 v6.6.4 v6.6.3 v6.6.2 v6.6.1 v6.6.0 v6.5.4 v6.5.3 v6.5.2 v6.5.1 v6.5.0 v6.4.9 v6.4.8 v6.4.7 v6.4.6 v6.4.5 v6.4.4 v6.4.3 v6.4.2 v6.4.1 v6.4.0 v6.3.0 v6.2.0 v6.1.2 v6.1.1 v6.1.0 v6.0.8 v6.0.7 v6.0.6 v6.0.5 v6.0.4 v6.0.3 v6.0.2 v6.0.1 v6.0.0 v5.4.2 v5.4.1 v5.4.0 v5.3.1 v5.3.0 v5.2.2 v5.2.1 v5.2.0 v5.1.5 v5.1.4 v5.1.3 v5.1.2 v5.1.1 v5.1.0 v5.0.35 v5.0.34 v5.0.33 v5.0.32 v5.0.31 v5.0.30 v5.0.29 v5.0.28 v5.0.27 v5.0.26 v5.0.25 v5.0.24 v5.0.23 v5.0.22 v5.0.21 v5.0.20 v5.0.19 v5.0.18 v5.0.17 v5.0.16 v5.0.15 v5.0.14 v5.0.13 v5.0.12 v5.0.11 v5.0.10 v5.0.9 v5.0.8 v5.0.7 v5.0.6 v5.0.5 v5.0.4 v5.0.3 v5.0.2 v5.0.1 v5.0.0 v4.14.3 v4.14.2 v4.14.1 v4.14.0 v4.13.6 v4.13.5 v4.13.4 v4.13.3 v4.13.2 v4.13.1 v4.13.0 v4.12.2 v4.12.1 v4.12.0 v4.11.4 v4.11.3 v4.11.2 v4.11.1 v4.11.0 v4.10.2 v4.10.1 v4.10.0 v4.9.3 v4.9.2 v4.9.1 v4.9.0 v4.8.0 v4.7.1 v4.7.0 v4.6.1 v4.6.0 v4.5.9 v4.5.8 v4.5.7 v4.5.6 v4.5.5 v4.5.4 v4.5.3 v4.5.2 v4.5.1 v4.5.0 v4.4.6 v4.4.5 v4.4.4 v4.4.3 v4.4.2 v4.4.1 v4.4.0 v4.3.0 v4.0.1 v4-beta2 v3.9.5 v3.9.4 v3.9.3 v3.9.2 v3.9.1 v3.9.0 v3.8.0 v3.7.5 v3.7.4 v3.7.3 v3.7.2 v3.7.1 v3.7.0 v3.5.0 v3.4.4 v3.4.3 v3.4.2 v3.4.1 v3.4.0
No related merge requests found
Showing with 30 additions and 21 deletions
+30 -21
{
"base_template": "lib/website/templates/base.html",
"framework_version": "3.3.2",
"framework_version": "3.4.0",
"modules": {
"Calendar": {
"color": "#2980b9",
......
......@@ -83,20 +83,18 @@ wn.datetime = {
return dateutil.obj_to_str(new_dt);
},
month_start: function() {
var d = new Date();
return d.getFullYear() + '-' + int_to_str(d.getMonth()+1,2) + '-01';
month_start: function(d, month) {
if(!d)var d = new Date();
var m = month ? cint(month) : d.getMonth() + 1;
return d.getFullYear() + '-' + int_to_str(m, 2) + '-01';
},
month_end: function(d) {
if(!d)var d = new Date();
var m = d.getMonth() + 1;
month_end: function(d, month) {
if(!d)var d = new Date();
var m = month ? cint(month) : d.getMonth() + 1;
var y = d.getFullYear();
last_date = month_last[m];
if(m==2 && (y % 4)==0 && ((y % 100)!=0 || (y % 400)==0)) // leap year test
last_date = 29;
return y+'-'+int_to_str(m,2)+'-'+last_date;
var last_date = new Date(y, m, 0).getDate();
return y + '-' + int_to_str(m, 2) + '-' + int_to_str(last_date, 2);
},
get_user_fmt: function() {
......
......@@ -272,7 +272,7 @@ wn.ui.Filter = Class.extend({
if ((val.length === 0) || (val.lastIndexOf("%") !== (val.length - 1))) {
val = (val || "") + '%';
}
}
} else if(val === '%') val = null;
return [me.fieldselect.$select.find('option:selected').attr('table'),
me.field.df.fieldname, me.$w.find('.condition').val(), val];
......
......@@ -178,6 +178,7 @@ wn.views.QueryReport = Class.extend({
var mandatory_fields = [];
$.each(this.filters || [], function(i, f) {
var v = f.get_parsed_value();
if(v === '%') v = null;
if(f.df.reqd && !v) mandatory_fields.push(f.df.label);
if(v) filters[f.df.fieldname] = v;
})
......
......@@ -344,6 +344,7 @@ class Bean:
if self.ignore_permissions or webnotes.has_permission(self.doc.doctype, "write", self.doc):
self.to_docstatus = 1
self.prepare_for_save("update_after_submit")
self.run_method('validate')
self.run_method('before_update_after_submit')
self.save_main()
self.save_children()
......
......@@ -78,7 +78,7 @@ def run(report_name, filters=None):
module = webnotes.conn.get_value("DocType", report.ref_doctype, "module")
if report.is_standard=="Yes":
method_name = scrub(module) + ".report." + scrub(report.name) + "." + scrub(report.name) + ".execute"
columns, result = webnotes.get_method(method_name)(filters or {})
columns, result = webnotes.get_method(method_name)(webnotes._dict(filters))
else:
namespace = get_code_and_execute(module, "Report", report.name)
columns, result = namespace["execute"](filters or {})
......
......@@ -160,10 +160,11 @@ def build_conditions(doctype, fields, filters, docstatus):
def build_filter_conditions(filters, conditions):
"""build conditions from user filters"""
from webnotes.utils import cstr
from webnotes.utils import cstr, flt
if not getattr(webnotes.local, "reportview_tables", None):
webnotes.local.reportview_tables = []
doclist = {}
for f in filters:
if isinstance(f, basestring):
conditions.append(f)
......@@ -176,14 +177,22 @@ def build_filter_conditions(filters, conditions):
if f[2] in ['in', 'not in']:
opts = ["'" + t.strip().replace("'", "\\'") + "'" for t in f[3].split(',')]
f[3] = "(" + ', '.join(opts) + ")"
conditions.append(tname + '.' + f[1] + " " + f[2] + " " + f[3])
conditions.append('ifnull(' + tname + '.' + f[1] + ", '') " + f[2] + " " + f[3])
else:
if isinstance(f[3], basestring):
f[3] = "'" + f[3].replace("'", "\\'") + "'"
conditions.append(tname + '.' + f[1] + " " + f[2] + " " + f[3])
df = webnotes.local.reportview_doctypes[f[0]].get({"doctype": "DocField",
"fieldname": f[1]})
if df and df[0].fieldtype in ["Float", "Int", "Currency", "Percent"]:
val, default_null_val = flt(f[3]), 0
else:
val, default_null_val = ("'" + f[3].replace("'", "\\'") + "'"), ""
else:
conditions.append('ifnull(' + tname + '.' + f[1] + ",0) " + f[2] \
+ " " + cstr(f[3]))
val, default_null_val = f[3], 0
conditions.append('ifnull(' + tname + '.' + f[1] + ", '"+ default_null_val +"') " \
+ f[2] + " " + cstr(val))
def build_match_conditions(doctype, fields=None, as_condition=True):
"""add match conditions if applicable"""
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment