Skip to content

Commit f539fc3

Browse files
committed
Fixed date validations for calc properties (before, after, before or equal, after or equal)
1 parent 8d494a9 commit f539fc3

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

src/mixins/ValidationRules.js

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,18 @@ export const custom_date = (date) => {
6666
let checkDate = moment(date, [format, moment.ISO_8601], true);
6767
return checkDate.isValid();
6868
};
69-
69+
7070
export const after = (after, fieldName) => helpers.withParams({after}, function(date, data) {
7171
// Get check date
7272
const level = fieldName.split('.').length - 1;
7373
const dataWithParent = this.getDataAccordingToFieldLevel(this.getRootScreen().addReferenceToParents(data), level);
7474
dataWithParent.today = moment().format('YYYY-MM-DD');
75-
const checkDate = moment(get(dataWithParent, after, after));
75+
const checkDate = moment(get(dataWithParent, after.replace(/[{ }]/g, ''), after));
7676
if (!checkDate.isValid()) {
7777
return false;
7878
}
79-
8079
const inputDate = moment(date).toISOString();
81-
const afterDate = checkDate.toISOString();
82-
80+
const afterDate = moment(checkDate.toISOString()).endOf('day').toDate().toISOString();
8381
return inputDate > afterDate;
8482
});
8583

@@ -88,13 +86,12 @@ export const after_or_equal = (after_or_equal, fieldName) => helpers.withParams(
8886
const level = fieldName.split('.').length - 1;
8987
const dataWithParent = this.getDataAccordingToFieldLevel(this.getRootScreen().addReferenceToParents(data), level);
9088
dataWithParent.today = moment().format('YYYY-MM-DD');
91-
const checkDate = moment(get(dataWithParent, after_or_equal, after_or_equal));
89+
const checkDate = moment(get(dataWithParent, after_or_equal.replace(/[{ }]/g, ''), after_or_equal));
9290
if (!checkDate.isValid()) {
9391
return false;
9492
}
95-
9693
const inputDate = moment(date).toISOString();
97-
const equalOrAfterDate = checkDate.toISOString();
94+
const equalOrAfterDate = moment(checkDate.toISOString()).startOf('day').toDate().toISOString();
9895
return inputDate >= equalOrAfterDate;
9996
});
10097

@@ -103,13 +100,12 @@ export const before = (before, fieldName) => helpers.withParams({before}, functi
103100
const level = fieldName.split('.').length - 1;
104101
const dataWithParent = this.getDataAccordingToFieldLevel(this.getRootScreen().addReferenceToParents(data), level);
105102
dataWithParent.today = moment().format('YYYY-MM-DD');
106-
const checkDate = moment(get(dataWithParent, before, before));
103+
const checkDate = moment(get(dataWithParent, before.replace(/[{ }]/g, ''), before));
107104
if (!checkDate.isValid()) {
108105
return false;
109106
}
110-
111107
const inputDate = moment(date).toISOString();
112-
const beforeDate = checkDate.toISOString();
108+
const beforeDate = moment(checkDate.toISOString()).startOf('day').toDate().toISOString();
113109
return inputDate < beforeDate;
114110
});
115111

@@ -118,14 +114,12 @@ export const before_or_equal = (before_or_equal, fieldName) => helpers.withParam
118114
const level = fieldName.split('.').length - 1;
119115
const dataWithParent = this.getDataAccordingToFieldLevel(this.getRootScreen().addReferenceToParents(data), level);
120116
dataWithParent.today = moment().format('YYYY-MM-DD');
121-
const checkDate = moment(get(dataWithParent, before_or_equal, before_or_equal));
117+
const checkDate = moment(get(dataWithParent, before_or_equal.replace(/[{ }]/g, ''), before_or_equal));
122118
if (!checkDate.isValid()) {
123119
return false;
124120
}
125-
126121
const inputDate = moment(date).toISOString();
127-
const beforeDate = checkDate.toISOString();
128-
122+
const beforeDate = moment(checkDate.toISOString()).endOf('day').toDate().toISOString();
129123
return inputDate <= beforeDate;
130124
});
131125

@@ -171,7 +165,7 @@ export const requiredUnless = (variable, expected, fieldName) => helpers.withPar
171165
if (get(dataWithParent, variable) == expected) return true;
172166
return value instanceof Array ? value.length > 0 : !!value;
173167
});
174-
168+
175169
export const sameAs = (field, fieldName) => helpers.withParams({field}, function(value, data) {
176170
const level = fieldName.split('.').length - 1;
177171
const dataWithParent = this.getDataAccordingToFieldLevel(this.getRootScreen().addReferenceToParents(data), level);

0 commit comments

Comments
 (0)