Subversion Repositories OpenInventory

Rev

Rev 6 | Rev 16 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 pingvin 1
#include "mainwindowimpl.h"
2
//проверка
3
MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f)
4
        : QMainWindow(parent, f)
5
{
6
 
7
 
8
 
9
        setupUi(this);
10
        fEnable_component_add = false; //режим добовлени€ компонента отключен 
11
        fEnable_naznachit_otvetstv = false;
12
        curr_task = no_task;
13
        readSettings();
14
        lineEdit->insert(baseName);
15
        metaDataAction = new QAction(tr("»зменить"), treeWidget);
16
        addMemoryAction = new QAction(tr("Ќовый модуль пам€ти"), treeWidget);
17
        MB_na_skladAction = new QAction(tr("—дать на склад"), treeWidget);
18
        new_sotrydnikAction = new QAction(tr("Ќовый сотрудник"), treeWidget);
19
        novoe_oborydovanieAction = new QAction(tr("Ќовое оборудование"), treeWidget);
20
        pereimenovat_otdelAction = new QAction(tr("ѕереименовать отдел"), treeWidget);
21
        perevesti_sotrydnika_v_drygo1_otdelAction = new QAction(tr("ѕеревести в другой отдел"), treeWidget);
22
        yvolit_sotrydnikaAction = new QAction(tr("”волить сотрудника"), treeWidget);
23
        SpliterAction = new QAction(tr("ѕерсонал"), treeWidget);
24
        naznachit_otvetstvennim_za_oborydovanieAction = new QAction(tr("Ќазначить ответственным за оборудование"), treeWidget);
25
        ystanovit_novie_complektyushieAction = new QAction(tr("”становить новые комплектующие"), treeWidget);
26
        sozdat_otdelAction = new QAction(tr("—оздать новый отдел"), treeWidget);
27
 
28
        novaya_SYSTEM_BLOCK_na_skladAction = new QAction(tr("ƒобавить новый системный блок на склад"), treeWidget);
29
        novaya_MB_na_skladAction = new QAction(tr("ƒобавить новую материнскую плату на склад"), treeWidget);
30
        novaya_RAM_na_skladAction = new QAction(tr("ƒобавить новый модуль пам€ти на склад"),  treeWidget);
31
        novaya_CPU_na_skladAction = new QAction(tr("ƒобавить новый процессор на склад"),  treeWidget);
32
        novaya_HDD_na_skladAction = new QAction(tr("ƒобавить новый винчестер на склад"),  treeWidget);
33
        novaya_CD_DVD_na_skladAction = new QAction(tr("ƒобавить новый привод на склад"),  treeWidget);
34
        novaya_VIDEO_na_skladAction = new QAction(tr("ƒобавить новую видеокарту на склад"),  treeWidget);
35
        novaya_SoundCard_na_skladAction = new QAction(tr("ƒобавить новую звуковую карту на склад"),  treeWidget);
36
        novaya_LAN_na_skladAction = new QAction(tr("ƒобавить новую сетевую карту на склад"),  treeWidget);
37
        peredat_sys_block_pod_otveystvennostAction = new QAction(tr("ѕередать системный блок под ответственность сотрудника"),  treeWidget);
38
 
39
 
40
//      novaya_SoundCard_na_skladAction = new QAction(tr("ƒобавить новую звуковую карту на склад"),  treeWidget);
41
//      novaya_LAN_na_skladAction = new QAction(tr("ƒобавить новую сетевую карту на склад"),  treeWidget);
42
 
43
        insert_MB_to_system_blockAction = new QAction(tr("”становить в системный блок"), treeWidget);
44
 
45
        treeWidget->addAction(metaDataAction);
46
        treeWidget->addAction(addMemoryAction);
47
 
48
 
49
        connect(insert_MB_to_system_blockAction, SIGNAL(triggered()), SLOT(insert_MB_to_system_block()));
50
        connect(novaya_MB_na_skladAction, SIGNAL(triggered()), SLOT(novaya_MB_na_sklad()));
51
        connect(novaya_RAM_na_skladAction, SIGNAL(triggered()), SLOT(novaya_RAM_na_sklad()));
52
        connect(novaya_CPU_na_skladAction, SIGNAL(triggered()), SLOT(novaya_CPU_na_sklad()));
53
        connect(novaya_HDD_na_skladAction, SIGNAL(triggered()), SLOT(novaya_HDD_na_sklad()));
54
        connect(novaya_CD_DVD_na_skladAction, SIGNAL(triggered()), SLOT(novaya_CD_DVD_na_sklad()));
55
        connect(novaya_VIDEO_na_skladAction, SIGNAL(triggered()), SLOT(novaya_VIDEO_na_sklad()));
56
        connect(novaya_SoundCard_na_skladAction, SIGNAL(triggered()), SLOT(novaya_SoundCard_na_sklad()));
57
        connect(novaya_LAN_na_skladAction, SIGNAL(triggered()), SLOT(novaya_LAN_na_sklad()));
58
        connect(novaya_SYSTEM_BLOCK_na_skladAction, SIGNAL(triggered()), SLOT(novaya_SYSTEM_BLOCK_na_sklad()));
59
 
60
        connect(peredat_sys_block_pod_otveystvennostAction, SIGNAL(triggered()), SLOT(peredat_sys_block_pod_otveystvennost()));
61
 
62
        connect(sozdat_otdelAction, SIGNAL(triggered()), SLOT(addNewOtdel()));
63
 
64
 
65
        connect(metaDataAction, SIGNAL(triggered()), SLOT(editTreeWidget()));
66
        connect(addMemoryAction, SIGNAL(triggered()), SLOT(addNewMemory()));
67
        connect(MB_na_skladAction, SIGNAL(triggered()), SLOT(move_to_sklad()));
68
        connect(new_sotrydnikAction, SIGNAL(triggered()), SLOT(new_sotrydnik()));
69
        connect(novoe_oborydovanieAction, SIGNAL(triggered()), SLOT(novoe_oborydovanie()));
70
        connect(pereimenovat_otdelAction, SIGNAL(triggered()), SLOT(pereimenovft_otdel()));
71
        connect(yvolit_sotrydnikaAction, SIGNAL(triggered()), SLOT(yvolit_sotrydnika()));
72
        connect(naznachit_otvetstvennim_za_oborydovanieAction, SIGNAL(triggered()), SLOT(naznachit_otvetstvennim_za_oborydovanie()));
73
        connect(ystanovit_novie_complektyushieAction, SIGNAL(triggered()), SLOT(ystanovit_novie_complektyushie()));
74
        treeWidget->setContextMenuPolicy(Qt::ActionsContextMenu);      
75
        connect(openBaseAct, SIGNAL(triggered()), this, SLOT(openBase()));
76
        connect(openMemoryTableAct, SIGNAL(triggered()), this, SLOT(openMemoryTable()));
77
        connect(getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting()));
78
        connect(addStringAct, SIGNAL(triggered()), this, SLOT(addString()));
79
        connect(delStringAct, SIGNAL(triggered()), this, SLOT(delString()));
80
        connect(FiltrButton, SIGNAL(clicked()), this, SLOT(filter()));
81
        connect(hiddenButton, SIGNAL(clicked()), this, SLOT(hiddenRow()));
82
        connect(showButton, SIGNAL(clicked()), this, SLOT(showRow()));
83
        connect(appyButton, SIGNAL(clicked()), this, SLOT(dbUpdate()));
84
        connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *item, int column)), this, SLOT(dblClick(QTreeWidgetItem *item, int column)));
85
        connect(&addmemFrm, SIGNAL(componentAdd()), this, SLOT(refreshTree()));//при закрытии формы addmemFrm обновл€ем treeWidget
86
        connect(&addotdelFrm, SIGNAL(componentAdd()), this, SLOT(refreshTree()));//при закрытии формы addotdelFrm обновл€ем treeWidget
87
        connect(&addsotrydnikFrm, SIGNAL(componentAdd()), this, SLOT(refreshTree()));//при закрытии формы addsotFrm обновл€ем treeWidget
88
        connect(&addsysblockFrm, SIGNAL(componentAdd()), this, SLOT(refreshTree()));//при закрытии формы addsysblockFrm обновл€ем treeWidget
89
 
90
        connect(&addmemFrm, SIGNAL(formClose()), this, SLOT(on_addmemoryForm_formClose()));
91
        connect(&addotdelFrm, SIGNAL(formClose()), this, SLOT(on_addmemoryForm_formClose()));
