Each time a change occurs on the record we will create a history of change:
The cardinality of the relation is always asset:entity
There are 2 (at least) ways of solving this problem using vtiger CRM.
The first solution will be harder to upgrade when changing vtiger CRM version.
With this solution we save the assets in the same table that we now have our products. We add a new checkbox field that will indicate if the record is a product or an asset. We add the needed fields, basically as custom fields and blocks.
With the new checkbox we can easily create filters to search for one type or the other of elements in the product table and add these filters in the product capture popup screen to make searching for products or assets easy.
We will have to change the product module code for:
The real strong point of this path is that all the relations with other entities already exists and we don't have to touch anything. At most if we would like to see the assets and products separately we can modify the selects on each entity to show them separate. No real big change.
This is a clean and logical path which I recommend for anybody who doesn't need to relate their assets with other modules in the vtiger CRM system, or at least that don't need to relate them with PO, Quotes, SO and Invoices.
Developing a new module based on products with all the necessary fields will have the difficulty of modifying the create/edit process to have various user selection boxes and configuration files upload attachments (exact same problem as in the first solution). But the real hard part here is relating the new module with the existing ones. This is even worse on PO, Q, SO and Invoice, where we would have to modify the “product lines” code to accept assets and modify the calculations to not consider these lines in the final price and then internally to save the relation differently. It sounds difficult.
If you can live with relations to Accounts, Contacts and Vendor, then you can use this solution. Relation to Tickets is harder to setup than the other three but not as difficult as the PO, Q, SO and Invoice relations.
In any case we must relate assets to it's self.
IP, Username and Password are configuration information and not all assets will have them. If your use will, then you can add these as custom fields (or we can add them for you wherever you like) but they are not general use fields.
Memory, CPU and HDD could be seen as configuration elements and apply the above answer or they can be seen as components of a bigger asset. You would create a “computer” asset and link it to all it's components. You would specify exactly which harddisk (another asset with all it's features), which DIMMS of RAM, etc…
This sounds more like a task for nagios, zenoss or similar software. Our intent is not to reinvent the wheel or create something others have already done better. We just want to have asset inventory control inside vtiger CRM. Obviously we can make integrations with other software packages, for example create a “status” field on the asset which gets updated regularly from a nagios plugin but this type of integration is out of scope of this extension. We are creating a good starting point though
This can be done in various ways depending on how much detail you want to control. You can simply attach a list of software installed as a text file or you can create new assets for each piece of software and add all the installed software as components of the “parent” asset. This last approach is very interesting when managing licensed software as you could create an asset for each software license you have (Microsoft windows operating system with license xxx)