|
|
@@ -194,7 +194,7 @@ def generate_hardness_out_in_values(lot_no, code):
|
|
194
|
194
|
# else:
|
|
195
|
195
|
# placeholders[f"v3_1"] = "0[25:28]"
|
|
196
|
196
|
|
|
197
|
|
- hide_con(placeholders, "v3_1", "25:28")
|
|
|
197
|
+ hide_con(placeholders, "v3_1", "26:29")
|
|
198
|
198
|
|
|
199
|
199
|
placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
|
|
200
|
200
|
return placeholders
|
|
|
@@ -289,7 +289,77 @@ def generate_dimension_values(lot_no, code):
|
|
289
|
289
|
placeholders[f'v6_2'] = r.hsize
|
|
290
|
290
|
placeholders[f'v6_3'] = r.hsizeok
|
|
291
|
291
|
|
|
292
|
|
- hide_con(placeholders, "v4_1", "24:28")
|
|
|
292
|
+ hide_con(placeholders, "v4_2", "25:29")
|
|
|
293
|
+ placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
|
|
|
294
|
+ return placeholders
|
|
|
295
|
+
|
|
|
296
|
+def generate_dimension_weight_warp_values(lot_no, code):
|
|
|
297
|
+ """
|
|
|
298
|
+ Fetch dimension records from manualSize and DataMs models
|
|
|
299
|
+ and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
300
|
+ Supports two row_no entries per lot.
|
|
|
301
|
+ """
|
|
|
302
|
+ # Fetch standard values from manualSize (limit to 2 rows)
|
|
|
303
|
+ manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
|
304
|
+ dimens = AllProductDimensionForInsProcess.objects.filter(ProductCode=code)
|
|
|
305
|
+
|
|
|
306
|
+ # Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
|
307
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
308
|
+ data_wb = DataWb.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
309
|
+ # Prepare placeholders
|
|
|
310
|
+
|
|
|
311
|
+ # placeholders = {}
|
|
|
312
|
+ placeholders = clear_values(7,4)
|
|
|
313
|
+ # for i in range(1,7):
|
|
|
314
|
+ # for j in range(1,4):
|
|
|
315
|
+ # placeholders[f'v{i}_{j}'] = 0
|
|
|
316
|
+
|
|
|
317
|
+ pprint(placeholders)
|
|
|
318
|
+ pprint(manual_size_records)
|
|
|
319
|
+ for m in dimens:
|
|
|
320
|
+ if m.Size_Name == "D":
|
|
|
321
|
+ placeholders['v1_1'] = placeholders['v4_1'] = f'D{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
|
|
|
322
|
+ if m.Size_Name == "T":
|
|
|
323
|
+ placeholders['v2_1'] = placeholders['v5_1'] = f'T{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
|
|
|
324
|
+ if m.Size_Name == "H":
|
|
|
325
|
+ placeholders['v3_1'] = placeholders['v6_1'] = f'H{m.Std:.2f} +{m.TolUp:.2f} {m.TolUn:.2f}'
|
|
|
326
|
+
|
|
|
327
|
+
|
|
|
328
|
+
|
|
|
329
|
+ # Ensure that we map each manualSize entry to a corresponding DataMs entry
|
|
|
330
|
+ inspect_date = None
|
|
|
331
|
+ for r in data_ms_records:
|
|
|
332
|
+ if r.row_no == 1:
|
|
|
333
|
+ placeholders[f'v1_2'] = r.dsize
|
|
|
334
|
+ placeholders[f'v1_3'] = r.dsizeok
|
|
|
335
|
+
|
|
|
336
|
+ placeholders[f'v2_2'] = r.tsize
|
|
|
337
|
+ placeholders[f'v2_3'] = r.tsizeok
|
|
|
338
|
+
|
|
|
339
|
+ placeholders[f'v3_2'] = r.hsize
|
|
|
340
|
+ placeholders[f'v3_3'] = r.hsizeok
|
|
|
341
|
+ inspect_date = r.created_at
|
|
|
342
|
+
|
|
|
343
|
+ if r.row_no == 2:
|
|
|
344
|
+ placeholders[f'v4_2'] = r.dsize
|
|
|
345
|
+ placeholders[f'v4_3'] = r.dsizeok
|
|
|
346
|
+
|
|
|
347
|
+ placeholders[f'v5_2'] = r.tsize
|
|
|
348
|
+ placeholders[f'v5_3'] = r.tsizeok
|
|
|
349
|
+
|
|
|
350
|
+ placeholders[f'v6_2'] = r.hsize
|
|
|
351
|
+ placeholders[f'v6_3'] = r.hsizeok
|
|
|
352
|
+
|
|
|
353
|
+
|
|
|
354
|
+ for r in data_wb:
|
|
|
355
|
+ if r.row_no == 1:
|
|
|
356
|
+ placeholders["v7_1"] = r.weight
|
|
|
357
|
+ placeholders["v7_2"] = r.judgement
|
|
|
358
|
+ if r.row_no == 2:
|
|
|
359
|
+ placeholders["v8_1"] = r.weight
|
|
|
360
|
+ placeholders["v8_2"] = r.judgement
|
|
|
361
|
+
|
|
|
362
|
+ hide_con(placeholders, "v4_2", "29:37")
|
|
293
|
363
|
placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
|
|
294
|
364
|
return placeholders
|
|
295
|
365
|
|
|
|
@@ -382,7 +452,7 @@ def generate_dimension_app_values(lot_no, code):
|
|
382
|
452
|
# placeholders[f'v8_1'] = 'NG'
|
|
383
|
453
|
# placeholders[f'v8_2'] = 'NG'
|
|
384
|
454
|
|
|
385
|
|
- hide_con(placeholders, "v5_1", "26:32")
|
|
|
455
|
+ hide_con(placeholders, "v5_1", "29:37")
|
|
386
|
456
|
placeholders['inspect_date'] = inspect_date.strftime('%Y/%m/%d') if inspect_date else "-"
|
|
387
|
457
|
return placeholders
|
|
388
|
458
|
|
|
|
@@ -465,7 +535,7 @@ def generate_dimension_app_drawing_values(lot_no, code):
|
|
465
|
535
|
# placeholders[f'v8_1'] = 'NG'
|
|
466
|
536
|
# placeholders[f'v8_2'] = 'NG'
|
|
467
|
537
|
|
|
468
|
|
- hide_con(placeholders, "v5_1", "26:32")
|
|
|
538
|
+ hide_con(placeholders, "v5_1", "27:33")
|
|
469
|
539
|
|
|
470
|
540
|
drawing_data = ProductDrawing.objects.filter(
|
|
471
|
541
|
Q(lot_no=lot_no) | Q(code_no=code)).first()
|
|
|
@@ -955,6 +1025,9 @@ def create_coi_file(lot_no, sheets, user, md):
|
|
955
|
1025
|
sheet_data[sheet_name] = generate_hardness_both_size_values(lot_no, first_result, code)
|
|
956
|
1026
|
elif sheet_name == 'dimension':
|
|
957
|
1027
|
sheet_data[sheet_name] = generate_dimension_values(lot_no, code)
|
|
|
1028
|
+
|
|
|
1029
|
+ elif sheet_name == 'dimension_weight_warp':
|
|
|
1030
|
+ sheet_data[sheet_name] = generate_dimension_weight_warp_values(lot_no, code)
|
|
958
|
1031
|
elif sheet_name == 'dimension_app':
|
|
959
|
1032
|
sheet_data[sheet_name] = generate_dimension_app_values(lot_no, code)
|
|
960
|
1033
|
elif sheet_name == 'dimension_app_drawing':
|