92
        connect(&addsotrydnikFrm, SIGNAL(formClose()), this, SLOT(on_addmemoryForm_formClose()));
93
        connect(&addsysblockFrm, SIGNAL(formClose()), this, SLOT(on_addmemoryForm_formClose()));
94
 
95
        connect(&process, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandartProcessOutput()));
96
 
97
        comp_icon.addFile("./pc.png");
98
/////   hdd_icon.addFile("./gnome-dev-harddisk.png");
99
        hdd_icon.addFile("./hdd5.png");
100
        memory_icon.addFile("./memory1.png");
101
        cd_dvd_icon.addFile("./cd_dvd3.png");
102
//      memory_icon.addFile("./gnome-dev-memory.png");
103
        matheboard_icon.addFile("./icon_motherboard.png");
104
        cpu_icon.addFile("./cpu3.png");
105
        vidio_card_icon.addFile("./vidiocard2.png");
106
        sound_card_icon.addFile("./soundcard1.png");
107
        lan_card_icon.addFile("./lan1.png");
108
        appyButton->setIcon(comp_icon);
14 pingvin 109
        wmiFrm.show();
6 pingvin 110
/////    for (int i = 0; i < 10; ++i)
111
/////     items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
112
/////    treeWidget->insertTopLevelItems(0, items);
113
//////items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("—√—’ћ: %1")).arg(0))));
114
/////////items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("—√—’ћ:")))));
115
/////////items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("«јќ:")))));
116
/////////treeWidget->insertTopLevelItems(0, items);
117
 
118
//->itm = new QTreeWidgetItem(treeWidget);
119
//->itm->setText(0, tr("—√—’ћ"));
120
/////////itm->setText(1, "hello1");
121
//->QTreeWidgetItem *itm1 = new QTreeWidgetItem(itm);
122
//->itm1->setText(1, tr("M1"));
123
//->QTreeWidgetItem *itm1_1 = new QTreeWidgetItem(itm1);
124
//->itm1_1->setText(2, tr("ёрченко"));
125
//->QTreeWidgetItem *itm1_2 = new QTreeWidgetItem(itm1);
126
//->itm1_2->setText(2, tr("ёшков"));
127
 
128
//->QTreeWidgetItem *itm2 = new QTreeWidgetItem(itm);
129
//->itm2->setText(1, tr("M2"));
130
//////treeWidget->insertTopLevelItem(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("—√—’ћ:")))));
131
}
132
 
133
MainWindowImpl::~MainWindowImpl()
134
{
135
        db.close();
136
//      delete setFrm;
137
}
138
 
139
 
140
void MainWindowImpl::delString()
141
{
142
        QModelIndex index;
143
        int column, row;
144
        QSqlRecord record;
145
        index=view.currentIndex();
146
        column=view.currentIndex().column();
147
        row=view.currentIndex().row();
148
        record = model->record(row);
149
        int UserNameIndex = record.indexOf(tr("ѕользователь"));
150
        QString ls_UserName=record.value(UserNameIndex).toString();
151
        model->removeRows(row, 1);
152
}
153
 
154
//
155
void MainWindowImpl::openBase()
156
{
157
        lineEdit->insert(tr("ќткрыть базу "));
158
//      db = new QSqlDatabase("QMYSQL");
159
        db = QSqlDatabase::addDatabase("QMYSQL");
160
        pdb = &db;
161
        raportFrm.pdb = &db;
162
//      db->addDatabase("QMYSQL");
163
//db = QSqlDatabase::addDatabase("QSQLITE");
164
        pdb->setHostName(hostName);
165
        pdb->setDatabaseName(baseName);
166
        pdb->setUserName(userName);
167
        pdb->setPassword(password);
168
        bool ok = pdb->open();
169
        if (!ok) {
170
                                QMessageBox::critical( // ƒиалог с сообщением об ошибке.
171
                                                                                this,                      // –одительский виджет.
172
                                                                                QObject::tr("Database Error"),   // «аголовок.  
173
                                                                                pdb->lastError().text());          // “екст сообщени€.
174
                         }
175
        if (ok)  
176
        {lineEdit-> insert(tr("Ѕаза успешно открыта"));
177
        }
178
        else {lineEdit-> insert(tr("Ѕаза недоступна.  од ошибки: "));
179
                  lineEdit-> insert(pdb->lastError().text());
180
                 }
181
//      QSqlQuery q;
182
//      q.prepare(tr("set NAMES cp1251"));
183
 
184
//      ok = q.exec();
185
        model = new QSqlTableModel();
186
        model->setTable(tableName);
187
 
188
        model->setEditStrategy(QSqlTableModel::OnFieldChange);
189
//      model->setEditStrategy(QSqlTableModel::OnManualSubmit);
190
        model->setSort(0, Qt::AscendingOrder);
191
        model->select();
192
//      model->setHeaderData(0, Qt::Horizontal,
193
//                              QObject::tr("»м€\nпользовател€"));
194
//      model->setHeaderData(1, Qt::Horizontal,
195
//                             QObject::tr("ќтдел"));
196
//      model->setHeaderData(2, Qt::Horizontal,
197
//                             QObject::tr("IP адрес"));
198
//      model->setHeaderData(3, Qt::Horizontal,
199
//                             QObject::tr("»нвентанный\nномер"));
200
//      model->setHeaderData(4, Qt::Horizontal,
201
//                             QObject::tr("ќперационна€\nсистема"));
202
//      view = new QTableView();
203
        view.setModel(model);
204
        view.setAlternatingRowColors(true);
205
//      view->resizeRowsToContents();
206
        view.resizeColumnsToContents();
207
        view.show();
208
        initTreeWidget();
209
}
210
 
211
void MainWindowImpl::openMemoryTable()
212
{
213
        memory_model = new QSqlTableModel();
214
        memory_model->setTable(tr("ѕам€ть"));
215
//      memory_model->setTable(tableName);
216
        memory_model->setEditStrategy(QSqlTableModel::OnFieldChange);
217
//      model->setEditStrategy(QSqlTableModel::OnManualSubmit);
218
        memory_model->setSort(0, Qt::AscendingOrder);
219
        memory_model->select();
220
        tableView->setModel(memory_model);
221
        tableView->setAlternatingRowColors(true);
222
        tableView->resizeColumnsToContents();
223
        tableView->show();
224
/////   memory_view.setModel(memory_model);
225
/////   memory_view.setAlternatingRowColors(true);
226
//      view->resizeRowsToContents();
227
/////           memory_view.resizeColumnsToContents();
228
/////   memory_view.show();
229
}
230
 
231
 
232
void MainWindowImpl::applySetting()
233
{
234
        int i;
235
        i=5;
236
        lineEdit->insert(tr("Ќастройки получены!"));
237
        baseName = setFrm->lineEdit->text();
238
        userName = setFrm->lineEdit_2->text();
239
        password = setFrm->lineEdit_3->text();
240
        tableName = setFrm->lineEdit_4->text();
241
        hostName = setFrm->lineEdit_5->text();
242
        i+=1;
243
        writeSettings();
244
        setFrm->close();
245
        delete setFrm;
246
}
247
 
248
void MainWindowImpl::writeSettings()
249
{
250
        QSettings settings("Trolltech", "Application Example");
251
        settings.setValue("baseName", baseName);
252
        settings.setValue("userName", userName);
253
        settings.setValue("password", password);
254
        settings.setValue("tableName", tableName);
255
        settings.setValue("hostName", hostName);
256
}
257
 
258
 
259
void MainWindowImpl::readSettings()
260
{
261
        QSettings settings("Trolltech", "Application Example");
262
        baseName = settings.value("baseName", "an_db").toString();
263
        userName = settings.value("userName", "an").toString();
264
        password = settings.value("password", "393939").toString();
265
        tableName = settings.value("tableName", "inventar").toString();
266
        hostName = settings.value("hostName", "server").toString();
267
//     resize(size);
268
//     move(pos);tableName
269
}
270
 
