def getPaymentDetail(): listcus = getCustomerInfo() allpaymentdetaildetail = PaymentDetail.objects() paymentdetailafterfilter = [] for l in listcus: for pmd in allpaymentdetaildetail: if(pmd.cus_id == l.cus_id ): paymentdetailafterfilter.append(pmd) return paymentdetailafterfilter
def analyze_payment(vCus_id,vcus_debit_id,vAmount,vPayment_id): try: vToday = datetime.now().strftime("%y-%m-%d-%H-%M-%S") vRemainAmount = vAmount lscdt = CusDebitDetail.objects(cus_debit_id = vcus_debit_id,status=1).order_by('loan_date') pdt = PaymentDetail.objects() for cd in lscdt: payment_amount = 0.00 current_debit = cd.end_cycle if vRemainAmount > 0: if cd.end_cycle >= vAmount: payment_amount = vAmount cd.payment = payment_amount remain_debit = cd.end_cycle - payment_amount cd.end_cycle = remain_debit vRemainAmount = 0.00 else: payment_amount = cd.end_cycle cd.payment = payment_amount remain_debit = cd.end_cycle - payment_amount cd.end_cycle = remain_debit vRemainAmount = vAmount - payment_amount #Insert into payment detail pdt.payment_id = vPayment_id pdt.cus_debit_id = vcus_debit_id pdt.cus_id = vCus_id pdt.create_date= vToday pdt.debit = current_debit pdt.payment = payment_amount pdt.remain = pdt.debit - pdt.payment pdt.status = 1 pdt.save() #End for if vRemainAmount > 0: analyze_payment(vCus_id,vcus_debit_id,vRemainAmount,vPayment_id) except Exception as ex: print(ex)