How to generate auto generate unique serial number by date and also It will be generate serial vise after delete in django

Viewed 29
  • I have to generate serial number like TES-0922-1,TES-0922-2 and so on....

  • here TES is (company_lable) 0922 is (month and year) 1,2 is (serial number)

  • I wish to generate unique number by date . If today is month 9 and year 22 and I am generating new data of this month then my serial number will be TES-0922-01.

  • Also If I have serial numbers TES-0922-01,TES-0922-02,TES-0922-03 and If I am deleting TES-0922-01 from them. afterwards when I creating new data my serial number will be TES-0922-04

  • Also If I have serial numbers TES-0922-01,TES-0922-02,TES-0922-03,TES-0922-04 and If I am deleting TES-0922-01, TES-0922-04 from them. afterwards when I creating new data my serial number will be TES-0922-04

Note : I am saving that data in the database and handling them by django queryset.

What I did is mentioned below but Its not working properly. Because I am counting my data by django queryset.

views.py

def sales_invoice(request):

current_time = datetime.datetime.now() 
latest_year = current_time.year
year=str(latest_year)[-2:]

latest_month = current_time.month
month="%02d" % (latest_month)

company_label= Company_Setup.objects.get(id=request.session['company_id'])
existing_label=Sales_Invoice.objects.filter(company=company_label).all()


if not existing_label:
    gen_invoice_number=f"{company_label}-{month}{year}-1"
else:
    total_sales = Sales_Invoice.objects.filter(company=company_label).all().count() + 1
    gen_invoice_number=f"{company_label}-{month}{year}-{total_sales}"
0 Answers
Related