请选择 进入手机版|继续访问电脑版
返回列表 发新帖

关于退款金额无法退运费的问题修改方式

dianjilv 发表于2018-4-29 03:22:06 [复制链接] 显示全部楼层 阅读模式 回复:1 查看:1326
/data/service/Order/OrderGoods.php

搜索
”// 查询订单项的操作日志”
把 $order_goods_info['refund_real_money'] = $this->orderGoodsRefundMoney($order_goods_id); 改成

        $order_goods = new NsOrderGoodsModel();
        $order_other_pay_money = $order_goods->getInfo([
            'order_goods_id' => $order_goods_id
        ], 'refund_real_money');

        $order_goods_info['refund_real_money'] = $order_other_pay_money['refund_real_money'];


——————————————————————————————————————————

搜索
“获取订单项实际可退款金额”,替换整段
    public function orderGoodsRefundMoney($order_goods_id)
    {
        $order_goods = new NsOrderGoodsModel();
        $order_goods_info = $order_goods->getInfo([
            'order_goods_id' => $order_goods_id
        ], 'order_id,sku_id,goods_money,point_exchange_type');
        $order_goods_promotion = new NsOrderGoodsPromotionDetailsModel();
        $promotion_money = $order_goods_promotion->where([
            'order_id' => $order_goods_info['order_id'],
            'sku_id' => $order_goods_info['sku_id']
        ])->sum('discount_money');
        if (empty($promotion_money)) {
            $promotion_money = 0;
        }
        $money = $order_goods_info['goods_money'] - $promotion_money;
        // 计算其他方式支付金额
        $order = new NsOrderModel();
        $order_other_pay_money = $order->getInfo([
            'order_id' => $order_goods_info['order_id']
        ], 'order_money,point_money,user_money,coin_money,user_platform_money,tax_money,shipping_money,pay_money');
        $all_other_pay_money = $order_other_pay_money['point_money'] + $order_other_pay_money['user_money'] + $order_other_pay_money['coin_money'] + $order_other_pay_money['user_platform_money'] - $order_other_pay_money['tax_money'];
        if ($all_other_pay_money != 0) {
            $other_pay = $money / ($order_other_pay_money['order_money'] - $order_other_pay_money['shipping_money'] - $order_other_pay_money['tax_money']) * $all_other_pay_money;
            $money = $money - round($other_pay, 2);
        }

        if ($order_other_pay_money['shipping_money'] > 0){
             $money = $money + $order_other_pay_money['shipping_money'];
        }

        if ($money < 0) {
            $money = 0;
        }

        //兑换类型为 积分兑换
        if($order_goods_info["point_exchange_type"]==2 && $order_other_pay_money['pay_money'] || $order_goods_info["point_exchange_type"]==3){
            $money = 0;
        }

        return $money;
    }

bnm 发表于2018-4-29 10:53:34 显示全部楼层 沙发
亲亲  这里是多商户问题反馈专贴,如果您是单用户有问题,请将问题反馈到指定版块,如您是多商户,请忽略该信息

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于NiuShop
NiuShop简介
常见问题
联系NiuShop
产品与服务
开源商城案例
行业商城方案
商城系统手册
商城资讯
公司新闻
行业资讯
业界视点
咨询我们
QQ讨论群: 29507902
联系方式:4008867993
快速回复 返回顶部 返回列表