your price checking won't work this way. the big problem here is the line
record = self.pool.get('appraisal_price')
that's not correct. self.pool.get
will get you instances of your "business models" like your 'marcos.artwork'
but you want some field values to check.
in this case you don't even need self.pool.get
, because you're already on this model and can use self
instead.
so here is the code you need (you will find so many examples in the addons):
def _check_appraisal_price(self, cr, uid, ids, context=None):
for artwork in self.browse(cr, uid, ids, context):
if artwork.appraisal_price < 0:
return False
return True