Implement currency exchange in custom doctype

I have a custom doctype and i want to implement currency switch or exchange like CURRENCY AND PRICE LIST in Sales order. Can anyone give me some suggestion?

What is the use case? Why do you want to re-implement something that is already there?

I am implementing ERPNext in a manufacturing company in Bangladesh.

They have multiple small sales order and they need to do proforma invoice for those. Though those orders are tiny they make single proforma invoice from multiple.

So i am planning to make it by separate doctype. Although i have already implement it in a bad architecture and bad code. But now i am refactoring my code.