Browse Source

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

Baptiste Jonglez 11 years ago
parent
commit
a07995c074

+ 80 - 0
coin/billing/migrations/0003_auto__add_field_invoice_number__chg_field_invoice_date__chg_field_paym.py

@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding field 'Invoice.number'
+        db.add_column(u'billing_invoice', 'number',
+                      self.gf('django.db.models.fields.CharField')(default=0, max_length=25),
+                      keep_default=False)
+
+
+        # Changing field 'Invoice.date'
+        db.alter_column(u'billing_invoice', 'date', self.gf('django.db.models.fields.DateField')(null=True))
+
+        # Changing field 'Payment.date'
+        db.alter_column(u'billing_payment', 'date', self.gf('django.db.models.fields.DateField')())
+
+    def backwards(self, orm):
+        # Deleting field 'Invoice.number'
+        db.delete_column(u'billing_invoice', 'number')
+
+
+        # Changing field 'Invoice.date'
+        db.alter_column(u'billing_invoice', 'date', self.gf('django.db.models.fields.DateField')(auto_now_add=True, null=True))
+
+        # Changing field 'Payment.date'
+        db.alter_column(u'billing_payment', 'date', self.gf('django.db.models.fields.DateField')(auto_now_add=True))
+
+    models = {
+        u'billing.invoice': {
+            'Meta': {'object_name': 'Invoice'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True'}),
+            'date_due': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 28, 0, 0)', 'null': 'True'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'number': ('django.db.models.fields.CharField', [], {'max_length': '25'}),
+            'offer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['offers.Offer']"}),
+            'period_from': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 1, 0, 0)', 'null': 'True'}),
+            'period_to': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 28, 0, 0)', 'null': 'True'}),
+            'status': ('django.db.models.fields.CharField', [], {'default': "'open'", 'max_length': '50'})
+        },
+        u'billing.invoicedetail': {
+            'Meta': {'object_name': 'InvoiceDetail'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'invoice': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['billing.Invoice']"}),
+            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'quantity': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'tax': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True'})
+        },
+        u'billing.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '7', 'decimal_places': '2'}),
+            'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'invoce': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['billing.Invoice']"}),
+            'payment_means': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+        },
+        u'offers.offer': {
+            'Meta': {'object_name': 'Offer'},
+            'billing_period': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'initial_fees': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'period_fees': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['offers.Service']"})
+        },
+        u'offers.service': {
+            'Meta': {'object_name': 'Service'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        }
+    }
+
+    complete_apps = ['billing']

+ 80 - 0
coin/billing/migrations/0004_auto__add_field_invoicedetail_offer__del_field_invoice_offer.py

@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding field 'InvoiceDetail.offer'
+        db.add_column(u'billing_invoicedetail', 'offer',
+                      self.gf('django.db.models.fields.related.ForeignKey')(to=orm['offers.Offer'], null=True),
+                      keep_default=False)
+
+        # Deleting field 'Invoice.offer'
+        db.delete_column(u'billing_invoice', 'offer_id')
+
+
+    def backwards(self, orm):
+        # Deleting field 'InvoiceDetail.offer'
+        db.delete_column(u'billing_invoicedetail', 'offer_id')
+
+
+        # User chose to not deal with backwards NULL issues for 'Invoice.offer'
+        raise RuntimeError("Cannot reverse this migration. 'Invoice.offer' and its values cannot be restored.")
+        
+        # The following code is provided here to aid in writing a correct migration        # Adding field 'Invoice.offer'
+        db.add_column(u'billing_invoice', 'offer',
+                      self.gf('django.db.models.fields.related.ForeignKey')(to=orm['offers.Offer']),
+                      keep_default=False)
+
+
+    models = {
+        u'billing.invoice': {
+            'Meta': {'object_name': 'Invoice'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True'}),
+            'date_due': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 28, 0, 0)', 'null': 'True'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'number': ('django.db.models.fields.CharField', [], {'max_length': '25'}),
+            'period_from': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 1, 0, 0)', 'null': 'True'}),
+            'period_to': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 2, 28, 0, 0)', 'null': 'True'}),
+            'status': ('django.db.models.fields.CharField', [], {'default': "'open'", 'max_length': '50'})
+        },
+        u'billing.invoicedetail': {
+            'Meta': {'object_name': 'InvoiceDetail'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'invoice': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['billing.Invoice']"}),
+            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'offer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['offers.Offer']", 'null': 'True'}),
+            'quantity': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'tax': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True'})
+        },
+        u'billing.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'amount': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '7', 'decimal_places': '2'}),
+            'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'invoce': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['billing.Invoice']"}),
+            'payment_means': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'})
+        },
+        u'offers.offer': {
+            'Meta': {'object_name': 'Offer'},
+            'billing_period': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'initial_fees': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'period_fees': ('django.db.models.fields.DecimalField', [], {'max_digits': '5', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['offers.Service']"})
+        },
+        u'offers.service': {
+            'Meta': {'object_name': 'Service'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        }
+    }
+
+    complete_apps = ['billing']

+ 14 - 9
coin/billing/models.py

@@ -8,11 +8,13 @@ from coin.offers.models import Offer
 class Invoice(models.Model):
 
     INVOICES_STATUS_CHOICES = (
-        ('open', 'A payer'),
-        ('closed', 'Reglée'),
-        ('trouble', 'Litige')
+        ('open', u'A payer'),
+        ('closed', u'Reglée'),
+        ('trouble', u'Litige')
     )
 
+    number = models.CharField(max_length=25)
+
     status = models.CharField(max_length=50, choices=INVOICES_STATUS_CHOICES,
                               default='open',
                               verbose_name='Statut')
@@ -23,20 +25,22 @@ class Invoice(models.Model):
         default=datetime.date(datetime.date.today().year,
                               datetime.date.today().month, 1),
         null=True,
-        verbose_name='Début de période de facturation')
+        verbose_name=u'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')
+        verbose_name=u'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')
+        verbose_name=u'Date d\'échéance de paiement')
+
+    def __unicode__(self):
+        return u'#%s %s€ %s' % (self.number, self.amount, self.date_due)
 
     class Meta:
         verbose_name = 'facture'
@@ -47,9 +51,10 @@ class InvoiceDetail(models.Model):
     label = models.CharField(max_length=100)
     amount = models.DecimalField(max_digits=5, decimal_places=2,
                                  verbose_name='Montant')
-    quantity = models.IntegerField(null=True, verbose_name='Quantité')
+    quantity = models.IntegerField(null=True, verbose_name=u'Quantité')
     tax = models.IntegerField(null=True, default=0, verbose_name='TVA')
     invoice = models.ForeignKey(Invoice, verbose_name='Facture')
+    offer = models.ForeignKey(Offer, null=True, verbose_name='Offre')
 
     def __unicode__(self):
         return self.label
@@ -67,4 +72,4 @@ class Payment(models.Model):
     invoce = models.ForeignKey(Invoice, verbose_name='Facture')
 
     class Meta:
-        verbose_name = 'paiement'
+        verbose_name = 'paiement'