Ejemplo n.º 1
0
def admin_payment_report_ajax(request, report_date=None):
	if report_date is None:
		report_date = datetime.now()

	month_start = date(report_date.year, report_date.month, 1)
	if report_date.month >= 12:
		month_end = date(report_date.year+1, 1, 1)
	else:
		month_end = date(report_date.year, report_date.month+1, 1)

	total_month_dues = MembershipPayment.monthly_sum(month_start, month_end)
	total_month_donations = Donation.monthly_sum(month_start, month_end)

	active_members = Maker.active_members(report_date)
	makers = Maker.objects.all()
	payments = list(MembershipPayment.objects.all())
	donations = list(Donation.objects.all())

	context = {
			'report_date': int(time.mktime(report_date.timetuple())),
			'title': "Report ({date})".format(date = report_date.strftime("%b %d, %Y")),
			'active_members': active_members,
			'total_in_system': len(makers),
			'total_month_dues': total_month_dues,
			'total_month_donations': total_month_donations,
			'payments': payments,
			'donations': donations,
	}
	return HttpResponse(json.dumps(context, cls=CustomEncoder), mimetype="application/json")
def make_payment(obj):
	txn_id = obj.get('TRANSACTIONID')
	email = obj.get('EMAIL')
	amount = decimal.Decimal(obj.get('AMT', '0.00'))
	if amount <= 0:
		return
	if obj.get('STATUS') != 'Completed':
		return
	if email is None:
		print "NO EMAIL"
		print obj
		return
	try:
		p = MembershipPayment.objects.get(payment_identifier=txn_id)
		print "skipping"
		return
	except MembershipPayment.DoesNotExist:
		pass	
	try:
		m = Maker.objects.get(email=email)
	except Maker.DoesNotExist:
		m = Maker(
			username = email,
			email = email,
			first_name = obj.get('NAME'),
		)
		m.save()
	tier = TIER_ELITE if (amount >= 50) else TIER_STANDARD
	p = MembershipPayment(
		maker = m,
		payment_method = PAYPAL,
		payment_created = datetime.utcnow(),
		payment_amount = amount,
		payment_note = "Imported from paypal CLI",
		payment_identifier = txn_id,
		tier = tier,
		cycle_start = from_paypal_timestamp(obj.get('TIMESTAMP')),
		num_cycle = 1,
	)
	p.save()
	print p
Ejemplo n.º 3
0
def admin_member_report(request, report_date=None):
	if report_date is None:
		report_date = datetime.now()

	month_start = date(report_date.year, report_date.month, 1)
	if report_date.month >= 12:
		month_end = date(report_date.year+1, 1, 1)
	else:
		month_end = date(report_date.year, report_date.month+1, 1)

	active_members = Maker.active_members(report_date)
	makers = Maker.objects.all()
	total_month_dues = MembershipPayment.monthly_sum(month_start, month_end)
	total_month_donations = Donation.monthly_sum(month_start, month_end)
	context = {
			'report_date': report_date,
			'title': "Report ({date})".format(date = report_date.strftime("%b %d, %Y")),
			'active_members': active_members,
			'total_in_system': len(makers),
			'total_month_dues': total_month_dues,
			'total_month_donations': total_month_donations,
	}
	return render_to_response("admin/membership/report.html", context, context_instance=RequestContext(request))