Пример #1
0
 public static function CouponOtherRefund($order, $coupons)
 {
     global $login_user_id;
     $count = count($coupons);
     if ($order['state'] != 'pay' || $order['origin'] <= 0 || $count <= 0) {
         return 0;
     }
     $state = $order['quantity'] == $count ? 'berefund' : 'normal';
     if ($state == 'berefund') {
         //update credit
         ZCredit::Refund($order['user_id'], $order);
         //update order
         return Table::UpdateCache('order', $order['id'], array('state' => 'unpay', 'rstate' => $state, 'service' => 'cash'));
     } else {
         $money = $order['price'] * $count;
         //update order
         return Table::UpdateCache('order', $order['id'], array('quantity' => array("quantity - {$count}"), 'rstate' => $state, 'origin' => array("origin -{$money}")));
     }
 }
Пример #2
0
 $order = Table::Fetch('order', $id);
 $rid = strtolower(strval($_GET['rid']));
 if ($rid == 'credit') {
     ZFlow::CreateFromRefund($order);
 } else {
     Table::UpdateCache('order', $id, array('service' => 'cash', 'rstate' => 'berefund', 'state' => 'unpay'));
 }
 /* team -- */
 $team = Table::Fetch('team', $order['team_id']);
 team_state($team);
 if ($team['state'] != 'failure') {
     $minus = $team['conduser'] == 'Y' ? 1 : $order['quantity'];
     Table::UpdateCache('team', $team['id'], array('now_number' => array("now_number - {$minus}")));
 }
 /* credit */
 ZCredit::Refund($order['user_id'], $order);
 /* coupons */
 if (in_array($team['delivery'], array('coupon', 'pickup'))) {
     $coupons = Table::Fetch('coupon', array($order['id']), 'order_id');
     foreach ($coupons as $one) {
         Table::Delete('coupon', $one['id']);
     }
 } else {
     if ($team['delivery'] == 'voucher') {
         DB::Update('voucher', array('order_id' => $order['id']), array('order_id' => 0, 'user_id' => 0, 'sms' => 0));
     }
 }
 /* order update */
 Table::UpdateCache('order', $id, array('express_no' => ''));
 log_admin('order', '订单' . $order['id'] . '退款');
 Session::Set('notice', '退款成功');