Firstly, let me briefly explain what refactoring is. Refactoring is a way of improving the internal structure of the code. It doesnt change the functionality, but it changes the efficiency and correctness. Refactoring is a continual part of software development and we do it all the time. Sometimes that refactoring touches large areas of the code base. This is one of those times.
- Customer storage. GMS used to hold the customer storage in two different places. One was the list of tickets, and two was a shortcut summation of all those tickets. Sometimes those two areas would get out of sync, causing inconsistencies. We have removed the latter and now rely solely on the definitive list of tickets. A consequence of which is that customers are no longer allowed negative storage. If you want negative storage you must use the Loan/Repay feature.
- Temporary holds. GMS used to store temporary balances on each contract line, for every ticket in the fast-ticket grid (rightside of the ticket screen). This has been now removed and we calculate this temporary number everytime it is required. Additionally, we have added contract line to the shipping orders, in an effort to ensure we do not overfill contracts.