tum преди 8 месеца
родител
ревизия
b93c17b1a3
променени са 1 файла, в които са добавени 39 реда и са изтрити 3 реда
  1. 39 3
      app/report/views.py

+ 39 - 3
app/report/views.py

135
     placeholders = clear_values(2,5)
135
     placeholders = clear_values(2,5)
136
 
136
 
137
     # Iterate over the records to populate placeholder values
137
     # Iterate over the records to populate placeholder values
138
+    inspect_date = None
138
     for record_idx, record in enumerate(records, start=1):
139
     for record_idx, record in enumerate(records, start=1):
140
+        if record_idx == 1:
141
+            inspect_date = record.created_at
139
         placeholders[f'v{record_idx}_1'] = record.p1  # Checkpoint 1 value
142
         placeholders[f'v{record_idx}_1'] = record.p1  # Checkpoint 1 value
140
         placeholders[f'v{record_idx}_2'] = record.p2  # Checkpoint 2 value
143
         placeholders[f'v{record_idx}_2'] = record.p2  # Checkpoint 2 value
141
         placeholders[f'v{record_idx}_3'] = record.p3  # Checkpoint 3 value
144
         placeholders[f'v{record_idx}_3'] = record.p3  # Checkpoint 3 value
142
         placeholders[f'v{record_idx}_4'] = record.avg  # Average value
145
         placeholders[f'v{record_idx}_4'] = record.avg  # Average value
143
         placeholders[f'v{record_idx}_5'] = record.rgrade  # Judgment value
146
         placeholders[f'v{record_idx}_5'] = record.rgrade  # Judgment value
144
 
147
 
148
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
145
     return placeholders
149
     return placeholders
146
 
150
 
147
 def generate_hardness_out_in_values(lot_no, code):
151
 def generate_hardness_out_in_values(lot_no, code):
165
     # Prepare placeholders
169
     # Prepare placeholders
166
     # placeholders = {}
170
     # placeholders = {}
167
     placeholders = clear_values(4,5)
171
     placeholders = clear_values(4,5)
172
+    inspect_date = None
168
     for idx, record in enumerate(out_data, start=1):
173
     for idx, record in enumerate(out_data, start=1):
174
+        if idx == 1:
175
+            inspect_date = record.created_at
176
+
169
         placeholders[f'v{idx}_1'] = record.p1
177
         placeholders[f'v{idx}_1'] = record.p1
170
         placeholders[f'v{idx}_2'] = record.p2
178
         placeholders[f'v{idx}_2'] = record.p2
171
         placeholders[f'v{idx}_3'] = record.p3
179
         placeholders[f'v{idx}_3'] = record.p3
186
 
194
 
187
     hide_con(placeholders, "v3_1", "25:28")
195
     hide_con(placeholders, "v3_1", "25:28")
188
     
196
     
197
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
189
     return placeholders
198
     return placeholders
190
 
199
 
191
 def generate_hardness_both_size_values(lot_no, ms,code):
200
 def generate_hardness_both_size_values(lot_no, ms,code):
201
 
210
 
202
     placeholders = clear_values(20,5)
211
     placeholders = clear_values(20,5)
203
     # Separate OUT and IN data
212
     # Separate OUT and IN data
213
+    inspect_date = None
204
     for idx, record in enumerate(records, start=0):
214
     for idx, record in enumerate(records, start=0):
215
+        if idx == 1:
216
+            inspect_date = record.created_at
217
+
205
         if record.sub_order == 1:
218
         if record.sub_order == 1:
206
             for i,v in enumerate(["p1", "p2", "p3", "avg", "rgrade"],start=1):
219
             for i,v in enumerate(["p1", "p2", "p3", "avg", "rgrade"],start=1):
207
                 placeholders[f"v{idx*2+1}_{i}"] = getattr(record,v)
220
                 placeholders[f"v{idx*2+1}_{i}"] = getattr(record,v)
210
                 placeholders[f"v{idx*2+2}_{i}"] = getattr(record,v)
223
                 placeholders[f"v{idx*2+2}_{i}"] = getattr(record,v)
211
     # Prepare placeholders
224
     # Prepare placeholders
212
     # placeholders = {}
225
     # placeholders = {}
226
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
213
     return placeholders
227
     return placeholders
214
 
228
 
215
 
229
 
250
 
264
 
251
 
265
 
252
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
266
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
267
+    inspect_date = None
253
     for r in data_ms_records:
268
     for r in data_ms_records:
254
         if r.row_no == 1:
269
         if r.row_no == 1:
255
             placeholders[f'v1_2'] = r.dsize
270
             placeholders[f'v1_2'] = r.dsize
