-    $query =
-      qq|INSERT INTO invoice (id, trans_id, parts_id, description, longdescription, qty, base_qty,
-                              sellprice, fxsellprice, discount, allocated, unit, deliverydate,
-                              project_id, serialnumber, price_factor_id, price_factor, marge_price_factor)
-         VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT factor FROM price_factors WHERE id = ?), ?)|;
-    @values = ($invoice_id, conv_i($form->{id}), conv_i($form->{"id_$i"}),
-               $form->{"description_$i"}, $form->{"longdescription_$i"}, $form->{"qty_$i"} * -1,
+      # save detail record in invoice table
+      $query = <<SQL;
+        UPDATE invoice SET trans_id = ?, position = ?, parts_id = ?, description = ?, longdescription = ?, qty = ?, base_qty = ?,
+                           sellprice = ?, fxsellprice = ?, discount = ?, allocated = ?, unit = ?, deliverydate = ?,
+                           project_id = ?, serialnumber = ?, price_factor_id = ?,
+                           price_factor = (SELECT factor FROM price_factors WHERE id = ?), marge_price_factor = ?,
+                           active_price_source = ?, active_discount_source = ?
+        WHERE id = ?
+SQL
+
+    @values = (conv_i($form->{id}), conv_i($position), conv_i($form->{"id_$i"}),
+               $form->{"description_$i"}, $restricter->process($form->{"longdescription_$i"}), $form->{"qty_$i"} * -1,