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')
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')
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')
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)
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)
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)
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))
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)
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)
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)
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)
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))
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')
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')
def is_past_due(self): return date.today() > self.date