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')); }