Ejemplo n.º 1
0
 def get_codefee(self):
     """
     获取码商/上游费用
     :return:
     """
     if self.order_obj.paypass in (0, 1):
         # 码商费用以及码商流水
         rate = get_Rate(self.qrcode_obj.userid,
                         paytypeid=self.order_obj.paytype,
                         type="2")
         self.order_obj.codefee = float(
             self.order_obj.confirm_amount) * float(rate)
         upd_bal(userid=self.qrcode_obj.userid,
                 bal=self.order_obj.codefee,
                 up_bal=self.amount,
                 memo="扫码",
                 ordercode=self.order_obj.ordercode,
                 flag=True,
                 upd_business_agent_tot=True)
     else:
         # 上游聚到服务费
         paypass = PayPass.objects.get(paypassid=self.order_obj.paypass)
         rate = get_Rate(paypass.paypassid,
                         paytypeid=self.order_obj.paytype,
                         type="0")
         self.order_obj.codefee = float(
             self.order_obj.confirm_amount) * float(rate)
         paypass.bal = float(paypass.bal) + float(self.order_obj.codefee)
Ejemplo n.º 2
0
    def work_handler_updbal(self,ordercode=None,memo='调账'):
        """
        手工修改余额,传入摘要
        :return:
        """

        if not ordercode :
            raise PubErrorCustom("订单号不能为空")

        self.init_order_obj(ordercode=ordercode)
        self.order_obj.confirm_amount = self.order_obj.amount
        self.amount = self.order_obj.amount

        # 商户技术费
        stand_rate = get_Rate(self.order_obj.userid, paytypeid=self.order_obj.paytype)
        self.order_obj.tech_cost = float(self.order_obj.confirm_amount) * float(stand_rate)
        upd_bal(userid=self.order_obj.userid,
                bal=float(self.order_obj.confirm_amount) - float(self.order_obj.tech_cost), up_bal=self.amount,
                memo=memo, ordercode=self.order_obj.ordercode)

        # AccountHandler(isPay=True,userid=self.order_obj.userid)

        # 代理费用
        agent_free = 0.0
        for item in UserLink.objects.filter(userid=self.order_obj.userid).order_by('-level'):
            rate = get_Rate(item.userid_to, paytypeid=self.order_obj.paytype)
            amount = float(self.order_obj.confirm_amount) * float(stand_rate - rate) if float(
                stand_rate - rate) > 0.0 else 0.0
            if amount > 0.0:
                upd_bal(userid=item.userid_to, bal=amount, up_bal=self.amount, memo=memo,
                        ordercode=self.order_obj.ordercode)

            stand_rate = rate
            agent_free += amount
        self.order_obj.agentfee = agent_free

        if self.order_obj.paypass in (0, 1):
            self.init_qrcode_obj(self.order_obj.qr_id)
            # 码商费用以及码商流水
            rate = get_Rate(self.qrcode_obj.userid, paytypeid=self.order_obj.paytype, type="2")
            self.order_obj.codefee = float(self.order_obj.confirm_amount) * float(rate)
            upd_bal(userid=self.qrcode_obj.userid, bal=self.order_obj.codefee, up_bal=self.amount, memo=memo,
                    ordercode=self.order_obj.ordercode,flag=True,upd_business_agent_tot=True)
        else:
            # 上游聚到服务费
            paypass = PayPass.objects.get(paypassid=self.order_obj.paypass)
            rate = get_Rate(paypass.paypassid, paytypeid=self.order_obj.paytype, type="0")
            self.order_obj.codefee = float(self.order_obj.confirm_amount) * float(rate)
            paypass.bal = float(paypass.bal) + float(self.order_obj.codefee)


        # 咱们自己的收入
        self.order_obj.myfee = float(self.order_obj.tech_cost) - float(self.order_obj.codefee) - float(agent_free)
        if self.order_obj.userid not in [3,20,5]:
            upd_bal(userid=1, bal=self.order_obj.myfee, up_bal=self.amount, memo=memo, ordercode=self.order_obj.ordercode,upd_business_agent_tot=True)

        self.order_obj.save()
Ejemplo n.º 3
0
    def get_agent_free(self):
        """
        获取代理费用
        :return:
        """
        agent_free = 0.0
        for item in UserLink.objects.filter(
                userid=self.order_obj.userid).order_by('-level'):
            rate = get_Rate(item.userid_to,
                            paytypeid=self.order_obj.paytype,
                            isAgent=True,
                            business_userid=self.order_obj.userid)

            amount = 0.0
            if rate > 0.0:
                amount = float(self.order_obj.confirm_amount) * float(rate)
                if amount > 0.0:
                    # upd_bal(userid=item.userid_to, bal=amount, up_bal=self.amount, memo="扫码",
                    #         ordercode=self.order_obj.ordercode)

                    AccountPay(userid=item.userid_to,
                               ordercode=self.order_obj.ordercode,
                               amount=amount).run()

            # self.stand_rate = rate
            print(agent_free, amount, rate)
            agent_free += amount
        self.order_obj.agentfee = agent_free
        print(self.order_obj.agentfee)
Ejemplo n.º 4
0
    def get_tech_cost(self):
        """
        获取商户技术费
        :return:
        """
        self.stand_rate = get_Rate(self.order_obj.userid, paytypeid=self.order_obj.paytype)
        self.order_obj.tech_cost = float(self.order_obj.confirm_amount) * float(self.stand_rate)
        # upd_bal(userid=self.order_obj.userid,
        #         bal=float(self.order_obj.confirm_amount) - float(self.order_obj.tech_cost), up_bal=self.amount,
        #         memo="扫码", ordercode=self.order_obj.ordercode)

        AccountPay(userid=self.order_obj.userid,ordercode=self.order_obj.ordercode,amount=float(self.order_obj.confirm_amount) - float(self.order_obj.tech_cost)).run()
Ejemplo n.º 5
0
    def get_agent_free(self):
        """
        获取代理费用
        :return:
        """
        agent_free = 0.0
        for item in UserLink.objects.filter(
                userid=self.order_obj.userid).order_by('-level'):
            rate = get_Rate(item.userid_to, paytypeid=self.order_obj.paytype)
            amount = float(self.order_obj.confirm_amount) * float(
                self.stand_rate - rate) if float(self.stand_rate -
                                                 rate) > 0.0 else 0.0
            if amount > 0.0:
                upd_bal(userid=item.userid_to,
                        bal=amount,
                        up_bal=self.amount,
                        memo="扫码",
                        ordercode=self.order_obj.ordercode)

            self.stand_rate = rate
            agent_free += amount
        self.order_obj.agentfee = agent_free