public function updateClassDetailStudentRela($classId, $classDetailId, $cameRelaIds = "", $notCameRelaIds = "") { try { $tId = session('instId'); $cameRelaIdsArr = array(); if ($cameRelaIds != "" && $cameRelaIds != null) { $cameRelaIdsArr = explode('|', $cameRelaIds); } $notCameRelaIdsArr = array(); if ($notCameRelaIds != "" && $notCameRelaIds != null) { $notCameRelaIdsArr = explode('|', $notCameRelaIds); } $class = new \Home\Model\ClassModel(); $student = new \Home\Model\StudentModel(); $class->startTrans(); //get tuition deduct mode $deductFlag = $class->getClassDeductFlag($classId, $tId); $deductFlag = $deductFlag[0]['deduct_flag']; //get all students tuition_per_class $studentTuitions = $class->showAllStudentsFromClassDetail($classDetailId, $tId); for ($i = 0; $i < count($studentTuitions); $i++) { $st = $studentTuitions[$i]; $studentTuitionMap[$st['id']] = $st['tuition_per_class']; } $count = 0; if (count($cameRelaIdsArr) > 0) { for ($i = 0; $i < count($cameRelaIdsArr); $i++) { $result = $class->updateClassDetailStudentRela($cameRelaIdsArr[$i], 0, $tId); $student->updateStudentBalance((int) $studentTuitionMap[$cameRelaIdsArr[$i]], $cameRelaIdsArr[$i], $tId); if ($result != 1) { $count++; } } } if (count($notCameRelaIdsArr) > 0) { for ($i = 0; $i < count($notCameRelaIdsArr); $i++) { $result = $class->updateClassDetailStudentRela($notCameRelaIdsArr[$i], 1, $tId); if ($deductFlag == 1) { $student->updateStudentBalance((int) $studentTuitionMap[$notCameRelaIdsArr[$i]], $notCameRelaIdsArr[$i], $tId); } if ($result != 1) { $count++; } } } //update status $isAbsentCheck = 1; $class = new \Home\Model\ClassModel(); $result = $class->updateClassDetailIsAbsentCheck($classDetailId, $tId, $isAbsentCheck); $class->commit(); $data = "true"; } catch (Exception $e) { $class->rollback(); $data = "false"; } $this->ajaxReturn($data); }
public function refundTuition($id, $studentId, $classId, $refundTuition) { $instId = session('instId'); try { $classModel = new \Home\Model\ClassModel(); $studentModel = new \Home\Model\StudentModel(); $institutionModel = new \Home\Model\InstitutionModel(); //logModel $instBalanceChangeLogModel = new \Home\Model\InstBalanceChangeLogModel(); $studentBalanceChangeLogModel = new \Home\Model\StudentBalanceChangeLogModel(); $classModel->startTrans(); //finance transaction part1 start $studentModel->addStudentBalance($refundTuition * 100, $studentId, $instId); $reason = 5; //学费返还给学生 $studentBalanceChangeLogModel->savelog($studentId, $reason, $classId, $refundTuition * 100); $classModel->updateStudentTuitionById(-$refundTuition * 100, (int) $id, $instId); //finance transaction part1 end //finance transaction part2 start //change inst balance $institutionModel->updateInstitutionBalance(-$refundTuition * 100, $instId); $reason = 3; //退还学费给学生 $instBalanceChangeLogModel->saveLog($instId, $reason, $studentId, -$refundTuition * 100); //finance transaction part2 end $data = "true"; $classModel->commit(); } catch (Exception $e) { $data = "false"; $classModel->rollback(); } $this->ajaxReturn($data); }