<?php @(include_once '../settings/autoload.php'); /* @include_once '../../ws/class/lib.class.php'; @include_once '../../ws/class/ipayment.class.php'; @include_once '../../ws/class/payment.class.php'; @include_once '../../ws/class/raven_config_demo.php'; @include_once '../../ws/class/ravenrequest.class.php'; @include_once '../../ws/class/payment_'.$orderModel->payment_type.'.class.php'; */ $orders = array('1081612'); $ordersRefund = array(); $countRefunded = '6.99'; foreach ($orders as $orderID) { $orderModel = Order::model()->findByPk($orderID); $paymentAPI = new PaymentAPI(); $response = $paymentAPI->refundOrder($orderModel, $countRefunded); if ($response->status = PaymentAPIResponse::SUCCESS_STATUS && ($response->attemptStatus = Attempt::SUCCESS_STATUS)) { $orderModel->payment_total -= $countRefunded; $orderModel->amount_refunded = $countRefunded; $orderModel->save(); $ordersRefund[] = $orderModel->order_id; } } echo '<pre>'; print_r($ordersRefund); echo '</pre>'; die;
function ajaxAction() { if (!isset($_POST['ajax'])) { throw new AFHttpException(404, 'page_not_found'); } if ($this->access->actionAccess('update')) { /* DEPRECATED BECAUSE ITS UPDATED ON SPECIFIC PAGES if(isset($_POST['update_customer_information'])) { if(isset($_POST['CustomerModel'])) { $customerModel=new Customer(); $customerModel->fillFromArray($_POST['CustomerModel'], false); $customerModel->model_uset_id = $this->user->user_id; $customerModel->save(false); } if(isset($_POST['ShippingAddress'])) { $sAddressModel=new Address(); $sAddressModel->fillFromArray($_POST['ShippingAddress'], false); $sAddressModel->model_uset_id = $this->user->user_id; $sAddressModel->save(false); } if(isset($_POST['BillingAddress']) && $_POST['ShippingAddress']['address_id']!=$_POST['BillingAddress']['address_id']) { $bAddressModel=new Address(); $bAddressModel->fillFromArray($_POST['BillingAddress'], false); $bAddressModel->model_uset_id = $this->user->user_id; $bAddressModel->save(false); } OrderLog::createLog($this->user->user_id, $_POST['order_id'], 2); Message::echoJsonSuccess(__('customer_information_updated')); } */ if (isset($_POST['order_set_chargeback_amount'])) { $orderID = (int) AF::get($_POST, 'order_id', 0); $amount = AF::get($_POST, 'amount', 0); $type = (int) AF::get($_POST, 'type', 0); $modelOrder = Order::model()->findByPk($orderID); $new_amount = $modelOrder->chargeBackSet($amount, $type, $this->user->user_id); if ($new_amount) { Message::echoJsonSuccess(array('answer' => __('order_chargeback_amount_updated'), 'new_amount' => $new_amount)); } else { $msg = $amount > $modelOrder->maxAmountChargeback ? __('order_chargeback_amount_exceeded') : __('order_chargeback_amount_no_updated'); Message::echoJsonError($msg); } die; /*// we need to make sure the chargeback flag is set. if not, set flag and log it if(!$modelOrder->isFlag('chargeback')) { $modelOrder->addFlags('chargeback'); $modelOrder->save(false); $orderProducts=OrderProducts::getProductsByOrderID($orderID); foreach($orderProducts as $orderProduct) { $orderProduct->removeFlags('recurring'); $orderProduct->save(); } OrderLog::createLog($this->user->user_id, $orderID, 11, 'chargeback'); } if( $modelOrder && in_array($type, array(29, 30)) && $amount <= $modelOrder->maxAmountChargeback && $orderID) { $notes = ($amount) ? $amount : null; OrderLog::createLog($this->user->user_id, $orderID, $type, $notes, $amount); Message::echoJsonSuccess(array('answer'=>__('order_chargeback_amount_updated'), 'new_amount'=>$modelOrder->maxAmountChargeback)); } else { $msg = ($amount > $modelOrder->maxAmountChargeback) ? __('order_chargeback_amount_exceeded') :__('order_chargeback_amount_no_updated') ; Message::echoJsonError($msg); } die;*/ } if (isset($_POST['rma_code'])) { $orderModel = new Order(); $orderModel->order_id = (int) AF::get($_POST, 'order_id', 0); $orderModel->rma_code = (int) AF::get($_POST, 'rma_code', 0); $orderModel->setRMA($this->user->user_id); Message::echoJsonSuccess($orderModel->rma_number); die; } if (isset($_POST['order_refund']) && $this->access->actionAccess('order_refund')) { $orderID = AF::get($_POST, 'order_id'); $amountRefunded = AF::get($_POST, 'amount_refunded', 0); $model = Order::model()->findByPk($orderID); $model->refunded($amountRefunded); if (!$model->errors) { $paymentAPI = new PaymentAPI(); $response = $paymentAPI->refundOrder($model, $amountRefunded); if ($response->status == 'success') { if ($amountRefunded == $model->max_refund) { $op = OrderProduct::model(); //new OrderProducts('OrderProduct'); $op->cancelRecurring($model->order_id); unset($op); $model->status = 'void'; } $model->amount_refunded = number_format($amountRefunded + $model->amount_refunded, 2); $model->payment_total = number_format($model->payment_total - $amountRefunded, 2); if (!$model->save()) { fb($model->getErrors()); } OrderLog::createLog($this->user->user_id, $model->order_id, 13, $amountRefunded); Event::setEvents($model->order_id, 7); Message::echoJsonSuccess(__('order_is_refunded')); } else { Message::echoJsonError(__('order_not_refunded') . ' ' . $response->alerts2string . ' ' . $response->errors2string); } } else { Message::echoJson('error', array('errors' => $model->errors, 'message' => $model->errors2string)); } } if (isset($_POST['order_void']) && $this->access->actionAccess('order_refund')) { $orderLogsModel = new OrderLog(); $orderLogsModel->user_id = $this->user->user_id; $orderLogsModel->action = 3; if (!$orderLogsModel->canVoid()) { Message::echoJsonSuccess(__('you_cant_do_void')); } $orderID = AF::get($_POST, 'order_id'); $model = Order::model()->findByPk($orderID); if ($model->status == 'void') { Message::echoJsonSuccess(__('order_is_voided')); } $paymentAPI = new PaymentAPI(); $response = $paymentAPI->voidOrder($model); if ($response->status == 'success') { // unset recurring products $orderProducts = new OrderProducts('OrderProduct'); $orderProducts->cancelRecurring($model->order_id); unset($orderProducts); $model->status = 'void'; $model->amount_refunded = $model->payment_total; $model->payment_total = '0'; $model->save(); OrderLog::createLog($this->user->user_id, $model->order_id, 3, __('success') . ' ' . $model->amount_refunded); Event::setEvents($this->order->order_id, 6); Message::echoJsonSuccess(__('order_is_voided')); } else { OrderLog::createLog($this->user->user_id, $model->order_id, 3, __('failed') . ' ' . $model->max_refund); Message::echoJsonError(__('order_not_void') . ' ' . $response->alerts2string . ' ' . $response->errors2string); } } if (isset($_POST['rebill_now']) && $this->access->actionAccess('order_rebill_now')) { $orderID = AF::get($_POST, 'order_id'); $productID = AF::get($_POST, 'product_id'); if (!$orderID || !$productID) { Message::echoJsonSuccess(__('invalid_request')); } $newOrderID = Order::rebillNow($orderID, $productID); if ($newOrderID) { $orderModel = Order::model()->findByPk($newOrderID); $paymentAPI = new PaymentAPI(); $response = $paymentAPI->payOrder($orderModel, $orderModel->amount); if ($response->status == 'success') { $orderModel->status = 'ok'; $orderModel->removeFlags('pay'); $orderModel->addFlags('paid'); $orderModel->payment_total = $response->attemptModel->amount; $orderModel->save(); //update recurring_next $msql = SafeMySQL::getInstance(); $sql = "UPDATE `orders_products`\n JOIN `products` USING(`product_id`)\n SET `orders_products`.`recurring_next` = DATE_ADD(NOW(), INTERVAL `products`.`subscription_days` DAY)\n WHERE FIND_IN_SET('recurring', `orders_products`.`flags`)>0\n AND `orders_products`.`order_id`=?i"; $msql->query($sql, $orderModel->order_id); // log action on parent order for visibility OrderLog::createLog($this->user->user_id, $orderID, 27, __('success') . ' ' . $orderModel->payment_total . ' - Child Order ' . $orderID); OrderLog::createLog($this->user->user_id, $orderModel->order_id, 27, __('success') . ' ' . $orderModel->payment_total); Event::setEvents($orderModel->order_id, 6); Message::echoJsonSuccess(__('order_is_rebill')); } else { $orderModel->status = 'error'; //delete the pay flag $orderModel->removeFlags('pay'); if ($orderModel->billing_cycle > 0) { $orderModel->addFlags('retry'); } $orderModel->save(); // log failed attempt on parent order OrderLog::createLog($this->user->user_id, $orderID, 27, __('failed') . ' ' . $orderModel->amount . ' - Child Order ' . $orderID); OrderLog::createLog($this->user->user_id, $orderModel->order_id, 27, __('failed') . ' ' . $orderModel->amount); Message::echoJsonError(__('order_not_rebill') . ' ' . $response->alerts2string . ' ' . $response->errors2string); } } else { Message::echoJsonSuccess(__('order_rebill_now_error')); } //$orderLogsModel=new OrderLog(); //$orderLogsModel->user_id=$this->user->user_id; //$orderLogsModel->action=27; /* $orderLogsModel=new OrderLog(); $orderLogsModel->user_id=$this->user->user_id; $orderLogsModel->action=3; if(!$orderLogsModel->canVoid()) Message::echoJsonSuccess(__('you_cant_do_void')); $orderID = AF::get($_POST, 'order_id'); $model=Order::model()->findByPk($orderID); if($model->status=='void') Message::echoJsonSuccess(__('order_is_voided')); $paymentAPI=new PaymentAPI(); $response=$paymentAPI->voidOrder($model); if($response->status=='success') { // unset recurring products $orderProducts = new OrderProducts('OrderProduct'); $orderProducts->cancelRecurring($model->order_id); unset($orderProducts); $model->status = 'void'; $model->amount_refunded = $response->attemptModel->amount; $model->save(); OrderLog::createLog($this->user->user_id, $model->order_id, 3, __('success').' '.$model->amount_refunded); Event::setEvents($this->order->order_id, 6); Message::echoJsonSuccess(__('order_is_voided')); } else { OrderLog::createLog($this->user->user_id, $model->order_id, 3, __('failed').' '.$model->max_refund); Message::echoJsonError(__('order_not_void').' '.$response->alerts2string.' '.$response->errors2string); } */ } } die; }