/
obosoblform.cpp
114 lines (99 loc) · 3.51 KB
/
obosoblform.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "obosoblform.h"
#include <QtWidgets>
#include <QtSql>
#include "lineedit.h"
#include "numprefix.h"
#include "fordelete.h"
ObosoblForm::ObosoblForm(QString id, QWidget *parent, bool onlyForRead) :
QDialog(parent)
{
indexTemp = id;
labelName = new QLabel(trUtf8("Name:"));
editName = new LineEdit;
editName->setReadOnly(onlyForRead);
QRegExp regExpFamiliya("[\\x0410-\\x044f 0-9 \" -]{150}");
editName->setValidator(new QRegExpValidator(regExpFamiliya,this));
labelName->setBuddy(editName);
savePushButton = new QPushButton(trUtf8("Save"));
connect(savePushButton,SIGNAL(clicked()),this,SLOT(editRecord()));
savePushButton->setToolTip(trUtf8("Save And Close Button"));
cancelPushButton = new QPushButton(trUtf8("Cancel"));
cancelPushButton->setDefault(true);
cancelPushButton->setStyleSheet("QPushButton:hover {color: red}");
connect(cancelPushButton,SIGNAL(clicked()),this,SLOT(accept()));
cancelPushButton->setToolTip(trUtf8("Cancel Button"));
buttonBox = new QDialogButtonBox;
buttonBox->addButton(cancelPushButton,QDialogButtonBox::ActionRole);
buttonBox->addButton(savePushButton,QDialogButtonBox::ActionRole);
if(indexTemp != ""){
QSqlQuery query;
query.prepare("SELECT obosoblname FROM obosobl WHERE obosoblid = ?");
query.addBindValue(indexTemp);
query.exec();
while(query.next()){
editName->setText(query.value(0).toString());
}
}else{
editName->clear();
}
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(labelName,0,0);
mainLayout->addWidget(editName,0,1);
if(!onlyForRead){
mainLayout->addWidget(buttonBox,1,1);
editName->selectAll();
}
setLayout(mainLayout);
setWindowTitle(trUtf8("Obosobl"));
}
void ObosoblForm::editRecord()
{
if(indexTemp != ""){
QSqlQuery query;
query.prepare("UPDATE obosobl SET obosoblname = :name WHERE obosoblid = :id");
query.bindValue(":name",editName->text());
query.bindValue(":id",indexTemp);
query.exec();
}else{
QSqlQuery query;
query.prepare("SELECT * FROM obosobl WHERE obosoblname = :name");
query.bindValue(":name",editName->text().simplified());
query.exec();
query.next();
if(!query.isValid()){
NumPrefix numPrefix;
indexTemp = numPrefix.getPrefix("obosobl");
if(indexTemp == ""){
close();
}
QSqlQuery query;
query.prepare("INSERT INTO obosobl (obosoblid, obosoblname) VALUES(:id, :name)");
query.bindValue(":id",indexTemp);
query.bindValue(":name",editName->text().simplified());
query.exec();
}else{
QString tempString = editName->text();
tempString += QObject::trUtf8(" is availble!");
QMessageBox::warning(this,QObject::trUtf8("Atention!!!"),tempString);
}
}
emit accept();
close();
}
void ObosoblForm::deleteRecord()
{
//QSettings settings("AO_Batrakov_Inc.", "EmployeeClient");
//if(settings.value("CurrentUser") == "root" || settings.value("CurrentUser") == "Nataly"){
ForDelete forDelete(indexTemp,"obosobl",this);
forDelete.exec();
forDelete.deleteOnDefault();
QSqlQuery query;
query.prepare("DELETE FROM obosobl WHERE obosoblid = :id");
query.bindValue(":id",indexTemp);
query.exec();
query.next();
}
void ObosoblForm::done(int result)
{
QDialog::done(result);
}