While reviewing all the changes that happen this month two ideas kept coming to my mind: we are creating something important here and we definitely were not on vacation that August
Commit info on zip download
We recommend installing coreBOS directly from GitHub or similar repository because we are constantly updating the code, but for those that don't, it is extremely useful to know exactly which version of the aplicación they downloaded. With the special magic we add in the version file this month that is exactly what we get as you can see in the next before and after comparison.
.... $coreBOS_app_version = '7.0'; $coreBOS_app_name ='coreBOS'; $coreBOS_app_url = 'http://corebos.org'; $coreBOS_commit_info = '$Format:%ci$ ($Format:%h$)'; ?>
.... $coreBOS_app_version = '7.0'; $coreBOS_app_name ='coreBOS'; $coreBOS_app_url = 'http://corebos.org'; $coreBOS_commit_info = '2017-09-21 15:43:19 +0200 (b0b3b30fc)'; ?>
Create other entities on lead conversion
When converting a lead, the application will automatically create a contact, account, and potential. It's not uncommon to want to create additional entities that fit into your business logic.
To cover this necessity we combine the power of some existing Business Maps to accomplish the task. You can read about this functionality on our documentation site.
Inventory modules enhancements
We introduce an extremely important enhancement which keeps inventory lines instead of eliminating them every time. Before this change, every time a record of an inventory module was edited all the lines were deleted and then created again, so we lost any information that we were tracking in the inventory details module. After this change, we only delete lines that are really deleted and we edit and add the new ones so all the information we save on inventory details is kept.
This enhancement permits us to use the Master-Detail Business Map to configure editing inventory details fields in inventory lines as can be seen in this video.
On our way to adding a generic and easily configurable validation system we study and select the Valitron library from among the many available. We integrate it into the application making it available to developers and add a few custom validations like IBAN.
Control potential sales stage and inventory status history on module
These status change history records were being saved either directly in the Save.php script of the module or hardcoded in the main CRMEntity class. The first is wrong because we can save from other parts of the application (webservice, workflow...), effectively changing the status without that change getting recorded. The second is wrong because we have code and functionality specific to one module inside the general main class.
The reason this was done this way is that we need to record the status before and after saving and we didn't have the events when this code was created.
Instead of solving this necessity using events we override the class save process. We pick up the status and then call the parent save as normal, reproducing an equivalent functionality.
This approach is very powerful and used in various parts of the application.
Documents mass download action
A new action button on the documents list view permits us to download a set of document attachments in a compressed format.
Thanks for reading.