|
|
|
|
|
|
1
|
from django.shortcuts import render, redirect, get_object_or_404
|
1
|
from django.shortcuts import render, redirect, get_object_or_404
|
|
2
|
from django.core.paginator import Paginator
|
2
|
from django.core.paginator import Paginator
|
|
3
|
from django.contrib import messages
|
3
|
from django.contrib import messages
|
|
4
|
-from core.models import Report
|
|
|
|
|
|
4
|
+from core.models import Report, AllProductDimensionForInsProcess
|
|
5
|
from core.forms import ReportForm
|
5
|
from core.forms import ReportForm
|
|
6
|
from core.utils import ConfigurableCRUDView, queryFromMaster
|
6
|
from core.utils import ConfigurableCRUDView, queryFromMaster
|
|
7
|
from .filters import ReportFilter
|
7
|
from .filters import ReportFilter
|
|
|
|
|
|
|
111
|
placeholders[f'v{i}_{j}'] = " "
|
111
|
placeholders[f'v{i}_{j}'] = " "
|
|
112
|
return placeholders
|
112
|
return placeholders
|
|
113
|
|
113
|
|
|
114
|
-def generate_hardness_out_values(lot_no):
|
|
|
|
|
|
114
|
+def generate_hardness_out_values(lot_no, code):
|
|
115
|
"""
|
115
|
"""
|
|
116
|
Generate a dictionary of placeholder values for a given lot_no.
|
116
|
Generate a dictionary of placeholder values for a given lot_no.
|
|
117
|
|
117
|
|
|
|
|
|
|
|
139
|
|
139
|
|
|
140
|
return placeholders
|
140
|
return placeholders
|
|
141
|
|
141
|
|
|
142
|
-def generate_hardness_out_in_values(lot_no):
|
|
|
|
|
|
142
|
+def generate_hardness_out_in_values(lot_no, code):
|
|
143
|
# Fetch records from the Data model
|
143
|
# Fetch records from the Data model
|
|
144
|
# records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
144
|
# records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
145
|
data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
145
|
data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
|
|
|
|
183
|
|
183
|
|
|
184
|
return placeholders
|
184
|
return placeholders
|
|
185
|
|
185
|
|
|
186
|
-def generate_hardness_both_size_values(lot_no, ms):
|
|
|
|
|
|
186
|
+def generate_hardness_both_size_values(lot_no, ms,code):
|
|
187
|
# Fetch records from the Data model
|
187
|
# Fetch records from the Data model
|
|
188
|
# records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
188
|
# records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
189
|
data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no', 'sub_order'))
|
189
|
data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no', 'sub_order'))
|
|
|
|
|
|
|
211
|
# # Example usage:
|
211
|
# # Example usage:
|
|
212
|
# placeholders_dict = clear_values(6, 3)
|
212
|
# placeholders_dict = clear_values(6, 3)
|
|
213
|
# print(placeholders_dict)
|
213
|
# print(placeholders_dict)
|
|
214
|
-def generate_dimension_values(lot_no):
|
|
|
|
|
|
214
|
+def generate_dimension_values(lot_no, code):
|
|
215
|
"""
|
215
|
"""
|
|
216
|
Fetch dimension records from manualSize and DataMs models
|
216
|
Fetch dimension records from manualSize and DataMs models
|
|
217
|
and generate placeholder values for Standard, Actual, and Judgement.
|
217
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
219
|
"""
|
219
|
"""
|
|
220
|
# Fetch standard values from manualSize (limit to 2 rows)
|
220
|
# Fetch standard values from manualSize (limit to 2 rows)
|
|
221
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
221
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
|
|
222
|
+ dimens = AllProductDimensionForInsProcess.objects.filter(ProductCode=code)
|
|
222
|
|
223
|
|
|
223
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
224
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
224
|
data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
225
|
data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
|
|
|
|
233
|
|
234
|
|
|
234
|
pprint(placeholders)
|
235
|
pprint(placeholders)
|
|
235
|
pprint(manual_size_records)
|
236
|
pprint(manual_size_records)
|
|
236
|
- for m in manual_size_records:
|
|
|
|
237
|
- if m.size_name == "D":
|
|
|
|
238
|
- placeholders['v1_1'] = placeholders['v4_1'] = f'{m.std} +{m.tolup} {m.tolun}'
|
|
|
|
239
|
- if m.size_name == "T":
|
|
|
|
240
|
- placeholders['v2_1'] = placeholders['v5_1'] = f'{m.std} +{m.tolup} {m.tolun}'
|
|
|
|
241
|
- if m.size_name == "H":
|
|
|
|
242
|
- placeholders['v3_1'] = placeholders['v6_1'] = f'{m.std} +{m.tolup} {m.tolun}'
|
|
|
|
|
|
237
|
+ for m in dimens:
|
|
|
|
238
|
+ if m.Size_Name == "D":
|
|
|
|
239
|
+ placeholders['v1_1'] = placeholders['v4_1'] = f'D{m.Std} +{m.TolUp} {m.TolUn}'
|
|
|
|
240
|
+ if m.Size_Name == "T":
|
|
|
|
241
|
+ placeholders['v2_1'] = placeholders['v5_1'] = f'T{m.Std} +{m.TolUp} {m.TolUn}'
|
|
|
|
242
|
+ if m.Size_Name == "H":
|
|
|
|
243
|
+ placeholders['v3_1'] = placeholders['v6_1'] = f'H{m.Std} +{m.TolUp} {m.TolUn}'
|
|
243
|
|
244
|
|
|
244
|
|
245
|
|
|
245
|
|
246
|
|
|
|
|
|
|
|
278
|
return False
|
279
|
return False
|
|
279
|
return True
|
280
|
return True
|
|
280
|
|
281
|
|
|
281
|
-def generate_dimension_app_values(lot_no):
|
|
|
|
|
|
282
|
+def generate_dimension_app_values(lot_no, code):
|
|
282
|
"""
|
283
|
"""
|
|
283
|
Fetch dimension records from manualSize and DataMs models
|
284
|
Fetch dimension records from manualSize and DataMs models
|
|
284
|
and generate placeholder values for Standard, Actual, and Judgement.
|
285
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
349
|
hide_con(placeholders, "v5_1", "26:32")
|
350
|
hide_con(placeholders, "v5_1", "26:32")
|
|
350
|
return placeholders
|
351
|
return placeholders
|
|
351
|
|
352
|
|
|
352
|
-def generate_dimension_bal_weight_values(lot_no, ms):
|
|
|
|
|
|
353
|
+def generate_dimension_bal_weight_values(lot_no, ms, code):
|
|
353
|
"""
|
354
|
"""
|
|
354
|
Fetch dimension records from manualSize and DataMs models
|
355
|
Fetch dimension records from manualSize and DataMs models
|
|
355
|
and generate placeholder values for Standard, Actual, and Judgement.
|
356
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
442
|
# hide_con(placeholders, "v5_1", "26:32")
|
443
|
# hide_con(placeholders, "v5_1", "26:32")
|
|
443
|
return placeholders
|
444
|
return placeholders
|
|
444
|
|
445
|
|
|
445
|
-def generate_dim_bal_app_hard_values(lot_no, first_result):
|
|
|
|
|
|
446
|
+def generate_dim_bal_app_hard_values(lot_no, first_result, code):
|
|
446
|
"""
|
447
|
"""
|
|
447
|
Fetch dimension records from manualSize and DataMs models
|
448
|
Fetch dimension records from manualSize and DataMs models
|
|
448
|
and generate placeholder values for Standard, Actual, and Judgement.
|
449
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
559
|
# hide_con(placeholders, "v5_1", "26:32")
|
560
|
# hide_con(placeholders, "v5_1", "26:32")
|
|
560
|
return placeholders
|
561
|
return placeholders
|
|
561
|
|
562
|
|
|
562
|
-def generate_dim_bal_app_rot_hard_values(lot_no, first_result):
|
|
|
|
|
|
563
|
+def generate_dim_bal_app_rot_hard_values(lot_no, first_result, code):
|
|
563
|
"""
|
564
|
"""
|
|
564
|
Fetch dimension records from manualSize and DataMs models
|
565
|
Fetch dimension records from manualSize and DataMs models
|
|
565
|
and generate placeholder values for Standard, Actual, and Judgement.
|
566
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
689
|
# hide_con(placeholders, "v5_1", "26:32")
|
690
|
# hide_con(placeholders, "v5_1", "26:32")
|
|
690
|
return placeholders
|
691
|
return placeholders
|
|
691
|
|
692
|
|
|
692
|
-def generate_centering_values(lot_no):
|
|
|
|
|
|
693
|
+def generate_centering_values(lot_no, code):
|
|
693
|
"""
|
694
|
"""
|
|
694
|
Fetch dimension records from manualSize and DataMs models
|
695
|
Fetch dimension records from manualSize and DataMs models
|
|
695
|
and generate placeholder values for Standard, Actual, and Judgement.
|
696
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
720
|
|
721
|
|
|
721
|
return placeholders
|
722
|
return placeholders
|
|
722
|
|
723
|
|
|
723
|
-def generate_t8_values(lot_no):
|
|
|
|
|
|
724
|
+def generate_t8_values(lot_no, code):
|
|
724
|
"""
|
725
|
"""
|
|
725
|
Fetch dimension records from manualSize and DataMs models
|
726
|
Fetch dimension records from manualSize and DataMs models
|
|
726
|
and generate placeholder values for Standard, Actual, and Judgement.
|
727
|
and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
|
|
|
|
788
|
|
789
|
|
|
789
|
results = queryFromMaster(lot_no)
|
790
|
results = queryFromMaster(lot_no)
|
|
790
|
first_result = results[0] if results else None
|
791
|
first_result = results[0] if results else None
|
|
791
|
-
|
|
|
|
|
|
792
|
+ code = first_result.PRO1 if first_result else None
|
|
792
|
sheet_data = {}
|
793
|
sheet_data = {}
|
|
793
|
for sheet_name in sheets:
|
794
|
for sheet_name in sheets:
|
|
794
|
if sheet_name == 'hardness_out':
|
795
|
if sheet_name == 'hardness_out':
|
|
795
|
- sheet_data[sheet_name] = generate_hardness_out_values(lot_no)
|
|
|
|
|
|
796
|
+ sheet_data[sheet_name] = generate_hardness_out_values(lot_no, code)
|
|
796
|
elif sheet_name == 'hardness_out_in':
|
797
|
elif sheet_name == 'hardness_out_in':
|
|
797
|
- sheet_data[sheet_name] = generate_hardness_out_in_values(lot_no)
|
|
|
|
|
|
798
|
+ sheet_data[sheet_name] = generate_hardness_out_in_values(lot_no, code)
|
|
798
|
elif sheet_name == 'hardness_both_size':
|
799
|
elif sheet_name == 'hardness_both_size':
|
|
799
|
- sheet_data[sheet_name] = generate_hardness_both_size_values(lot_no, first_result)
|
|
|
|
|
|
800
|
+ sheet_data[sheet_name] = generate_hardness_both_size_values(lot_no, first_result, code)
|
|
800
|
elif sheet_name == 'dimension':
|
801
|
elif sheet_name == 'dimension':
|
|
801
|
- sheet_data[sheet_name] = generate_dimension_values(lot_no)
|
|
|
|
|
|
802
|
+ sheet_data[sheet_name] = generate_dimension_values(lot_no, code)
|
|
802
|
elif sheet_name == 'dimension_app':
|
803
|
elif sheet_name == 'dimension_app':
|
|
803
|
- sheet_data[sheet_name] = generate_dimension_app_values(lot_no)
|
|
|
|
|
|
804
|
+ sheet_data[sheet_name] = generate_dimension_app_values(lot_no, code)
|
|
804
|
elif sheet_name == 'dimension_bal_weight':
|
805
|
elif sheet_name == 'dimension_bal_weight':
|
|
805
|
- sheet_data[sheet_name] = generate_dimension_bal_weight_values(lot_no, first_result)
|
|
|
|
|
|
806
|
+ sheet_data[sheet_name] = generate_dimension_bal_weight_values(lot_no, first_result, code)
|
|
806
|
elif sheet_name == 'centering':
|
807
|
elif sheet_name == 'centering':
|
|
807
|
- sheet_data[sheet_name] = generate_centering_values(lot_no)
|
|
|
|
|
|
808
|
+ sheet_data[sheet_name] = generate_centering_values(lot_no, code)
|
|
808
|
elif sheet_name == 'thickness_8_point':
|
809
|
elif sheet_name == 'thickness_8_point':
|
|
809
|
- sheet_data[sheet_name] = generate_t8_values(lot_no)
|
|
|
|
|
|
810
|
+ sheet_data[sheet_name] = generate_t8_values(lot_no, code)
|
|
810
|
elif sheet_name == 'dim_bal_app_hard':
|
811
|
elif sheet_name == 'dim_bal_app_hard':
|
|
811
|
- sheet_data[sheet_name] = generate_dim_bal_app_hard_values(lot_no, first_result)
|
|
|
|
|
|
812
|
+ sheet_data[sheet_name] = generate_dim_bal_app_hard_values(lot_no, first_result, code)
|
|
812
|
elif sheet_name == 'dim_bal_app_rot_hard':
|
813
|
elif sheet_name == 'dim_bal_app_rot_hard':
|
|
813
|
- sheet_data[sheet_name] = generate_dim_bal_app_rot_hard_values(lot_no, first_result)
|
|
|
|
|
|
814
|
+ sheet_data[sheet_name] = generate_dim_bal_app_rot_hard_values(lot_no, first_result, code)
|
|
814
|
|
815
|
|
|
815
|
converted_data = convert_sheet_data(sheet_data)
|
816
|
converted_data = convert_sheet_data(sheet_data)
|
|
816
|
|
817
|
|