Esempio n. 1
0
 public function executeSimpanAllElse()
 {
     $i18n = new sfI18N();
     $i18n->initialize($this->getContext());
     $i18n->setCulture($this->getUser()->getCulture());
     $action_i18n = $i18n->globalMessageFormat->format('save as new');
     $action_type = $this->getRequestParameter('action_type');
     $student = StudentPeer::retrieveByPk($this->getRequestParameter('student_id'));
     $this->forward404Unless($student);
     $amount_changed = 0;
     $tanggal = $this->getRequestParameter('thn') . '-' . $this->getRequestParameter('bln') . '-' . $this->getRequestParameter('tgl');
     $tgl_code = $this->getRequestParameter('tgl') . $this->getRequestParameter('bln') . $this->getRequestParameter('thn');
     $paids = $this->getRequestParameter('paid');
     foreach ($paids as $payment_id => $paid) {
         if ($paid != null) {
             $ids = split('_', $payment_id);
             $payment_journal = PaymentJournalPeer::retrieveByPK($ids[0]);
             $ac_cost = AcademicCostPeer::retrieveByPK($ids[1]);
             $payment_journal->setAcademicCostId($ac_cost->getId());
             $payment_journal->setPayer($student->getId());
             $payment_journal->setPaidAt($tanggal);
             $payment_journal->setPaid($paid);
             $payment_journal->setPaymentModelId($this->getRequestParameter('payment_model_id'));
             $payment_journal->setYear($this->getRequestParameter('thn'));
             $payment_journal->setComments($this->getRequestParameter('comments'));
             $payment_journal->save();
             $amount_changed = $payment_journal->getPaid();
             if ($amount_changed != 0) {
                 $c = new Criteria();
                 $c->add(PaymentHistoryPeer::PAYMENT_JOURNAL_ID, $payment_journal->getId());
                 $ph = PaymentHistoryPeer::doSelectOne($c);
                 if ($ph == null) {
                     $ph = new PaymentHistory();
                 }
                 $ph->setPaymentJournal($payment_journal);
                 $ph->setAmount($amount_changed);
                 $ph->setReceivable($payment_journal->getReceivable());
                 $ph->setAcademicCostId($payment_journal->getAcademicCostId());
                 $ph->save();
             }
         }
     }
     $receivables = $this->getRequestParameter('receivable');
     foreach ($receivables as $payment_id => $receivable) {
         if ($receivable != null) {
             $ids = split('_', $payment_id);
             $payment_journal = PaymentJournalPeer::retrieveByPK($ids[0]);
             $ac_cost = AcademicCostPeer::retrieveByPK($ids[1]);
             $payment_journal->setAcademicCostId($ac_cost->getId());
             $payment_journal->setPayer($student->getId());
             $payment_journal->setPaidAt($tanggal);
             $payment_journal->setReceivable($receivable);
             $payment_journal->setPaymentModelId($this->getRequestParameter('payment_model_id'));
             $payment_journal->setYear($this->getRequestParameter('thn'));
             $payment_journal->setComments($this->getRequestParameter('comments'));
             $payment_journal->save();
             $amount_changed = $payment_journal->getPaid();
             if ($amount_changed != 0) {
                 $c = new Criteria();
                 $c->add(PaymentHistoryPeer::PAYMENT_JOURNAL_ID, $payment_journal->getId());
                 $ph = PaymentHistoryPeer::doSelectOne($c);
                 $ph->setPaymentJournal($payment_journal);
                 $ph->setAmount($amount_changed);
                 $ph->setReceivable($payment_journal->getReceivable());
                 $ph->setAcademicCostId($payment_journal->getAcademicCostId());
                 $ph->save();
             }
         }
     }
     $statuses = $this->getRequestParameter('status');
     foreach ($statuses as $payment_id => $status) {
         if ($status != null) {
             $ids = split('_', $payment_id);
             $payment_journal = PaymentJournalPeer::retrieveByPK($ids[0]);
             $ac_cost = AcademicCostPeer::retrieveByPK($ids[1]);
             $payment_journal->setAcademicCostId($ac_cost->getId());
             $payment_journal->setPayer($student->getId());
             $payment_journal->setPaidAt($tanggal);
             $payment_journal->setStatus($status);
             $payment_journal->setPaymentModelId($this->getRequestParameter('payment_model_id'));
             $payment_journal->setYear($this->getRequestParameter('thn'));
             $payment_journal->setComments($this->getRequestParameter('comments'));
             $payment_journal->save();
             $amount_changed = $payment_journal->getPaid();
             if ($amount_changed != 0) {
                 $c = new Criteria();
                 $c->add(PaymentHistoryPeer::PAYMENT_JOURNAL_ID, $payment_journal->getId());
                 $ph = PaymentHistoryPeer::doSelectOne($c);
                 $ph->setPaymentJournal($payment_journal);
                 $ph->setAmount($amount_changed);
                 $ph->setReceivable($payment_journal->getReceivable());
                 $ph->setAcademicCostId($payment_journal->getAcademicCostId());
                 $ph->setMonth($payment_journal->getMonth());
                 $ph->setCredit($payment_journal->getMonth());
                 $ph->setStatus($payment_journal->getStatus());
                 $ph->save();
             }
         }
     }
     $comments = $this->getRequestParameter('comments');
     return $this->redirect('student_payment/showAllElse?student_id=' . $student->getId() . '&tgl_code=' . $tgl_code . '&tgl=' . $tanggal . '&model=' . $this->getRequestParameter('payment_model_id'));
 }