271
void MainWindowImpl::getSetting()
272
{
273
        setFrm = new settingForm;
274
        connect(setFrm->pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
275
        setFrm->lineEdit->setText(baseName);
276
        setFrm->lineEdit_2->setText(userName);
277
        setFrm->lineEdit_3->setText(password);
278
        setFrm->lineEdit_4->setText(tableName);
279
        setFrm->lineEdit_5->setText(hostName);
280
        setFrm->show();
281
 
282
 
283
 
284
}
285
 
286
 
287
void MainWindowImpl::addString()
288
{
289
        QString query_begin=(tr("INSERT INTO "));
290
//      QString query_end=(tr(" VALUES('не задано','не задано','не задано','не задано',default)"));
291
        QString query_end=(tr(" VALUES()"));
292
        query_begin.append(tableName);
293
        query_begin.append(query_end);
294
        QSqlQuery query;
295
        query.prepare(query_begin);
296
//      query.prepare(tr("INSERT INTO inventar VALUES('не задано','не задано','не задано','не задано',default)"));
297
//      query.bindValue(":tab", "inventar");
298
//       if (!query.execBatch())
299
//              qDebug() << query.lastError();
300
        query.exec();
301
        model->select();
302
//      view->close();
303
        view.setModel(model);
304
        //view->show();
305
        lineEdit->insert(tr("ƒобавить строку!"));
306
}
307
 
308
//ѕроцедура приминени€ филтрации 
309
void MainWindowImpl::filter()
310
{
311
//      int i;
312
//      i++;
313
        model->setFilter(tr("ѕримечани€='ћихайленко'"));
314
        model->select();
315
//      view->close();
316
        view.setModel(model);
317
}
318
//TEST CVS gh
319
void MainWindowImpl::hiddenRow()
320
{
321
        int n;
322
        for(n=0;n<20;n++) view.setRowHidden(n,true);
323
}
324
 
325
 
326
void MainWindowImpl::showRow()
327
{
328
        int n;
329
        for(n=0;n<20;n++) view.setRowHidden(n,false);
330
}
331
 
332
void MainWindowImpl::dbUpdate()
333
{
334
        model->submitAll();
335
        addString();
336
}
337
 
338
 
339
void  MainWindowImpl::novaya_MB_na_sklad(){
340
        addmemFrm.tabWidget->setCurrentIndex(3);
341
        addmemFrm.pushButton->setEnabled(true);
342
        addmemFrm.show();
343
        addmemFrm.label_7->setText(tr("Ќа склад"));
344
        addNewMemory(tr("Ќа склад"));
345
 
346
 
347
}
348
 
349
void  MainWindowImpl::novaya_HDD_na_sklad(){
350
        addmemFrm.tabWidget->setCurrentIndex(1);
351
        addmemFrm.pushButton->setEnabled(true);
352
        addmemFrm.show();
353
        addmemFrm.label_7->setText(tr("Ќа склад"));
354
        addNewMemory(tr("Ќа склад"));
355
 
356
 
357
}
358
 
359
 
360
void  MainWindowImpl::novaya_CD_DVD_na_sklad(){
361
        addmemFrm.tabWidget->setCurrentIndex(4);
362
        addmemFrm.pushButton->setEnabled(true);
363
        addmemFrm.show();
364
        addmemFrm.label_7->setText(tr("Ќа склад"));
365
        addNewMemory(tr("Ќа склад"));
366
 
367
 
368
}
369
 
370
void  MainWindowImpl::novaya_VIDEO_na_sklad(){
371
        addmemFrm.tabWidget->setCurrentIndex(5);
372
        addmemFrm.pushButton->setEnabled(true);
373
        addmemFrm.show();
374
        addmemFrm.label_7->setText(tr("Ќа склад"));
375
        addNewMemory(tr("Ќа склад"));
376
 
377
 
378
}
379
 
380
 
381
void  MainWindowImpl::novaya_RAM_na_sklad(){
382
        addmemFrm.tabWidget->setCurrentIndex(0);
383
        addmemFrm.pushButton->setEnabled(true);
384
        addmemFrm.show();
385
        addmemFrm.label_7->setText(tr("Ќа склад"));
386
        addNewMemory(tr("Ќа склад"));
387
 
388
 
389
}
390
 
391
 
392
void  MainWindowImpl::novaya_SoundCard_na_sklad(){
393
        addmemFrm.tabWidget->setCurrentIndex(6);
394
        addmemFrm.pushButton->setEnabled(true);
395
        addmemFrm.show();
396
        addmemFrm.label_7->setText(tr("Ќа склад"));
397
        addNewMemory(tr("Ќа склад"));
398
 
399
 
400
}
401
 
402
void  MainWindowImpl::novaya_LAN_na_sklad(){
403
        addmemFrm.tabWidget->setCurrentIndex(7);
404
        addmemFrm.pushButton->setEnabled(true);
405
        addmemFrm.show();
406
        addmemFrm.label_7->setText(tr("Ќа склад"));
407
        addNewMemory(tr("Ќа склад"));
408
}
409
 
410
 
411
 
412
 
413
void  MainWindowImpl::novaya_CPU_na_sklad(){
414
        addmemFrm.tabWidget->setCurrentIndex(2);
415
        addmemFrm.pushButton->setEnabled(true);
416
        addmemFrm.show();
417
        addmemFrm.label_7->setText(tr("Ќа склад"));
418
        addNewMemory(tr("Ќа склад"));
419
 
420
 
421
}
422
 
423
void  MainWindowImpl::peredat_sys_block_pod_otveystvennost(){
424
 
425
        QMessageBox::information( // ƒиалог с сообщением об ошибке.
426
                                                                                this,                      // –одительский виджет.
427
                                                                                QObject::tr("”кажите сотрудника "),   // «аголовок.  
428
//                                                                              db.lastError().text());          // “екст сообщени€.
429
                                                                                tr("“еперь виберите сотрудника (двойным кликом мышки), который будет ответственнен за системный блок."));
430
        fEnable_naznachit_otvetstv = true;
431
        curr_sys_block_id = treeWidget-> currentItem ()->text(12);
432
}
433
 
434
 
435
 
436
void MainWindowImpl::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column)
437
{
438
        QString tmp;
439
        tmp = item->text(3);
440
        if (tmp !=""){
441
                addmemFrm.pushButton->setEnabled(true);
442
                }
443
        else addmemFrm.pushButton->setEnabled(false);
444
        addmemFrm.label_7->setText(tmp);
445
}
446
 
447
 
448
 
449
void MainWindowImpl::editTreeWidget()
450
{
451
        QString inventar_num;
452
        QTreeWidgetItem * currItem;
453
        int currColomn;
454
        int top_item_index;
455
        lineEdit->insert(tr("–едактировать"));
456
        currItem = treeWidget->currentItem ();
457
        top_item_index = treeWidget->indexOfTopLevelItem(currItem);
458
        currColomn = treeWidget->currentColumn();
459
        MainWindowImpl::on_treeWidget_itemClicked(currItem, 3); //выводим номер системника на форму
460
//      inventar_num = tr("»нв.ном: ");
461
        inventar_num.append(currItem ->text(3));
462
        if (currColomn == 1){
463
                addmemFrm.tabWidget->setCurrentIndex(4);
464
                addmemFrm.show();
465
        };
466
        if (inventar_num == "") return;
467
        lineEdit->insert(currItem ->text(currColomn));
468
        switch(currColomn)
469
        {
470
                case 1://—отрудники
471
                {
472
                addmemFrm.tabWidget->setCurrentIndex(4);
473
                addmemFrm.show();
474
 
475
                }
476
                break;
477
 
478
 
479
                case 4: //ѕроцессор
480
                {
481
                addmemFrm.tabWidget->setCurrentIndex(2);
482
                addmemFrm.show();
483
                }  
484
                break;
485
 
486
                case 5: //ћатеринские платы
487
                {
488
                addmemFrm.tabWidget->setCurrentIndex(3);
489
                addmemFrm.show();
490
                }  
491
                break;
492
 
493
                case 6: //ѕам€ть
494
                {
495
                addmemFrm.tabWidget->setCurrentIndex(0);
496
                addNewMemory(inventar_num);
497
//              addmemFrm.show();
498
                }  
499
                break;
500
 
501
                case 7: //¬инчестер
502
                {
503
                addmemFrm.tabWidget->setCurrentIndex(1);
504
                addmemFrm.show();      
505
                }
506
                break;
507
 
508
 
509
                case 2: break;
510
                defaul: break;
511
        }
512
        addmemFrm.treeWidget->clear();
513
//      addmemFrm.initTreeWidgrt();
514
}
515
 
