Wiki source code of Карточка товара. Вкладка характеристики
Version 1.2 by Vladislav Eleseev on 2024/01/12 06:53
Show last authors
1 | Карточка товара. Вкладка Характеристики. |
2 | |
3 | [[image:image-20240112095255-1.png||height="945" width="1377"]] |
4 | |
5 | Управляющие элементы: |
6 | ~1. Список характеристик группы. |
7 | |
8 | 2. Список индивидуальных характеристик. |
9 | |
10 | 3. Список комплектация. |
11 | |
12 | 4. Список внутренних характеристик. |
13 | |
14 | 5. Свойство товара – состав. |
15 | |
16 | 6. Свойство товара – срок годности. |
17 | |
18 | 7. Свойство товара – гарантийный срок. |
19 | |
20 | 8. Свойство товара - знак сертификации. |
21 | |
22 | 9. Свойство товара - группа в сертификате. |
23 | |
24 | 10. Свойство товара - технические регламенты. |
25 | |
26 | ~11. Свойство товара – техническое описание (ВЭД). |
27 | |
28 | 12. Кнопка копирующая всем товарам в группе техническое описание. |
29 | |
30 | |
31 | Общая работа с вкладкой должна быть схожа с работой карточки. Изменения в базу попадают после сохранения или нажатия ок. В случае нажатия отмена изменения не сохраняются. Исключение может составлять кнопка скопировать группе. |
32 | |
33 | |
34 | Подробное описание элементов! |
35 | |
36 | 1. Список характеристик группы. |
37 | |
38 | Отображение в таблице характеристик группы. Значение характеристики может быть индивидуальное, может быть дефолтное от группы. Характеристики наследуются до главного родителя. В данную таблицу нельзя вставлять связь с характеристикой и нельзя удалять связь. Можно изменять значение, добавив таким образом индивидуальное значение для характеристики у данного товара. Так же можно менять порядковый номер характеристики. |
39 | |
40 | Как берутся данные: |
41 | |
42 | with a as |
43 | |
44 | ( |
45 | |
46 | select |
47 | |
48 | g.id, g.id parent_id |
49 | |
50 | from |
51 | |
52 | dbo.[product_group] g |
53 | |
54 | |
55 | union all |
56 | |
57 | |
58 | select |
59 | |
60 | a.id, g.parent_id |
61 | |
62 | from |
63 | |
64 | dbo.[product_group] g |
65 | |
66 | join a on a.parent_id = g.id |
67 | |
68 | where |
69 | |
70 | g.parent_id is not null |
71 | |
72 | ) |
73 | |
74 | |
75 | Select pr.id, pr.name, coalesce(v.val,pb.defval,pr.defval) val, coalesce(v.sernum,pb.sernum) sernum |
76 | |
77 | From products p |
78 | |
79 | join a on a.id=p.group_id |
80 | |
81 | join product_group pg on pg.id=a.parent_id~-~-p.group_id |
82 | |
83 | join propbind pb on pb.group_id=pg.id |
84 | |
85 | left join propvalues v on v.product_id=p.id and v.property_id=pb.property_id |
86 | |
87 | left join properties pr on pr.id=pb.property_id |
88 | |
89 | where airus_id=34143 |
90 | |
91 | |
92 | |
93 | Вычисление групп можно сделать иначе, через код на делфи, на пример. Значения берутся с начала уникальное, потом дефолтное для группы, после дефолтное для всех характеристики. Порядковый номер так де берется индивидуальный если есть, потом дефолтный группы. |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | 1. Список индивидуальных характеристик. |
100 | |
101 | Отображение в таблице индивидуальных характеристик. Характеристика считается индивидуальной если её нет у группы товара или в родительских группах. Индивидуальные характеристики должна быть возможность **добавить, удалить, изменить порядковый номер, изменить значение характеристики**. Добавление характеристики лучше сделать через диалог выбора или отдельный фрейм. |
102 | |
103 | Как берутся данные: |
104 | |
105 | |
106 | with a as |
107 | |
108 | ( |
109 | |
110 | select |
111 | |
112 | g.id, g.id parent_id |
113 | |
114 | from |
115 | |
116 | dbo.[product_group] g |
117 | |
118 | |
119 | union all |
120 | |
121 | |
122 | select |
123 | |
124 | a.id, g.parent_id |
125 | |
126 | from |
127 | |
128 | dbo.[product_group] g |
129 | |
130 | join a on a.parent_id = g.id |
131 | |
132 | where |
133 | |
134 | g.parent_id is not null |
135 | |
136 | ) |
137 | |
138 | |
139 | Select distinct pr.id, pr.name, coalesce(v.val,pr.defval) val, v.sernum ,pr.NTecdoc 'Crit No.',pr.NDescription 'Crit No. Description' |
140 | |
141 | From products p |
142 | |
143 | join propvalues v on v.product_id=p.id |
144 | |
145 | join properties pr on pr.id=v.property_id |
146 | |
147 | left join (Select distinct pb.property_id id From products p join a on a.id=p.group_id |
148 | |
149 | join product_group pg on pg.id=a.parent_id |
150 | |
151 | join propbind pb on pb.group_id=pg.id where airus_id=34143 ) t on t.id = v.property_id |
152 | |
153 | where airus_id=34143 and t.id is null |
154 | |
155 | |
156 | |
157 | Вычисление групп можно сделать иначе, через код на делфи, на пример. Значения берутся с начала уникальное, после дефолтное для всех характеристики. |
158 | |
159 | |
160 | |
161 | |
162 | 3. Список комплектация. |
163 | |
164 | Комплектация это набор строк. Должны быть функции добавления строки, удаления, редактирования и изменения порядкового номера. |
165 | |
166 | |
167 | Как берутся данные: |
168 | |
169 | SELECT id, product_id, name ,NN FROM product_items where product_id = 911 |
170 | |
171 | |
172 | |
173 | |
174 | 4. Список внутренних характеристик. |
175 | |
176 | Внутренние характеристики это список пар строк связанных с товаром. Таблица содержит две колонки характеристика – значение. Должны быть функции добавления характеристики, удаления, редактирования характеристики и значения и изменения порядкового номера строки. |
177 | |
178 | Как берутся данные: |
179 | |
180 | Select id_product, n_prop, property, val From input_propetry where id_product = %1 |
181 | |
182 | |
183 | |
184 | 5. Свойство товара – состав. Строка, должна быть возможность редактирования. |
185 | |
186 | Select composition From products where airus_id=34143 |
187 | |
188 | 6. Свойство товара – срок годности. Строка, должна быть возможность редактирования. |
189 | |
190 | Select life From products where airus_id=34143 |
191 | |
192 | 7. Свойство товара – гарантийный срок. Строка, должна быть возможность редактирования. |
193 | |
194 | Select garant From products where airus_id=34143 |
195 | |
196 | 8. Свойство товара - знак сертификации. Строка. Только для чтения. |
197 | |
198 | Select sert_image From products where airus_id=17463 |
199 | |
200 | 9. Свойство товара - группа в сертификате. Строка. Только для чтения. |
201 | |
202 | Select sert_grp From products where airus_id=17463 |
203 | |
204 | 10. Свойство товара - технические регламенты. Строка. Только для чтения. |
205 | |
206 | Select tehreg_name From products where airus_id=17463 |
207 | |
208 | ~11. Свойство товара – техническое описание (ВЭД). Большой текст. Должна быть возможность редактирования. |
209 | |
210 | Select ved From products where airus_id=34143 |
211 | |
212 | 12. Кнопка копирующая всем товарам в группе техническое описание. |
213 | |
214 | Нажатие кнопки копирует свойство товара техническое описание (ВЭД) всем товарам из той же группы что и данный товар. Т.е. все товары с тем же group_id. |