コード例 #1
0
 public function savePaymentHistory($supplier_id, $payment_amount, $paid_date, $employee_id, $note)
 {
     $payment_id = 0;
     if ($payment_amount > 0) {
         $payment_history = new PaymentHistoryRecv();
         $payment_history->supplier_id = $supplier_id;
         $payment_history->payment_amount = $payment_amount;
         $payment_history->date_paid = $paid_date;
         $payment_history->note = $note;
         $payment_history->employee_id = $employee_id;
         $payment_history->save();
         $payment_id = $payment_history->id;
     }
     return $payment_id;
 }
コード例 #2
0
ファイル: ReceivingPayment.php プロジェクト: soklux/bakou-pos
 public function batchPayment($supplier_id, $employee_id, $account, $total_paid, $paid_date, $note)
 {
     $sql = "SELECT receive_id,receive_time,supplier_name,amount_to_paid\n                FROM (\n                    SELECT t1.receive_id,receive_time,supplier_name,(t1.`sub_total`-IFNULL(t2.payment_amount,0)) amount_to_paid\n                    FROM\n                    (SELECT r.id receive_id,r.`receive_time`,CONCAT(s.first_name,' ',last_name) supplier_name,r.`sub_total`\n                        FROM `receiving` r, `supplier` s\n                        WHERE r.`supplier_id` = s.id\n                        AND s.id=:supplier_id) t1 LEFT JOIN `v_receiving_payment` t2 ON t2.receive_id=t1.receive_id\n                    ) AS t\n                WHERE amount_to_paid>0\n                ORDER BY receive_time";
     $result = Yii::app()->db->createCommand($sql)->queryAll(true, array(':supplier_id' => $supplier_id));
     $paid_amount = $total_paid;
     $transaction = Yii::app()->db->beginTransaction();
     try {
         $payment_id = PaymentHistoryRecv::model()->savePaymentHistory($supplier_id, $total_paid, $paid_date, $employee_id, $note);
         foreach ($result as $record) {
             if ($paid_amount <= $record["amount_to_paid"]) {
                 $payment_amount = $paid_amount;
                 $this->saveReceivePayment($record["receive_id"], $payment_id, $payment_amount, $paid_date, $note);
                 $this->saveAccountRecv($account->id, $employee_id, $record["receive_id"], $payment_amount, $paid_date, $note);
                 break;
             } else {
                 $paid_amount = $paid_amount - $record["amount_to_paid"];
                 $payment_amount = $record["amount_to_paid"];
                 $this->saveReceivePayment($record["receive_id"], $payment_id, $payment_amount, $paid_date, $note);
                 $this->saveAccountRecv($account->id, $employee_id, $record["receive_id"], $payment_amount, $paid_date, $note);
             }
         }
         AccountSupplier::model()->updateAccountBal($account, $total_paid);
         $transaction->commit();
         $message = $payment_id;
     } catch (Exception $e) {
         $transaction->rollback();
         $message = '-1' . $e->getMessage();
     }
     return $message;
 }