public function addCreditPayment($data) { $this->db->trans_begin(); try { $salesTransactionModel = new Sales_transaction_model(); $salesTransaction = $salesTransactionModel->fetchById($data['salesTransactionId']); $updatedPaidAmount = (double) $data['amount'] + (double) $salesTransaction['totalAmountPaid']; if ($updatedPaidAmount > $salesTransaction['totalPrice']) { throw new Exception('Amount paid will exceed total transaction amount.'); } $creditPaymentModel = new Credit_payment_model(); $creditPaymentModel->customerId = $data['customerId']; $creditPaymentModel->salesTransactionId = $data['salesTransactionId']; $creditPaymentModel->amount = $data['amount']; $creditPaymentModel->insert(); $updateData = array('totalAmountPaid' => $updatedPaidAmount); if ($updatedPaidAmount == $salesTransaction['totalPrice']) { $updateData['isFullyPaid'] = 1; } $this->db->where('salesTransactionId', $data['salesTransactionId']); $this->db->update('SalesTransaction', $updateData); } catch (Exception $e) { $this->db->trans_rollback(); throw new Exception($e->getMessage()); } $this->db->trans_commit(); }
private function _createCreditPayment($data) { if ($data['totalPrice'] == $data['amountPaid'] || $data['amountPaid'] == 0) { return; } Debug::log('creating credit payment record.'); $creditPayment = new Credit_payment_model(); $creditPayment->customerId = $data['customerId']; $creditPayment->salesTransactionId = $data['salesTransactionId']; $creditPayment->amount = $data['amountPaid']; $creditPayment->insert(); }