Forum Replies Created
-
AuthorPosts
-
Hi Alex,
Thanks a billion!!!. It working like a Charm.!!!
Hi Alex,
Thanks for your help as usual. However calling the function i get an error
Reference error:CountDaysBetween not defined.
Attachments:
Hi Alex,
Thanks a lot for the code but i continue to have some challenges.I will post the code first and explain.
// To change date format since my forms are in Portuguese.
spjs.dffs.data.lcidToDateFormat[“2070”] = “d/m/y”;
function countDaysbetween(_x0066_ku0,_x0076_yt6){
var r = {“businessDays”: 0, “weekendDays”: 0};
var f = spjs.utility.getDateFieldAsDateObject(“_x0076_yt6”);
var t = spjs.utility.getDateFieldAsDateObject(“_x0066_ku0”);
console.log(t)
console.log(f)
if(f === “” || t === “”){
// from or to date is empty
return r;
}
// Set time to 12:00 to ease calcuation
f.setHours(12,0,0);
t.setHours(12,0,0);
while(f <= t){
var d = f.getDay();
if(d > 0 && d < 6){ // 1 = Monday and 5 = Friday
r.businessDays += 1;
}else{
r.weekendDays += 1;
}
f.setDate(f.getDate() + 1);
console.log(r)
}
return r;
}// Call it like this with from and to date fields as arguments
var diff = countDaysbetween(“_x0066_ku0″,”_x0076_yt6”);
var businessDays = diff.businessDays;
var weekendDays = diff.weekendDays;
console.log(diff)
var balance = 0;
var dias = 0;
(function () {
var res = spjs.utility.queryItems({
“listName”: “Total de Ferias”,
“query”: “<Where><Eq><FieldRef Name=’Person’ LookupId=’TRUE’ /><Value Type=’Integer’>” + _spPageContextInfo.userId + “</Value></Eq></Where>”,
“viewFields”: [“ID”, “Ferias_x0020_para_x0020_Gozar”]});
if(res.count > 0); {
var item = res.items[0];
balance = Number(item.Ferias_x0020_para_x0020_Gozar.split(“;#”)[1]);
}})();
function calculation () {
console.log(businessDays);
console.log(balance);
if (diff > balance) {
spjs.dffs.toggleSaveBtnByRule(false);
spjs.dffs.alert({
“title”: “To many hours requested”,
“msg”: “You only have ” + balance + ” hours available.”
});}else {
spjs.dffs.toggleSaveBtnByRule(true);
}
}function dffs_PreSaveAction() {
if (diff > balance) {
spjs.dffs.alert({
“title”: “Unable to save request”,
“msg”: “You only have ” + balance + ” hours available.”
});
return false;
}
return true;
}Challenges
a) Console.log (t)
b) console.log (f) cannot return value
*print provided.
c) When i call the function name ( countDaysbetween(_x0066_ku0,_x0076_yt6) in Rules i get error print provided.d) I am also struggling with using the r returned value in the calculation functions to achieve the intended.
Thank you
Attachments:
Thanks ,
Here goes, basically I have two custom lists which are Employees and Leave Request form.
The employees list a the leave balances of the employees and the leave request is used for submitting the form. When submitting the form the number of days taken is calculated(sharepoint calculation) by end date-start date..The calculated column has a field internal name dias.If the the days taken (dias) in greater than the balance then from should hide save and give notice you only have x days available.
In a nutshell this what we are trying to achieve it .I think the only problem is the calculated column.v var balance = 0;
var dias = 0;
(function () {
var res = spjs.utility.queryItems({
“listName”: “Total de Ferias”,
“query”: “<Where><Eq><FieldRef Name=’Person’ LookupId=’TRUE’ /><Value Type=’Integer’>” + _spPageContextInfo.userId + “</Value></Eq></Where>”,
“viewFields”: [“ID”, “Ferias_x0020_para_x0020_Gozar”]});
if(res.count > 0); {
var item = res.items[0];
balance = Number(item.Ferias_x0020_para_x0020_Gozar.split(“;#”)[1]);
}})();
jQuery(“#dffs_dias input”).on(“change”, function () {
dias = Number(this.value);
console.log(dias);
console.log(balance);
if (dias > balance) {
spjs.dffs.toggleSaveBtnByRule(false);
spjs.dffs.alert({
“title”: “To many hours requested”,
“msg”: “You only have ” + balance + ” hours available.”
});}else{
spjs.dffs.toggleSaveBtnByRule(true);
}
});function dffs_PreSaveAction() {
if (dias > balance) {
spjs.dffs.alert({
“title”: “Unable to save request”,
“msg”: “You only have ” + balance + ” hours available.”
});
return false;
}
return true;
}Sorry forgot to add that its a normal Sharepoint calculated list.
Alex,
I am afraid not with that as well.I continue to get the same errors i posted earlier.
Regards
No Alex, I am triggering on the change of calculated field. The calculated field is
based on end date-start date which is the dias column.Regards
Hi Alex,
You are right! Apparently after the jQuery nothing is logged , however they are some errors that come up . I have attached for your reference
jQuery(“#dffs_dias”).on(“change”, function () {
dias = Number(this.value);
console.log(dias);
console.log(balance);
if (dias > balance) {
spjs.dffs.toggleSaveBtnByRule(false);
spjs.dffs.alert({
“title”: “To many hours requested”,
“msg”: “You only have ” + balance + ” hours available.”
});Attachments:
Hi Alex,
Thank you so much the query came out right.How even the {{var:balance}} is now displaying right.
However, this portion of
jQuery(“#dffs_dias input”).on(“change”, function () {
dias = Number(this.value);
if (dias > balance) {
Even logging nothing it nothing is being returned. my field internal name is “dias”.Hi Alex,
From object i can tell the query portion of the script is fine. It’s the other parts of the code that seem not to be working. find attached.
Attachments:
Hi Alex,
Thanks for the heads up.well. i spend the whole day cracking on this but cannot seem to get the hang of it.
From the logs, i can tell that the query is working fine which is is the first part of the code.
(function () {
var res = spjs.utility.queryItems({
“listName”: “Total de Ferias”,
“query”: “<Where><Eq><FieldRef Name=’Person’ LookupId=’TRUE’ /><Value Type=’Integer’>” + _spPageContextInfo.userId + “</Value></Eq></Where>”,
“viewFields”: [“ID”, “Ferias_x0020_para_x0020_Gozar”]
However , the portion below is getting an undefined.
if (res.count > 0) {
var item = res.items[0];
balance = Number(item.Ferias_x0020_para_x0020_Gozar);
}
console.log(item);The other log errors i cannot interpret i just attached them.
Attachments:
Hi Alex,
Thanks a lot, sure his request is pretty much similar to mine and it sure was good start.The only difference is that is my case is the number of days taken is a calculated field based on start & end date.
However, in my case the following is happening,
a). The rule that calls the JS is kicking well but nothing is happening.I console.logged the res variable(log attached) it appears its not querying that Employees list.I am also thinking its because my number of days requested <strong/> value is a calculated column ,probably when the JS kicks that field will still not a value.I am not sure.
On a side note, I tried to use the {{var:balance}} to display balance of hours but to know success.print attached.
Thank you in advance.
Attachments:
Hi Alex,
Sorry i missed that bit.
As always thanks a lot , its working exactly as i intended!!!
Regards
Hi Alex,
Thanks the code actually work to insert the total value to the single line of text for the subsequent lookup the forms.However the value is no longer being displayed on the form. Actually the system throw an error , see annex.
Attachments:
Hi Alex,
I think that’s the problem the values on gets displayed on the form however when i save the form and go to the list item the i see no value corresponding to that column.I have attached the file that shows the JS code doing the calculations.
Attachments:
-
AuthorPosts