$transactionHistoryTable = TableRegistry::getTableLocator()->get("TransactionHistories");
$paymentReports = $transactionHistoryTable->find()
->select(['admission_roll', 'transaction_no', 'api_payment_date', 'only_fee', 'customer_paid_amount'])
->contain([
'Students' => ['fields' => ['id', 'full_name_en', 'student_contact', 'registration_number']],
'Students.AcademicInfos' => function (Query $query) {
return $query
->select(['roll' => 'AcademicInfos.roll'])
->where(['AcademicInfos.status' => 1]);
},
'ClassNames.Departments' => function (Query $q) {
return $q
->select([
'Departments.id',
'Departments.department_code',
'Departments.title',
])
->where(['Departments.status' => 1]);
},
'AdmissionApplicationFormTempDatas' => ['fields' => ['full_name_en' => "JSON_EXTRACT(data_infos, '$.full_name_en')",'contact_number' => 'AdmissionApplicationFormTempDatas.contact_number']]
])
->where($txnConditions)
->order(['CAST(roll AS UNSIGNED)' => 'ASC']);