diff --git a/shiftflow/templates/shiftflow/writeoffs.html b/shiftflow/templates/shiftflow/writeoffs.html index 9e0d6ba..546f790 100644 --- a/shiftflow/templates/shiftflow/writeoffs.html +++ b/shiftflow/templates/shiftflow/writeoffs.html @@ -5,18 +5,32 @@
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
- +
- -
-
- +
+
Сброс @@ -36,6 +50,7 @@ {% csrf_token %} +
{% for card in report_cards %} diff --git a/shiftflow/views.py b/shiftflow/views.py index 1120b4b..1136993 100644 --- a/shiftflow/views.py +++ b/shiftflow/views.py @@ -5148,6 +5148,7 @@ class LegacyWriteOffsView(LoginRequiredMixin, TemplateView): start_date = (self.request.GET.get('start_date') or '').strip() end_date = (self.request.GET.get('end_date') or '').strip() + is_synced = (self.request.GET.get('is_synced') or '').strip() reset = self.request.GET.get('reset') if not start_date or not end_date or reset: @@ -5158,6 +5159,8 @@ class LegacyWriteOffsView(LoginRequiredMixin, TemplateView): ctx['start_date'] = start_date ctx['end_date'] = end_date + ctx['is_synced'] = is_synced if is_synced in ['0', '1'] else '' + ctx['is_synced'] = is_synced if is_synced in ['0', '1'] else '' reports_qs = ( CuttingSession.objects.select_related('machine', 'operator') @@ -5165,6 +5168,12 @@ class LegacyWriteOffsView(LoginRequiredMixin, TemplateView): .order_by('-date', '-id') ) + if is_synced in ['0', '1']: + reports_qs = reports_qs.filter(is_synced_1c=bool(int(is_synced))) + + if is_synced in ['0', '1']: + reports_qs = reports_qs.filter(is_synced_1c=bool(int(is_synced))) + reports = list( reports_qs.prefetch_related( 'tasks__task__deal', @@ -6149,6 +6158,7 @@ class WriteOffsView(LoginRequiredMixin, TemplateView): start_date = (self.request.GET.get('start_date') or '').strip() end_date = (self.request.GET.get('end_date') or '').strip() + is_synced = (self.request.GET.get('is_synced') or '').strip() reset = self.request.GET.get('reset') if not start_date or not end_date or reset: @@ -6159,6 +6169,7 @@ class WriteOffsView(LoginRequiredMixin, TemplateView): ctx['start_date'] = start_date ctx['end_date'] = end_date + ctx['is_synced'] = is_synced if is_synced in ['0', '1'] else '' reports_qs = ( CuttingSession.objects.select_related('machine', 'operator') @@ -6166,6 +6177,9 @@ class WriteOffsView(LoginRequiredMixin, TemplateView): .order_by('-date', '-id') ) + if is_synced in ['0', '1']: + reports_qs = reports_qs.filter(is_synced_1c=bool(int(is_synced))) + reports = list( reports_qs.prefetch_related( 'tasks__task__deal', @@ -6218,6 +6232,9 @@ class WriteOffsView(LoginRequiredMixin, TemplateView): .filter(status__in=['done', 'partial'], date__gte=start_date, date__lte=end_date) .order_by('-date', '-id') ) + + if is_synced in ['0', '1']: + items_qs = items_qs.filter(is_synced_1c=bool(int(is_synced))) ctx['items'] = list(items_qs) return ctx @@ -6241,4 +6258,9 @@ class WriteOffsView(LoginRequiredMixin, TemplateView): start_date = (request.POST.get('start_date') or '').strip() end_date = (request.POST.get('end_date') or '').strip() - return redirect(f"{reverse_lazy('writeoffs')}?start_date={start_date}&end_date={end_date}") \ No newline at end of file + is_synced = (request.POST.get('is_synced') or '').strip() + + url = f"{reverse_lazy('writeoffs')}?start_date={start_date}&end_date={end_date}" + if is_synced in ['0', '1']: + url += f"&is_synced={is_synced}" + return redirect(url) \ No newline at end of file