Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 public function fetchDetailed($salesTransactionId)
 {
     if (empty($salesTransactionId)) {
         throw new InvalidArgumentException('salesTransactionId cannot be empty.');
     }
     $salesTransaction = new Sales_transaction_model();
     return $salesTransaction->fetchDetailed($salesTransactionId);
 }