Esempio n. 1
0
 public function executeUpdateSpp()
 {
     $user_id = $this->getContext()->getUser()->getAttribute('user_id', null, 'bo');
     $student = StudentPeer::retrieveByPk($this->getRequestParameter('student_id'));
     $this->forward404Unless($student);
     $academic_cost = AcademicCostPeer::retrieveByPk($this->getRequestParameter('academic_cost_id'));
     $this->forward404Unless($academic_cost);
     $paid_at = $this->getRequestParameter('paid_at');
     $year = $this->getRequestParameter('year');
     $month_list_ser = $this->getRequestParameter('month_list_ser');
     $params = array();
     foreach (explode('&', $this->getRequestParameter('month_list_ser')) as $p) {
         $p = explode('=', $p);
         $params[rawurldecode($p[0])][] = rawurldecode($p[1]);
     }
     if (array_key_exists('months', $params)) {
         $total_cost = 0;
         foreach ($params['months'] as $month_id) {
             $payment_student = new PaymentJournal();
             $ac_cost = AcademicCostPeer::retrieveByPK($this->getRequestParameter('academic_cost_id'));
             $payment_student->setPayer($this->getRequestParameter('student_id'));
             $payment_student->setAcademicCostId($ac_cost->getId());
             $payment_student->setAcademicProcessId($ac_cost->getAcademicProcessId());
             $payment_student->setAmount($ac_cost->getAmount());
             $payment_student->setPaid($ac_cost->getAmount());
             $payment_student->setReceivable($ac_cost->getAmount() - $ac_cost->getAmount());
             $payment_student->setPaidAt($this->getRequestParameter('paid_at'));
             $payment_student->setPayerType(PaymentJournal::PAYER_TYPE_STUDENT);
             $payment_student->setPaymentModelId(2);
             $payment_student->setYear($this->getRequestParameter('year'));
             $payment_student->setMonth($month_id);
             $payment_student->setStatus('S');
             $payment_student->setTransactionStatusId(1);
             $payment_student->setJobId($user_id);
             $payment_student->save();
             $total_cost += $payment_student->getAmount();
             $amount_changed = $ac_cost->getAmount();
             if ($amount_changed != 0) {
                 $ph = new PaymentHistory();
                 $ph->setPaymentJournal($payment_student);
                 $ph->setAmount($amount_changed);
                 $ph->setStatus($payment_student->getStatus());
                 $ph->setReceivable($payment_student->getReceivable());
                 $ph->setAcademicCostId($payment_student->getAcademicCostId());
                 $ph->setMonth($payment_student->getMonth());
                 $ph->setCredit($payment_student->getMonth());
                 $ph->save();
             }
         }
     }
     $this->student = $student;
     $this->academic_cost = $academic_cost;
     $this->paid_at = $paid_at;
     $this->year = $year;
     $this->month_list_ser = $month_list_ser;
     $this->getRequest()->setParameter('student_id', $student->getId());
     $this->getRequest()->setParameter('academic_cost_id', $academic_cost->getId());
     $this->getRequest()->setParameter('paid_at', $paid_at);
     $this->getRequest()->setParameter('year', $year);
     return $this->forward('student_payment', 'previewSpp');
 }