diff options
Diffstat (limited to 'app/unused_apps/income/models.py')
-rw-r--r-- | app/unused_apps/income/models.py | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/app/unused_apps/income/models.py b/app/unused_apps/income/models.py deleted file mode 100644 index e5a351b..0000000 --- a/app/unused_apps/income/models.py +++ /dev/null @@ -1,103 +0,0 @@ -import datetime -from datetime import timedelta -from django.db import models -from django.utils import timezone -from django.urls import reverse -from django.utils.html import format_html - -from resume.models import PubItem, Publisher - - -class Gig(models.Model): - title = models.CharField(max_length=200) - pitch = models.TextField(null=True, blank=True) - created = models.DateTimeField(default=timezone.now) - pub_date = models.DateTimeField(blank=True, null=True) - due_date = models.DateField(blank=True, null=True) - STATUS = ( - (0, "Pitched"), - (1, "Accepted"), - (2, "Submitted"), - (3, "Published"), - (4, "Rejected"), - (5, "TO PITCH"), - ) - status = models.IntegerField(choices=STATUS, default=1) - invoice_date = models.DateTimeField(null=True, blank=True) - payment = models.DecimalField(max_digits=10, decimal_places=2) - PAY_STATUS = ( - (0, "NOT SUBMITTED"), - (1, "Invoiced"), - (2, "Paid"), - ) - payment_status = models.IntegerField(choices=PAY_STATUS, default=1) - PAY_TYPE = ( - (0, "Flat Rate"), - (1, "Per Word"), - (2, "Hourly"), - ) - pay_type = models.IntegerField(choices=PAY_TYPE, default=1) - word_count = models.DecimalField(max_digits=7, decimal_places=0, blank=True, null=True) - publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE, blank=True, null=True) - pub_item = models.ForeignKey(PubItem, on_delete=models.CASCADE, blank=True, null=True) - - def __str__(self): - return self.title - - def get_pay_date(self): - days = self.publisher.payment_time * 7 - if self.invoice_date: - return self.invoice_date + datetime.timedelta(float(days)) - - -class Invoice(models.Model): - title = models.CharField(max_length=200) - slug = models.SlugField() - date_start = models.DateField(null=True, blank=True) - date_end = models.DateField(null=True, blank=True) - - def __str__(self): - return self.title - - def admin_link(self): - return format_html('<a href="/admin/income/invoice/monthlyview/%s/">View Invoice</a>' % (self.slug)) - admin_link.short_description = 'Invoice' - - -class InvoiceItem(models.Model): - time_start = models.DateTimeField(null=True, blank=True) - time_end = models.DateTimeField(null=True, blank=True) - work_done = models.TextField(null=True, blank=True) - - class Meta: - ordering = ('time_start',) - - def __str__(self): - return str(self.time_start) - - @property - def total(self): - return self.time_end - self.time_start - - @property - def rounded_total(self): - """ - Rounds the given timedelta by the given timedelta period - :param td: `timedelta` to round - :param period: `timedelta` period to round by. - """ - period = timedelta(minutes=15) - td = self.total - period_seconds = period.total_seconds() - half_period_seconds = period_seconds / 2 - remainder = td.total_seconds() % period_seconds - if remainder >= half_period_seconds: - tdr = timedelta(seconds=td.total_seconds() + (period_seconds - remainder)) - hours, remainder = divmod(tdr.total_seconds(), 3600) - r = remainder/3600 - return float(hours)+r - else: - tdr = timedelta(seconds=td.total_seconds() - remainder) - hours, remainder = divmod(tdr.total_seconds(), 3600) - r = remainder/3600 - return float(hours)+r |