# Scripted Fields + Filtering

**URL:** <https://discuss.elastic.co/t/scripted-fields-filtering/262047>\
**Category:** Kibana\
**Tags:** painless\
**Created:** [January 25, 2021, 3:12am UTC](https://discuss.elastic.co/t/scripted-fields-filtering/262047 "2021-01-25T03:12:09Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![BenB196](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/benb196/32/83401_2.png) [@BenB196](https://discuss.elastic.co/u/BenB196)\
**Post date:** [January 26, 2021, 7:58pm UTC](https://discuss.elastic.co/t/scripted-fields-filtering/262047/6 "2021-01-26T19:58:06Z")

</div>

Instead of using two if statements, you might want to try:

```auto
if (!doc['start_date'].empty && !doc['last_update'].empty)

```

Your script would look like:

```auto
if (!doc['start_date'].empty && !doc['last_update'].empty)
{
    def time_diff = doc['last_update'].value.millis - doc['start_date'].value.millis;
    def minutes = time_diff / 60000;

// minutes > 30 ? 'Open': 'Closed'
    if ( minutes > 30 )
    {
        return 'Open'
    } else {
        return 'Closed'
    }
}

```

This topic explains a similar issue: [Painless, if two field exists then calculate](https://discuss.elastic.co/t/painless-if-two-field-exists-then-calculate/117489/6)

---

_[View the full topic](https://discuss.elastic.co/t/scripted-fields-filtering/262047)._
