Change
if(property_exists($sale, gpps))
with
if(property_exists($sale, "gpps"))
notice how now gpps is passed as string, as per the signature of the property_exists function:
bool property_exists ( mixed $class , string $property )This function checks if the given property exists in the specified class.
Note:
As opposed withisset(),property_exists()returnsTRUEeven if the property has the valueNULL.