Во-первых, ваш код грязный.
Вы должны иметь одну таблицу на форму, где у каждой формы есть родительский идентификатор.
Следующим шагом по рефакторингу кода будет создание одного контроллера для каждой формы (вам это не нужно, но вам нужно)
Каждая форма (модель) должна иметь метод, который пересчитывает свои значения на основе других форм, так что если вы измените первую форму, вы можете вызвать метод, который пересчитывает вторую форму, а затем вызвать метод второй форма, которая пересчитывает третью форму и т. д.
Этот интерфейс может быть полезен
interface IForm {
public function getPreviousForm() : ?IForm; // These notations are since PHP7.1
public function recalculate() : void;
public function getNextForm() : ?IForm;
}
Простой код, как это должно работать на практике
$formX->save();
$formX->getNextForm()->recalculate(); // This will call formX->recalculate(); formX+1->getNextForm()->recalculate()
// which will call formX+1->recalculate(); formX+2->getNextForm()->recalculate()
// etc...
// while getNextForm() != null
Вам также может понадобиться это, если вам нужно будет вставить другую форму в середине цепочки.
Надеюсь, это поможет