Skip to content

Commit f0b43a8

Browse files
committed
Bill/Invoice Delete Action Clean Up
1 parent 82be96f commit f0b43a8

File tree

2 files changed

+127
-129
lines changed

2 files changed

+127
-129
lines changed

django_ledger/models/bill.py

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from django.core.exceptions import ValidationError, ObjectDoesNotExist
2929
from django.db import models, transaction, IntegrityError
3030
from django.db.models import Q, Sum, F, Count
31-
from django.db.models.signals import pre_save, pre_delete
31+
from django.db.models.signals import pre_save
3232
from django.shortcuts import get_object_or_404
3333
from django.urls import reverse
3434
from django.utils.timezone import localdate, localtime
@@ -1587,57 +1587,57 @@ def delete(self, force_db_delete: bool = False, using=None, keep_parents=False):
15871587
)
15881588
return super().delete(using=using, keep_parents=keep_parents)
15891589

1590-
def mark_as_delete(self, **kwargs):
1591-
"""
1592-
Deletes BillModel from DB if possible. Raises exception if can_delete() is False.
1593-
"""
1594-
return self.delete()
1595-
1596-
def get_mark_as_delete_html_id(self) -> str:
1597-
"""
1598-
BillModel Mark as Delete HTML ID Tag.
1599-
1600-
Returns
1601-
_______
1602-
1603-
str
1604-
HTML ID as a String.
1605-
"""
1606-
return f'djl-bill-model-{self.uuid}-mark-as-delete'
1607-
1608-
def get_mark_as_delete_url(self, entity_slug: Optional[str] = None) -> str:
1609-
"""
1610-
BillModel Mark-as-Delete action URL.
1611-
1612-
Parameters
1613-
__________
1614-
entity_slug: str
1615-
Entity Slug kwarg. If not provided, will result in addition DB query if select_related('ledger__entity')
1616-
is not cached on QuerySet.
1617-
1618-
Returns
1619-
_______
1620-
str
1621-
BillModel mark-as-delete action URL.
1622-
"""
1623-
if not entity_slug:
1624-
entity_slug = self.ledger.entity.slug
1625-
return reverse('django_ledger:bill-action-mark-as-delete',
1626-
kwargs={
1627-
'entity_slug': entity_slug,
1628-
'bill_pk': self.uuid
1629-
})
1630-
1631-
def get_mark_as_delete_message(self) -> str:
1632-
"""
1633-
Internationalized confirmation message with Bill Number.
1634-
1635-
Returns
1636-
_______
1637-
str
1638-
Mark-as-Delete BillModel confirmation message as a String.
1639-
"""
1640-
return _('Do you want to delete Bill %s?') % self.bill_number
1590+
# def mark_as_delete(self, **kwargs):
1591+
# """
1592+
# Deletes BillModel from DB if possible. Raises exception if can_delete() is False.
1593+
# """
1594+
# return self.delete()
1595+
#
1596+
# def get_mark_as_delete_html_id(self) -> str:
1597+
# """
1598+
# BillModel Mark as Delete HTML ID Tag.
1599+
#
1600+
# Returns
1601+
# _______
1602+
#
1603+
# str
1604+
# HTML ID as a String.
1605+
# """
1606+
# return f'djl-bill-model-{self.uuid}-mark-as-delete'
1607+
#
1608+
# def get_mark_as_delete_url(self, entity_slug: Optional[str] = None) -> str:
1609+
# """
1610+
# BillModel Mark-as-Delete action URL.
1611+
#
1612+
# Parameters
1613+
# __________
1614+
# entity_slug: str
1615+
# Entity Slug kwarg. If not provided, will result in addition DB query if select_related('ledger__entity')
1616+
# is not cached on QuerySet.
1617+
#
1618+
# Returns
1619+
# _______
1620+
# str
1621+
# BillModel mark-as-delete action URL.
1622+
# """
1623+
# if not entity_slug:
1624+
# entity_slug = self.ledger.entity.slug
1625+
# return reverse('django_ledger:bill-action-mark-as-delete',
1626+
# kwargs={
1627+
# 'entity_slug': entity_slug,
1628+
# 'bill_pk': self.uuid
1629+
# })
1630+
#
1631+
# def get_mark_as_delete_message(self) -> str:
1632+
# """
1633+
# Internationalized confirmation message with Bill Number.
1634+
#
1635+
# Returns
1636+
# _______
1637+
# str
1638+
# Mark-as-Delete BillModel confirmation message as a String.
1639+
# """
1640+
# return _('Do you want to delete Bill %s?') % self.bill_number
16411641

