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
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)