मेरी साइट पर क्रेडिट सिस्टम होने वाला है जो मूल रूप से क्रेडिट कार्ड की तरह काम करता है। प्रत्येक उपयोगकर्ता की असीमित क्रेडिट सीमा होती है, लेकिन प्रत्येक सप्ताह के अंत में, उन्हें इसे भुगतान करना होगा। उदाहरण के लिए, कोई उपयोगकर्ता 1 मार्च और 7 वीं के बीच कई खरीदारी कर सकता है, और फिर 7 मार्च के अंत में, उन्हें एक चालान ईमेल किया जाएगा जो सप्ताह के दौरान उनकी सभी खरीदारियां सूचीबद्ध करता है और कुल 14 वें के कारण होता है। अगर वे इसे भुगतान नहीं करते हैं, तो उनका खाता तब तक निष्क्रिय हो जाता है जब तक वे ऐसा नहीं करते। मैं बस इसे लागू करने के तरीके के आसपास अपने सिर को लपेटने की कोशिश कर रहा हूं।क्रेडिट कार्ड सिस्टम कार्यान्वयन?
मेरे पास उनकी सभी खरीदारियों की एक सूची है, यह कोई समस्या नहीं है, लेकिन मैं बस यह पता लगाने की कोशिश कर रहा हूं कि इसके साथ क्या किया जाए। 7 वें दिन के अंत में, मैं एक चालान उत्पन्न करने के लिए एक क्रोनबॉज स्थापित कर सकता था, जिसमें मूल रूप से एक आईडी और देय तिथि होगी, और फिर चालान में सभी खरीदारियों को जोड़ने के लिए मुझे कई से अधिक टेबल की आवश्यकता होगी । फिर जब कोई उपयोगकर्ता अपने खाते में पैसा जोड़ता है, तो मुझे लगता है कि यह उनके वर्तमान बकाया चालान के खिलाफ लागू है? और क्या होगा यदि वे एक नए चालान के आसपास अपने चालान का भुगतान नहीं करते हैं, तो अब उनके पास 2 उत्कृष्ट हैं, मुझे कैसे पता चलेगा कि इसे किसके खिलाफ लागू करना है? या क्या मैं किसी भी पिछले बकाया चालान के लिए क्रोनबॉज चेक करता हूं, उन्हें रद्द करता हूं, और नए चालान में "बैलेंस फॉरवर्ड (+ ब्याज)" के रूप में एक नया आइटम जोड़ता हूं? चालान के खिलाफ आप पैसे कैसे लागू करेंगे? क्या प्रत्येक भुगतान को चालान से जोड़ा जाना चाहिए, या क्या मैं इसे अपने खाते के क्रेडिट में जमा कर सकता हूं, और फिर किसी भी तरह से भुगतान किया गया है कि क्या भुगतान किया गया है और क्या नहीं है? क्या होगा यदि वे अपने चालान उत्पन्न होने से पहले, अग्रिम भुगतान करते हैं? क्या मैं इसे पीढ़ी पर चालान से या अपने सप्ताह के अंत में अपने क्रेडिट से कटौती करता हूं? ऐसा करने के कई तरीके हैं ...
क्या कोई वर्णन कर सकता है कि वे किस दृष्टिकोण को लेंगे?
यदि कोई दिलचस्पी लेता है, तो मेरा चालान मॉडल वर्तमान में निम्नानुसार दिखता है (Django में)। इनवॉइसइटम एक रिवर्स आईडी द्वारा वास्तविक "उत्पादों" से जुड़े होते हैं (एफके उत्पाद पर है, चालान आइटम नहीं है ताकि विभिन्न आइटम प्रकारों (विभिन्न तालिकाओं) को अनुमति दी जा सके), लेकिन मुझे लगता है कि मैं इसे चारों ओर स्विच करने जा रहा हूं।
class Invoice(models.Model):
user = models.ForeignKey(User, related_name='invoices')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
closed_date = models.DateTimeField(null=True, blank=True)
due_date = models.DateTimeField(default=_next_weekday())
payment_date = models.DateTimeField(null=True, blank=True) # date the invoice was fully paid
total_payments = CurrencyField(default=0)
interest_charges = CurrencyField(default=0)
@property
def days_overdue(self):
dt = self.due_date - datetime.date.today()
return dt.days if dt.days > 0 else 0
@property
def item_total(self):
return self.items.filter(amount__gt=0).aggregate(t=Sum('amount'))['t'] or Decimal('0.00')
@property
def daily_interest(self):
return _round((self.item_total - self.total_payments) * settings.INTEREST_RATE/Decimal('365.242199'))
@property
def subtotal(self):
return self.item_total + self.interest_charges
@property
def tax(self):
return _round(self.subtotal * settings.GST)
@property
def total(self):
return self.subtotal + self.tax
@property
def balance_owing(self):
return self.total - self.total_payments
@property
def is_paid(self):
return self.payment_date != None
@property
def is_open(self):
return self.closed_date == None
@property
def is_overdue(self):
return not self.is_paid and self.due_date < datetime.date.today()
class InvoiceItem(models.Model):
invoice = models.ForeignKey(Invoice, related_name='items')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
description = models.CharField(max_length=200)
trans_date = models.DateTimeField(verbose_name='transaction date')
amount = CurrencyField()
मैं एक crontab हर रात आधी रात को चलाने के लिए सभी अतिदेय आइटम के लिए ब्याज शुल्क जोड़ने के लिए की स्थापना की है, और चालान हर शुक्रवार की सुबह बाहर भेज रहे हैं।
शेष राशि के साथ, आप इस बात का ट्रैक नहीं रख सकते कि क्या अतिदेय है और किस पर ब्याज लेना है? – mpen
लगता है जैसे मुझे ओपन आइटम एकाउंटिंग के साथ जाने की जरूरत है, यह जानने के लिए कि यह कब अतिदेय है ... यह लागू करने के लिए मजेदार होगा! आपकी मदद के लिए बहुत बहुत धन्यवाद, इच्छा है कि मैं आपको कई बार बढ़ा सकता हूं। – mpen
बस नए चालान के बारे में स्पष्टीकरण जोड़ा गया। शेष राशि के साथ, आमतौर पर अवधि के अंत में आपके क्रेडिट कार्ड की तरह शेष राशि पर कोई ब्याज लगाया जाता है। मैं खुली वस्तु लेखांकन का उपयोग करता हूं क्योंकि यह भुगतान के इतिहास पर बेहतर अनाज नियंत्रण प्रदान करता है (आप जानते हैं कि आपका ग्राहक वास्तव में क्या कर रहा है, न केवल सब कुछ एक बड़ी बाल्टी में डाल रहा है)। हालांकि, बैलेंस अग्रेषण लेखांकन फोन बिल, क्रेडिट कार्ड इत्यादि जैसी चीजों के लिए उपयुक्त है। यह आपके उपयोग के मामले पर निर्भर करता है। –