diff options
Diffstat (limited to 'invoice/hooks.go')
| -rw-r--r-- | invoice/hooks.go | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/invoice/hooks.go b/invoice/hooks.go index 7a59352..b0ec877 100644 --- a/invoice/hooks.go +++ b/invoice/hooks.go @@ -85,3 +85,35 @@ func (i *InvoiceItem) BeforeDelete(tx *gorm.DB) error {  	return nil  } + +func (cf *CustomField) BeforeSave(tx *gorm.DB) error { +	var err error + +	isDraft, err := isDraft(cf.InvoiceID) +	if err != nil { +		return err +	} + +	if !isDraft { +		return errors.ErrCannotEditInvoice +	} + +	// TODO: check if field is duplicate + +	return nil +} + +func (cf *CustomField) BeforeDelete(tx *gorm.DB) error { +	var err error + +	isDraft, err := isDraft(cf.InvoiceID) +	if err != nil { +		return err +	} + +	if !isDraft { +		return errors.ErrCannotEditInvoice +	} + +	return nil +}  |