516
void MainWindowImpl::initTreeWidget()//настраиваем виджет
517
{
518
        QStringList treeHeaders;//список заголовков treeWidget
519
        treeWidget->setColumnCount(15);
520
        treeHeaders << tr("ќтделы")                                     //0  столбец
521
                                << tr("ѕерсонал")                               //1  столбец
522
                                << tr("ќписание")                       //2  столбец
523
                                << tr("ќборудование")                   //3  столбец
524
                                << tr("ѕроцессор")                                      //4  столбец
525
                                << tr("ћатеринка")                                      //5  столбец
526
                                << tr("ѕам€ть")                                         //6  столбец
527
                                << tr("¬инчестер")                                      //7  столбец
528
                                << tr("ѕривод")                                         //8  столбец
529
                                << tr("¬идеокарта")                                     //9  столбец
530
                                << tr("«вукова€ карта")                         //10 столбец
531
                                << tr("—етева€ карта")                          //11 столбец
532
                                << tr("»дентификатор")                          //12 столбец
533
                                << tr("»дентификатор систеного блока")  //13 столбец
534
                                << tr("ID ответствнного лица"); //14 столбец
535
        treeWidget->setHeaderLabels(QStringList (treeHeaders));
536
//      treeWidget->setColumnHidden(2, true);
537
//      treeWidget->setColumnHidden(12, true);
538
//      treeWidget->setColumnHidden(13, true);
539
        treeWidget->clear();
540
        addOtdels();
541
        treeWidget->sortItems(0, Qt::AscendingOrder);
542
}
543
 
544
void MainWindowImpl::addOtdels()
545
{
546
        int fieldName, fieldID;
547
        QTreeWidgetItem *otdelItem;
548
        QSqlQuery q(tr("select * from otdeli"));// получаем список отделов
549
        QString otdel, otdel_id;
550
        fieldName = q.record().indexOf(tr("Ќазвание"));
551
        fieldID = q.record().indexOf(tr("»дентификатор"));
552
        while (q.next()){
553
                otdel = q.value(fieldName).toString();
554
                otdel_id = q.value(fieldID).toString();
555
                otdelItem = new QTreeWidgetItem(treeWidget);
556
                if (otdel == tr("—клад")) { otdelItem->setText(0, otdel);
557
                        otdelItem->setText(2, tr("—клад"));
558
                        otdelItem->setText(12, otdel_id);
559
                        SotrydnikiOtdela(otdel_id, otdelItem);
560
                        continue;
561
                         }
562
                otdelItem->setText(0, otdel);
563
                otdelItem->setText(2, tr("ќтдел"));
564
                otdelItem->setText(12, otdel_id);
565
                SotrydnikiOtdela(otdel_id, otdelItem);
566
        }
567
}
568
 
569
 
570
void MainWindowImpl::SotrydnikiOtdela(QString id_otdela, QTreeWidgetItem * itemOtdela) // формируем список сотрудников отдела
571
{
572
        int field_fio_sotrydnika, field_id_sotrydnika;
573
        int kolichestvo_sotrudnikov=0;
574
        QString fio_sotrydnika_otdela, id_sotrydnika_otdela, oboryd;
575
        QSqlQuery qsotrydnikiOtdela;
576
        QString sqlQueryString;
577
        QTreeWidgetItem *treeItem_sotrydnika;
578
        sqlQueryString = tr("select »дентификатор, ‘»ќ from sotrydniki where »дентификатор_отдела=");
579
        sqlQueryString.append(id_otdela);
580
        qsotrydnikiOtdela.prepare(sqlQueryString);
581
        qsotrydnikiOtdela.exec();
582
        field_fio_sotrydnika = qsotrydnikiOtdela.record().indexOf(tr("‘»ќ"));
583
        field_id_sotrydnika = qsotrydnikiOtdela.record().indexOf(tr("»дентификатор"));
584
        while (qsotrydnikiOtdela.next())
585
        {
586
                fio_sotrydnika_otdela = qsotrydnikiOtdela.value(field_fio_sotrydnika).toString();
587
                id_sotrydnika_otdela = qsotrydnikiOtdela.value(field_id_sotrydnika).toString();
588
 
589
 
590
                treeItem_sotrydnika = new QTreeWidgetItem(itemOtdela);
591
                treeItem_sotrydnika->setText(1, fio_sotrydnika_otdela );
592
                treeItem_sotrydnika->setText(2, tr("—отрудник"));
593
                treeItem_sotrydnika->setText(14, id_sotrydnika_otdela );
594
                if (id_sotrydnika_otdela == "1"){
595
                        itm_sklad_system_blocks = new QTreeWidgetItem(treeItem_sotrydnika);
596
                        itm_sklad_system_blocks->setText(2, tr("—»—“≈ћЌџ≈ ЅЋќ »"));
597
                        itm_sklad_orgtehnika = new QTreeWidgetItem(treeItem_sotrydnika);
598
                        itm_sklad_orgtehnika->setText(2, tr("ќ–√“≈’Ќ» ј"));
599
                        itm_sklad_orgtehnika_printers =  new QTreeWidgetItem(itm_sklad_orgtehnika);
600
                        itm_sklad_orgtehnika_printers->setText(2, tr("ѕ–»Ќ“≈–џ"));
601
                        itm_sklad_orgtehnika_mfy =   new QTreeWidgetItem(itm_sklad_orgtehnika);
602
                        itm_sklad_orgtehnika_mfy->setText(2, tr("ћ‘”"));
603
                        itm_sklad_komplectyushie = new QTreeWidgetItem(treeItem_sotrydnika);
604
                        itm_sklad_komplectyushie->setText(2, tr(" ќћѕЋ≈ “”ёў»≈"));
605
                        itm_sklad_orgtehnika_scaners = new QTreeWidgetItem(itm_sklad_orgtehnika);
606
                        itm_sklad_orgtehnika_scaners->setText(2, tr("— јЌ≈–џ"));
607
                        itm_sklad_rashodniki = new QTreeWidgetItem(treeItem_sotrydnika);
608
                        itm_sklad_rashodniki->setText(2, tr("–ј—’ќƒЌџ≈ ћј“≈–»јЋџ"));
609
                }
610
                oboryd = oborydovanie(id_sotrydnika_otdela, treeItem_sotrydnika);
611
//              treeItem_sotrydnika->setText(3, oboryd );
612
                ++kolichestvo_sotrudnikov;
613
        }
614
        itemOtdela->setText(13, QVariant(kolichestvo_sotrudnikov).toString());
615
}
616
 
617
QString MainWindowImpl::oborydovanie(QString id_sotrydnika, QTreeWidgetItem * itemSotrydnika){
618
        QString result, prResult;
619
        QString sqlQueryText;
620
        QString serial_num, inventar_num, proizvoditel, model, system_block_id;
621
        QSqlQuery quer;
622
        QString MB_information, Memory_information, CPU_information, HDD_information, CD_DVD_information, Vidio_information;
623
        QString Sound_card_information, Lan_card_information;
624
        int field_serialNum, field_inventarNum, field_proizvoditel, field_model, field_system_block_id;
625
//      QSqlQuery qns(tr("SET NAMES utf8"));// получаем список отделов
626
        QTreeWidgetItem *itemSysBlock;
627
//      sqlQueryText.reserve(300);
628
        sqlQueryText = tr("select system_blocks.—ерийный_номер, system_blocks.»нвентарный_номер, system_blocks.»дентификатор"
629
        " from system_blocks"
630
        " where system_blocks.»дентификатор_ответственного_лица =");
631
        sqlQueryText.append(id_sotrydnika);
632
//      sqlQueryText.append(tr(" AND ћатеринские_платы.»дентификатор_системного_блока = —истемные_блоки.»дентификатор"));
633
        quer.prepare(sqlQueryText);
634
//      quer.prepare(tr("select —истемные_блоки.—ерийный_номер, —истемные_блоки.»нвентарный_номер,ћатеринские_платы.ѕроизводитель, ћатеринские_платы.ћодель from —истемные_блоки,ћатеринские_платы where —истемные_блоки.»дентификатор_ответственного_лица = 4 AND ћатеринские_платы.»дентификатор_системного_блока = —истемные_блоки.»дентификатор;"));
635
        quer.exec();
636
        field_serialNum = quer.record().indexOf(tr("—ерийный_номер"));
637
        field_inventarNum = quer.record().indexOf(tr("»нвентарный_номер"));
638
        field_system_block_id = quer.record().indexOf(tr("»дентификатор"));
639
//      field_proizvoditel = quer.record().indexOf(tr("ѕроизводитель"));
640
//      field_model = quer.record().indexOf(tr("ћодель"));
641
        while(quer.next()){
642
        system_block_id = quer.value(field_system_block_id).toString();                                 //идентификатор системного блока
643
        prResult = ""; 
644
        serial_num = quer.value(field_serialNum).toString();
645
        inventar_num = quer.value(field_inventarNum).toString();
646
////    if (serial_num != "") {prResult.append(tr("s/n: "));
647
////            prResult.append(serial_num);}
648
        if (inventar_num != "") {
649
////    prResult.append(tr(" инв.ном: "));
650
        prResult.append(inventar_num);
651
////    prResult.append(tr(" "));
652
}
653
 
654
//      result.append(q.value(field_proizvoditel).toString());
655
//      result.append(tr(" "));
656
//      result.append(q.value(field_model).toString());
657
 
658
 
659
 
660
 
661
 
662
//      if (id_sotrydnika == "1" & system_block_id == "1") itemSysBlock->setText(2, tr(" омплектующие"));// это склад 
663
        if (id_sotrydnika == "1" && system_block_id == "1") itemSysBlock = itm_sklad_komplectyushie;// это склад 
664
        else if (id_sotrydnika == "1" ){
665
                itemSysBlock = new QTreeWidgetItem(itm_sklad_system_blocks); // на склад системник
666
                itemSysBlock->setText(2, tr("—истемный блок"));
667
                itemSysBlock->setIcon(3, comp_icon);
668
                if (system_block_id !="") itemSysBlock->setText(12, system_block_id);  
669
                if (id_sotrydnika !="") itemSysBlock->setText(14, id_sotrydnika);
670
        }
671
 
672
        else {
673
                itemSysBlock = new QTreeWidgetItem(itemSotrydnika);
674
                itemSysBlock->setText(2, tr("—истемный блок"));
675
                itemSysBlock->setIcon(3, comp_icon);
676
                if (system_block_id !="") itemSysBlock->setText(12, system_block_id);  
677
                if (id_sotrydnika !="") itemSysBlock->setText(14, id_sotrydnika);
678
 
679
                }
680
 
681
        MB_information = addMatheBoardInformation (id_sotrydnika, system_block_id, itemSysBlock);               //получаем информацию о материнской плате
682
////    prResult.append(MB_information);
683
        Memory_information = addMemoryInformation(id_sotrydnika, system_block_id, itemSysBlock);                //получаем информацию о пам€ти
684
////    prResult.append(Memory_information);
685
        CPU_information = addCpuInformation(id_sotrydnika, system_block_id, itemSysBlock);
686
////    prResult.append(CPU_information);
687
        HDD_information = addHDDInformation(id_sotrydnika, system_block_id, itemSysBlock);
688
////    prResult.append(HDD_information);
689
        CD_DVD_information = add_CD_DVD_Information(id_sotrydnika, system_block_id, itemSysBlock);
690
////    prResult.append(CD_DVD_information);
691
        Vidio_information = add_Vidio_Information(id_sotrydnika, system_block_id, itemSysBlock);
692
        Sound_card_information = add_Sound_Card_Information(id_sotrydnika, system_block_id, itemSysBlock);
693
        Lan_card_information = add_Lan_Card_Information(id_sotrydnika, system_block_id, itemSysBlock);
694
        if (system_block_id != "1"){
695
 
696
                itemSysBlock->setText(3, prResult);      
697
                result.append(prResult);
698
}
699
 
700
 
701
        }
702
        return result;
703
}
704
 
705
QString MainWindowImpl::addMatheBoardInformation(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock)
706
{
707
        QString result, tmp;
708
        QString MB_proizvoditel, MB_model, MB_identifikator, MB_serial_num, MB_inventar_num;
709
        QString MatheBoardSqlQueryText;
710
        QSqlQuery MatheBoardQuery;
711
        int field_proizvoditel, field_model, field_identifikator, field_serial_num, field_inventar_num;
712
        QTreeWidgetItem *itemMB, *itmMB_block;
713
        MatheBoardSqlQueryText = tr("select * "
714
        " from matheboards where matheboards.»дентификатор_системного_блока = "
715
        );
716
        MatheBoardSqlQueryText.append(id_systemBlock);
717
        MatheBoardQuery.prepare(MatheBoardSqlQueryText);
718
        MatheBoardQuery.exec();
719
        field_identifikator = MatheBoardQuery.record().indexOf(tr("»дентификатор"));
720
        field_proizvoditel = MatheBoardQuery.record().indexOf(tr("ѕроизводитель"));
721
        field_model = MatheBoardQuery.record().indexOf(tr("ћодель"));
722
        field_serial_num = MatheBoardQuery.record().indexOf(tr("—ерийный_номер"));
723
        field_inventar_num = MatheBoardQuery.record().indexOf(tr("»нвентарный_номер"));
724
 
725
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
726
                itmMB_block = new QTreeWidgetItem(itm_sklad_komplectyushie);
727
                itmMB_block->setText(2, tr("ћј“≈–»Ќ— »≈ ѕЋј“џ"));
728
//              itmMB_block->setIcon(3, matheboard_icon);
729
                }
730
 
731
        while(MatheBoardQuery.next()){
732
                tmp = "";
733
                MB_identifikator = MatheBoardQuery.value(field_identifikator).toString();
734
                MB_proizvoditel = MatheBoardQuery.value(field_proizvoditel).toString();
735
                MB_model = MatheBoardQuery.value(field_model).toString();
736
                MB_serial_num = MatheBoardQuery.value(field_serial_num).toString();
737
                MB_inventar_num = MatheBoardQuery.value(field_inventar_num).toString();
738
 
739
        if (MB_proizvoditel != "") {
740
//              tmp.append(tr("MB: "));
741
                tmp.append(MB_proizvoditel);
742
                }
743
        if (MB_model != "") {tmp.append(tr(" "));
744
        tmp.append(MB_model);
745
        tmp.append(tr(" "));}
746
        result.append(tmp);
747
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1") {itemMB = new QTreeWidgetItem(itmMB_block);
748
        }
749
        else itemMB = new QTreeWidgetItem(itemSysBlock);
750
        itemMB->setIcon(4, matheboard_icon);
751
        itemMB->setText(4, tmp);
752
        itemMB->setText(12, MB_identifikator);
753
        itemMB->setText(13, id_systemBlock);
754
        itemMB->setText(14, id_otvetstvennogo_lica);
755
        itemMB->setText(2, tr("ћатеринска€ плата"));
756
        itemMB->setText(3, MB_inventar_num);
757
        if (id_systemBlock !="1") itemSysBlock->setText(5, tmp);
758
 
759
                }
760
        return result;
761
}
762
 
763
 
764
QString MainWindowImpl::addMemoryInformation(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock)
765
{
766
        QString result, tmp;
767
        QString Memiry_id, Memory_proizvoditel, Memory_type, Memory_obem, Memory_inventar_num, Memory_serial_num;
768
        QString MemorySqlQueryText;
769
        QSqlQuery MemoryQuery;
770
        int field_proizvoditel, field_type, field_obem, field_id, field_inventar_num, field_sereal_num;
771
        QTreeWidgetItem *itemMemory, *itemMemory_block;
772
        MemorySqlQueryText = tr("select memory.* "
773
        " from memory where memory.»дентификатор_системного_блока = "
774
        );
775
        MemorySqlQueryText.append(id_systemBlock);
776
        MemoryQuery.prepare(MemorySqlQueryText);
777
        MemoryQuery.exec();
778
        field_id = MemoryQuery.record().indexOf(tr("»дентификатор"));
779
        field_proizvoditel = MemoryQuery.record().indexOf(tr("ѕроизводитель"));
780
        field_type = MemoryQuery.record().indexOf(tr("“ип"));
781
        field_obem = MemoryQuery.record().indexOf(tr("ќбъем"));
782
        field_inventar_num = MemoryQuery.record().indexOf(tr("»нвентарный_номер"));
783
        field_sereal_num = MemoryQuery.record().indexOf(tr("—ерийный_номер"));
784
                if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
785
                itemMemory_block = new QTreeWidgetItem(itm_sklad_komplectyushie);
786
                itemMemory_block->setText(2, tr("ћќƒ”Ћ» ѕјћя“»"));
787
        }
788
        while(MemoryQuery.next()){
789
//              tmp = tr("RAM: ");
790
                tmp = tr("");
791
                Memiry_id = MemoryQuery.value(field_id).toString();
792
                Memory_proizvoditel = MemoryQuery.value(field_proizvoditel).toString();
793
                Memory_type = MemoryQuery.value(field_type).toString();
794
                Memory_obem = MemoryQuery.value(field_obem).toString();
795
                Memory_inventar_num = MemoryQuery.value(field_inventar_num).toString();
796
                Memory_serial_num = MemoryQuery.value(field_sereal_num).toString();
797
////    if (Memory_proizvoditel != "") {
798
////            tmp.append(Memory_proizvoditel);}
799
        if (Memory_type != "") {tmp.append(tr(" "));
800
        tmp.append(Memory_type);
801
        tmp.append(tr(" "));}
802
        if (Memory_obem != "") {tmp.append(tr(" "));
803
        tmp.append(Memory_obem);
804
        tmp.append(tr("MB; "));}
805
        result.append(tmp);
806
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
807
                itemMemory = new QTreeWidgetItem(itemMemory_block);
808
        }
809
        else itemMemory = new QTreeWidgetItem(itemSysBlock);
810
        itemMemory->setIcon(4, memory_icon);
811
        itemMemory->setText(4, tmp);
812
 
813
        itemMemory->setText(2, tr("ћодуль пам€ти"));
814
        itemMemory->setText(12, Memiry_id);
815
        itemMemory->setText(13, id_systemBlock);
816
        itemMemory->setText(14, id_otvetstvennogo_lica);
817
        itemMemory->setText(3, Memory_inventar_num);
818
 
819
                }
820
        if (id_systemBlock !="1") itemSysBlock->setText(6, result);
821
        return result;
822
}
823
 
824
 
825
QString MainWindowImpl::addCpuInformation(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock)
826
{
827
        QString result, tmp;
828
        QString CPU_id, CPU_proizvoditel, CPU_slot, CPU_fqr, CPU_inventar_num, CPU_serial_num;
829
        QString CpuSqlQueryText;
830
        QSqlQuery CpuQuery;
831
        int field_id, field_proizvoditel, field_slot, field_fqr, field_inventar_num, field_serial_num;
832
        QTreeWidgetItem *itemCpu, *itemCpu_block;
833
        CpuSqlQueryText = tr("select processors.* "
834
        " from processors where processors.»дентификатор_системного_блока = "
835
        );
836
        CpuSqlQueryText.append(id_systemBlock);
837
        CpuQuery.prepare(CpuSqlQueryText);
838
        CpuQuery.exec();
839
        field_id = CpuQuery.record().indexOf(tr("»дентификатор"));
840
        field_proizvoditel = CpuQuery.record().indexOf(tr("ѕроизводитель"));
841
        field_slot = CpuQuery.record().indexOf(tr("—лот"));
842
        field_fqr = CpuQuery.record().indexOf(tr("„астота"));
843
        field_inventar_num = CpuQuery.record().indexOf(tr("»нвентарный_номер"));
844
        field_serial_num = CpuQuery.record().indexOf(tr("—ерийный_номер"));
845
 
846
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
847
                itemCpu_block = new QTreeWidgetItem(itemSysBlock);
848
                itemCpu_block->setText(2, tr("ѕ–ќ÷≈——ќ–џ"));
849
                itemCpu_block->setText(14, id_otvetstvennogo_lica);
850
        }
851
 
852
 
853
        while(CpuQuery.next()){
854
//              tmp = tr("CPU: ");
855
        tmp = tr("");
856
                CPU_id = CpuQuery.value(field_id).toString();
857
                CPU_proizvoditel = CpuQuery.value(field_proizvoditel).toString();
858
                CPU_slot = CpuQuery.value(field_slot).toString();
859
                CPU_fqr = CpuQuery.value(field_fqr).toString();
860
                CPU_inventar_num =  CpuQuery.value(field_inventar_num).toString();
861
                CPU_serial_num = CpuQuery.value(field_serial_num).toString();
862
 
863
        if (CPU_proizvoditel != "") {
864
                tmp.append(CPU_proizvoditel);}
865
//      if (CPU_slot != "") {tmp.append(tr(" "));
866
//      tmp.append(CPU_slot);
867
//      tmp.append(tr(" "));}
868
        if (CPU_fqr != "") {tmp.append(tr(" "));
869
        tmp.append(CPU_fqr);
870
        tmp.append(tr("MGz "));}
871
        result.append(tmp);
872
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
873
                itemCpu = new QTreeWidgetItem(itemCpu_block);
874
        }
875
        else itemCpu = new QTreeWidgetItem(itemSysBlock);
876
 
877
 
878
//      itemCpu = new QTreeWidgetItem(itemSysBlock);
879
        itemCpu->setText(2, tr("ѕроцессор"));
880
        itemCpu->setText(12, CPU_id);
881
        itemCpu->setText(13, id_systemBlock);
882
        itemCpu->setText(14, id_otvetstvennogo_lica);
883
 
884
        itemCpu->setIcon(4, cpu_icon);
885
        itemCpu->setText(4, tmp);
886
 
887
        itemCpu->setText(3, CPU_inventar_num);
888
                }
889
        if (id_systemBlock !="1") itemSysBlock->setText(4, tmp);
890
        return result;
891
}
892
 
893
QString MainWindowImpl::addHDDInformation(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock)
894
{
895
        QString result, tmp;
896
        QString HDD_id, HDD_proizvoditel, HDD_interfeis, HDD_obem, HDD_inventar_num, HDD_serial_num;
897
        QString HDDSqlQueryText;
898
        QSqlQuery HDDQuery;
899
        int field_id, field_proizvoditel, field_interfeis, field_obem, field_inventar_num, field_serial_num;
900
        QTreeWidgetItem *itemHDD;
901
        QTreeWidgetItem *itemHDD_block;
902
        HDDSqlQueryText = tr("select harddiscs.* "
903
        " from harddiscs where harddiscs.»дентификатор_системного_блока = "
904
        );
905
        HDDSqlQueryText.append(id_systemBlock);
906
        HDDQuery.prepare(HDDSqlQueryText);
907
        HDDQuery.exec();
908
        field_id = HDDQuery.record().indexOf(tr("»дентификатор"));
909
        field_proizvoditel = HDDQuery.record().indexOf(tr("ѕроизводитель"));
910
        field_interfeis = HDDQuery.record().indexOf(tr("»нтерфейс"));
911
        field_obem = HDDQuery.record().indexOf(tr("ќбъем"));
912
        field_inventar_num = HDDQuery.record().indexOf(tr("»нвентарный_номер"));
913
        field_serial_num = HDDQuery.record().indexOf(tr("—ерийный_номер"));
914
 
915
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
916
                itemHDD_block = new QTreeWidgetItem(itemSysBlock);
917
                itemHDD_block->setText(2, tr("¬»Ќ„≈—“≈–џ"));
918
                itemHDD_block->setText(14, id_otvetstvennogo_lica);
919
        }
920
 
921
 
922
        while(HDDQuery.next()){
923
//              tmp = tr("HDD: ");
924
                tmp = tr("");
925
                HDD_id = HDDQuery.value(field_id).toString();
926
                HDD_proizvoditel = HDDQuery.value(field_proizvoditel).toString();
927
                HDD_interfeis = HDDQuery.value(field_interfeis).toString();
928
                HDD_obem = HDDQuery.value(field_obem).toString();
929
                HDD_inventar_num =  HDDQuery.value(field_inventar_num).toString();
930
                HDD_serial_num = HDDQuery.value(field_serial_num).toString();
931
        if (HDD_proizvoditel != "") {
932
                tmp.append(HDD_proizvoditel);}
933
        if (HDD_interfeis != "") {tmp.append(tr(" "));
934
        tmp.append(HDD_interfeis);
935
        tmp.append(tr(" "));}
936
        if (HDD_obem != "") {tmp.append(tr(" "));
937
        tmp.append(HDD_obem);
938
        tmp.append(tr("GB; "));}
939
        result.append(tmp);
940
 
941
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
942
                itemHDD  = new QTreeWidgetItem(itemHDD_block);
943
        }
944
        else itemHDD  = new QTreeWidgetItem(itemSysBlock);
945
 
946
 
947
//      itemHDD = new QTreeWidgetItem(itemSysBlock);
948
 
949
        itemHDD->setText(2, tr("∆есткий диск"));
950
        itemHDD->setText(12, HDD_id);
951
        itemHDD->setText(13, id_systemBlock);
952
        itemHDD->setText(14, id_otvetstvennogo_lica);
953
 
954
        itemHDD->setIcon(4, hdd_icon);
955
        itemHDD->setText(4, tmp);
956
        itemHDD->setText(3, HDD_inventar_num);
957
                }
958
//      if (result!="") itemSysBlock->setIcon(7, hdd_icon);
959
        if (id_systemBlock !="1") itemSysBlock->setText(7, result);
960
        return result;
961
}
962
 
