Refactor the module

* Replace the line type based logic on sale with checkbox
* Make no change to the logic of invoice (not required)
* Automatic numbering of gift card
* Make duplication of sale order and payment transactions safe