flower_bs пре 1 месец
родитељ
комит
9f38acb033
100 измењених фајлова са 208 додато и 26 уклоњено
  1. 1 0
      container/models.py
  2. 1 0
      reportcenter/urls.py
  3. 177 1
      reportcenter/views.py
  4. 1 0
      templates/dist/spa/css/13.285d986e.css
  5. 0 1
      templates/dist/spa/css/13.eb31c91a.css
  6. 1 0
      templates/dist/spa/css/14.bec12cd9.css
  7. 1 0
      templates/dist/spa/css/15.819dd245.css
  8. 0 0
      templates/dist/spa/css/16.f57b1220.css
  9. 0 0
      templates/dist/spa/css/17.3c7078c1.css
  10. 0 0
      templates/dist/spa/css/18.296f042c.css
  11. 0 0
      templates/dist/spa/css/19.710ed6db.css
  12. 0 0
      templates/dist/spa/css/20.712d6cf2.css
  13. 0 0
      templates/dist/spa/css/21.bb6b4a4d.css
  14. 0 0
      templates/dist/spa/css/22.601677c3.css
  15. 0 0
      templates/dist/spa/css/23.71123cd8.css
  16. 0 0
      templates/dist/spa/css/24.f721cf95.css
  17. 0 0
      templates/dist/spa/css/25.ed8e81e9.css
  18. 0 0
      templates/dist/spa/css/26.eed22a1c.css
  19. 0 0
      templates/dist/spa/css/27.98f0278c.css
  20. 0 0
      templates/dist/spa/css/28.1bb0db04.css
  21. 0 0
      templates/dist/spa/css/29.01a9029f.css
  22. 0 0
      templates/dist/spa/css/30.9b0c5133.css
  23. 0 0
      templates/dist/spa/css/31.0d4c4716.css
  24. 0 0
      templates/dist/spa/css/32.326b06df.css
  25. 0 0
      templates/dist/spa/css/33.8f3f6188.css
  26. 0 0
      templates/dist/spa/css/34.6dbcf0b0.css
  27. 0 0
      templates/dist/spa/css/35.efd62105.css
  28. 0 0
      templates/dist/spa/css/36.12670fd1.css
  29. 0 0
      templates/dist/spa/css/37.9478c981.css
  30. 0 0
      templates/dist/spa/css/38.c4652654.css
  31. 0 0
      templates/dist/spa/css/39.7a23b7fb.css
  32. 0 0
      templates/dist/spa/css/40.2594d0b9.css
  33. 0 0
      templates/dist/spa/css/41.0faa4aeb.css
  34. 1 1
      templates/dist/spa/index.html
  35. 0 1
      templates/dist/spa/js/13.37ae32b9.js
  36. BIN
      templates/dist/spa/js/13.37ae32b9.js.gz
  37. 1 0
      templates/dist/spa/js/13.fe7ceaa6.js
  38. BIN
      templates/dist/spa/js/13.fe7ceaa6.js.gz
  39. 1 0
      templates/dist/spa/js/14.1a7ade46.js
  40. BIN
      templates/dist/spa/js/14.1a7ade46.js.gz
  41. 1 0
      templates/dist/spa/js/15.552dc187.js
  42. BIN
      templates/dist/spa/js/15.552dc187.js.gz
  43. BIN
      templates/dist/spa/js/16.742400d0.js.gz
  44. 1 1
      templates/dist/spa/js/14.96056dbc.js
  45. BIN
      templates/dist/spa/js/14.96056dbc.js.gz
  46. 1 1
      templates/dist/spa/js/15.12d0592b.js
  47. BIN
      templates/dist/spa/js/15.12d0592b.js.gz
  48. BIN
      templates/dist/spa/js/17.a57993e2.js.gz
  49. 1 1
      templates/dist/spa/js/16.742400d0.js
  50. BIN
      templates/dist/spa/js/18.69c421f9.js.gz
  51. BIN
      templates/dist/spa/js/18.d4d9a033.js.gz
  52. BIN
      templates/dist/spa/js/19.14b76f69.js.gz
  53. 1 1
      templates/dist/spa/js/17.a57993e2.js
  54. BIN
      templates/dist/spa/js/19.a082dcdc.js.gz
  55. BIN
      templates/dist/spa/js/20.0f678196.js.gz
  56. 1 1
      templates/dist/spa/js/18.d4d9a033.js
  57. BIN
      templates/dist/spa/js/20.48892ff3.js.gz
  58. 1 1
      templates/dist/spa/js/19.14b76f69.js
  59. BIN
      templates/dist/spa/js/21.73153f72.js.gz
  60. BIN
      templates/dist/spa/js/21.8c4f178b.js.gz
  61. 1 1
      templates/dist/spa/js/20.0f678196.js
  62. BIN
      templates/dist/spa/js/22.49d10a94.js.gz
  63. BIN
      templates/dist/spa/js/23.07b5e369.js.gz
  64. 1 1
      templates/dist/spa/js/21.8c4f178b.js
  65. BIN
      templates/dist/spa/js/23.a1802db8.js.gz
  66. BIN
      templates/dist/spa/js/24.18faef2e.js.gz
  67. 1 1
      templates/dist/spa/js/22.0807fc2b.js
  68. BIN
      templates/dist/spa/js/22.0807fc2b.js.gz
  69. 1 1
      templates/dist/spa/js/23.07b5e369.js
  70. BIN
      templates/dist/spa/js/25.259bf8d2.js.gz
  71. BIN
      templates/dist/spa/js/25.7f53c5f7.js.gz
  72. 1 1
      templates/dist/spa/js/24.18faef2e.js
  73. BIN
      templates/dist/spa/js/26.cef8f85d.js.gz
  74. 1 1
      templates/dist/spa/js/25.7f53c5f7.js
  75. BIN
      templates/dist/spa/js/27.8fc1d7aa.js.gz
  76. BIN
      templates/dist/spa/js/28.76c2531d.js.gz
  77. 1 1
      templates/dist/spa/js/26.9c5994ba.js
  78. BIN
      templates/dist/spa/js/26.9c5994ba.js.gz
  79. 1 1
      templates/dist/spa/js/27.ba48cab1.js
  80. BIN
      templates/dist/spa/js/27.ba48cab1.js.gz
  81. 1 1
      templates/dist/spa/js/28.76c2531d.js
  82. BIN
      templates/dist/spa/js/30.28e04135.js.gz
  83. BIN
      templates/dist/spa/js/30.8c350f2a.js.gz
  84. 1 1
      templates/dist/spa/js/29.3922d75f.js
  85. 0 1
      templates/dist/spa/js/31.e137e267.js
  86. BIN
      templates/dist/spa/js/31.e137e267.js.gz
  87. 1 1
      templates/dist/spa/js/30.8c350f2a.js
  88. BIN
      templates/dist/spa/js/32.dd0b28ee.js.gz
  89. BIN
      templates/dist/spa/js/33.478a11fb.js.gz
  90. 1 0
      templates/dist/spa/js/33.cdc54168.js
  91. BIN
      templates/dist/spa/js/33.cdc54168.js.gz
  92. 1 1
      templates/dist/spa/js/32.a02b8cc4.js
  93. BIN
      templates/dist/spa/js/32.a02b8cc4.js.gz
  94. BIN
      templates/dist/spa/js/34.e7f364ee.js.gz
  95. 1 1
      templates/dist/spa/js/33.478a11fb.js
  96. BIN
      templates/dist/spa/js/35.1b40fe4c.js.gz
  97. 1 1
      templates/dist/spa/js/34.e7f364ee.js
  98. BIN
      templates/dist/spa/js/36.d44bd3a6.js.gz
  99. 1 1
      templates/dist/spa/js/35.ed5e944c.js
  100. 0 0
      templates/dist/spa/js/36.e7bcef4f.js

