Wiki source code of Карточка ОЕМ
Last modified by Vladislav Eleseev on 2024/01/23 07:12
Hide last authors
| |
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 |