963
QString MainWindowImpl::add_CD_DVD_Information(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock)
964
{
965
        QString result, tmp;
966
        QString CD_DVD_id, CD_DVD_proizvoditel, CD_DVD_type, CD_DVD_speed, CD_DVD_serial_num, CD_DVD_inventar_num;
967
        QString CD_DVD_SqlQueryText;
968
        QSqlQuery CD_DVD_Query;
969
        int field_id, field_proizvoditel, field_type, field_speed, field_serial_num, field_inventar_num;
970
        QTreeWidgetItem *item_CD_DVD;
971
        QTreeWidgetItem *item_CD_DVD_block;
972
        CD_DVD_SqlQueryText = tr("select cd_dvd.* "
973
        " from cd_dvd where cd_dvd.»дентификатор_системного_блока = "
974
        );
975
        CD_DVD_SqlQueryText.append(id_systemBlock);
976
        CD_DVD_Query.prepare(CD_DVD_SqlQueryText);
977
        CD_DVD_Query.exec();
978
        field_id = CD_DVD_Query.record().indexOf(tr("»дентификатор"));
979
        field_proizvoditel = CD_DVD_Query.record().indexOf(tr("ѕроизводитель"));
980
        field_type = CD_DVD_Query.record().indexOf(tr("“ип"));
981
        field_speed = CD_DVD_Query.record().indexOf(tr("—корость"));
982
        field_inventar_num = CD_DVD_Query.record().indexOf(tr("»нвентарный_номер"));
983
        field_serial_num = CD_DVD_Query.record().indexOf(tr("—ерийный_номер"));
984
 
985
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
986
                item_CD_DVD_block = new QTreeWidgetItem(itemSysBlock);
987
                item_CD_DVD_block->setText(2, tr("ѕ–»¬ќƒџ"));
988
                item_CD_DVD_block->setText(14, id_otvetstvennogo_lica);
989
        }
990
 
991
 
992
        while(CD_DVD_Query.next()){
993
//              tmp = tr("CD/DVD: ");
994
        tmp = tr("");
995
                CD_DVD_id = CD_DVD_Query.value(field_id).toString();
996
                CD_DVD_proizvoditel = CD_DVD_Query.value(field_proizvoditel).toString();
997
                CD_DVD_type = CD_DVD_Query.value(field_type).toString();
998
                CD_DVD_speed = CD_DVD_Query.value(field_speed).toString();
999
                CD_DVD_serial_num = CD_DVD_Query.value(field_serial_num).toString();
1000
                CD_DVD_inventar_num = CD_DVD_Query.value(field_inventar_num).toString();
1001
 
1002
        if (CD_DVD_type != "") {
1003
                tmp.append(CD_DVD_type);}
1004
        if (CD_DVD_proizvoditel != "") {tmp.append(tr(" "));
1005
        tmp.append(CD_DVD_proizvoditel);
1006
        tmp.append(tr(" "));}
1007
        if (CD_DVD_speed != "") {tmp.append(tr(" "));
1008
        tmp.append(CD_DVD_speed);
1009
        tmp.append(tr(" "));}
1010
        result.append(tmp);
1011
 
1012
if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1013
                item_CD_DVD  = new QTreeWidgetItem(item_CD_DVD_block);
1014
        }
1015
        else item_CD_DVD = new QTreeWidgetItem(itemSysBlock);
1016
 
1017
        item_CD_DVD->setText(2, tr("ѕривод"));
1018
        item_CD_DVD->setText(12, CD_DVD_id);
1019
        item_CD_DVD->setText(13, id_systemBlock);
1020
        item_CD_DVD->setText(14, id_otvetstvennogo_lica);
1021
        item_CD_DVD->setIcon(4, cd_dvd_icon);
1022
        item_CD_DVD->setText(4, tmp);
1023
        item_CD_DVD->setText(3, CD_DVD_inventar_num);
1024
                }
1025
        if (id_systemBlock !="1") itemSysBlock->setText(8, result);
1026
        return result;
1027
}
1028
 
1029
QString MainWindowImpl::add_Vidio_Information(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock){
1030
 
1031
        QString result, tmp;
1032
        QString Vidio_id, Vidio_proizvoditel, Vidio_model, Vidio_interfeis, Vidio_ram, Vidio_inventar_num, Vidio_sereal_num;
1033
        QString Vidio_SqlQueryText;
1034
        QSqlQuery Vidio_Query;
1035
        int field_id, field_proizvoditel, field_model, field_interfeis, field_ram, field_inventar_num, field_sereal_num;
1036
        QTreeWidgetItem *item_Vidio, *item_Vidio_block;
1037
        Vidio_SqlQueryText = tr("select videocards.* "
1038
        " from videocards where videocards.»дентификатор_системного_блока = "
1039
        );
1040
        Vidio_SqlQueryText.append(id_systemBlock);
1041
        Vidio_Query.prepare(Vidio_SqlQueryText);
1042
        Vidio_Query.exec();
1043
        field_id = Vidio_Query.record().indexOf(tr("»дентификатор"));
1044
        field_proizvoditel = Vidio_Query.record().indexOf(tr("ѕроизводитель"));
1045
        field_model = Vidio_Query.record().indexOf(tr("ћодель"));
1046
        field_interfeis  = Vidio_Query.record().indexOf(tr("»нтерфейс"));
1047
        field_ram = Vidio_Query.record().indexOf(tr("ѕам€ть"));
1048
        field_inventar_num = Vidio_Query.record().indexOf(tr("»нвентарный_номер"));
1049
        field_sereal_num = Vidio_Query.record().indexOf(tr("—ерийный_номер"));
1050
 
1051
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1052
                item_Vidio_block = new QTreeWidgetItem(itemSysBlock);
1053
                item_Vidio_block->setText(2, tr("¬»ƒ≈ќ ј–“џ"));
1054
                item_Vidio_block->setText(14, id_otvetstvennogo_lica);
1055
        }
1056
 
1057
 
1058
 
1059
        while(Vidio_Query.next()){
1060
//              tmp = tr("CD/DVD: ");
1061
        tmp = tr("");
1062
                Vidio_id = Vidio_Query.value(field_id).toString();
1063
                Vidio_proizvoditel = Vidio_Query.value(field_proizvoditel).toString();
1064
                Vidio_model = Vidio_Query.value(field_model).toString();
1065
                Vidio_interfeis = Vidio_Query.value(field_interfeis).toString();
1066
                Vidio_ram = Vidio_Query.value(field_ram).toString();
1067
                Vidio_inventar_num = Vidio_Query.value(field_inventar_num).toString();
1068
                Vidio_sereal_num =  Vidio_Query.value(field_sereal_num).toString();
1069
        if (Vidio_interfeis != "") {tmp.append(tr(" "));
1070
        tmp.append(Vidio_interfeis);}
1071
        if (Vidio_proizvoditel != "") {tmp.append(tr(" "));
1072
        tmp.append(Vidio_proizvoditel);}
1073
        if (Vidio_model != "") {tmp.append(tr(" "));
1074
                tmp.append(Vidio_model);}
1075
 
1076
        if (Vidio_ram !=""){tmp.append(tr(" "));
1077
        tmp.append(Vidio_ram);
1078
        tmp.append(tr(" Mb"));
1079
 
1080
        }
1081
        result.append(tmp);
1082
 
1083
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1084
                item_Vidio  = new QTreeWidgetItem(item_Vidio_block);
1085
        }
1086
        else item_Vidio = new QTreeWidgetItem(itemSysBlock);
1087
 
1088
 
1089
//      item_Vidio = new QTreeWidgetItem(itemSysBlock);
1090
 
1091
        item_Vidio->setText(2, tr("¬идеокарта"));
1092
        item_Vidio->setText(12, Vidio_id);
1093
        item_Vidio->setText(13, id_systemBlock);
1094
        item_Vidio->setText(14, id_otvetstvennogo_lica);
1095
        item_Vidio->setIcon(4, vidio_card_icon);
1096
        item_Vidio->setText(4, tmp);
1097
        item_Vidio->setText(3, Vidio_inventar_num);
1098
                }
1099
        if (id_systemBlock !="1") itemSysBlock->setText(9, result);
1100
        return result;
1101
}
1102
 
1103
 
