Bez popisu

models.py 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. from django.db import models
  2. # Create your models here.
  3. from django.contrib.auth.models import User # Assuming you're using Django's built-in User model
  4. class Report(models.Model):
  5. name = models.CharField(max_length=255) # Name of the report
  6. created_by = models.ForeignKey(
  7. User,
  8. on_delete=models.CASCADE,
  9. related_name="reports"
  10. ) # Reference to the user who created the report
  11. created_at = models.DateTimeField(auto_now_add=True) # Automatically set when created
  12. updated_at = models.DateTimeField(auto_now=True) # Automatically updated when modified
  13. file = models.FileField(upload_to='reports/files/', null=True, blank=True) # File field
  14. def __str__(self):
  15. return self.name
  16. class MgMasterView(models.Model):
  17. # ProcessControl.dbo.[Q-PRO-DATA]
  18. PRO0 = models.CharField(primary_key=True,max_length=255, null=False)
  19. PRO1 = models.CharField(max_length=255, null=True)
  20. PRO1C = models.CharField(max_length=255, null=True)
  21. PRO2 = models.CharField(max_length=255, null=True)
  22. PRO5 = models.CharField(max_length=255, null=True)
  23. PRO8 = models.CharField(max_length=255, null=True)
  24. PRO9 = models.CharField(max_length=255, null=True)
  25. PRO10 = models.CharField(max_length=255, null=True)
  26. PRO11 = models.CharField(max_length=255, null=True)
  27. PRO12 = models.CharField(max_length=255, null=True)
  28. PRO13 = models.CharField(max_length=255, null=True)
  29. PRO14 = models.CharField(max_length=255, null=True)
  30. PRO15 = models.CharField(max_length=255, null=True)
  31. PRO16 = models.CharField(max_length=255, null=True)
  32. PRO17 = models.CharField(max_length=255, null=True)
  33. PRO18 = models.CharField(max_length=255, null=True)
  34. PRO21 = models.CharField(max_length=255, null=True)
  35. PRO25 = models.CharField(max_length=255, null=True)
  36. PRO27 = models.CharField(max_length=255, null=True)
  37. P2 = models.CharField(max_length=255, null=True) # PRO-P2
  38. SPEED = models.CharField(max_length=255, null=True) # PRO-SPEED
  39. PRO_TOOL = models.CharField(max_length=255, null=True, db_column='PRO-TOOL') # PRO-TOOL
  40. PRO4 = models.CharField(max_length=255, null=True)
  41. # dbo.[MG-MAS-1]
  42. MC11 = models.CharField(max_length=255, null=True)
  43. MC12 = models.CharField(max_length=255, null=True)
  44. MC14 = models.CharField(max_length=255, null=True)
  45. MC15 = models.CharField(max_length=255, null=True)
  46. MC16 = models.CharField(max_length=255, null=True)
  47. MC19 = models.CharField(max_length=255, null=True)
  48. MC20 = models.CharField(max_length=255, null=True)
  49. MC21 = models.CharField(max_length=255, null=True)
  50. MC22 = models.CharField(max_length=255, null=True)
  51. MC23 = models.CharField(max_length=255, null=True)
  52. MC24 = models.CharField(max_length=255, null=True)
  53. # dbo.[MG-MAS-2]
  54. MP45 = models.CharField(max_length=255, null=True)
  55. MP49 = models.CharField(max_length=255, null=True)
  56. # dbo.[MG-MAS-3]
  57. MI13 = models.CharField(max_length=255, null=True)
  58. TC = models.CharField(max_length=255, null=True)
  59. MI14 = models.CharField(max_length=255, null=True)
  60. MI15 = models.CharField(max_length=255, null=True)
  61. MI16 = models.CharField(max_length=255, null=True)
  62. MI17 = models.CharField(max_length=255, null=True)
  63. MI18 = models.CharField(max_length=255, null=True)
  64. MI19 = models.CharField(max_length=255, null=True)
  65. MI20 = models.CharField(max_length=255, null=True)
  66. MI21 = models.CharField(max_length=255, null=True)
  67. MI22 = models.CharField(max_length=255, null=True)
  68. MI23 = models.CharField(max_length=255, null=True)
  69. MI31 = models.CharField(max_length=255, null=True)
  70. MI33 = models.CharField(max_length=255, null=True)
  71. INSAGM = models.CharField(max_length=255, null=True)
  72. MARAGM = models.CharField(max_length=255, null=True)
  73. MI53 = models.CharField(max_length=255, null=True)
  74. MI55 = models.CharField(max_length=255, null=True)
  75. MI36 = models.CharField(max_length=255, null=True)
  76. MI39 = models.CharField(max_length=255, null=True)
  77. MI24 = models.CharField(max_length=255, null=True)
  78. # MGT_Config.dbo.[TABLE_TI-T1], [TABLE_TI-T5], [TABLE_TI-T6]
  79. Ind1 = models.CharField(max_length=255, null=True) # TIT1NE
  80. Ind2 = models.CharField(max_length=255, null=True) # TIT5NE
  81. Ind3 = models.CharField(max_length=255, null=True) # TIT6NE
  82. # Conditional Fields
  83. AGR1 = models.CharField(max_length=255, null=True)
  84. AGR2 = models.CharField(max_length=255, null=True)
  85. ob_Condition = models.CharField(max_length=255, null=True) # TIT4NE
  86. class Meta:
  87. managed = False
  88. db_table = 'mg_master_view'
  89. app_label = "legacy"
  90. #db_table = 'MgMasterView_Full_Mockup_Data'
  91. class VMasterView(models.Model):
  92. # Fields from ProcessControl.dbo.[Q-PRO-DATA]
  93. PRO0 = models.CharField(primary_key=True, max_length=255, null=False)
  94. PRO1 = models.CharField(max_length=255, null=True)
  95. PRO1C = models.CharField(max_length=255, null=True)
  96. PRO2 = models.CharField(max_length=255, null=True)
  97. PRO5 = models.CharField(max_length=255, null=True)
  98. PRO8 = models.CharField(max_length=255, null=True)
  99. PRO9 = models.CharField(max_length=255, null=True)
  100. PRO10 = models.CharField(max_length=255, null=True)
  101. PRO11 = models.CharField(max_length=255, null=True)
  102. PRO12 = models.CharField(max_length=255, null=True)
  103. PRO13 = models.CharField(max_length=255, null=True)
  104. PRO14 = models.CharField(max_length=255, null=True)
  105. PRO15 = models.CharField(max_length=255, null=True)
  106. PRO16 = models.CharField(max_length=255, null=True)
  107. PRO17 = models.CharField(max_length=255, null=True)
  108. PRO18 = models.CharField(max_length=255, null=True)
  109. PRO21 = models.CharField(max_length=255, null=True)
  110. PRO25 = models.CharField(max_length=255, null=True)
  111. PRO27 = models.CharField(max_length=255, null=True)
  112. P2 = models.CharField(max_length=255, null=True) # PRO-P2
  113. PRO6 = models.CharField(max_length=255, null=True)
  114. SPEED = models.CharField(max_length=255, null=True) # PRO-SPEED
  115. PRO_TOOL = models.CharField(max_length=255, null=True, db_column='PRO-TOOL') # PRO-TOOL
  116. PRO4 = models.CharField(max_length=255, null=True)
  117. # Fields from dbo.[V-MAS-1]
  118. MC11 = models.CharField(max_length=255, null=True)
  119. MC12 = models.CharField(max_length=255, null=True)
  120. MC14 = models.CharField(max_length=255, null=True)
  121. MC15 = models.CharField(max_length=255, null=True)
  122. MC16 = models.CharField(max_length=255, null=True)
  123. MC19 = models.CharField(max_length=255, null=True)
  124. MC20 = models.CharField(max_length=255, null=True)
  125. MC21 = models.CharField(max_length=255, null=True)
  126. MC22 = models.CharField(max_length=255, null=True)
  127. MC23 = models.CharField(max_length=255, null=True)
  128. MC24 = models.CharField(max_length=255, null=True)
  129. # Fields from dbo.[V-MAS-2]
  130. MP34 = models.CharField(max_length=255, null=True)
  131. MP39 = models.CharField(max_length=255, null=True)
  132. # Fields from dbo.[V-MAS-3]
  133. MI13 = models.CharField(max_length=255, null=True)
  134. TC = models.CharField(max_length=255, null=True)
  135. MI14 = models.CharField(max_length=255, null=True)
  136. MI15 = models.CharField(max_length=255, null=True)
  137. MI16 = models.CharField(max_length=255, null=True)
  138. MI17 = models.CharField(max_length=255, null=True)
  139. MI18 = models.CharField(max_length=255, null=True)
  140. MI19 = models.CharField(max_length=255, null=True)
  141. MI20 = models.CharField(max_length=255, null=True)
  142. MI21 = models.CharField(max_length=255, null=True)
  143. MI22 = models.CharField(max_length=255, null=True)
  144. MI23 = models.CharField(max_length=255, null=True)
  145. MI31 = models.CharField(max_length=255, null=True)
  146. MI33 = models.CharField(max_length=255, null=True)
  147. INSAGM = models.CharField(max_length=255, null=True)
  148. MARAGM = models.CharField(max_length=255, null=True)
  149. MI53 = models.CharField(max_length=255, null=True)
  150. MI55 = models.CharField(max_length=255, null=True)
  151. MI36 = models.CharField(max_length=255, null=True)
  152. MI39 = models.CharField(max_length=255, null=True)
  153. MI24 = models.CharField(max_length=255, null=True)
  154. # Fields from MGT_Config.dbo.[TABLE_TI-T1], [TABLE_TI-T5], [TABLE_TI-T6]
  155. Ind1 = models.CharField(max_length=255, null=True) # TIT1NE
  156. Ind2 = models.CharField(max_length=255, null=True) # TIT5NE
  157. Ind3 = models.CharField(max_length=255, null=True) # TIT6NE
  158. # Conditional Fields
  159. AGR1 = models.CharField(max_length=255, null=True)
  160. AGR2 = models.CharField(max_length=255, null=True)
  161. ob_Condition = models.CharField(max_length=255, null=True) # TIT4NE
  162. class Meta:
  163. managed = False
  164. #db_table = 'VMasterView_Full_Mockup_Data'
  165. db_table = 'v_master_view'
  166. app_label = "legacy"
  167. class VwRotateLog(models.Model):
  168. # Fields from the SQL view
  169. PROD_CODE = models.CharField(max_length=255, null=True)
  170. LOT_NO = models.CharField(max_length=255, null=True)
  171. SPEED_SPEC = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  172. SPEED_TEST = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  173. SPEED_NG = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  174. CREATED_DT = models.DateTimeField(null=True)
  175. LAST_UPD_DT = models.DateTimeField(null=True)
  176. QTY = models.IntegerField(null=True)
  177. STATION_NO = models.CharField(max_length=255, null=True)
  178. class Meta:
  179. managed = False # This model corresponds to a database view
  180. db_table = 'VwRotateLog_Mockup_Data'
  181. class VwRotateResult(models.Model):
  182. # Fields from the SQL view
  183. PROD_CODE = models.CharField(max_length=255, null=True)
  184. LOT_NO = models.CharField(max_length=255, null=True)
  185. SPEED_SPEC = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  186. QTY = models.IntegerField(null=True)
  187. STATION_NO = models.CharField(max_length=255, null=True)
  188. START_DT = models.DateTimeField(null=True) # T1.TEST_DT as START_DT
  189. TEST_NO = models.CharField(max_length=255, null=True)
  190. SPEED_TEST_VAL = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  191. SPEED_NG_VAL = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  192. TEST_END_DT = models.DateTimeField(null=True) # T2.TEST_DT as TEST_END_DT
  193. class Meta:
  194. managed = False # This model corresponds to a database view
  195. db_table = 'VW_ROTATE_RESULT' # Name of the database view
  196. class BelMasterView(models.Model):
  197. # Fields from ProcessControl.dbo.[Q-PRO-DATA]
  198. PRO0 = models.CharField(primary_key=True, max_length=255, null=False)
  199. PRO1 = models.CharField(max_length=255, null=True)
  200. PRO1C = models.CharField(max_length=255, null=True)
  201. PRO2 = models.CharField(max_length=255, null=True)
  202. PRO5 = models.CharField(max_length=255, null=True)
  203. PRO8 = models.CharField(max_length=255, null=True)
  204. PRO9 = models.CharField(max_length=255, null=True)
  205. PRO10 = models.CharField(max_length=255, null=True)
  206. PRO11 = models.CharField(max_length=255, null=True)
  207. PRO12 = models.CharField(max_length=255, null=True)
  208. PRO13 = models.CharField(max_length=255, null=True)
  209. PRO14 = models.CharField(max_length=255, null=True)
  210. PRO15 = models.CharField(max_length=255, null=True)
  211. PRO16 = models.CharField(max_length=255, null=True)
  212. PRO17 = models.CharField(max_length=255, null=True)
  213. PRO18 = models.CharField(max_length=255, null=True)
  214. PRO21 = models.CharField(max_length=255, null=True)
  215. PRO25 = models.CharField(max_length=255, null=True)
  216. PRO27 = models.CharField(max_length=255, null=True)
  217. P2 = models.CharField(max_length=255, null=True) # PRO-P2
  218. PRO6 = models.CharField(max_length=255, null=True)
  219. SPEED = models.CharField(max_length=255, null=True) # PRO-SPEED
  220. PRO_TOOL = models.CharField(max_length=255, null=True, db_column='PRO-TOOL') # PRO-TOOL
  221. PRO4 = models.CharField(max_length=255, null=True)
  222. # Fields from dbo.[BEL-MAS-1]
  223. MC11 = models.CharField(max_length=255, null=True)
  224. MC12 = models.CharField(max_length=255, null=True)
  225. MC14 = models.CharField(max_length=255, null=True)
  226. MC15 = models.CharField(max_length=255, null=True)
  227. MC16 = models.CharField(max_length=255, null=True)
  228. MC19 = models.CharField(max_length=255, null=True)
  229. MC20 = models.CharField(max_length=255, null=True)
  230. MC21 = models.CharField(max_length=255, null=True)
  231. MC22 = models.CharField(max_length=255, null=True)
  232. MC23 = models.CharField(max_length=255, null=True)
  233. MC24 = models.CharField(max_length=255, null=True)
  234. # Fields from dbo.[BEL-MAS-2]
  235. MP45 = models.CharField(max_length=255, null=True)
  236. MP49 = models.CharField(max_length=255, null=True)
  237. # Fields from dbo.[BEL-MAS-3]
  238. MI13 = models.CharField(max_length=255, null=True)
  239. TC = models.CharField(max_length=255, null=True)
  240. MI14 = models.CharField(max_length=255, null=True)
  241. MI15 = models.CharField(max_length=255, null=True)
  242. MI16 = models.CharField(max_length=255, null=True)
  243. MI17 = models.CharField(max_length=255, null=True)
  244. MI18 = models.CharField(max_length=255, null=True)
  245. MI19 = models.CharField(max_length=255, null=True)
  246. MI20 = models.CharField(max_length=255, null=True)
  247. MI21 = models.CharField(max_length=255, null=True)
  248. MI22 = models.CharField(max_length=255, null=True)
  249. MI23 = models.CharField(max_length=255, null=True)
  250. MI31 = models.CharField(max_length=255, null=True)
  251. MI33 = models.CharField(max_length=255, null=True)
  252. INSAGM = models.CharField(max_length=255, null=True)
  253. MARAGM = models.CharField(max_length=255, null=True)
  254. MI53 = models.CharField(max_length=255, null=True)
  255. MI55 = models.CharField(max_length=255, null=True)
  256. MI36 = models.CharField(max_length=255, null=True)
  257. MI39 = models.CharField(max_length=255, null=True)
  258. MI24 = models.CharField(max_length=255, null=True)
  259. # Fields from MGT_Config.dbo.[TABLE_TI-T1], [TABLE_TI-T5], [TABLE_TI-T6]
  260. Ind1 = models.CharField(max_length=255, null=True) # TIT1NE
  261. Ind2 = models.CharField(max_length=255, null=True) # TIT5NE
  262. Ind3 = models.CharField(max_length=255, null=True) # TIT6NE
  263. # Conditional Fields
  264. AGR1 = models.CharField(max_length=255, null=True)
  265. AGR2 = models.CharField(max_length=255, null=True)
  266. ob_Condition = models.CharField(max_length=255, null=True) # TIT4NE
  267. class Meta:
  268. managed = False # This model corresponds to a database view
  269. app_label = "legacy"
  270. db_table = 'bel_master_view' # Name of the database view
  271. class EMasterView(models.Model):
  272. # Fields from ProcessControl.dbo.[Q-PRO-DATA]
  273. PRO0 = models.CharField(primary_key=True, max_length=255, null=False)
  274. PRO1 = models.CharField(max_length=255, null=True)
  275. PRO1C = models.CharField(max_length=255, null=True)
  276. PRO2 = models.CharField(max_length=255, null=True)
  277. PRO5 = models.CharField(max_length=255, null=True)
  278. PRO8 = models.CharField(max_length=255, null=True)
  279. PRO9 = models.CharField(max_length=255, null=True)
  280. PRO10 = models.CharField(max_length=255, null=True)
  281. PRO11 = models.CharField(max_length=255, null=True)
  282. PRO12 = models.CharField(max_length=255, null=True)
  283. PRO13 = models.CharField(max_length=255, null=True)
  284. PRO14 = models.CharField(max_length=255, null=True)
  285. PRO15 = models.CharField(max_length=255, null=True)
  286. PRO16 = models.CharField(max_length=255, null=True)
  287. PRO17 = models.CharField(max_length=255, null=True)
  288. PRO18 = models.CharField(max_length=255, null=True)
  289. PRO21 = models.CharField(max_length=255, null=True)
  290. PRO25 = models.CharField(max_length=255, null=True)
  291. PRO27 = models.CharField(max_length=255, null=True)
  292. P2 = models.CharField(max_length=255, null=True) # PRO-P2
  293. PRO6 = models.CharField(max_length=255, null=True)
  294. SPEED = models.CharField(max_length=255, null=True) # PRO-SPEED
  295. PRO_TOOL = models.CharField(max_length=255, null=True, db_column='PRO-TOOL') # PRO-TOOL
  296. PRO4 = models.CharField(max_length=255, null=True)
  297. # Fields from dbo.[E-MAS-1]
  298. MC11 = models.CharField(max_length=255, null=True)
  299. MC12 = models.CharField(max_length=255, null=True)
  300. MC14 = models.CharField(max_length=255, null=True)
  301. MC15 = models.CharField(max_length=255, null=True)
  302. MC16 = models.CharField(max_length=255, null=True)
  303. MC19 = models.CharField(max_length=255, null=True)
  304. MC20 = models.CharField(max_length=255, null=True)
  305. MC21 = models.CharField(max_length=255, null=True)
  306. MC22 = models.CharField(max_length=255, null=True)
  307. MC23 = models.CharField(max_length=255, null=True)
  308. MC24 = models.CharField(max_length=255, null=True)
  309. # Fields from dbo.[E-MAS-2]
  310. MP45 = models.CharField(max_length=255, null=True)
  311. MP49 = models.CharField(max_length=255, null=True)
  312. # Fields from dbo.[E-MAS-3]
  313. MI13 = models.CharField(max_length=255, null=True)
  314. TC = models.CharField(max_length=255, null=True)
  315. MI14 = models.CharField(max_length=255, null=True)
  316. MI15 = models.CharField(max_length=255, null=True)
  317. MI16 = models.CharField(max_length=255, null=True)
  318. MI17 = models.CharField(max_length=255, null=True)
  319. MI18 = models.CharField(max_length=255, null=True)
  320. MI19 = models.CharField(max_length=255, null=True)
  321. MI20 = models.CharField(max_length=255, null=True)
  322. MI21 = models.CharField(max_length=255, null=True)
  323. MI22 = models.CharField(max_length=255, null=True)
  324. MI23 = models.CharField(max_length=255, null=True)
  325. MI31 = models.CharField(max_length=255, null=True)
  326. MI33 = models.CharField(max_length=255, null=True)
  327. INSAGM = models.CharField(max_length=255, null=True)
  328. MARAGM = models.CharField(max_length=255, null=True)
  329. MI53 = models.CharField(max_length=255, null=True)
  330. MI55 = models.CharField(max_length=255, null=True)
  331. MI36 = models.CharField(max_length=255, null=True)
  332. MI39 = models.CharField(max_length=255, null=True)
  333. MI24 = models.CharField(max_length=255, null=True)
  334. # Fields from MGT_Config.dbo.[TABLE_TI-T1], [TABLE_TI-T5], [TABLE_TI-T6]
  335. Ind1 = models.CharField(max_length=255, null=True) # TIT1NE
  336. Ind2 = models.CharField(max_length=255, null=True) # TIT5NE
  337. Ind3 = models.CharField(max_length=255, null=True) # TIT6NE
  338. # Conditional Fields
  339. AGR1 = models.CharField(max_length=255, null=True)
  340. AGR2 = models.CharField(max_length=255, null=True)
  341. ob_Condition = models.CharField(max_length=255, null=True) # TIT4NE
  342. class Meta:
  343. managed = False # This model corresponds to a database view
  344. app_label = "legacy"
  345. db_table = 'e_master_view' # Name of the database view
  346. class AllProductAverageObMinMaxView(models.Model):
  347. ProductCode = models.CharField(max_length=255, null=True) # RE01
  348. out_min = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Minimum of [OB-O]
  349. out_max = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Maximum of [OB-O]
  350. in_min = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Minimum of [OB-I]
  351. in_max = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Maximum of [OB-I]
  352. class Meta:
  353. managed = False # This model corresponds to a database view
  354. app_label = "legacy"
  355. db_table = 'AllProduct_Average_OB_MIN_MAX_view' # Name of the database view
  356. class AllProductDimensionForInsProcess(models.Model):
  357. ProdType = models.CharField(max_length=255, null=True) # Product type (e.g., 'V', 'E', 'BEL', 'MG')
  358. ProductCode = models.CharField(max_length=255, primary_key=True) # Product code# Product code
  359. Size_Id = models.CharField(max_length=255, null=True) # Size ID (e.g., '001', '002')
  360. Size_Name = models.CharField(max_length=255, null=True) # Size name (e.g., 'D', 'T', 'H')
  361. Std = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Standard value
  362. TolUn = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Tolerance lower limit
  363. TolUp = models.DecimalField(max_digits=10, decimal_places=2, null=True) # Tolerance upper limit
  364. class Meta:
  365. managed = False # This model corresponds to a database view
  366. app_label = "legacy"
  367. db_table = 'AllProduct_Dimension_ForInsProcess' # Name of the database view
  368. class AllProductPressPositionPressWeight(models.Model):
  369. ProductCode = models.CharField(max_length=255, null=True)
  370. Lot_No = models.CharField(max_length=255, null=True)
  371. PO_Qty = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  372. UWeight = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  373. Current_ProNo = models.CharField(max_length=255, null=True)
  374. Press_Time = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  375. PressType_1 = models.CharField(max_length=255, null=True)
  376. PressWeight_1 = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  377. PressType_2 = models.CharField(max_length=255, null=True)
  378. PressWeight_2 = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  379. Press_Ton = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  380. Press_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  381. Press_T_Tol = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  382. Mold_D = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  383. Mold_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  384. SegMold_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  385. SegMold_D = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  386. Center_D = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  387. Center_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  388. LowerPlate_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  389. StudPlate_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  390. UpperPlate_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  391. PinPlate_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  392. TopConcave_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  393. BottomConcave_T = models.DecimalField(max_digits=10, decimal_places=2, null=True)
  394. class Meta:
  395. managed = False # This model corresponds to a database view
  396. app_label = "legacy"
  397. db_table = 'AllProduct_PressPosition_PressWeight' # Name of the database view
  398. class RotateBrokenTest(models.Model):
  399. row_no = models.IntegerField(null=True, blank=True)
  400. speed_spec = models.FloatField(null=True, blank=True)
  401. speed_test = models.FloatField(null=True, blank=True)
  402. speedOk = models.CharField(max_length=4, null=True, blank=True)
  403. qty = models.IntegerField()
  404. station_no = models.IntegerField()
  405. created_at = models.DateTimeField(null=True, blank=True)
  406. updated_at = models.DateTimeField(null=True, blank=True)
  407. lot_no = models.CharField(max_length=50, null=True, blank=True)
  408. machine_id = models.IntegerField(null=True, blank=True)
  409. code = models.CharField(max_length=50, null=True, blank=True)
  410. emp_id = models.IntegerField()
  411. devid = models.CharField(max_length=40, null=True, blank=True)
  412. mode = models.CharField(max_length=10, null=True, blank=True)
  413. cal_mode = models.IntegerField(null=True, blank=True)
  414. class Meta:
  415. managed = False # This model corresponds to a database view
  416. app_label = "legacy"
  417. db_table = "rotate_broken_test" # Matches SQL Server table name
  418. class LotType(models.Model):
  419. lot_no = models.CharField(primary_key=True,max_length=20, db_column='LotNo')
  420. group = models.CharField(max_length=10, db_column='Group')
  421. sub_group = models.CharField(max_length=10, db_column='SubGroup')
  422. class Meta:
  423. db_table = 'T-LotType'
  424. managed = False # Since it's an existing table in SQL Server
  425. app_label = "trans"
  426. TEMPLATE_CHOICES = [
  427. "hardness_out",
  428. "hardness_out_in",
  429. "hardness_both_size",
  430. "dimension",
  431. "dimension_app",
  432. "dimension_bal_weight",
  433. "dim_bal_app_hard",
  434. "dim_bal_app_rot_hard",
  435. "thickness_8_point",
  436. "centering"
  437. ]
  438. class CustomerTemplateMapping(models.Model):
  439. customer_name = models.CharField(max_length=255)
  440. template_names = models.JSONField(default=list, blank=True, null=True) # stores list of template names
  441. created_by = models.ForeignKey(
  442. User,
  443. on_delete=models.SET_NULL,
  444. null=True,
  445. blank=True,
  446. ) # Reference to the user who created the report
  447. created_at = models.DateTimeField(auto_now_add=True) # Automatically set when created
  448. updated_at = models.DateTimeField(auto_now=True) # Automatically updated when modified
  449. def __str__(self):
  450. return self.customer_name
  451. class ProductDrawing(models.Model):
  452. code_no = models.CharField(max_length=100, null=True, blank=True)
  453. code_no_mks = models.CharField(max_length=100, null=True, blank=True)
  454. lot_no = models.CharField(max_length=100, null=True, blank=True)
  455. drawing = models.ImageField(upload_to='drawings/')
  456. description = models.TextField(null=True, blank=True)
  457. created_at = models.DateTimeField(auto_now_add=True)
  458. updated_at = models.DateTimeField(auto_now=True)
  459. created_by = models.ForeignKey(
  460. User,
  461. on_delete=models.SET_NULL,
  462. null=True,
  463. blank=True,
  464. ) # Reference to the user who created the report
  465. def __str__(self):
  466. return f"{self.code_no} - {self.lot_no}"
  467. class MksCodeMap(models.Model):
  468. mgt_code = models.CharField(max_length=100)
  469. mks_code = models.CharField(max_length=100)
  470. created_at = models.DateTimeField(auto_now_add=True)
  471. updated_at = models.DateTimeField(auto_now=True)
  472. def __str__(self):
  473. return f"{self.mgt_code} ⇄ {self.mks_code}"