def taxes(self, request, pk=None): """ Get taxes for order """ from shuup.core.api.tax import OrderLineTaxSerializer, TaxSummarySerializer order = self.get_object() tax_summary = order.get_tax_summary() rows = [row.to_dict() for row in tax_summary if row.tax_id] serializer = TaxSummarySerializer(data=rows, many=True) serializer.is_valid(True) lines = [] for line in order.lines.filter(taxes__isnull=False): taxes = line.taxes.all() ts = OrderLineTaxSerializer(taxes, many=True, context=self.get_serializer_context()) for row in ts.data: lines.append(row) return Response({"summary": serializer.validated_data, "lines": lines})
def taxes(self, request, pk=None): """ Get taxes for order """ from shuup.core.api.tax import OrderLineTaxSerializer, TaxSummarySerializer order = self.get_object() tax_summary = order.get_tax_summary() rows = [row.to_dict() for row in tax_summary if row.tax_id] serializer = TaxSummarySerializer(data=rows, many=True) serializer.is_valid(True) lines = [] for line in order.lines.filter(taxes__isnull=False): taxes = line.taxes.all() ts = OrderLineTaxSerializer(taxes, many=True, context=self.get_serializer_context()) for row in ts.data: lines.append(row) return Response({ "summary": serializer.validated_data, "lines": lines })
def taxes(self, request, *args, **kwargs): """ Get taxes for basket """ self.process_request() basket = request.basket tax_summary = basket.get_tax_summary() rows = [row.to_dict() for row in tax_summary] basket_summary_serializer = TaxSummarySerializer(data=rows, many=True) basket_summary_serializer.is_valid(True) lines = [] for line in basket.get_final_lines(True): items = [] for source_line_tax in line.taxes: source_line_tax.line_id = line.line_id items.append(source_line_tax) ts = SourceLineTaxSerializer(items, many=True) for row in ts.data: lines.append(row) return Response({ "summary": basket_summary_serializer.validated_data, "lines": lines })