Widget, Component What to use for repeating tasks

I have a framework question that I am a little confused on. I have a form that will be used constantly throughout my project but called from different places in the project. The CRUD operations will be the same throughout. Also, it will be displayed as AJAX JUI Dialog.

Do I used one controller for this item for loading? Is this a situation where something like this might be better off as a module?

In my ajax requests would I call /sales/form no matter where I am in the site. Or should it be dealt with in every controller where a call to that form is made?

The sales form itself is a widget currently.

So if I am in /user/userpurchase page and have a link to load the window for a sales, my ajax request would be to /sales/form.

So now I am jumping around the site to get this organized.

Hope this made sense.

Cheers

Thanks