public function getCashOutHistoryTransaction() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $idResto = Generic::mustCheck($_GET['id_restaurant'], "No ID Restaurant Found"); $rt = new MasterRestoTransactionModel(); $arrTrans = $rt->getWhere("id_restaurant='{$idResto}' AND type_transaction='2' ORDER BY datetime_transaction DESC "); $result['transactions'] = array(); foreach ($arrTrans as $trans) { unset($b); $b['id_transaction'] = $trans->id_transaction; $b['id_restaurant'] = $trans->id_restaurant; $b['gross_amount'] = (double) $trans->gross_amount; $b['net_amount'] = (double) $trans->net_amount; $b['type_transaction'] = $trans->type_transaction; $b['datetime_transaction'] = $trans->datetime_transaction; $b['approved'] = $trans->approved == "1"; $result['transactions'][] = $b; } $json['status_code'] = 1; $json['results'] = $result; echo json_encode($json); die; }
public function setCashOutPaid() { $idRequest = Generic::mustCheck($_GET['id_request'], "Required ID Request"); $cashOutModel = new MasterCashOutRequestModel(); $cashOutModel->getByID($idRequest); $restoTrans = new MasterRestoTransactionModel(); $arrRestoTrans = $restoTrans->getWhere("type_transaction = '2' AND id_request = '{$idRequest}'"); if (count($arrRestoTrans) <= 0) { Generic::errorMsg("Transaction not found"); } if ($cashOutModel->status == "1") { Generic::errorMsg("This Request Already Paid"); } $rt = new MasterRestoTransactionModel(); $rt->getByID($arrRestoTrans[0]->id_transaction); $rt->approved = "1"; $rt->save(); $cashOutModel->status = "1"; $cashOutModel->save(); $json['status_code'] = 1; $json['status_message'] = "Request status set to Paid"; echo json_encode($json); die; }
public static function payViaCreditCard($idOrder, $idUser = "") { $restoInitiate = Generic::IsNullOrEmptyString($idUser); $userInitiate = !$restoInitiate; $order = new MasterOrderModel(); $order->getByID($idOrder); //KALO USER INITIATE CEK APA DIA LEADER if ($userInitiate) { $user = new UserModel(); $user->getByID($idUser); if (!Util::isLeader($idOrder, $idUser)) { Generic::errorMsg(Keys::$ERR_PAYMENT_NOT_LEADER); } } else { $idUser = $order->id_user; $user = new UserModel(); $user->getByID($idUser); } //CEK APA PEMBAYARAN PAKE CREDIT CARD if ($order->payment_method != Keys::$PAYMENT_TYPE_CREDIT_CARD) { Generic::errorMsg("This Order Not Using Credit Card as Payment Method"); } Doku_Initiate::$sharedKey = "iMdRs8Iz987Z"; Doku_Initiate::$mallId = "3199"; $invoice = new Invoice($idOrder, true); $params = array('amount' => Generic::dokuMoneyValue($invoice->grandTotal), 'invoice' => $idOrder, 'currency' => '360'); $detailOrders = $invoice->orderDetails; $basket = array(); foreach ($detailOrders as $detailOrder) { $b = array(); $b['name'] = $detailOrder->name_dish; $b['amount'] = Generic::dokuMoneyValue($detailOrder->single_price); $b['quantity'] = $detailOrder->quantity; $b['subtotal'] = Generic::dokuMoneyValue($detailOrder->price); $basket[] = $b; } $words = Doku_Library::doCreateWords($params); $customer = array('name' => $user->full_name, 'data_phone' => $user->phone_no, 'data_email' => $user->email, 'data_address' => $user->district . ',' . $user->city); // $basket[] = array( // 'name' => 'sayur', // 'amount' => '10000.00', // 'quantity' => '1', // 'subtotal' => '10000.00' // ); // $basket[] = array( // 'name' => 'buah', // 'amount' => '10000.00', // 'quantity' => '1', // 'subtotal' => '10000.00' // ); $dataPayment = array('req_mall_id' => Doku_Initiate::$mallId, 'req_chain_merchant' => 'NA', 'req_amount' => $params['amount'], 'req_words' => $words, 'req_purchase_amount' => $params['amount'], 'req_trans_id_merchant' => $params['invoice'], 'req_request_date_time' => date('YmdHis'), 'req_currency' => '360', 'req_purchase_currency' => '360', 'req_session_id' => sha1(date('YmdHis')), 'req_name' => $customer['name'], 'req_payment_channel' => '15', 'req_email' => $customer['data_email'], 'req_basket' => $basket, 'req_address' => $customer['data_address'], 'req_token_payment' => $user->payment_token, 'req_customer_id' => $idUser); $response = Doku_Api::doDirectPayment($dataPayment); if ($response->res_response_code == '0000') { $status = "SUCCESS"; $order->status_payment = Keys::$PAYMENT_STATUS_PAID; $order->isPaid = Keys::$YES; $order->load = 1; $order->save(); //success $trans = new MasterRestoTransactionModel(); $trans->id_restaurant = $order->id_restaurant; $trans->id_request = $order->id_order; $trans->gross_amount = $invoice->grandTotal; $trans->type_transaction = "1"; $trans->datetime_transaction = leap_mysqldate(); $trans->approved = "1"; $trans->mr_fee = $invoice->valFeeMR; //doubleval($order->mr_fee);//((double)($arrOrder[0]->grand_total * $resto->mr_fee)) / 100; //TODO LATER CHANGE 3 (BANK FEE) INTO GLOBAL VAR $trans->other_fee = 0; //((double)($arrOrder[0]->grand_total * $resto->cc_fee)) / 100; $trans->bank_disc = $invoice->valDiscBank; //doubleval($order->disc_bank);//$objOrder->disc_bank; $valNetAmount = doubleval($trans->gross_amount - $trans->mr_fee - $trans->other_fee + $trans->bank_disc); $trans->net_amount = $valNetAmount; $trans->save(); //reset user credit to 0 $user = new UserModel(); $user->getByID($idUser); $user->credit = 0; $user->save(); } else { $status = "FAILED"; } $results['status'] = $status; $results['res_token_id'] = $user->payment_token; $results['invoice_no'] = $idOrder; $results['id_user'] = $idUser; $results['res_response_code'] = $response->res_response_code; $results['doku_results'] = $response; // $results['data_payment'] = $dataPayment; // pr($results); if ($status == "SUCCESS") { return array("success" => 1, $results); } else { return array("success" => 0, $results); } // Generic::finish($results); }
public function payment() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $json = array(); $json['status_code'] = 1; $id_user = isset($_GET['id_user']) ? addslashes($_GET['id_user']) : ""; if (!$id_user) { Generic::errorMsg("Please login!"); } if (!User::checkUserID($id_user)) { Generic::errorMsg("ID User not found!"); } $id_order = isset($_GET['id_order']) ? addslashes($_GET['id_order']) : ""; if (!$id_order) { Generic::errorMsg("No id order found!"); } $objOrder = new MasterOrderModel(); $arrOrder = $objOrder->getWhere("id_order='{$id_order}' AND id_user='******' AND status_payment='0'"); if (count($arrOrder) == 0) { $arrOrder = $objOrder->getWhere("id_order='{$id_order}' AND id_user='******' AND status_payment='1'"); if (count($arrOrder) > 0) { Generic::errorMsg("The bill is paid!"); } } Generic::checkCountWithMsg($arrOrder, "You are not authorized to pay the bill"); $arrOrder[0]->status_payment = "1"; $arrOrder[0]->load = 1; $id_update = $arrOrder[0]->save(); if (!$id_update) { Generic::errorMsg("Update failed!"); } ////////////////////PUNYA SENDY $resto = new MasterRestaurantModel(); $resto->getByID($arrOrder[0]->id_restaurant); $trans = new MasterRestoTransactionModel(); $trans->id_restaurant = $arrOrder[0]->id_restaurant; $trans->id_request = $arrOrder[0]->id_order; $trans->gross_amount = $arrOrder[0]->grand_total; $trans->type_transaction = "1"; $trans->datetime_transaction = leap_mysqldate(); $trans->approved = "1"; $trans->mr_fee = (double) ($arrOrder[0]->grand_total * $resto->mr_fee) / 100; //TODO LATER CHANGE 3 (BANK FEE) INTO GLOBAL VAR $trans->other_fee = (double) ($arrOrder[0]->grand_total * $resto->cc_fee) / 100; $trans->bank_disc = $objOrder->disc_bank; $trans->net_amount = $trans->gross_amount - $trans->mr_fee - $trans->other_fee + $trans->bank_disc; $trans->save(); $json['results']['messages'] = "Payment success"; echo json_encode($json); die; }