From 4057c3ffd70d42b8f1ad09ace4ce599f96a47790 Mon Sep 17 00:00:00 2001
From: har0ke <dev@ohargens.de>
Date: Wed, 25 Sep 2019 16:10:56 +0200
Subject: [PATCH] Update outgoinginvoice date when frozen.

---
 main/models.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/main/models.py b/main/models.py
index 9b35c39..0f133c2 100644
--- a/main/models.py
+++ b/main/models.py
@@ -226,7 +226,10 @@ class Consumption(InvoiceDependencies, models.Model, FieldTrackerMixin):
                 [Inventory.get_next_inventory_by_date(self.date, True)])
 
 
-class OutgoingInvoice(models.Model):
+class OutgoingInvoice(models.Model, FieldTrackerMixin):
+
+    track_fields = ["is_frozen"]
+
     inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE)
     # OutgoingInvoice.date: the date invoice was issued
     # use inventory.date for billing period
@@ -289,6 +292,11 @@ class OutgoingInvoice(models.Model):
         return OutgoingInvoice.objects_all.filter(
             ~Q(total=F("correction_of__total")) & Q(correction_of__is_frozen=True, is_frozen=False))
 
+    def save(self, *args, **kwargs):
+        if self.is_frozen and self.is_frozen != self.is_frozen_original:
+                self.date = datetime_now_tz()
+        super(OutgoingInvoice, self).save(*args, **kwargs)
+
 
 class OutgoingInvoiceProductPosition(models.Model):
     product = models.ForeignKey(Product, on_delete=models.CASCADE)