Esempio n. 1
0
def month_overview_CD(request, year = None, month = None):
	if year and month:
		year = int(year)
		month = int(month)
		monthdate = datetime.datetime(year = year, month = month, day = 1)
	else:
		ref = datetime.datetime.today() - datetime.timedelta(days = 14)
		return redirect(reverse('month_overview_CD', kwargs = {'year': str(ref.year), 'month': str(ref.month)}))
	if not request.user.is_staff:
		return notification(request, 'Alleen beheerders mogen gegevens voor iedereen als CSV downloaden. Je kan wel je eigen gegevens inzien.')
	form = KostenplaatsForm(request.POST or None)
	if not form.is_valid():
		totals = {}
		for user in get_user_model().objects.filter(is_active = True):
			context = overview_context(user, year, month)
			totals[user.get_full_name()] = context['totalnr']
		return render(request, 'get_kostenplaats.html', {
			'form': form,
			'monthdate': monthdate,
			'totals': totals,
			'overall_total': sum(totals.values()),
		})
	response = HttpResponse(content_type = 'text/csv')
	response['Content-Disposition'] = 'attachment; filename="overview_%s.csv"' % monthdate.strftime('%b_%Y').lower()
	fh = writer(response)
	totals = {}
	fh.writerow(['Naam', 'Datum', 'Uur gewerkt', 'Looncomponent', 'Kostenplaats'])
	for user in get_user_model().objects.filter(is_active = True):
		context = overview_context(user, year, month)
		totals[user.get_full_name()] = context['totalnr']
		for dayinfo in context['hourlist'].values():
			if dayinfo['hournr'] > 0:
				looncomponent = form.cleaned_data['type_werk'] if dayinfo['percentage'] == "100" else "Loon onregelmatige uren " + dayinfo['percentage'] + "%"
				fh.writerow([
					user.get_full_name(),
					dayinfo['date'],
					dayinfo['hournr'],
					looncomponent,
					form.cleaned_data['kostenplaatsnummer'],
				])
	return response
Esempio n. 2
0
def month_overview(request, user, year = None, month = None):
	try:
		user = get_user_model().objects.get(username = user)
	except User.DoesNotExist:
		return notification(request, 'Gebruiker met gebruikersnaam \'%s\' niet gevonden' % user)
	day = datetime.timedelta(days = 1)
	if year and month:
		year = int(year)
		month = int(month)
	else:
		refday = datetime.datetime.today()
		if refday.day < 20:
			refday -= day * 21
		year = refday.year
		month = refday.month
		return redirect(reverse('month_overview', kwargs = {'user': user.username, 'year': str(year), 'month': str(month)}))

	return render(request, 'shift_overview.html', overview_context(user, year, month))
Esempio n. 3
0
def month_overview(request, user, year = None, month = None):
	try:
		user = get_user_model().objects.get(username = user)
	except User.DoesNotExist:
		return notification(request, 'Gebruiker met gebruikersnaam \'%s\' niet gevonden' % user)
	day = datetime.timedelta(days = 1)
	if year and month:
		year = int(year)
		month = int(month)
	else:
		refday = datetime.datetime.today()
		if refday.day < 20:
			refday -= day * 21
		year = refday.year
		month = refday.month
		return redirect(reverse('month_overview', kwargs = {'user': user.username, 'year': str(year), 'month': str(month)}))

	return render(request, 'shift_overview.html', overview_context(user, year, month))
Esempio n. 4
0
def month_overview_CD(request, year = None, month = None):
	if year and month:
		year = int(year)
		month = int(month)
		monthdate = datetime.datetime(year = year, month = month, day = 1)
	else:
		ref = datetime.datetime.today() - datetime.timedelta(days = 14)
		return redirect(reverse('month_overview_CD', kwargs = {'year': str(ref.year), 'month': str(ref.month)}))
	if not request.user.is_staff:
		return notification(request, 'Alleen beheerders mogen gegevens voor iedereen als CSV downloaden. Je kan wel je eigen gegevens inzien.')
	form = KostenplaatsForm(request.POST or None)
	if not form.is_valid():
		totals = {}
		for user in get_user_model().objects.filter(is_active = True):
			context = overview_context(user, year, month)
			totals[user.get_full_name()] = context['totalnr']
		return render(request, 'get_kostenplaats.html', {
			'form': form,
			'monthdate': monthdate,
			'totals': totals,
			'overall_total': sum(totals.values()),
		})
	response = HttpResponse(content_type = 'text/csv')
	response['Content-Disposition'] = 'attachment; filename="overview_%s.csv"' % monthdate.strftime('%b_%Y').lower()
	fh = writer(response, delimiter=';')
	totals = {}
	fh.writerow(['Naam', 'Datum', 'Uur gewerkt', 'Looncomponent', 'Kostenplaats'])
	for user in get_user_model().objects.filter(is_active = True):
		context = overview_context(user, year, month)
		totals[user.get_full_name()] = context['totalnr']
		for dayinfo in context['hourlist'].values():
			if dayinfo['hournr'] > 0:
				if dayinfo['specialhours'] > 0 and  dayinfo['normalhours'] > 0:
					fh.writerow([
						user.get_full_name(),
						dayinfo['date'],
						str(dayinfo['normalhours']).replace(':',','),
						form.cleaned_data['type_werk'],
						form.cleaned_data['kostenplaatsnummer'],
						])
					fh.writerow([
						user.get_full_name(),
						dayinfo['date'],
						str(dayinfo['specialhours']).replace(':',','),
						"Loon onregelmatige uren "+str(dayinfo['percentage'])+"%",
						form.cleaned_data['kostenplaatsnummer'],
						])
				elif dayinfo['specialhours'] <= 0:
					fh.writerow([
						user.get_full_name(),
						dayinfo['date'],
						str(dayinfo['normalhours']).replace(':',','),
						form.cleaned_data['type_werk'],
						form.cleaned_data['kostenplaatsnummer'],
						])
				else:
					fh.writerow([
						user.get_full_name(),
						dayinfo['date'],
						str(dayinfo['specialhours']).replace(':',','),
						"Loon onregelmatige uren "+str(dayinfo['percentage'])+"%",
						form.cleaned_data['kostenplaatsnummer'],
						])
	return response