+ 1 - 0
container/models.py

@@ -462,6 +462,7 @@ def aggregate_to_batch_log(container_log):
     except Exception as e:
         logger.error(f"聚合托盘日志时出错: {e}", exc_info=True)
         raise
+    
 # # 批次日志的信号处理器
 @receiver(post_save, sender=batchLogModel)
 def update_material_history(sender, instance, created, **kwargs):

+ 1 - 0
reportcenter/urls.py

@@ -6,6 +6,7 @@ urlpatterns = [
 
     path(r'MaterialChangeHistory/', views.MaterialChangeHistoryViewSet.as_view({"get": "list","post": "summary" }), name="management"),
     path(r'flows_statements/', views.MaterialChangeHistoryViewSet.as_view({"post": "summary_complex" }), name="management"),
+    path(r'flows_file/', views.MaterialChangeHistoryViewSet.as_view({"post": "export_summary" }), name="management"),
     path(r'MaterialChangeHistory/file/', views.MaterialChangeHistoryDownloadView.as_view({"get": "list"}), name="flowfile"),    
 
     path(r'batchLog/', views.batchLogViewSet.as_view({"get": "list",  }), name="management"),

+ 177 - 1
reportcenter/views.py

@@ -41,7 +41,12 @@ from django.db.models import OuterRef, Subquery
 
 
     
-
+def format_decimal(value):
+    """格式化Decimal值为字符串,避免科学计数法"""
+    if isinstance(value, Decimal):
+        # 格式化为字符串,保留小数点后6位,但去除尾部多余的0
+        return format(value.normalize(), 'f')
+    return str(value)
 
 class MaterialChangeHistoryViewSet(viewsets.ModelViewSet):
     filter_backends = [DjangoFilterBackend, OrderingFilter, ]
@@ -242,7 +247,178 @@ class MaterialChangeHistoryViewSet(viewsets.ModelViewSet):
         }
         
         return Response(response_data)
