cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
syhrh
Dual Super User
Dual Super User

Add condition in formula

Hi, I have this policy that employees can only apply for Annual leave 3 days in advance, if it is less than 3 days, a label will be visible. This is the list that sets the condition for AnnualLeave with Days to apply in advance and when is the effective date. For example, the admin changes the Days to 5 and sets the Effective Date to 1/1/2023. So the policy will only be effective on 1/1/2023. If the employees apply before 1/1/2023, it will still be 3 days instead of 5. How to set it?

anonymous21_0-1660111985710.png

I tried using this formula but it doesn't work the way I want.

Set(checkCondition, LookUp('Leave Policy', Title="AnnualLeave"));
Set(checkCondition2, checkCondition.Days);
Set(checkCondition3, checkCondition.'Effective Date');
Set(
    VarDateDiff,
    RoundDown(
        DateDiff(
            Today(),
            DataCardValue2.SelectedDate,
            Days
        ) / 7,
        0
    ) * 5 + Mod(
        5 + Weekday(DataCardValue2.SelectedDate) - Weekday(Today()),
        5
    )
);
If(
    Weekday(DataCardValue2.SelectedDate) = 7 || Weekday(DataCardValue2.SelectedDate) = 1,
    Set(
        VarDateDiff,
        0
    );
    Set(
        VarWeekEndError,
        true
    ),
    Set(
        VarWeekEndError,
        false
    )
);
Set(
    VarNegativeDateError,
    If(
        Today() > DataCardValue2.SelectedDate,
        true,
        false
    )
);
Set(
    VarAllowHoliday,
    If(
        VarDateDiff >= Value(checkCondition2) && checkCondition3 < Today(),
        true,
        false
    )
);

 

Can anyone please help me?

 

Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions
metsshan
Solution Sage
Solution Sage

Hey @syhrh,

 

I am assuming they will make a new record in that list? You might have three records:

AnnualLeave4/Aug/22
AnnualLeave8/Aug/22
AnnualLeave20/Aug/22

 

So, we want to get the record for the 8th? Because today is the 10th, so I would use:

 

Set(
    checkCondition, 
    First(
        SortByColumns(
            Filter(
                'Leave Policy', 
                Title = "AnnualLeave" && 'Effective Date' <= Today()
            ), 
        "EffectiveDate", Descending)
    )
);

 

 

View solution in original post

4 REPLIES 4
metsshan
Solution Sage
Solution Sage

Hey @syhrh,

 

I am assuming they will make a new record in that list? You might have three records:

AnnualLeave4/Aug/22
AnnualLeave8/Aug/22
AnnualLeave20/Aug/22

 

So, we want to get the record for the 8th? Because today is the 10th, so I would use:

 

Set(
    checkCondition, 
    First(
        SortByColumns(
            Filter(
                'Leave Policy', 
                Title = "AnnualLeave" && 'Effective Date' <= Today()
            ), 
        "EffectiveDate", Descending)
    )
);

 

 

@metsshan 

From your formula, let's say today is 19 Aug 2022 so the condition will still follow 8 Aug right? Only when it's 20 or 21 and other dates will it follow 20 Aug. Is it like this?

I'm also not sure how to incorporate the variable with my other formulas?

I think you just replace your line "Set(checkCondition, LookUp('Leave Policy', Title="AnnualLeave"));" with the codeblock I suggested, and it should continue to work the same.

@metsshan Okay got it. Thank you.

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Power Apps Ideas

Changes to Ideas Coming

We are excited to announce a new way to share your ideas for Power Apps!

Top Solution Authors
Top Kudoed Authors
Users online (2,004)