get_payments.py
1.52 KB
#-*- coding:utf-8 -*-
import codecs
import datetime
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand
from dictionary.ajax_user_stats import get_lexical_stats, get_phraseology_stats, get_semantics_stats
class Command(BaseCommand):
args = 'none'
def handle(self, **options):
get_payments()
def get_payments():
now = datetime.datetime.now().strftime('%Y%m%d')
payments_path = 'data/payments_%s.csv' % now
payments_file = codecs.open(payments_path, 'wt', 'utf-8')
users = User.objects.order_by('username')
payments_file.write(u'Użytkownik\tFunkcja\tKwota zapłacona\tKwota za wykonaną pracę\tNadpłata\n')
for user in users:
print user
function = user.groups.all()[0].name
lex_work_stats = get_lexical_stats(user)
phraseology_work_stats = get_phraseology_stats(user)
semantics_work_stats = get_semantics_stats(user)
total_earned_cash = round(lex_work_stats['earned_cash']+phraseology_work_stats['earned_cash']+semantics_work_stats['earned_cash'], 2)
paid_cash = round(user.user_stats.paid_cash, 2)
surcharge = round(user.user_stats.paid_cash-total_earned_cash, 2)
if total_earned_cash > 0.0:
payments_file.write(u'%s\t%s\t%.2f\t%.2f\t%.2f\n' % (user.username, function,
paid_cash, total_earned_cash, surcharge))
payments_file.close()