def get_queryset(self): queryset = Product.my_query.active_for_site() queryset = queryset.filter(title__icontains=self.search_name ) if self.search_name else queryset queryset = Product.filters_data(self.request, queryset) queryset = queryset_ordering(self.request, queryset) return queryset
def get_queryset(self): queryset = Product.my_query.active_for_site().last()[20] queryset = Product.filters_data(self.request, queryset) queryset = queryset_ordering(self.request, queryset) queryset = queryset[:160] return queryset
def get_queryset(self): queryset = Product.my_query.active_for_site().filter( price_discount__gt=0) print('queryset count', queryset.count()) queryset = Product.filters_data(self.request, queryset) queryset = queryset_ordering(self.request, queryset) return queryset
def get_queryset(self): search_name = self.request.GET.get('search_name', None) queryset = Product.objects.none() if search_name: queryset = Product.my_query.active_for_site( ) if len(search_name) > 2 else Product.objects.none() queryset = Product.filters_data(self.request, queryset) queryset = Product.queryset_ordering(self.request, queryset) return queryset
def get_queryset(self): self.category = get_object_or_404(CategorySite, slug=self.kwargs['slug']) self.categories = self.category.get_childrens() result_list = self.categories | CategorySite.objects.filter( id=self.category.id) queryset = Product.my_query.get_site_queryset().category_queryset( cate=result_list) queryset = Product.filters_data(self.request, queryset) queryset = queryset_ordering(self.request, queryset) return queryset
def ajax_products_analysis(request): data = dict() switcher = request.GET.get('analysis') queryset = Product.my_query.active_warehouse() queryset = Product.filters_data(request, queryset) queryset_analysis = [ 0, 0, 0 ] # total_qty, #total_warehouse_value, #total_sell_value if switcher == 'warehouse_analysis': queryset_analysis[0] = queryset.aggregate( Sum('qty'))['qty__sum'] if queryset else 0 queryset_analysis[1] = queryset.aggregate( total=Sum(F('qty') * F('price_buy')))['total'] if queryset else 0 queryset_analysis[2] = queryset.aggregate( total=Sum(F('qty') * F('final_price')))['total'] if queryset else 0 data['results'] = render_to_string( request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={ 'queryset_analysis': queryset_analysis, 'currency': CURRENCY, 'switcher': switcher }) if switcher == 'vendor_analysis': vendor_analysis = queryset.values('supply__title').annotate( total_ware_price=Sum(F('qty') * F('final_price')), total_sell_price=Sum(F('qty') * F('price_buy'))).order_by('supply__title') data['results'] = render_to_string( request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={ 'vendor_analysis': vendor_analysis, 'currency': CURRENCY, 'switcher': switcher, }) if switcher == "sells_analysis": sells_items = RetailOrderItem.objects.filter( title__in=queryset) if queryset else None sells_analysis = sells_items.values('title__title').annotate( total_sells=Sum(F('qty')), incomes=Sum(F('qty') * F('final_price'))).order_by('-incomes')[:30] data['results'] = render_to_string( request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={ 'sells_analysis': sells_analysis, 'currency': CURRENCY, 'switcher': switcher }) if switcher == 'buy_analysis': pass return JsonResponse(data)
def ajax_search_warehouse_view(request, pk): vendor = get_object_or_404(Vendor, id=pk) search_name = request.GET.get('search_name', '') if len(search_name) > 2: qs = Product.filters_data(request, Product.objects.all())[:20] else: qs = Product.objects.none() data = dict() data['result'] = render_to_string( template_name='vendors/ajax_views/ajax_product_container.html', request=request, context={ 'queryset_table': ProductVendorTable(qs), 'vendor': vendor }) return JsonResponse(data)
def ajax_search_products(request): data = {} search_name, instance_id = request.GET.get('search_name', None), request.GET.get( 'instance_id', None) instance = get_object_or_404(Order, id=instance_id) vendor = instance.vendor queryset = Product.my_query.active().filter(vendor=vendor) queryset = Product.filters_data(request, queryset)[:10] data['results'] = render_to_string( template_name='inventory_manager/ajax/product_container.html', request=request, context={ 'products': queryset, 'instance': instance }) return JsonResponse(data)
def ajax_products_analysis(request): data = dict() switcher = request.GET.get('analysis') queryset = Product.my_query.active_warehouse() queryset = Product.filters_data(request, queryset) queryset_analysis = [0, 0, 0] # total_qty, #total_warehouse_value, #total_sell_value if switcher == 'warehouse_analysis': queryset_analysis[0] = queryset.aggregate(Sum('qty'))['qty__sum'] if queryset else 0 queryset_analysis[1] = queryset.aggregate(total=Sum(F('qty') * F('price_buy')))['total'] if queryset else 0 queryset_analysis[2] = queryset.aggregate(total=Sum(F('qty') * F('final_price')))['total'] if queryset else 0 data['results'] = render_to_string(request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={'queryset_analysis': queryset_analysis, 'currency': CURRENCY, 'switcher': switcher } ) if switcher == 'vendor_analysis': vendor_analysis = queryset.values('supply__title').annotate(total_ware_price=Sum(F('qty')*F('final_price')), total_sell_price=Sum(F('qty')*F('price_buy')) ).order_by('supply__title') data['results'] = render_to_string(request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={'vendor_analysis': vendor_analysis, 'currency': CURRENCY, 'switcher': switcher, } ) if switcher == "sells_analysis": sells_items = RetailOrderItem.objects.filter(title__in=queryset) if queryset else None sells_analysis = sells_items.values('title__title').annotate(total_sells=Sum(F('qty')), incomes=Sum(F('qty')*F('final_price')) ).order_by('-incomes')[:30] data['results'] = render_to_string(request=request, template_name='report/ajax/warehouse/ajax_warehouse_analysis.html', context={ 'sells_analysis': sells_analysis, 'currency': CURRENCY, 'switcher': switcher } ) if switcher == 'buy_analysis': pass return JsonResponse(data)
def post(self, *args, **kwargs): get_products = self.request.POST.getlist('choice_name', None) new_brand = get_object_or_404(Brands, id=self.request.POST.get('change_brand')) \ if self.request.POST.get('change_brand') else None new_category = get_object_or_404(Category, id=self.request.POST.get('change_cate')) \ if self.request.POST.get('change_cate') else None new_cate_site = get_object_or_404(CategorySite, id=self.request.POST.get('change_cate_site')) \ if self.request.POST.get('change_cate_site') else None new_vendor = get_object_or_404(Vendor, id=self.request.POST.get('change_vendor')) \ if self.request.POST.get('change_vendor') else None if new_brand and get_products: for product_id in get_products: product = get_object_or_404(Product, id=product_id) product.brand = new_brand product.save() messages.success( self.request, 'The brand %s added on the products' % new_brand.title) return redirect('dashboard:products') if new_category and get_products: for product_id in get_products: product = get_object_or_404(Product, id=product_id) product.category = new_category product.save() messages.success( self.request, 'The brand %s added on the products' % new_category.title) return redirect('dashboard:products') if new_cate_site and get_products: for product_id in get_products: product = get_object_or_404(Product, id=product_id) product.category_site.add(new_cate_site) product.save() messages.success( self.request, 'The category %s added in the products' % new_cate_site.title) if new_vendor: queryset = Product.objects.all() queryset = Product.filters_data(self.request, queryset) queryset.update(vendor=new_vendor) messages.success(self.request, 'The Vendor Updated!') return render(self.request, self.template_name)
def ajax_products_search(request, pk): data = dict() order = get_object_or_404(RetailOrder, id=pk) is_sale = True if order.order_type == 'r' else False search_name = request.GET.get('search_name', None) products = Product.objects.none() if search_name: products = Product.my_query.active() products = Product.filters_data(request, products)[:10] print(products.count()) data['products'] = render_to_string(request=request, template_name='PoS/ajax/products_search.html', context={'object_list': products, 'instance': order, 'is_sale': is_sale } ) return JsonResponse(data)
def ajax_size_analysis(request): data = dict() products = Product.my_query.active_warehouse_with_attr() products = Product.filters_data(request, products) queryset = SizeAttribute.objects.filter(product_related__in=products) analysis_per_size = queryset.values('title__title').annotate( total_qty=Sum('qty'), total_value=Sum( F('qty') * F('product_related__final_price'))).order_by('title__title') for ele in analysis_per_size: ele['title'] = ele['title__title'] data['results'] = render_to_string( template_name='report/ajax/warehouse/ajax_product_size.html', context={ 'analysis': analysis_per_size, 'currency': CURRENCY, }, request=request) return JsonResponse(data)
def ajax_warehouse_category_analysis(request): data = {} queryset = Product.objects.all() for ele in queryset: print(ele, ele.category) queryset = Product.filters_data(request, queryset) results = queryset.values('category__title').annotate( total_qty=Sum('qty'), total_value=Sum( F('qty') * F('final_price'))).order_by('category__title') for ele in queryset: print(ele.category) for ele in results: ele['title'] = ele['category__title'] data['results'] = render_to_string( request=request, template_name='report/ajax/warehouse/ajax_product_size.html', context={ 'analysis': results, 'currency': CURRENCY, }) return JsonResponse(data)
def get_queryset(self): self.category = get_object_or_404(CategorySite, slug=self.kwargs['slug']) ''' generate_ancestors = cache.get(f'cache_generate_cate_ancestors_{self.category.id}', 'has_expired') if generate_ancestors == 'has_expired': generate_ancestors = cache.add(f'cache_generate_cate_ancestors_{self.category.id}', self.category.get_childrens_and_grandchilds() ) family = self.category.get_childrens_and_grandchilds()|CategorySite.objects.filter(id=self.category.id) else: family = generate_ancestors|CategorySite.objects.filter(id=self.category.id) ''' queryset = cache.get(f'cache_cate_queryset_{self.category.id}', 'has_expired') if queryset == 'has_expired': queryset = Product.objects.filter( category_site=self.category).distinct() cache.set(f'cache_cate_queryset_{self.category.id}', queryset) queryset = Product.filters_data(self.request, queryset) queryset = Product.queryset_ordering(self.request, queryset) return queryset
def get_queryset(self, *args, **kwargs): instance = get_object_or_404(Brands, slug=self.kwargs['slug']) queryset = Product.my_query.active_for_site().filter(brand=instance) queryset = Product.filters_data(self.request, queryset) queryset = queryset_ordering(self.request, queryset) return queryset
def get_queryset(self): queryset = Product.objects.all() queryset = Product.filters_data(self.request, queryset) self.total_products = queryset.count() if queryset else 0 return queryset
def get_queryset(self): self.category = get_object_or_404(Category, id=self.kwargs['pk']) qs = Product.objects.filter(categories=self.category) qs = Product.filters_data(self.request, qs) return qs