КОРОТКИЙ ОТВЕТ: ДА , вы можете смоделировать это в ATK4
У вас в основном все таблицы идеально налажены.
Чтобы создать модель, просто создайте файл Student.php и поместите его
в папке / lib / Model /.
class Model_Student extends Model_Table {
public $entity_code = 'Student';
function init() {
parent::init();
$this->addField('name')->caption('Student Name');
}
}
Вы можете сделать то же самое для других ваших столов:
Program (id, name, startdate, enddate, firstpaymentDueDate, qtyOfPeriods, price)
а также
paymentSchedule (id, student_id, dueDate, amount)
Чтобы узнать больше о моделях, предлагаю вам прочитать вступление:
http://agiletoolkit.org/learn/understand/model/intro
Обработка таблицы, например, paymentSchedule
отличается
история в целом. Для этого вам нужен DSQL (динамический SQL).
Предполагается, что ваша таблица Program
находится в классе модели с именем
Model_Program
. Чтобы получить запись:
$m = $this->add('Model_Program');
$v = $m->dsql()
->field('qtyOfPeriods')
->field('price')
->where('id=',$programid) // specific program
->do_getOne();
$m = $this->add('Model_PaymentSched');
$r = $m->dsql()
->set('student_id',$studentid) // specific student
->set('amount',$v['price'])
->do_insert();
Это позволит получить запись для конкретной программы и
затем вставьте его в график платежей: