Beispiel #1
0
def purchase_pdf(request):
    if request.is_ajax():
        q = request.GET.get('q')
        gid = request.GET.get('gid')

        if gid:
            gid = gid
        else:
            gid = None

        if q is not None:
            purchases = PurchaseProduct.objects.filter(
                Q(invoice_number__icontains=q)
                | Q(stock__variant__product__name__icontains=q)
                | Q(created__icontains=q)
                | Q(supplier__name__icontains=q)).order_by('id')
            all_purchases = 0
            for purchase in purchases:
                all_purchases += purchase.get_total_cost()

            if gid:
                purchases = purchases.filter(created__icontains=gid)

            data = {
                'today': date.today(),
                "purchases": purchases,
                'puller': request.user,
                'gid': gid
            }
            pdf = render_to_pdf('dashboard/reports/purchase/pdf/pdf.html',
                                data)
            return HttpResponse(pdf, content_type='application/pdf')
        else:
            purchases = PurchaseProduct.objects.all().order_by('id')
            all_purchases = 0
            for purchase in purchases:
                all_purchases += purchase.get_total_cost()

            if gid:
                purchases = purchases.filter(created__icontains=gid)

            data = {
                'today': date.today(),
                "purchases": purchases,
                'puller': request.user,
                'gid': gid
            }
            pdf = render_to_pdf('dashboard/reports/purchase/pdf/pdf.html',
                                data)
            return HttpResponse(pdf, content_type='application/pdf')
Beispiel #2
0
def purchase_pdf(request):
	if request.is_ajax():
		q = request.GET.get('q')
		gid = request.GET.get('gid')

		if gid:
			gid = gid
		else:
			gid = None

		if q is not None:
			purchases = PurchaseProduct.objects.filter(
				Q(invoice_number__icontains=q) |
				Q(stock__variant__product__name__icontains=q) |
				Q(created__icontains=q) |
				Q(supplier__name__icontains=q)).order_by('-id')
			all_purchases = 0
			for purchase in purchases:
				all_purchases += purchase.get_total_cost()

			if gid:
				purchases = purchases.filter(created__icontains=gid)

			data = {
				'today': date.today(),
				"purchases": purchases,
				'puller': request.user,
				'gid':gid
			}
			pdf = render_to_pdf('dashboard/reports/purchase/pdf/pdf.html', data)
			return HttpResponse(pdf, content_type='application/pdf')
		else:
			purchases = PurchaseProduct.objects.all().order_by('-id')
			all_purchases = 0
			for purchase in purchases:
				all_purchases += purchase.get_total_cost()

			if gid:
				purchases = purchases.filter(created__icontains=gid)

			data = {
				'today': date.today(),
				"purchases": purchases,
				'puller': request.user,
				'gid': gid
			}
			pdf = render_to_pdf('dashboard/reports/purchase/pdf/pdf.html', data)
			return HttpResponse(pdf, content_type='application/pdf')
Beispiel #3
0
def chart_pdf(request, image):
    dataUrlPattern = re.compile('data:image/(png|jpeg);base64,(.*)$')
    ImageData = image
    ImageData = dataUrlPattern.match(ImageData).group(2)

    users = User.objects.all()
    data = {
        'today': date.today(),
        'users': users,
        'puller': request.user,
        'image': ImageData
    }
    pdf = render_to_pdf('dashboard/reports/sales/charts/pdf/pdf.html', data)
    return HttpResponse(pdf, content_type='application/pdf')
Beispiel #4
0
def chart_pdf(request, image):
	dataUrlPattern = re.compile('data:image/(png|jpeg);base64,(.*)$')
	ImageData = image
	ImageData = dataUrlPattern.match(ImageData).group(2)

	users = User.objects.all()
	data = {
		'today': date.today(),
		'users': users,
		'puller': request.user,
		'image':ImageData
		}
	pdf = render_to_pdf('dashboard/reports/credit/charts/pdf/pdf.html', data)
	return HttpResponse(pdf, content_type='application/pdf')
def sales_detail(request, pk=None, point=None):
    if point == '0':
        sale_point = None
        print 'true'
    else:
        print 'false'
        sale_point = SalePoint.objects.get(pk=int(point))

    try:
        sale = Sales.objects.get(pk=pk)
        img = default_logo()

        sale_points = []
        sale_items = []
        for n in Section.objects.all():
            sale_points.append(n.name)

        all_sale_points = list(set(sale_points))

        counter_items = SoldItem.objects.filter(sales=sale, kitchen__isnull=True)
        if counter_items.exists():
            try:
                totals = counter_items.aggregate(Sum('total_cost'))['total_cost__sum']
            except:
                totals = 0
            bar = Section.objects.get(name="Bar")
            sale_items.append({'name': bar.name, 'pk': bar.pk, 'items': counter_items, 'amount': totals})

        kitchen_items = SoldItem.objects.filter(sales=sale, counter__isnull=True)
        if kitchen_items.exists():
            try:
                totals = kitchen_items.aggregate(Sum('total_cost'))['total_cost__sum']
            except:
                totals = 0
            rest = Section.objects.get(name="Restaurant")
            sale_items.append({'name': rest.name, 'pk': rest.pk, 'items': kitchen_items, 'amount': totals})

        data = {
            'today': date.today(),
            'epp': sale_items,
            'sale': sale,
            'puller': request.user,
            'image': img,
            'point': sale_point,
            'point_pk': point
        }
        pdf = render_to_pdf('dashboard/reports/sales/pdf/pdf.html', data)
        return HttpResponse(pdf, content_type='application/pdf')
    except ObjectDoesNotExist as e:
        logger.error(e)
Beispiel #6
0
def sales_detail(request, pk=None):
    try:
        sale = Credit.objects.get(pk=pk)
        items = CreditedItem.objects.filter(credit=sale)
        img = image64()
        data = {
            'today': date.today(),
            'items': items,
            'sale': sale,
            'puller': request.user,
            'image': img
        }
        pdf = render_to_pdf('dashboard/reports/credit/pdf/pdf.html', data)
        return HttpResponse(pdf, content_type='application/pdf')
    except ObjectDoesNotExist as e:
        error_logger.error(e)
Beispiel #7
0
def sales_detail(request, pk=None):
	try:
		sale = Allocate.objects.get(pk=pk)
		items = AllocatedItem.objects.filter(allocate=sale)
		img = image64()
		data = {
			'today': date.today(),
			'items': items,
			'sale': sale,
			'puller': request.user,
			'image': img
		}
		pdf = render_to_pdf('dashboard/reports/allocate/pdf/pdf.html',data)
		return HttpResponse(pdf, content_type='application/pdf')
	except ObjectDoesNotExist as e:
		error_logger.error(e)
Beispiel #8
0
def assign_code(instance, queryset=None, code_field_name='code', order_field_name='created'):
    """Assignes an incremental code to the given model instance.
    """
    from datetime import date

    if not isinstance(queryset, query.QuerySet):
        queryset = instance.__class__.objects.all()

    if not getattr(instance, code_field_name):
        year = date.today().year
        uid = 1
        try:
            last_obj = queryset.filter(**{'%s__endswith' % code_field_name: '-%s' % year}).latest(order_field_name)
            uid = int(getattr(last_obj, code_field_name).partition('-')[0]) + 1
        except:
            pass
        setattr(instance, code_field_name, '%d-%s' % (uid, year))
Beispiel #9
0
def sales_user(request):
    try:
        image = request.POST.get('image')
        sales_date = request.POST.get('date')
        if not sales_date:
            sales_date = None
        img = default_logo()
        data = {
            'today': date.today(),
            'puller': request.user,
            'image': img,
            'category': image,
            'sales_date': sales_date
        }
        pdf = render_to_pdf('dashboard/reports/sales/pdf/user.html', data)
        return HttpResponse(pdf, content_type='application/pdf')
    except ObjectDoesNotExist as e:
        error_logger.error(e)
Beispiel #10
0
def sales_tills(request):
    try:
        image = request.GET.get('image')
        sales_date = request.GET.get('date')
        if not sales_date:
            sales_date = None

        img = image64()
        data = {
            'today': date.today(),
            'puller': request.user,
            'image': img,
            'category': image,
            'sales_date': sales_date
        }
        print(sales_date)
        pdf = render_to_pdf('dashboard/reports/credit/pdf/till.html', data)
        return HttpResponse(pdf, content_type='application/pdf')
    except ObjectDoesNotExist as e:
        error_logger.error(e)
Beispiel #11
0
def sales_tills(request):
	try:
		image = request.GET.get('image')
		sales_date = request.GET.get('date')
		if not sales_date:
			sales_date = None

		img = image64()
		data = {
			'today': date.today(),
			'puller': request.user,
			'image': img,
			'category':image,
			'sales_date':sales_date
		}
		print (sales_date)
		pdf = render_to_pdf('dashboard/reports/credit/pdf/till.html',data)
		return HttpResponse(pdf, content_type='application/pdf')
	except ObjectDoesNotExist as e:
		error_logger.error(e)