16421642
def get_status_action_date(self) -> date:
16431643
"""
@@ -1845,13 +1845,12 @@ def billmodel_presave(instance: BillModel, **kwargs):
18451845

18461846
pre_save.connect(receiver=billmodel_presave, sender=BillModel)
18471847

1848-
1849-
def billmodel_predelete(instance: BillModel, **kwargs):
1850-
ledger_model = instance.ledger
1851-
ledger_model.unpost(commit=False)
1852-
ledger_model.remove_wrapped_model_info()
1853-
ledger_model.itemtransactonmodel_set.all().delete()
1854-
instance.ledger.delete()
1855-
1856-
1857-
pre_delete.connect(receiver=billmodel_predelete, sender=BillModel)
1848+
# def billmodel_predelete(instance: BillModel, **kwargs):
1849+
# ledger_model = instance.ledger
1850+
# ledger_model.unpost(commit=False)
1851+
# ledger_model.remove_wrapped_model_info()
1852+
# ledger_model.itemtransactonmodel_set.all().delete()
1853+
# instance.ledger.delete()
1854+
#
1855+
#
1856+
# pre_delete.connect(receiver=billmodel_predelete, sender=BillModel)

django_ledger/models/invoice.py

Lines changed: 66 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from django.core.exceptions import ValidationError, ObjectDoesNotExist
3030
from django.db import models, transaction, IntegrityError
3131
from django.db.models import Q, Sum, F, Count
32-
from django.db.models.signals import pre_save, pre_delete
32+
from django.db.models.signals import pre_save
3333
from django.shortcuts import get_object_or_404
3434
from django.urls import reverse
3535
from django.utils.timezone import localdate, localtime
@@ -1415,9 +1415,9 @@ def mark_as_canceled(self, date_canceled: date = None, commit: bool = False, **k
14151415
self.invoice_status = self.INVOICE_STATUS_CANCELED
14161416
self.clean()
14171417
if commit:
1418-
self.save()
1419-
self.lock_ledger(commit=True, raise_exception=False)
1418+
self.unlock_ledger(commit=True, raise_exception=False)
14201419
self.unpost_ledger(commit=True, raise_exception=False)
1420+
self.save()
14211421

14221422
def get_mark_as_canceled_html_id(self):
14231423
"""
@@ -1473,60 +1473,60 @@ def delete(self, force_db_delete: bool = False, using=None, keep_parents=False):
14731473
)
14741474
return super().delete(using=using, keep_parents=keep_parents)
14751475

1476-
def mark_as_delete(self, **kwargs):
1477-
"""
1478-
Deletes InvoiceModel from DB if possible. Raises exception if can_delete() is False.
1479-
"""
1480-
if not self.can_delete():
1481-
raise InvoiceModelValidationError(
1482-
f'Invoice {self.invoice_number} cannot be deleted. Must be void after Approved.')
1483-
self.delete(**kwargs)
1484-
1485-
def get_mark_as_delete_html_id(self) -> str:
1486-
"""
1487-
InvoiceModel Mark as Delete URL.
1488-
1489-
Returns
1490-
_______
1491-
1492-
str
1493-
URL as a String.
1494-
"""
1495-
return f'djl-invoice-model-{self.uuid}-mark-as-delete'
1496-
1497-
def get_mark_as_delete_url(self, entity_slug: Optional[str] = None) -> str:
1498-
"""
1499-
InvoiceModel Mark-as-Delete action URL.
1500-
1501-
Parameters
1502-
__________
1503-
entity_slug: str
1504-
Entity Slug kwarg. If not provided, will result in addition DB query if select_related('ledger__entity')
1505-
is not cached on QuerySet.
1506-
1507-
Returns
1508-
_______
1509-
str
1510-
InvoiceModel mark-as-delete action URL.
1511-
"""
1512-
if not entity_slug:
1513-
entity_slug = self.ledger.entity.slug
1514-
return reverse('django_ledger:invoice-action-mark-as-delete',
1515-
kwargs={
1516-
'entity_slug': entity_slug,
1517-
'invoice_pk': self.uuid
1518-
})
1519-
1520-
def get_mark_as_delete_message(self) -> str:
1521-
"""
1522-
Internationalized confirmation message with Invoice Number.
1523-
1524-
Returns
1525-
_______
1526-
str
1527-
Mark-as-Delete InvoiceModel confirmation message as a String.
1528-
"""
1529-
return _('Do you want to delete Invoice %s?') % self.invoice_number
1476+
# def mark_as_delete(self, **kwargs):
1477+
# """
1478+
# Deletes InvoiceModel from DB if possible. Raises exception if can_delete() is False.
1479+
# """
1480+
# if not self.can_delete():
1481+
# raise InvoiceModelValidationError(
1482+
# f'Invoice {self.invoice_number} cannot be deleted. Must be void after Approved.')
1483+
# self.delete(**kwargs)
1484+
#
1485+
# # def get_mark_as_delete_html_id(self) -> str:
1486+
# """
1487+
# InvoiceModel Mark as Delete URL.
1488+
#
1489+
# Returns
1490+
# _______
1491+
#
1492+
# str
1493+
# URL as a String.
1494+
# """
1495+
# return f'djl-invoice-model-{self.uuid}-mark-as-delete'
1496+
#
1497+
# def get_mark_as_delete_url(self, entity_slug: Optional[str] = None) -> str:
1498+
# """
1499+
# InvoiceModel Mark-as-Delete action URL.
1500+
#
1501+
# Parameters
1502+
# __________
1503+
# entity_slug: str
1504+
# Entity Slug kwarg. If not provided, will result in addition DB query if select_related('ledger__entity')
1505+
# is not cached on QuerySet.
1506+
#
1507+
# Returns
1508+
# _______
1509+
# str
1510+
# InvoiceModel mark-as-delete action URL.
1511+
# """
1512+
# if not entity_slug:
1513+
# entity_slug = self.ledger.entity.slug
1514+
# return reverse('django_ledger:invoice-action-mark-as-delete',
1515+
# kwargs={
1516+
# 'entity_slug': entity_slug,
1517+
# 'invoice_pk': self.uuid
1518+
# })
1519+
#
1520+
# def get_mark_as_delete_message(self) -> str:
1521+
# """
1522+
# Internationalized confirmation message with Invoice Number.
1523+
#
1524+
# Returns
1525+
# _______
1526+
# str
1527+
# Mark-as-Delete InvoiceModel confirmation message as a String.
1528+
# """
1529+
# return _('Do you want to delete Invoice %s?') % self.invoice_number
15301530

15311531
# ACTIONS END....
15321532
def get_status_action_date(self):
@@ -1740,13 +1740,12 @@ def invoicemodel_presave(instance: InvoiceModel, **kwargs):
17401740

17411741
pre_save.connect(receiver=invoicemodel_presave, sender=InvoiceModel)
17421742

1743-
1744-
def invoicemodel_predelete(instance: InvoiceModel, **kwargs):
1745-
ledger_model = instance.ledger
1746-
ledger_model.unpost(commit=False)
1747-
ledger_model.remove_wrapped_model_info()
1748-
ledger_model.itemtransactonmodel_set.all().delete()
1749-
instance.ledger.delete()
1750-
1751-
1752-
pre_delete.connect(receiver=invoicemodel_predelete, sender=InvoiceModel)
1743+
# def invoicemodel_predelete(instance: InvoiceModel, **kwargs):
1744+
# ledger_model = instance.ledger
1745+
# ledger_model.unpost(commit=False)
1746+
# ledger_model.remove_wrapped_model_info()
1747+
# ledger_model.itemtransactonmodel_set.all().delete()
1748+
# instance.ledger.delete()
1749+
#
1750+
#
1751+
# pre_delete.connect(receiver=invoicemodel_predelete, sender=InvoiceModel)

0 commit comments

Comments
 (0)