Как я могу запросить запасы и доходы по элементам в django ORM?

`class RevenueStockDashboardViewset(ViewSet):

sale = InvSaleDetail.objects.filter(sale_main__sale_type='SALE')
sale_returns = InvSaleDetail.objects.filter(sale_main__sale_type='RETURN')
purchase = InvPurchaseDetail.objects.filter(purchase_main__purchase_type='PURCHASE')
purchase_returns = InvPurchaseDetail.objects.filter(purchase_main__purchase_type='RETURN')

def list(self, request):

    total_revenue = (self.sale.annotate(total=Sum('sale_main__grand_total'))
                    .aggregate(total_revenue=Sum('total'))
                    .get('total_revenue') or 0) - (self.sale_returns.annotate(total=Sum('sale_main__grand_total'))
                    .aggregate(total_revenue=Sum('total'))
                    .get('total_revenue') or 0) - (self.purchase.annotate(total=Sum('purchase_main__grand_total'))
                    .aggregate(total_revenue=Sum('total'))
                    .get('total_revenue') or 0) + (self.purchase_returns.annotate(total=Sum('purchase_main__grand_total'))
                    .aggregate(total_revenue=Sum('total'))
                    .get('total_revenue') or 0)
    
    total_stocks = (self.purchase.annotate(total=Sum('qty'))
                .aggregate(total_stock=Sum('total'))
                .get('total_stock') or 0) - (self.purchase_returns.annotate(total=Sum('qty'))
                .aggregate(total_stocks=Sum('total'))
                .get('total_stock') or 0) - (self.sale.annotate(total=Sum('qty'))
                .aggregate(total_stock=Sum('total'))
                .get('total_stock') or 0) - (self.sale_returns.annotate(total=Sum('qty'))
                .aggregate(total_stock=Sum('total'))
                .get('total_stock') or 0)

    
    return Response(        
        {
            'total_revenue': total_revenue,
            'total_stocks': total_stocks,
            # 'item_wise_stocks': items,
        }
    )`

У меня есть панель инвентаризации, где я хочу показать доход по элементам и запасы по элементам. Я сделал запрос на общие запасы и выручку, но мне нужен запрос по артикулу. Если вам нужна дополнительная информация. Пожалуйста, дайте мне знать.

Вернуться на верх