[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Factoring out common search facility [for customers, parts, ...]

Hi all,

For a new development I need to do something which I consider a "common task" in the application: the user needs to enter data linked to an entity credit account. I've been thinking to solve this along the lines of how this works with payments: the user fills out (part of) a customer name and when there are multiple matches, an intermediate screen is presented to select the correct customer.

Because this functionality is essentially already implemented in new code for payments and something similar (in old code) is implemented for invoices, I was seeing a pattern and saw opportunity to factor it out into a common module. Asking Chris how to approach this best, he said he needs something similar to search for parts and services, but that he doesn't like how it's currently implemented for payments.

So, that's when we decided I'd write to this list...

Basically, what I want to do is: create a data entry screen with a customer name and account description on it. When either of these fields is modified, I want the system to search for a matching entity credit account when the user clicks "Update" or "Save". If there are multiple options, I want the system to present the options to the user for selection.

However, if the data in the data entry screen is modified w.r.t. what's in the database, I want the modified data in the screen to stay in tact. I also want the data in the database to remain unchanged until the user hits Save -- where I don't want the screen to be saved if the eca selection still needs to take place.

Also, it seems silly to implement this everywhere. So, I'd like this to be a common function callable from any module. (I assume the same applies to Vendors, btw.)

With this mail, I want to solicit discussion on the requirements and a design for such functionality. Once we agree on the requirements and a design, I'm available for implementing it.

So, comments? requirements?


PS: Ideally, we have only 1 module which could do the same for customers/vendors and parts/services or any other table for that matter.