+
+    def export_summary(self, request):
+        """
+        导出物料库存变动汇总数据为CSV
+        """
+        # 重用summary方法获取数据
+        start_time = request.query_params.get('start_time') or None
+        end_time = request.query_params.get('end_time') or None
+        material_ids_code = request.query_params.get('goods_code__icontains') or None
+
+        response = self.summary_all( start_time=start_time, end_time=end_time, material_ids_code=material_ids_code)
+        data = response.data
+        query_time_range = data['query_time_range']
+        # 创建CSV响应
+        from django.http import HttpResponse
+        import csv
+        response = HttpResponse(content_type='text/csv')
+        response['Content-Disposition'] = 'attachment; filename="material_change_summary.csv"'
+        
+        # 创建CSV写入器
+        csv_writer = csv.writer(response)
+        
+        # 写入表头
+        headers = [
+            '开始时间','结束时间',
+            '存货编码', '存货名称', '计量单位',
+            '期初数量', '期末数量', '期间变化',
+            '入库数量', '出库数量', '出入库差异',
+            '对比结果'
+        ]
+        csv_writer.writerow(headers)
     
+        # 写入数据行
+        for item in data['results']:
+            # 处理对比结果的显示
+            is_consistent = "一致" if item['is_consistent'] else "不一致"
+            
+            row = [
+                query_time_range.get('start_time', ''),
+                query_time_range.get('end_time', ''),
+                item['goods_code'],
+                item['goods_desc'],
+                item['goods_unit'],
+                # 数量字段格式化为字符串,避免科学计数法
+                format_decimal(item['opening_quantity']),
+                format_decimal(item['closing_quantity']),
+                format_decimal(item['net_change']),
+                format_decimal(item['total_in']),
+                format_decimal(item['total_out']),
+                format_decimal(item['theoretical_change']),
+                is_consistent
+            ]
+            csv_writer.writerow(row)
+        
+        return response
+
+    def summary_all(self, start_time=None, end_time=None, material_ids_code=None):
+        """
+        获取物料库存变动汇总数据(支持分页)
+        """
+        # 获取请求参数
+
+        
+        # 记录查询时间范围
+        query_time_range = {}
+        
+        # 如果没有提供时间段,使用当前月份
+        if not start_time or not end_time:
+            today = timezone.now().date()
+            start_time = datetime(today.year, today.month, 1)
+            end_time = start_time + timedelta(days=32)
+            end_time = datetime(end_time.year, end_time.month, 1) - timedelta(days=1)
+            end_time = datetime.combine(end_time, datetime.max.time())
+            query_time_range['default_time_range'] = True
+        else:
+            query_time_range['default_time_range'] = False
+        
+        # 转换为datetime对象
+        if isinstance(start_time, str):
+            start_time = datetime.fromisoformat(start_time)
+        if isinstance(end_time, str):
+            end_time = datetime.fromisoformat(end_time)
+        
+        # 存储查询时间范围用于返回
+        query_time_range['start_time'] = start_time.isoformat()
+        query_time_range['end_time'] = end_time.isoformat()
+        
+        # 创建基础查询集
+        queryset = MaterialChangeHistory.objects.filter(
+            change_time__gte=start_time,
+            change_time__lte=end_time
+        )
+        
+        # 如果有物料ID过滤
+        if material_ids_code:
+            queryset = queryset.filter(goods_code__icontains=material_ids_code)
+        
+        # 获取每个物料的期初和期末数量(直接从过滤集中获取)
+        material_codes = queryset.values_list('goods_code', flat=True).distinct()
+        opening_closing_data = {}
+        
+        for code in material_codes:
+            # 获取该物料在时间段内的第一条记录(最早记录)
+            first_record = queryset.filter(goods_code=code).order_by('change_time').first()
+            # 获取该物料在时间段内的最后一条记录(最晚记录)
+            last_record = queryset.filter(goods_code=code).order_by('-change_time').first()
+            
+            # 期初数量 = 第一条记录的期初数量
+            # 期末数量 = 最后一条记录的期末数量
+            opening_closing_data[code] = {
+                'opening_quantity': first_record.opening_quantity,
+                'closing_quantity': last_record.closing_quantity
+            }
+        
+        # 计算期间出入库总量
+        period_data = queryset.values('goods_code').annotate(
+            total_in=Sum('in_quantity'),
+            total_out=Sum('out_quantity')
+        )
+        
+        # 构建结果字典
+        result = {}
+        for item in period_data:
+            material_code = item['goods_code']
+            goods = MaterialChangeHistory.objects.filter(goods_code=material_code).first()
+            
+            # 获取该物料的期初和期末数量
+            oc_data = opening_closing_data.get(material_code, {
+                'opening_quantity': Decimal('0'),
+                'closing_quantity': Decimal('0')
+            })
+            
+            result[material_code] = {
+                'material_code': material_code,
+                'goods_code': goods.goods_code if goods else 'N/A',
+                'goods_desc': goods.goods_desc if goods else 'N/A',
+                'goods_unit': goods.goods_unit if goods else 'N/A',
+                'opening_quantity': oc_data['opening_quantity'],
+                'closing_quantity': oc_data['closing_quantity'],
+                'total_in': item['total_in'] or Decimal('0'),
+                'total_out': item['total_out'] or Decimal('0'),
+                'net_change': Decimal('0'),  # 后面计算
+                'theoretical_change': Decimal('0'),  # 后面计算
+                'is_consistent': True
+            }
+        
+        # 计算净含量变化和理论变化量,并进行一致性校验
+        for material_code, data in result.items():
+            # 净含量变化 = 期末 - 期初
+            net_change = data['closing_quantity'] - data['opening_quantity']
+            data['net_change'] = net_change
+            
+            # 理论变化量 = 入库 - 出库
+            theoretical_change = data['total_in'] - data['total_out']
+            data['theoretical_change'] = theoretical_change
+            
+            # 检查是否一致(允许小数点后3位的差异)
+            tolerance = Decimal('0.001')
+            data['is_consistent'] = abs(net_change - theoretical_change) <= tolerance
+        
+        # 转换为列表格式
+        result_list = list(result.values())
+        
+        # 应用分页
+
+        response_data = {
+            'query_time_range': query_time_range,
+            'count': len(result_list),
+            'results': result_list  # 返回所有结果,不分页
+        }
+        return Response(response_data)
+
     def summary(self, request):
         """
         获取物料库存变动汇总数据(支持分页)

+ 1 - 0
templates/dist/spa/css/13.285d986e.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-2e7e2720]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-2e7e2720]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-2e7e2720]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-2e7e2720]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-2e7e2720]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-2e7e2720]{color:#485573}

+ 0 - 1
templates/dist/spa/css/13.eb31c91a.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-ed458f52]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-ed458f52]{background-color:rgba(25,118,210,0.1)}

+ 1 - 0
templates/dist/spa/css/14.bec12cd9.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-3a031a31]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-3a031a31]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-3a031a31]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-3a031a31]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-3a031a31]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-3a031a31]{color:#485573}

+ 1 - 0
templates/dist/spa/css/15.819dd245.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-62d24612]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-62d24612]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-62d24612]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-62d24612]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-62d24612]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-62d24612]{color:#485573}

templates/dist/spa/css/14.f57b1220.css → templates/dist/spa/css/16.f57b1220.css


templates/dist/spa/css/15.3c7078c1.css → templates/dist/spa/css/17.3c7078c1.css


templates/dist/spa/css/16.296f042c.css → templates/dist/spa/css/18.296f042c.css


templates/dist/spa/css/17.710ed6db.css → templates/dist/spa/css/19.710ed6db.css


templates/dist/spa/css/18.712d6cf2.css → templates/dist/spa/css/20.712d6cf2.css


templates/dist/spa/css/19.bb6b4a4d.css → templates/dist/spa/css/21.bb6b4a4d.css


templates/dist/spa/css/20.601677c3.css → templates/dist/spa/css/22.601677c3.css


templates/dist/spa/css/21.71123cd8.css → templates/dist/spa/css/23.71123cd8.css


templates/dist/spa/css/22.f721cf95.css → templates/dist/spa/css/24.f721cf95.css


templates/dist/spa/css/23.ed8e81e9.css → templates/dist/spa/css/25.ed8e81e9.css


templates/dist/spa/css/24.eed22a1c.css → templates/dist/spa/css/26.eed22a1c.css


templates/dist/spa/css/25.98f0278c.css → templates/dist/spa/css/27.98f0278c.css


templates/dist/spa/css/26.1bb0db04.css → templates/dist/spa/css/28.1bb0db04.css


templates/dist/spa/css/27.01a9029f.css → templates/dist/spa/css/29.01a9029f.css


templates/dist/spa/css/28.9b0c5133.css → templates/dist/spa/css/30.9b0c5133.css


templates/dist/spa/css/29.0d4c4716.css → templates/dist/spa/css/31.0d4c4716.css


templates/dist/spa/css/30.326b06df.css → templates/dist/spa/css/32.326b06df.css


templates/dist/spa/css/31.8f3f6188.css → templates/dist/spa/css/33.8f3f6188.css


templates/dist/spa/css/32.6dbcf0b0.css → templates/dist/spa/css/34.6dbcf0b0.css


templates/dist/spa/css/33.efd62105.css → templates/dist/spa/css/35.efd62105.css


templates/dist/spa/css/34.12670fd1.css → templates/dist/spa/css/36.12670fd1.css


templates/dist/spa/css/35.9478c981.css → templates/dist/spa/css/37.9478c981.css


templates/dist/spa/css/36.c4652654.css → templates/dist/spa/css/38.c4652654.css


templates/dist/spa/css/37.7a23b7fb.css → templates/dist/spa/css/39.7a23b7fb.css


templates/dist/spa/css/38.2594d0b9.css → templates/dist/spa/css/40.2594d0b9.css


templates/dist/spa/css/39.0faa4aeb.css → templates/dist/spa/css/41.0faa4aeb.css


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/index.html


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
templates/dist/spa/js/13.37ae32b9.js


BIN
templates/dist/spa/js/13.37ae32b9.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
templates/dist/spa/js/13.fe7ceaa6.js


BIN
templates/dist/spa/js/13.fe7ceaa6.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
templates/dist/spa/js/14.1a7ade46.js


BIN
templates/dist/spa/js/14.1a7ade46.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
templates/dist/spa/js/15.552dc187.js


BIN
templates/dist/spa/js/15.552dc187.js.gz


BIN
templates/dist/spa/js/16.742400d0.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/14.96056dbc.js


BIN
templates/dist/spa/js/14.96056dbc.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/15.12d0592b.js


BIN
templates/dist/spa/js/15.12d0592b.js.gz


BIN
templates/dist/spa/js/17.a57993e2.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/16.742400d0.js


BIN
templates/dist/spa/js/18.69c421f9.js.gz


BIN
templates/dist/spa/js/18.d4d9a033.js.gz


BIN
templates/dist/spa/js/19.14b76f69.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/17.a57993e2.js


BIN
templates/dist/spa/js/19.a082dcdc.js.gz


BIN
templates/dist/spa/js/20.0f678196.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/18.d4d9a033.js


BIN
templates/dist/spa/js/20.48892ff3.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/19.14b76f69.js


BIN
templates/dist/spa/js/21.73153f72.js.gz


BIN
templates/dist/spa/js/21.8c4f178b.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/20.0f678196.js


BIN
templates/dist/spa/js/22.49d10a94.js.gz


BIN
templates/dist/spa/js/23.07b5e369.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/21.8c4f178b.js


BIN
templates/dist/spa/js/23.a1802db8.js.gz


BIN
templates/dist/spa/js/24.18faef2e.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/22.0807fc2b.js


BIN
templates/dist/spa/js/22.0807fc2b.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/23.07b5e369.js


BIN
templates/dist/spa/js/25.259bf8d2.js.gz


BIN
templates/dist/spa/js/25.7f53c5f7.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/24.18faef2e.js


BIN
templates/dist/spa/js/26.cef8f85d.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/25.7f53c5f7.js


BIN
templates/dist/spa/js/27.8fc1d7aa.js.gz


BIN
templates/dist/spa/js/28.76c2531d.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/26.9c5994ba.js


BIN
templates/dist/spa/js/26.9c5994ba.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/27.ba48cab1.js


BIN
templates/dist/spa/js/27.ba48cab1.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/28.76c2531d.js


BIN
templates/dist/spa/js/30.28e04135.js.gz


BIN
templates/dist/spa/js/30.8c350f2a.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/29.3922d75f.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 1
templates/dist/spa/js/31.e137e267.js


BIN
templates/dist/spa/js/31.e137e267.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/30.8c350f2a.js


BIN
templates/dist/spa/js/32.dd0b28ee.js.gz


BIN
templates/dist/spa/js/33.478a11fb.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
templates/dist/spa/js/33.cdc54168.js


BIN
templates/dist/spa/js/33.cdc54168.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/32.a02b8cc4.js


BIN
templates/dist/spa/js/32.a02b8cc4.js.gz


BIN
templates/dist/spa/js/34.e7f364ee.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/33.478a11fb.js


BIN
templates/dist/spa/js/35.1b40fe4c.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/34.e7f364ee.js


BIN
templates/dist/spa/js/36.d44bd3a6.js.gz


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
templates/dist/spa/js/35.ed5e944c.js


+ 0 - 0
templates/dist/spa/js/36.e7bcef4f.js


Неке датотеке нису приказане због велике количине промена