annotate src/editperson.cpp @ 237:54ab3f3e28c0

Split EditPerson and ViewTransactions to separate source files.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 07 May 2018 19:19:13 +0300
parents
children 43a5e09bb832
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
237
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 // Syntilista - debt list/management database program
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 // Programmed and designed by Matti Hämäläinen <ccr@tnsp.org>
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 // (C) Copyright 2017-2018 Tecnic Software productions (TNSP)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 // Distributed under 3-clause BSD style license, refer to
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 // included file "COPYING" for exact terms.
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 #include "main.h"
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10 #include "ui_editperson.h"
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 EditPerson::EditPerson(QWidget *parent) :
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 QDialog(parent),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 ui(new Ui::EditPerson)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 ui->setupUi(this);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 slSetCommonStyleSheet(this);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 setModal(true);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 setAttribute(Qt::WA_DeleteOnClose);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 show();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 activateWindow();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 raise();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 setFocus();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 model_Transactions = new SLTransactionSQLModel();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 ui->tableview_Transactions->setModel(model_Transactions);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 ui->tableview_Transactions->setItemDelegate(new QSqlRelationalDelegate(ui->tableview_Transactions));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 ui->tableview_Transactions->verticalHeader()->setVisible(false);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 ui->tableview_Transactions->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 ui->edit_FirstName->setMaxLength(SQL_LEN_FIRST_NAME);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35 ui->edit_LastName->setMaxLength(SQL_LEN_LAST_NAME);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37 connect(
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38 ui->textedit_ExtraInfo,
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 SIGNAL(textChanged()),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 this,
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 SLOT(on_textedit_ExtraInfo_textChanged()));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 validateForm();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 EditPerson::~EditPerson()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 delete ui;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 delete model_Transactions;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 void EditPerson::statusMsg(const QString &msg)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 // Pass the status message to main window
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 dynamic_cast<SyntilistaMainWindow *>(parent())->statusMsg(msg);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 bool EditPerson::validateForm()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 selPerson.firstName = slCleanupStr(ui->edit_FirstName->text());
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 selPerson.lastName = slCleanupStr(ui->edit_LastName->text());
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 selPerson.extraInfo = ui->textedit_ExtraInfo->document()->toPlainText();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 bool extraInfoValid = selPerson.extraInfo.length() < SQL_LEN_EXTRA_INFO;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 ui->textedit_ExtraInfo->setStyleSheet(!extraInfoValid ? "background-color: red;" : NULL);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 ui->edit_FirstName->setStyleSheet(selPerson.firstName == "" ? "background-color: red;" : NULL);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 ui->edit_LastName->setStyleSheet(selPerson.lastName == "" ? "background-color: red;" : NULL);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 return selPerson.firstName != "" && selPerson.lastName != "" && extraInfoValid;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 void EditPerson::on_button_Cancel_clicked()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 close();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82 void EditPerson::on_button_OK_clicked()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 // Check form validation
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 if (!validateForm())
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 slErrorMsg(
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90 tr("Virhe!"),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 tr("Vaaditut kentät (etunimi, sukunimi) eivät ole täytetty tai lisätietojen pituus on liian suuri."));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 return;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 if (selPerson.id >= 0)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 // We are in update/edit person mode, thus we check if the
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 // first/last name have changed and if there is someone with
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 // different ID and same names.
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 QSqlQuery person;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 person.prepare(QStringLiteral("SELECT * FROM people WHERE id <> ? AND first_name=? AND last_name=?"));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 person.addBindValue(selPerson.id);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 person.addBindValue(selPerson.firstName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 person.addBindValue(selPerson.lastName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108 person.exec();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 slCheckAndReportSQLError("SELECT check for existing person by same name (UPDATE)", person.lastError());
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112 if (person.next())
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 // There exists another person with that name
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 slErrorMsg(
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 tr("Virhe!"),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 tr("Ei pysty! Samalla nimellä '%1 %2' on olemassa jo henkilö!").
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118 arg(selPerson.firstName).arg(selPerson.lastName));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
119 return;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122 // Allest klar, update the person data
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123 dynamic_cast<SyntilistaMainWindow *>(parent())->model_People->updatePerson(selPerson);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 dynamic_cast<SyntilistaMainWindow *>(parent())->setActivePerson(selPerson.id);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
125
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
126 statusMsg(tr("Päivitettiin henkilö '%1 %2' (#%3).").
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 arg(selPerson.firstName).arg(selPerson.lastName).arg(selPerson.id));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129 else
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132 // We are in "add new person" mode, check if there exists
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133 // someone with same first+last name.
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135 QSqlQuery person;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136 person.prepare("SELECT * FROM people WHERE first_name=? AND last_name=?");
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137 person.addBindValue(selPerson.firstName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138 person.addBindValue(selPerson.lastName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 person.exec();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141 slCheckAndReportSQLError("SELECT check for existing person by same name (ADD)", person.lastError());
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
142
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 if (person.next())
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 // There exists a record with same name
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 slErrorMsg(
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147 tr("Virhe!"),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148 tr("Ei pysty! Samalla nimellä '%1 %2' on olemassa jo henkilö!").
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 arg(selPerson.firstName).arg(selPerson.lastName));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 return;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154 // Attempt to add a person
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 qint64 nid = dynamic_cast<SyntilistaMainWindow *>(parent())->model_People->addPerson(selPerson);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
156 if (nid < 0)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
157 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
158 slErrorMsg(
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
159 tr("Virhe!"),
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
160 tr("Tietokannan käsittelyssä tapahtui virhe (#%1).").
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
161 arg(nid));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 else
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165 dynamic_cast<SyntilistaMainWindow *>(parent())->updatePersonList();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166 dynamic_cast<SyntilistaMainWindow *>(parent())->setActivePerson(nid);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 dynamic_cast<SyntilistaMainWindow *>(parent())->focusDebtEdit();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
168
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 statusMsg(tr("Lisättiin uusi henkilö '%1 %2'.").
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170 arg(selPerson.firstName).arg(selPerson.lastName));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
171 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174 close();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
175 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
176
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
177
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
178 void EditPerson::on_edit_FirstName_textChanged(const QString &arg1)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
179 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180 (void) arg1;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
181 validateForm();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
182 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
183
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
184
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
185 void EditPerson::on_edit_LastName_textChanged(const QString &arg1)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
186 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
187 (void) arg1;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
188 validateForm();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
189 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
190
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
191
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
192 void EditPerson::on_textedit_ExtraInfo_textChanged()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
193 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
194 validateForm();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
195 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
196
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
197
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
198 void EditPerson::clearForm()
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
199 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
200 ui->edit_FirstName->clear();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
201 ui->edit_LastName->clear();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
202 ui->textedit_ExtraInfo->document()->clear();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
203 ui->edit_FirstName->setFocus();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
204 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
205
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
206
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
207 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
208 // Set the person to be edited
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
209 //
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
210 void EditPerson::setPerson(qint64 id)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
211 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
212 selPerson.id = id;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
213
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
214 if (id >= 0)
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
215 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
216 SLPersonInfo pinfo;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
217 if (!slGetPersonInfo(id, pinfo))
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
218 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
219 statusMsg(tr("Virhe! Ei henkilöä ID:llä #%1").arg(id));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
220 // Intentional fall-through below
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
221 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
222 else
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
223 {
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
224 ui->edit_FirstName->setText(pinfo.firstName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
225 ui->edit_LastName->setText(pinfo.lastName);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
226 ui->textedit_ExtraInfo->document()->setPlainText(pinfo.extraInfo);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
227 ui->label_AddedValue->setText(slDateTimeToStr(pinfo.added));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
228
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
229 QSqlQuery query;
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
230 query.prepare(QStringLiteral("SELECT id,value,added FROM transactions WHERE person=? ORDER BY added DESC"));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
231 query.addBindValue(pinfo.id);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
232 query.exec();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
233 slCheckAndReportSQLError("SELECT transactions for tableview_Transactions", query.lastError());
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
234
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
235 model_Transactions->setQuery(query);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
236
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
237 model_Transactions->setHeaderData(0, Qt::Horizontal, tr("ID"));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
238 model_Transactions->setHeaderData(1, Qt::Horizontal, tr("Summa"));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
239 model_Transactions->setHeaderData(2, Qt::Horizontal, tr("Aika"));
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
240
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
241 ui->tableview_Transactions->setModel(model_Transactions);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
242 ui->tableview_Transactions->setColumnHidden(0, true);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
243
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
244 return; // Ugly
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
245 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
246 }
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
247
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
248 // In case of id < 0 or errors ..
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
249 clearForm();
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
250 ui->tableview_Transactions->setModel(NULL);
54ab3f3e28c0 Split EditPerson and ViewTransactions to separate source files.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
251 }