Wiki source code of Карточка ОЕМ

Last modified by Vladislav Eleseev on 2024/01/23 07:12

Hide last authors
Vladislav Eleseev 5.1 1 Карточка ОЕМ.
2
3 [[image:1705993896854-934.png||height="666" width="974"]]
4
5
6 Карточка ОЕМ кода открывается из справочника ОЕМ. Предусмотреть возможность открытия не из справочника. Точно будет открываться из карточки товара. С открытием по коду. Карточка работает однотипно с другими карточками в проекте. Информация сохраняется после нажатия Ок.
7
8 Карточки имеет 4 вкладки. Предусмотреть сохранения открытие карточки на той вкладке, которую выбрали последний раз в карточке такого типа. По умолчанию первая вкладка.
9 На первой вкладке отображаются поля из запроса.
10 SELECT c.id, c.code, c.oemmarkid, m.name as mark, c.info, c.code_ex
11
12 FROM oem_codes AS c
13
14 LEFT JOIN oem_Mark AS m ON m.id = c.oemmarkid
15
16 WHERE c.id = 58553 ORDER BY id
17
18
19 Поле производитель должна быть возможность выбрать из диалога.
20
21
22 Вкладка Автомобили.
23 [[image:image-20240123101116-2.png||height="513" width="752"]]
24 Данные берутся из запроса
25 SELECT top(10) m.id, mdls.items, m.name, m.[begin], COALESCE(CAST(m.[end] as CHAR(18)), 'н.в.') as _end, m.[end], fleet2.quantity_guarantee, fleet2.quantity_nonguarantee,
26
27 fleet.quantity, '-' as quantity_rate, m.quality, c.name as country, '' as popular, m.country_id , m.image, db.oem_id
28
29 FROM auto_marks AS m
30
31 LEFT JOIN (
32
33 SELECT mark_id, COUNT(id) as items
34
35 FROM auto_models GROUP BY mark_id) AS mdls ON mdls.mark_id = m.id
36
37 LEFT JOIN auto_countries AS c ON c.id = m.country_id
38
39 LEFT JOIN (
40
41 SELECT SUM(quantity) AS quantity, mark_id
42
43 FROM auto_sells GROUP BY mark_id) AS fleet ON fleet.mark_id = m.id
44
45 LEFT JOIN (
46
47 SELECT SUM(mf.quantity_guarantee) AS quantity_guarantee, SUM(mf.quantity_nonguarantee) AS quantity_nonguarantee, md.mark_id
48
49 FROM auto_modifications AS mf
50
51 LEFT JOIN auto_models AS md ON md.id = mf.model_id
52
53 GROUP BY md.mark_id) AS fleet2 ON fleet2.mark_id = m.id
54
55 LEFT JOIN (
56
57 SELECT md.mark_id, db.oem_id, c.code, c.code_ex
58
59 FROM auto_models AS md
60
61 LEFT JOIN auto_modifications AS mf ON mf.model_id = md.id
62
63 LEFT JOIN product_cars AS dbc ON dbc.modification_id = mf.id
64
65 LEFT JOIN product_oem AS db ON dbc.product_id = db.product_id
66
67 LEFT JOIN oem_codes AS c ON c.id = db.oem_id
68
69 GROUP BY md.mark_id, db.oem_id, c.code, c.code_ex) AS db ON db.mark_id = m.id
70
71 WHERE db.oem_id = 56134 ORDER BY m.name
72
73
74 Запрос можно изменить.
75 Вкладка возможно устаревшая. Т.к. данные явно не актуальные. Но переносим для общей картины. Картинку вставлять не нужно.
76
77
78
79 Вкладка товары
80
81 [[image:1705993920794-577.png||height="664" width="974"]]
82
83 Данные берутся из запроса
84
85
86 SELECT * FROM products AS p
87
88 JOIN product_oem AS td ON td.product_id = p.id
89
90 WHERE td.oem_id = 158577
91
92
93
94 Вкладка Заменители ОЕМ
95
96 [[image:1705993936537-323.png||height="656" width="974"]]
97
98
99 Данные берутся из запроса
100
101 SELECT c.id, c.id as oem_id, c.code, c.code as name, c.oemmarkid, m.name as mark, c.info, c.code_ex
102
103 FROM oem_codes AS c
104
105 LEFT JOIN oem_Mark AS m ON m.id = c.oemmarkid
106
107 LEFT JOIN product_oem AS pc ON pc.oem_id = c.id
108
109 LEFT JOIN product_oem AS pc2 ON pc2.oem_id = 158577
110
111 WHERE pc2.product_id = pc.product_id AND pc2.oem_id <> pc.oem_id
112
113 ORDER BY id