Main.НПР.Карточка ОЕМ - Карточка ОЕМ

Page of - last modified by Vladislav Eleseev on 2024/01/23 07:11

Карточка ОЕМ

Vladislav Eleseev

2024/01/23 07:11

Table of Contents

Карточка ОЕМ.

Карточка ОЕМ кода открывается из справочника ОЕМ. Предусмотреть возможность открытия не из справочника. Точно будет открываться из карточки товара. С открытием по коду. Карточка работает однотипно с другими карточками в проекте. Информация сохраняется после нажатия Ок.

Карточки имеет 4 вкладки. Предусмотреть сохранения открытие карточки на той вкладке, которую выбрали последний раз в карточке такого типа. По умолчанию первая вкладка.
На первой вкладке отображаются поля из запроса.
SELECT c.id, c.code, c.oemmarkid, m.name as mark, c.info, c.code_ex

FROM oem_codes AS c

LEFT JOIN oem_Mark AS m ON m.id = c.oemmarkid

WHERE c.id = 58553 ORDER BY id

Поле производитель должна быть возможность выбрать из диалога.

Вкладка Автомобили.
Данные берутся из запроса
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,

fleet.quantity, '-' as quantity_rate, m.quality, c.name as country, '' as popular, m.country_id , m.image, db.oem_id

FROM auto_marks AS m

LEFT JOIN (

SELECT mark_id, COUNT(id) as items

FROM auto_models GROUP BY mark_id) AS mdls ON mdls.mark_id = m.id

LEFT JOIN auto_countries AS c ON c.id = m.country_id

LEFT JOIN (

SELECT SUM(quantity) AS quantity, mark_id

FROM auto_sells GROUP BY mark_id) AS fleet ON fleet.mark_id = m.id

LEFT JOIN (

SELECT SUM(mf.quantity_guarantee) AS quantity_guarantee, SUM(mf.quantity_nonguarantee) AS quantity_nonguarantee, md.mark_id

FROM auto_modifications AS mf

LEFT JOIN auto_models AS md ON md.id = mf.model_id

GROUP BY md.mark_id) AS fleet2 ON fleet2.mark_id = m.id

LEFT JOIN (

SELECT md.mark_id, db.oem_id, c.code, c.code_ex

FROM auto_models AS md

LEFT JOIN auto_modifications AS mf ON mf.model_id = md.id

LEFT JOIN product_cars AS dbc ON dbc.modification_id = mf.id

LEFT JOIN product_oem AS db ON dbc.product_id = db.product_id

LEFT JOIN oem_codes AS c ON c.id = db.oem_id

GROUP BY md.mark_id, db.oem_id, c.code, c.code_ex) AS db ON db.mark_id = m.id

WHERE db.oem_id = 56134 ORDER BY m.name

Запрос можно изменить.
Вкладка возможно устаревшая. Т.к. данные явно не актуальные. Но переносим для общей картины. Картинку вставлять не нужно.

Вкладка товары

Данные берутся из запроса

SELECT * FROM products AS p

JOIN product_oem AS td ON td.product_id = p.id

WHERE td.oem_id = 158577

Вкладка Заменители ОЕМ

Данные берутся из запроса

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

FROM oem_codes AS c

LEFT JOIN oem_Mark AS m ON m.id = c.oemmarkid

LEFT JOIN product_oem AS pc ON pc.oem_id = c.id

LEFT JOIN product_oem AS pc2 ON pc2.oem_id = 158577

WHERE pc2.product_id = pc.product_id AND pc2.oem_id <> pc.oem_id

ORDER BY id