260
             
275
             
261
             placeholders[f'v3_2'] = r.hsize
276
             placeholders[f'v3_2'] = r.hsize
262
             placeholders[f'v3_3'] = r.hsizeok
277
             placeholders[f'v3_3'] = r.hsizeok
278
+            inspect_date = r.created_at
263
         
279
         
264
         if r.row_no == 2:
280
         if r.row_no == 2:
265
             placeholders[f'v4_2'] = r.dsize
281
             placeholders[f'v4_2'] = r.dsize
272
             placeholders[f'v6_3'] = r.hsizeok
288
             placeholders[f'v6_3'] = r.hsizeok
273
 
289
 
274
     hide_con(placeholders, "v4_1", "24:28")
290
     hide_con(placeholders, "v4_1", "24:28")
291
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
275
     return placeholders
292
     return placeholders
276
 
293
 
277
 def is_ok(instance):
294
 def is_ok(instance):
326
 
343
 
327
 
344
 
328
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
345
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
346
+    inspect_date = None
329
     for r in data_ms_records:
347
     for r in data_ms_records:
330
         if r.row_no == 1:
348
         if r.row_no == 1:
331
             placeholders[f'v1_2'] = r.dsize
349
             placeholders[f'v1_2'] = r.dsize
336
             
354
             
337
             placeholders[f'v3_2'] = r.hsize
355
             placeholders[f'v3_2'] = r.hsize
338
             placeholders[f'v3_3'] = r.hsizeok
356
             placeholders[f'v3_3'] = r.hsizeok
357
+            inspect_date = r.created_at
339
 
358
 
340
             # if is_ok(r):
359
             # if is_ok(r):
341
                 # placeholders[f'v4_1'] = 'OK'
360
                 # placeholders[f'v4_1'] = 'OK'
362
                 # placeholders[f'v8_2'] = 'NG'
381
                 # placeholders[f'v8_2'] = 'NG'
363
 
382
 
364
     hide_con(placeholders, "v5_1", "26:32")
383
     hide_con(placeholders, "v5_1", "26:32")
384
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
365
     return placeholders
385
     return placeholders
366
 
386
 
367
 def generate_dimension_bal_weight_values(lot_no, ms, code):
387
 def generate_dimension_bal_weight_values(lot_no, ms, code):
406
         if m.Size_Name == "H":
426
         if m.Size_Name == "H":
407
             placeholders['v3_1'] = placeholders['v8_1'] = f'H{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
427
             placeholders['v3_1'] = placeholders['v8_1'] = f'H{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
408
 
428
 
409
-
429
+    inspect_date = None
410
 
430
 
411
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
431
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
412
     for r in data_ms_records:
432
     for r in data_ms_records:
419
             
439
             
420
             placeholders[f'v3_2'] = r.hsize
440
             placeholders[f'v3_2'] = r.hsize
421
             placeholders[f'v3_3'] = r.hsizeok
441
             placeholders[f'v3_3'] = r.hsizeok
442
+            inspect_date = r.created_at
422
 
443
 
423
             # if is_ok(r):
444
             # if is_ok(r):
424
                 # placeholders[f'v4_1'] = 'OK'
445
                 # placeholders[f'v4_1'] = 'OK'
456
             placeholders["v10_2"] = r.weight
477
             placeholders["v10_2"] = r.weight
457
             placeholders["v10_3"] = r.judgement
478
             placeholders["v10_3"] = r.judgement
458
     # hide_con(placeholders, "v5_1", "26:32")
479
     # hide_con(placeholders, "v5_1", "26:32")
480
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
459
     return placeholders
481
     return placeholders
460
 
482
 
461
 def generate_dim_bal_app_hard_values(lot_no, first_result, code):
483
 def generate_dim_bal_app_hard_values(lot_no, first_result, code):
513
         if m.Size_Name == "H":
535
         if m.Size_Name == "H":
514
             placeholders['v3_1'] = placeholders['v11_1'] = f'H{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
536
             placeholders['v3_1'] = placeholders['v11_1'] = f'H{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
515
 
537
 
516
-
538
+    inspect_date = None
517
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
539
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
518
     for r in data_ms_records:
540
     for r in data_ms_records:
519
         if r.row_no == 1:
541
         if r.row_no == 1:
525
             
547
             
526
             placeholders[f'v3_2'] = r.hsize
548
             placeholders[f'v3_2'] = r.hsize
527
             placeholders[f'v3_3'] = r.hsizeok
549
             placeholders[f'v3_3'] = r.hsizeok
550
+            inspect_date = r.created_at
528
 
551
 
529
             # if is_ok(r):
552
             # if is_ok(r):
