Пример #1
0
    def _update_buy_unpaid(stock_id: int, total: Decimal):
        total = abs(total)

        for unpaid_info in buy_handler.get_unpaid_gt_zero(stock_id):
            unpaid_in_db = Decimal(unpaid_info[1])
            if total >= unpaid_in_db:
                new_unpaid = 0.0
                new_paid = unpaid_in_db + Decimal(unpaid_info[2])
                total -= unpaid_in_db
            else:
                new_unpaid = unpaid_in_db - total
                new_paid = total + Decimal(unpaid_info[2])
            buy_handler.update_paid_info(unpaid_info[0], new_unpaid, new_paid)

            if not total:
                return
Пример #2
0
def update_buy_unpaid(stock_id: int, total: Decimal, supplier_id: int,
                      payment: int):
    total = abs(total)

    for unpaid_info in buy_handler.get_unpaid_gt_zero(stock_id, supplier_id):
        unpaid_in_db = Decimal(unpaid_info['unpaid'])
        if total >= unpaid_in_db:
            new_unpaid = 0.0
            now_paid = unpaid_in_db
            total -= unpaid_in_db
        else:
            new_unpaid = unpaid_in_db - total
            now_paid = total
            total = 0.0
        total_paid = Decimal(unpaid_info['paid']) + now_paid

        buy_id = unpaid_info['id']
        buy_handler.update_paid_info(buy_id, new_unpaid, total_paid)
        supplier_service.add_supplier_payment_detail(buy_id, supplier_id,
                                                     now_paid, new_unpaid,
                                                     payment, True, '退货抵销')

        if not total:
            return
 def _update_buy_pay_info(self, paid: float, unpaid: float, notes: str):
     buy_handler.update_paid_info(self.buy_id, unpaid, paid, notes)