1104
QString MainWindowImpl::add_Sound_Card_Information(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock){
1105
 
1106
 
1107
        QString result, tmp;
1108
        QString Sound_card_id, Sound_card_proizvoditel, Sound_card_model, Sound_card_inventar_num, Sound_card_serial_num;
1109
        QString Sound_card_SqlQueryText;
1110
        QSqlQuery Sound_card_Query;
1111
        int field_id, field_proizvoditel, field_model, field_inventar_num, field_serial_num;
1112
        QTreeWidgetItem *item_Sound_card, *item_Sound_card_block;
1113
        Sound_card_SqlQueryText = tr("select soundcards.* "
1114
        " from soundcards where soundcards.»дентификатор_системного_блока = "
1115
        );
1116
        Sound_card_SqlQueryText.append(id_systemBlock);
1117
        Sound_card_Query.prepare(Sound_card_SqlQueryText);
1118
        Sound_card_Query.exec();
1119
        field_id = Sound_card_Query.record().indexOf(tr("»дентификатор"));
1120
        field_proizvoditel = Sound_card_Query.record().indexOf(tr("ѕроизводитель"));
1121
        field_model = Sound_card_Query.record().indexOf(tr("ћодель"));
1122
        field_inventar_num =  Sound_card_Query.record().indexOf(tr("»нвентарный_номер"));
1123
        field_serial_num = Sound_card_Query.record().indexOf(tr("—ерийный_номер"));
1124
 
1125
 
1126
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1127
                item_Sound_card_block = new QTreeWidgetItem(itemSysBlock);
1128
                item_Sound_card_block->setText(2, tr("«¬” ќ¬џ≈  ј–“џ"));
1129
                item_Sound_card_block->setText(14, id_otvetstvennogo_lica);
1130
        }
1131
 
1132
        while(Sound_card_Query.next()){
1133
//              tmp = tr("CD/DVD: ");
1134
        tmp = tr("");
1135
                Sound_card_id = Sound_card_Query.value(field_id).toString();
1136
                Sound_card_proizvoditel = Sound_card_Query.value(field_proizvoditel).toString();
1137
                Sound_card_model = Sound_card_Query.value(field_model).toString();
1138
                Sound_card_inventar_num = Sound_card_Query.value(field_inventar_num).toString();
1139
                Sound_card_serial_num = Sound_card_Query.value(field_serial_num).toString();
1140
 
1141
//              Vidio_interfeis = Vidio_Query.value(field_interfeis).toString();
1142
//              Vidio_ram = Vidio_Query.value(field_ram).toString();
1143
        if (Sound_card_proizvoditel != "") {tmp.append(tr(" "));
1144
        tmp.append(Sound_card_proizvoditel);}
1145
 
1146
        if (Sound_card_model != "") {tmp.append(tr(" "));
1147
                tmp.append(Sound_card_model);}
1148
 
1149
///     if (Vidio_ram !=""){tmp.append(tr(" "));
1150
///     tmp.append(Vidio_ram);
1151
///     tmp.append(tr(" Mb"));
1152
 
1153
///     }
1154
        result.append(tmp);
1155
 
1156
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1157
                item_Sound_card  = new QTreeWidgetItem(item_Sound_card_block);
1158
        }
1159
        else item_Sound_card = new QTreeWidgetItem(itemSysBlock);
1160
 
1161
 
1162
//      item_Sound_card = new QTreeWidgetItem(itemSysBlock);
1163
 
1164
 
1165
        item_Sound_card->setText(2, tr("«вукова€ карта"));
1166
        item_Sound_card->setText(12, Sound_card_id);
1167
        item_Sound_card->setText(13, id_systemBlock);
1168
        item_Sound_card->setText(14, id_otvetstvennogo_lica);
1169
        item_Sound_card->setIcon(4, sound_card_icon);
1170
        item_Sound_card->setText(4, tmp);
1171
        item_Sound_card->setText(3, Sound_card_inventar_num);
1172
                }
1173
        if (id_systemBlock !="1") itemSysBlock->setText(10, result);
1174
        return result; 
1175
 
1176
}
1177
 
1178
QString MainWindowImpl::add_Lan_Card_Information(QString id_otvetstvennogo_lica, QString id_systemBlock, QTreeWidgetItem * itemSysBlock){
1179
 
1180
 
1181
        QString result, tmp;
1182
        QString Lan_card_id, Lan_card_proizvoditel, Lan_card_model, Lan_speed, Lan_inventar_num, Lan_serial_num;
1183
        QString Lan_card_SqlQueryText;
1184
        QSqlQuery Lan_card_Query;
1185
        int field_id, field_proizvoditel, field_model, field_speed, field_serial_num, field_inventar_num;
1186
        QTreeWidgetItem *item_Lan_card, *item_Lan_card_block;
1187
        Lan_card_SqlQueryText = tr("select lancards.* "
1188
        " from lancards where lancards.»дентификатор_системного_блока = "
1189
        );
1190
        Lan_card_SqlQueryText.append(id_systemBlock);
1191
        Lan_card_Query.prepare(Lan_card_SqlQueryText);
1192
        Lan_card_Query.exec();
1193
        field_id = Lan_card_Query.record().indexOf(tr("»дентификатор"));
1194
        field_proizvoditel = Lan_card_Query.record().indexOf(tr("ѕроизводитель"));
1195
        field_model = Lan_card_Query.record().indexOf(tr("ћодель"));
1196
        field_speed = Lan_card_Query.record().indexOf(tr("—корость_передачи_данных"));
1197
        field_serial_num = Lan_card_Query.record().indexOf(tr("—ерийный_номер"));
1198
        field_inventar_num = Lan_card_Query.record().indexOf(tr("»нвентарный_номер"));
1199
 
1200
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1201
                item_Lan_card_block = new QTreeWidgetItem(itemSysBlock);
1202
                item_Lan_card_block->setText(2, tr("—≈“≈¬џ≈  ј–“џ"));
1203
                item_Lan_card_block->setText(14, id_otvetstvennogo_lica);
1204
        }
1205
 
1206
        while(Lan_card_Query.next()){
1207
//              tmp = tr("CD/DVD: ");
1208
        tmp = tr("");
1209
                Lan_card_id = Lan_card_Query.value(field_id).toString();
1210
                Lan_card_proizvoditel = Lan_card_Query.value(field_proizvoditel).toString();
1211
                Lan_card_model = Lan_card_Query.value(field_model).toString();
1212
                Lan_speed = Lan_card_Query.value(field_speed).toString();
1213
                Lan_inventar_num =  Lan_card_Query.value(field_inventar_num).toString();
1214
                Lan_serial_num = Lan_card_Query.value(field_serial_num).toString();
1215
 
1216
 
1217
//              Vidio_interfeis = Vidio_Query.value(field_interfeis).toString();
1218
//              Vidio_ram = Vidio_Query.value(field_ram).toString();
1219
        if (Lan_card_proizvoditel != "") {tmp.append(tr(" "));
1220
        tmp.append(Lan_card_proizvoditel);}
1221
 
1222
        if (Lan_card_model != "") {tmp.append(tr(" "));
1223
                tmp.append(Lan_card_model);}
1224
 
1225
        if (Lan_speed != "") {tmp.append(tr(" "));
1226
                tmp.append(Lan_speed);
1227
                tmp.append(tr(" Mbit"));}
1228
 
1229
///     if (Vidio_ram !=""){tmp.append(tr(" "));
1230
///     tmp.append(Vidio_ram);
1231
///     tmp.append(tr(" Mb"));
1232
 
1233
///     }
1234
        result.append(tmp);
1235
 
1236
        if (id_otvetstvennogo_lica == "1" && id_systemBlock == "1"){
1237
                item_Lan_card  = new QTreeWidgetItem(item_Lan_card_block);
1238
        }
1239
        else item_Lan_card = new QTreeWidgetItem(itemSysBlock);
1240
 
1241
//      item_Lan_card = new QTreeWidgetItem(itemSysBlock);
1242
 
1243
 
1244
        item_Lan_card->setText(2, tr("—етева€ карта"));
1245
        item_Lan_card->setText(12, Lan_card_id);
1246
        item_Lan_card->setText(13, id_systemBlock);
1247
        item_Lan_card->setText(14, id_otvetstvennogo_lica);
1248
        item_Lan_card->setIcon(4, lan_card_icon);
1249
        item_Lan_card->setText(4, tmp);
1250
        item_Lan_card->setText(3, Lan_inventar_num);
1251
                }
1252
        if (id_systemBlock !="1") itemSysBlock->setText(11, result);
1253
        return result; 
1254
 
1255
}
1256
 
1257
void MainWindowImpl::refreshTree(){
1258
 
1259
        initTreeWidget();
1260
}
1261
 
1262
int MainWindowImpl::select_system_block(){
1263
        return 1;
1264
}
1265
 
1266