Beispiel #12
0
def sales_detail(request, pk=None, point=None):
    if point == '0':
        sale_point = None
        print 'true'
    else:
        print 'false'
        sale_point = SalePoint.objects.get(pk=int(point))

    try:
        sale = Sales.objects.get(pk=pk)
        img = default_logo()

        sale_points = []
        sale_items = []
        for n in SalePoint.objects.all():
            sale_points.append(n.name)

        all_sale_points = list(set(sale_points))

        for i in all_sale_points:
            items = SoldItem.objects.filter(sales=sale, sale_point__name=i)
            try:
                totals = items.aggregate(Sum('total_cost'))['total_cost__sum']
            except:
                totals = 0
            sale_items.append({'name': i, 'items': items, 'amount': totals})

        data = {
            'today': date.today(),
            'epp': sale_items,
            'sale': sale,
            'puller': request.user,
            'image': img,
            'point': sale_point,
            'point_pk': point
        }
        pdf = render_to_pdf('dashboard/reports/sales/pdf/pdf.html', data)
        return HttpResponse(pdf, content_type='application/pdf')
    except ObjectDoesNotExist as e:
        error_logger.error(e)
Beispiel #13
0
def assign_code(instance,
                queryset=None,
                code_field_name='code',
                order_field_name='created'):
    """Assignes an incremental code to the given model instance.
    """
    from datetime import date

    if not isinstance(queryset, query.QuerySet):
        queryset = instance.__class__.objects.all()

    if not getattr(instance, code_field_name):
        year = date.today().year
        uid = 1
        try:
            last_obj = queryset.filter(
                **{
                    '%s__endswith' % code_field_name: '-%s' % year
                }).latest(order_field_name)
            uid = int(getattr(last_obj, code_field_name).partition('-')[0]) + 1
        except:
            pass
        setattr(instance, code_field_name, '%d-%s' % (uid, year))
Beispiel #14
0
def sales_list_pdf(request):

    if request.is_ajax():
        q = request.GET.get('q')
        gid = request.GET.get('gid')
        point = request.GET.get('point')

        if gid:
            gid = gid
        else:
            gid = None

        sales = []
        if q is not None:
            all_sales = Sales.objects.filter(
                Q(invoice_number__icontains=q)
                | Q(terminal__terminal_name__icontains=q)
                | Q(created__icontains=q) | Q(customer__name__icontains=q)
                | Q(customer__mobile__icontains=q)
                | Q(solditems__product_name__icontains=q)
                | Q(user__email__icontains=q)
                | Q(user__name__icontains=q)).order_by('id').distinct()

            if gid:
                csales = all_sales.filter(created__icontains=gid)
                if point and point != 'all':
                    for i in csales:
                        p = SoldItem.objects.filter(
                            sales__pk=i.pk,
                            sale_point__name=point).annotate(c=Count(
                                'product_name', distinct=True)).annotate(
                                    Sum('total_cost')).annotate(
                                        Sum('quantity'))
                        setattr(i, 'quantity',
                                p.aggregate(c=Count('sku'))['c'])
                        setattr(
                            i, 'total_net',
                            p.aggregate(Sum('total_cost'))['total_cost__sum'])
                        setattr(i, 'total_tax',
                                p.aggregate(Sum('tax'))['tax__sum'])

                        if p.exists():
                            sales.append(i)
                    point = SalePoint.objects.get(name=point)
                else:
                    for sale in csales:
                        quantity = SoldItem.objects.filter(
                            sales=sale).aggregate(c=Count('sku'))
                        setattr(sale, 'quantity', quantity['c'])
                        sales.append(sale)
                    point = point
            else:
                if point and point != 'all':
                    for i in all_sales:
                        p = SoldItem.objects.filter(
                            sales__pk=i.pk,
                            sale_point__name=point).annotate(c=Count(
                                'product_name', distinct=True)).annotate(
                                    Sum('total_cost')).annotate(
                                        Sum('quantity'))
                        setattr(i, 'quantity',
                                p.aggregate(c=Count('sku'))['c'])
                        setattr(
                            i, 'total_net',
                            p.aggregate(Sum('total_cost'))['total_cost__sum'])
                        setattr(i, 'total_tax',
                                p.aggregate(Sum('tax'))['tax__sum'])

                        if p.exists():
                            sales.append(i)
                    point = SalePoint.objects.get(name=point)
                else:
                    for sale in all_sales:
                        quantity = SoldItem.objects.filter(
                            sales=sale).aggregate(c=Count('sku'))
                        setattr(sale, 'quantity', quantity['c'])
                        sales.append(sale)
                    point = point

        elif gid:
            csales = Sales.objects.filter(created__icontains=gid)
            if point and point != 'all':
                for i in csales:
                    p = SoldItem.objects.filter(
                        sales__pk=i.pk, sale_point__name=point).annotate(
                            c=Count('product_name', distinct=True)).annotate(
                                Sum('total_cost')).annotate(Sum('quantity'))
                    setattr(i, 'quantity', p.aggregate(c=Count('sku'))['c'])
                    setattr(i, 'total_net',
                            p.aggregate(Sum('total_cost'))['total_cost__sum'])
                    setattr(i, 'total_tax',
                            p.aggregate(Sum('tax'))['tax__sum'])

                    if p.exists():
                        sales.append(i)
                point = SalePoint.objects.get(name=point)
            else:
                for sale in csales:
                    quantity = SoldItem.objects.filter(sales=sale).aggregate(
                        c=Count('sku'))
                    setattr(sale, 'quantity', quantity['c'])
                    sales.append(sale)
                point = point
        else:
            try:
                last_sale = Sales.objects.latest('id')
                gid = DateFormat(last_sale.created).format('Y-m-d')
            except:
                gid = DateFormat(datetime.datetime.today()).format('Y-m-d')

            csales = Sales.objects.filter(created__icontains=gid)
            if point and point != 'all':
                for i in csales:
                    p = SoldItem.objects.filter(
                        sales__pk=i.pk, sale_point__name=point).annotate(
                            c=Count('product_name', distinct=True)).annotate(
                                Sum('total_cost')).annotate(Sum('quantity'))
                    setattr(i, 'quantity', p.aggregate(c=Count('sku'))['c'])
                    setattr(i, 'total_net',
                            p.aggregate(Sum('total_cost'))['total_cost__sum'])
                    setattr(i, 'total_tax',
                            p.aggregate(Sum('tax'))['tax__sum'])

                    if p.exists():
                        sales.append(i)
                point = SalePoint.objects.get(name=point)
            else:
                for sale in csales:
                    quantity = SoldItem.objects.filter(sales=sale).aggregate(
                        c=Count('sku'))
                    setattr(sale, 'quantity', quantity['c'])
                    sales.append(sale)
                point = point

        img = default_logo
        data = {
            'today': date.today(),
            'sales': sales,
            'puller': request.user,
            'image': img,
            'gid': gid,
            'point': point
        }
        pdf = render_to_pdf('dashboard/reports/sales/pdf/saleslist_pdf.html',
                            data)
        return HttpResponse(pdf, content_type='application/pdf')
