diff --git a/pkg/form.go b/pkg/form.go index acbdb14..ee19eb6 100644 --- a/pkg/form.go +++ b/pkg/form.go @@ -70,6 +70,15 @@ func (field *InputField) Integer() int { return value } +func (field *InputField) IntegerOrNil() interface{} { + if field.Val != "" { + if i := field.Integer(); i > 0 { + return i + } + } + return nil +} + func (field *InputField) Float64() float64 { value, err := strconv.ParseFloat(field.Val, 64) if err != nil { diff --git a/pkg/pgtypes.go b/pkg/pgtypes.go index 9582974..ab77a34 100644 --- a/pkg/pgtypes.go +++ b/pkg/pgtypes.go @@ -48,15 +48,9 @@ func (src EditedInvoiceProductArray) EncodeBinary(ci *pgtype.ConnInfo, buf []byt } var values [][]interface{} for _, form := range src { - var invoiceProductId interface{} = nil - if form.InvoiceProductId.Val != "" { - if id := form.InvoiceProductId.Integer(); id > 0 { - invoiceProductId = id - } - } values = append(values, []interface{}{ - invoiceProductId, - form.ProductId.Val, + form.InvoiceProductId.IntegerOrNil(), + form.ProductId.IntegerOrNil(), form.Name.Val, form.Description.Val, form.Price.Val,