Predicate pushdown on view to optimize query?
I would suggest:


change the unrecommended shorthand getdate()-7 to the proper and explicit CONVERT(datetime2(2), DATEADD(DAY, -7, GETDATE()))
avoiding SELECT * everywhere, especially in the view
change your predicate to an open-ended range (>= July 1 and &lt; August 1)
explicitly convert literals to avoid implicit conversions
avoid regional, unsafe formats like yyyy-mm-dd


So:

WHERE SpendDate &gt;= CONVERT(datetime2(2), '20180601')
  AND SpendDate &lt;  CONVERT(datetime2(2), '20180701');


Not only does this guard against both implicit conversions and ydm interpretation, it is much easier to find the beginning of the next month than the end of the current one.