Beispiel #15
0
def sales_list_pdf(request):

    if request.is_ajax():
        q = request.GET.get('q')
        gid = request.GET.get('gid')

        if gid:
            gid = gid
        else:
            gid = None

        sales = []
        if q is not None:
            all_sales = Credit.objects.filter(
                Q(invoice_number__icontains=q)
                | Q(terminal__terminal_name__icontains=q)
                | Q(created__icontains=q) | Q(customer__name__icontains=q)
                | Q(customer__mobile__icontains=q)
                | Q(credititems__product_name__icontains=q)
                | Q(user__email__icontains=q)
                | Q(user__name__icontains=q)).order_by('id').distinct()

            if gid:
                csales = all_sales.filter(created__icontains=gid)
                for sale in csales:
                    quantity = CreditedItem.objects.filter(
                        credit=sale).aggregate(c=Count('sku'))
                    setattr(sale, 'quantity', quantity['c'])
                    sales.append(sale)
            else:
                for sale in all_sales:
                    quantity = CreditedItem.objects.filter(
                        credit=sale).aggregate(c=Count('sku'))
                    setattr(sale, 'quantity', quantity['c'])
                    sales.append(sale)

        elif gid:
            csales = Credit.objects.filter(created__icontains=gid)
            for sale in csales:
                quantity = CreditedItem.objects.filter(credit=sale).aggregate(
                    c=Count('sku'))
                setattr(sale, 'quantity', quantity['c'])
                sales.append(sale)
        else:
            try:
                last_sale = Credit.objects.latest('id')
                gid = DateFormat(last_sale.created).format('Y-m-d')
            except:
                gid = DateFormat(datetime.datetime.today()).format('Y-m-d')

            csales = Credit.objects.filter(created__icontains=gid)
            for sale in csales:
                quantity = CreditedItem.objects.filter(credit=sale).aggregate(
                    c=Count('sku'))
                setattr(sale, 'quantity', quantity['c'])
                sales.append(sale)

        img = image64()
        data = {
            'today': date.today(),
            'sales': sales,
            'puller': request.user,
            'image': img,
            'gid': gid
        }
        pdf = render_to_pdf('dashboard/reports/credit/pdf/saleslist_pdf.html',
                            data)
        return HttpResponse(pdf, content_type='application/pdf')
Beispiel #16
0
def is_past_due(self):
    return date.today() > self.date