Browse Source

Merge branch 'master' of git.illyse.org:coin

Baptiste Jonglez 11 years ago
parent
commit
a1bf7c9988
2 changed files with 55 additions and 20 deletions
  1. 7 4
      coin/billing/admin.py
  2. 48 16
      coin/billing/models.py

+ 7 - 4
coin/billing/admin.py

@@ -8,10 +8,13 @@ class InvoiceDetailInline(admin.StackedInline):
     extra = 0
 
 
+class PaymentInline(admin.StackedInline):
+    model = Payment
+    extra = 0
+
+
 class InvoiceAdmin(admin.ModelAdmin):
-    inlines = [InvoiceDetailInline]
+    inlines = [InvoiceDetailInline, PaymentInline]
 
 
-admin.site.register(Invoice,InvoiceAdmin)
-admin.site.register(InvoiceDetail,)
-admin.site.register(Payment,)
+admin.site.register(Invoice,InvoiceAdmin)

+ 48 - 16
coin/billing/models.py

@@ -1,6 +1,9 @@
 # -*- coding: utf-8 -*-
+import datetime
+import calendar
 from django.db import models
-from coin.offers.models import Offer 
+from coin.offers.models import Offer
+
 
 class Invoice(models.Model):
 
@@ -11,28 +14,57 @@ class Invoice(models.Model):
     )
 
     status = models.CharField(max_length=50, choices=INVOICES_STATUS_CHOICES,
-                              default='open')
-    amount = models.DecimalField(max_digits=5, decimal_places=2)
-    date = models.DateField(auto_now_add=True, null=True)
-    period_from = models.DateField(auto_now_add=False, null=True)
-    period_to = models.DateField(auto_now_add=False, null=True)
-    date_due = models.DateField(auto_now_add=False, null=True)
-    offer = models.ForeignKey(Offer)
+                              default='open',
+                              verbose_name='Statut')
+    amount = models.DecimalField(max_digits=5, decimal_places=2,
+                                 verbose_name='Montant')
+    date = models.DateField(default=datetime.date.today, null=True)
+    period_from = models.DateField(
+        default=datetime.date(datetime.date.today().year,
+                              datetime.date.today().month, 1),
+        null=True,
+        verbose_name='Début de période de facturation')
+    period_to = models.DateField(
+        default=(datetime.date(datetime.date.today().year,
+                               datetime.date.today().month + 1, 1) -
+                 datetime.timedelta(days=1)),
+        null=True,
+        verbose_name='Fin de période de facturation')
+    date_due = models.DateField(
+        default=(datetime.date(datetime.date.today().year,
+                               datetime.date.today().month + 1, 1) -
+                 datetime.timedelta(days=1)),
+        null=True,
+        verbose_name='Date d\'échéance de paiement')
+    offer = models.ForeignKey(Offer, verbose_name='Offre')
+
+    class Meta:
+        verbose_name = 'facture'
+
 
 class InvoiceDetail(models.Model):
 
     label = models.CharField(max_length=100)
-    amount = models.DecimalField(max_digits=5, decimal_places=2)
-    quantity = models.IntegerField(null=True)
-    tax = models.IntegerField(null=True)
-    invoice = models.ForeignKey(Invoice)
+    amount = models.DecimalField(max_digits=5, decimal_places=2,
+                                 verbose_name='Montant')
+    quantity = models.IntegerField(null=True, verbose_name='Quantité')
+    tax = models.IntegerField(null=True, default=0, verbose_name='TVA')
+    invoice = models.ForeignKey(Invoice, verbose_name='Facture')
 
     def __unicode__(self):
         return self.label
 
+    class Meta:
+        verbose_name = 'détail de facture'
+
 
 class Payment(models.Model):
-    payment_means = models.CharField(max_length=100, null=True)
-    amount = models.DecimalField(max_digits=7, decimal_places=2, null=True)
-    date = models.DateField(auto_now_add=True)
-    invoce = models.ForeignKey(Invoice)
+    payment_means = models.CharField(max_length=100, null=True,
+                                     verbose_name='Moyen de paiement')
+    amount = models.DecimalField(max_digits=7, decimal_places=2, null=True,
+                                 verbose_name='Montant')
+    date = models.DateField(default=datetime.date.today)
+    invoce = models.ForeignKey(Invoice, verbose_name='Facture')
+
+    class Meta:
+        verbose_name = 'paiement'