530
                 # placeholders[f'v4_1'] = 'OK'
553
                 # placeholders[f'v4_1'] = 'OK'
573
                     placeholders[f'v{idx}_{index}']  = getattr(r, v)
596
                     placeholders[f'v{idx}_{index}']  = getattr(r, v)
574
 
597
 
575
     # hide_con(placeholders, "v5_1", "26:32")
598
     # hide_con(placeholders, "v5_1", "26:32")
599
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
576
     return placeholders
600
     return placeholders
577
 
601
 
578
 def generate_dim_bal_app_rot_hard_values(lot_no, first_result, code):
602
 def generate_dim_bal_app_rot_hard_values(lot_no, first_result, code):
636
 
660
 
637
 
661
 
638
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
662
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
663
+    inspect_date = None
639
     for r in data_ms_records:
664
     for r in data_ms_records:
640
         if r.row_no == 1:
665
         if r.row_no == 1:
641
             placeholders[f'v1_2'] = r.dsize
666
             placeholders[f'v1_2'] = r.dsize
646
             
671
             
647
             placeholders[f'v3_2'] = r.hsize
672
             placeholders[f'v3_2'] = r.hsize
648
             placeholders[f'v3_3'] = r.hsizeok
673
             placeholders[f'v3_3'] = r.hsizeok
674
+            inspect_date = r.created_at
649
 
675
 
650
             # if is_ok(r):
676
             # if is_ok(r):
651
                 # placeholders[f'v4_1'] = 'OK'
677
                 # placeholders[f'v4_1'] = 'OK'
704
             placeholders["v15_3"] = r.speedok
730
             placeholders["v15_3"] = r.speedok
705
 
731
 
706
     # hide_con(placeholders, "v5_1", "26:32")
732
     # hide_con(placeholders, "v5_1", "26:32")
733
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
707
     return placeholders
734
     return placeholders
708
 
735
 
709
 def generate_centering_values(lot_no, code):
736
 def generate_centering_values(lot_no, code):
731
 
758
 
732
 
759
 
733
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
760
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
761
+    inspect_date = None
734
     for i,r in enumerate(data_ms_records, start=1):
762
     for i,r in enumerate(data_ms_records, start=1):
763
+        if i == 1:
764
+            inspect_date = r.created_at
735
         placeholders[f'v{i}_2'] = r.censize
765
         placeholders[f'v{i}_2'] = r.censize
736
         placeholders[f'v{i}_3'] = r.censizeok
766
         placeholders[f'v{i}_3'] = r.censizeok
737
 
767
 
768
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
738
     return placeholders
769
     return placeholders
739
 
770
 
740
 def generate_t8_values(lot_no, code):
771
 def generate_t8_values(lot_no, code):
766
     
797
     
767
 
798
 
768
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
799
     # Ensure that we map each manualSize entry to a corresponding DataMs entry
800
+    inspect_date = None
769
     for i,r in enumerate(data_ms_records, start=1):
801
     for i,r in enumerate(data_ms_records, start=1):
802
+        if i == 1:
803
+            inspect_date = r.created_at
804
+
770
         placeholders[f'v{i}_2'] = r.tpoint1
805
         placeholders[f'v{i}_2'] = r.tpoint1
771
         placeholders[f'v{i}_3'] = r.tpoint2
806
         placeholders[f'v{i}_3'] = r.tpoint2
772
         placeholders[f'v{i}_4'] = r.tpoint3
807
         placeholders[f'v{i}_4'] = r.tpoint3
773
         placeholders[f'v{i}_5'] = r.tpoint4
808
         placeholders[f'v{i}_5'] = r.tpoint4
774
         placeholders[f'v{i}_10'] = r.tdiff
809
         placeholders[f'v{i}_10'] = r.tdiff
775
 
810
 
811
+    placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
776
     return placeholders
812
     return placeholders
777
 
813
 
778
 def merge_sheet_data_with_data(sheet_data, data):
814
 def merge_sheet_data_with_data(sheet_data, data):
851
     data = {
887
     data = {
852
         "code": first_result.PRO1 if first_result else "-",
888
         "code": first_result.PRO1 if first_result else "-",
853
         "customer": first_result.PRO1C if first_result else "-",
889
         "customer": first_result.PRO1C if first_result else "-",
854
-        "inspect_date": "2025-01-15",
890
+        # "inspect_date": inspect_date.strftime('%Y/%m/%d') if inspect_date else "-",
855
         "lot_no": lot_no,
891
         "lot_no": lot_no,
856
         "size": size_str,
892
         "size": size_str,
857
         "lot_size": pcs,
893
         "lot_size": pcs,