.
This commit is contained in:
+6
-1
@@ -145,7 +145,8 @@ void cMainWindow::initDB()
|
||||
query.exec("CREATE TABLE partlistitem ("
|
||||
" id INTEGER PRIMARY KEY,"
|
||||
" partlistID INTEGER REFERENCES partlist (id),"
|
||||
" part_disttributorID INTEGER REFERENCES part_distributor (id),"
|
||||
" partID INTEGER REFERENCES par (id),"
|
||||
" distributorID INTEGER REFERENCES distributor (id),"
|
||||
" replaceID INTEGER REFERENCES partlistitem (id),"
|
||||
" reference STRING,"
|
||||
" description TEXT,"
|
||||
@@ -585,6 +586,8 @@ void cMainWindow::on_m_lpMenuPartlistNew_triggered()
|
||||
ui->m_lpMainTab->addTab(lpNew, szNew);
|
||||
ui->m_lpMainTab->setCurrentWidget(lpNew);
|
||||
|
||||
lpNew->setList(&m_distributorList, &m_partGroupList, &m_partList, &m_partDistributorList);
|
||||
|
||||
connect(lpNew, SIGNAL(partlistChanged(QWidget*)), this, SLOT(partlistChanged(QWidget*)));
|
||||
}
|
||||
|
||||
@@ -633,6 +636,8 @@ void cMainWindow::on_m_lpMenuPartlistOpen_triggered()
|
||||
lpNew->setMainTab(ui->m_lpMainTab);
|
||||
ui->m_lpMainTab->addTab(lpNew, "INITIALIZING");
|
||||
ui->m_lpMainTab->setCurrentWidget(lpNew);
|
||||
|
||||
lpNew->setList(&m_distributorList, &m_partGroupList, &m_partList, &m_partDistributorList);
|
||||
lpNew->setPartlistID(id);
|
||||
|
||||
connect(lpNew, SIGNAL(partlistChanged(QWidget*)), this, SLOT(partlistChanged(QWidget*)));
|
||||
|
||||
+14
-4
@@ -83,6 +83,19 @@ QString cPartDistributor::link()
|
||||
}
|
||||
|
||||
cPartDistributor* cPartDistributorList::add(qint32 id)
|
||||
{
|
||||
cPartDistributor* lpPartDistributor = find(id);
|
||||
|
||||
if(lpPartDistributor)
|
||||
return(lpPartDistributor);
|
||||
|
||||
lpPartDistributor = new cPartDistributor;
|
||||
lpPartDistributor->setID(id);
|
||||
append(lpPartDistributor);
|
||||
return(lpPartDistributor);
|
||||
}
|
||||
|
||||
cPartDistributor* cPartDistributorList::find(qint32 id)
|
||||
{
|
||||
for(int x = 0;x < count();x++)
|
||||
{
|
||||
@@ -90,8 +103,5 @@ cPartDistributor* cPartDistributorList::add(qint32 id)
|
||||
return(at(x));
|
||||
}
|
||||
|
||||
cPartDistributor* lpPartDistributor = new cPartDistributor;
|
||||
lpPartDistributor->setID(id);
|
||||
append(lpPartDistributor);
|
||||
return(lpPartDistributor);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ class cPartDistributorList : public QList<cPartDistributor*>
|
||||
{
|
||||
public:
|
||||
cPartDistributor* add(qint32 id);
|
||||
cPartDistributor* find(qint32 id);
|
||||
};
|
||||
|
||||
#endif // CPARTDISTRIBUTOR_H
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
#include "cpartlistitem.h"
|
||||
|
||||
|
||||
cPartlistItem::cPartlistItem() :
|
||||
m_id(-1),
|
||||
m_partlistID(-1),
|
||||
m_partID(-1),
|
||||
m_distributorID(-1),
|
||||
m_replaceID(-1),
|
||||
m_szReference(""),
|
||||
m_szDescription(""),
|
||||
m_state(STATE_init),
|
||||
m_dPrice(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
void cPartlistItem::setID(const qint32& id)
|
||||
{
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
qint32 cPartlistItem::id()
|
||||
{
|
||||
return(m_id);
|
||||
}
|
||||
|
||||
void cPartlistItem::setPartlistID(const qint32& id)
|
||||
{
|
||||
m_partlistID = id;
|
||||
}
|
||||
|
||||
qint32 cPartlistItem::partlistID()
|
||||
{
|
||||
return(m_partlistID);
|
||||
}
|
||||
|
||||
void cPartlistItem::setPartID(const qint32& id)
|
||||
{
|
||||
m_partID = id;
|
||||
}
|
||||
|
||||
qint32 cPartlistItem::partID()
|
||||
{
|
||||
return(m_partID);
|
||||
}
|
||||
|
||||
void cPartlistItem::setDistributorID(const qint32& id)
|
||||
{
|
||||
m_distributorID = id;
|
||||
}
|
||||
|
||||
qint32 cPartlistItem::distributorID()
|
||||
{
|
||||
return(m_distributorID);
|
||||
}
|
||||
|
||||
void cPartlistItem::setReplaceID(const qint32& id)
|
||||
{
|
||||
m_replaceID = id;
|
||||
}
|
||||
|
||||
qint32 cPartlistItem::replaceID()
|
||||
{
|
||||
return(m_replaceID);
|
||||
}
|
||||
|
||||
void cPartlistItem::setReference(const QString& szReference)
|
||||
{
|
||||
m_szReference = szReference;
|
||||
}
|
||||
|
||||
QString cPartlistItem::reference()
|
||||
{
|
||||
return(m_szReference);
|
||||
}
|
||||
|
||||
void cPartlistItem::setDescription(const QString& szDescription)
|
||||
{
|
||||
m_szDescription = szDescription;
|
||||
}
|
||||
|
||||
QString cPartlistItem::description()
|
||||
{
|
||||
return(m_szDescription);
|
||||
}
|
||||
|
||||
void cPartlistItem::setState(const cPartlistItem::STATE& state)
|
||||
{
|
||||
m_state = state;
|
||||
}
|
||||
|
||||
cPartlistItem::STATE cPartlistItem::state()
|
||||
{
|
||||
return(m_state);
|
||||
}
|
||||
|
||||
void cPartlistItem::setPrice(const qreal& price)
|
||||
{
|
||||
m_dPrice = price;
|
||||
}
|
||||
|
||||
qreal cPartlistItem::price()
|
||||
{
|
||||
return(m_dPrice);
|
||||
}
|
||||
|
||||
cPartlistItem* cPartlistItemList::add(qint32 id)
|
||||
{
|
||||
cPartlistItem* lpPartlistItem = find(id);
|
||||
if(lpPartlistItem)
|
||||
return(lpPartlistItem);
|
||||
|
||||
lpPartlistItem = new cPartlistItem;
|
||||
lpPartlistItem->setID(id);
|
||||
append(lpPartlistItem);
|
||||
return(lpPartlistItem);
|
||||
}
|
||||
|
||||
cPartlistItem* cPartlistItemList::find(qint32 id)
|
||||
{
|
||||
for(int x = 0;x < count();x++)
|
||||
{
|
||||
if(at(x)->id() == id)
|
||||
return(at(x));
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
#ifndef CPARTLISTITEM_H
|
||||
#define CPARTLISTITEM_H
|
||||
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QList>
|
||||
|
||||
|
||||
class cPartlistItem
|
||||
{
|
||||
public:
|
||||
enum STATE
|
||||
{
|
||||
STATE_init = 0,
|
||||
STATE_ordered = 1,
|
||||
STATE_received = 2,
|
||||
};
|
||||
|
||||
cPartlistItem();
|
||||
|
||||
void setID(const qint32& id);
|
||||
qint32 id();
|
||||
|
||||
void setPartlistID(const qint32& id);
|
||||
qint32 partlistID();
|
||||
|
||||
void setPartID(const qint32& id);
|
||||
qint32 partID();
|
||||
|
||||
void setDistributorID(const qint32& id);
|
||||
qint32 distributorID();
|
||||
|
||||
void setReplaceID(const qint32& id);
|
||||
qint32 replaceID();
|
||||
|
||||
void setReference(const QString& szReference);
|
||||
QString reference();
|
||||
|
||||
void setDescription(const QString& szDescription);
|
||||
QString description();
|
||||
|
||||
void setState(const STATE& state);
|
||||
STATE state();
|
||||
|
||||
void setPrice(const qreal& price);
|
||||
qreal price();
|
||||
private:
|
||||
qint32 m_id;
|
||||
qint32 m_partlistID;
|
||||
qint32 m_partID;
|
||||
qint32 m_distributorID;
|
||||
qint32 m_replaceID;
|
||||
QString m_szReference;
|
||||
QString m_szDescription;
|
||||
STATE m_state;
|
||||
qreal m_dPrice;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(cPartlistItem*)
|
||||
|
||||
class cPartlistItemList : public QList<cPartlistItem*>
|
||||
{
|
||||
public:
|
||||
cPartlistItem* add(qint32 id);
|
||||
cPartlistItem* find(qint32 id);
|
||||
};
|
||||
|
||||
#endif // CPARTLISTITEM_H
|
||||
+75
-2
@@ -15,9 +15,16 @@ cPartlistWindow::cPartlistWindow(QWidget *parent) :
|
||||
ui(new Ui::cPartlistWindow),
|
||||
m_lpMainTab(0),
|
||||
m_id(-1),
|
||||
m_bSomethingChanged(false)
|
||||
m_bSomethingChanged(false),
|
||||
m_lpDistributorList(0),
|
||||
m_lpPartGroupList(0),
|
||||
m_lpPartList(0),
|
||||
m_lpPartDistributorList(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_lpPartListModel = new QStandardItemModel(0, 3);
|
||||
ui->m_lpPartList->setModel(m_lpPartListModel);
|
||||
}
|
||||
|
||||
cPartlistWindow::~cPartlistWindow()
|
||||
@@ -71,6 +78,38 @@ void cPartlistWindow::setPartlistID(const qint32& id)
|
||||
m_lpMainTab->setTabText(m_lpMainTab->currentIndex(), query.value("name").toString());
|
||||
partlistChanged(this);
|
||||
}
|
||||
|
||||
query.prepare("SELECT id, partID, distributorID, replaceID, reference, description, state, price FROM partlistitem WHERE partlistID=:partlistID;");
|
||||
query.bindValue(":partlistID", m_id);
|
||||
|
||||
if(!query.exec())
|
||||
{
|
||||
myDebug << query.lastError().text();
|
||||
return;
|
||||
}
|
||||
|
||||
while(query.next())
|
||||
{
|
||||
cPartlistItem* lpPartlistItem = m_partlistItemList.add(query.value("id").toInt());
|
||||
lpPartlistItem->setPartlistID(m_id);
|
||||
lpPartlistItem->setPartID(query.value("partID").toInt());
|
||||
lpPartlistItem->setDistributorID(query.value("distributorID").toInt());
|
||||
lpPartlistItem->setReplaceID(query.value("replaceID").toInt());
|
||||
lpPartlistItem->setReference(query.value("reference").toString());
|
||||
lpPartlistItem->setDescription(query.value("description").toString());
|
||||
lpPartlistItem->setState((cPartlistItem::STATE)query.value("state").toInt());
|
||||
lpPartlistItem->setPrice(query.value("price").toReal());
|
||||
}
|
||||
|
||||
showPartList();
|
||||
}
|
||||
|
||||
void cPartlistWindow::setList(cDistributorList* lpDistributorList, cPartGroupList* lpPartGroupList, cPartList* lpPartList, cPartDistributorList* lpPartDistributorList)
|
||||
{
|
||||
m_lpDistributorList = lpDistributorList;
|
||||
m_lpPartGroupList = lpPartGroupList;
|
||||
m_lpPartList = lpPartList;
|
||||
m_lpPartDistributorList = lpPartDistributorList;
|
||||
}
|
||||
|
||||
void cPartlistWindow::on_m_lpName_textChanged(const QString &arg1)
|
||||
@@ -164,6 +203,40 @@ bool cPartlistWindow::saveAs()
|
||||
return(save(m_id));
|
||||
}
|
||||
|
||||
void cPartlistWindow::showPartList()
|
||||
{
|
||||
m_lpPartListModel->clear();
|
||||
|
||||
QStringList header;
|
||||
header << tr("reference") << tr("part") << tr("distributor") << tr("state") << tr("price") << tr("description");
|
||||
m_lpPartListModel->setHorizontalHeaderLabels(header);
|
||||
|
||||
for(int x = 0;x < m_partlistItemList.count();x++)
|
||||
{
|
||||
QList<QStandardItem*> lpItems;
|
||||
cPartlistItem* lpPartlistItem = m_partlistItemList.at(x);
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
lpItems.append(new QStandardItem);
|
||||
|
||||
lpItems.at(0)->setText(lpPartlistItem->reference());
|
||||
lpItems.at(1)->setText(m_lpPartList->find(lpPartlistItem->partID())->name());
|
||||
if(lpPartlistItem->distributorID())
|
||||
lpItems.at(2)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name());
|
||||
//lpItems.at(3)->setText(lpPartlistItem->state());
|
||||
lpItems.at(4)->setText(QString::number(lpPartlistItem->price(), 'f', 2));
|
||||
lpItems.at(5)->setText(lpPartlistItem->description());
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem), Qt::UserRole);
|
||||
|
||||
m_lpPartListModel->appendRow(lpItems);
|
||||
}
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
ui->m_lpPartList->resizeColumnToContents(z);
|
||||
}
|
||||
|
||||
bool cPartlistWindow::save(qint32 id)
|
||||
{
|
||||
QSqlQuery query;
|
||||
@@ -194,6 +267,6 @@ bool cPartlistWindow::somethingChanged()
|
||||
return(m_bSomethingChanged);
|
||||
}
|
||||
|
||||
void cPartlistWindow::on_m_lpPartList_doubleClicked(const QModelIndex &index)
|
||||
void cPartlistWindow::on_m_lpPartList_doubleClicked(const QModelIndex &/*index*/)
|
||||
{
|
||||
}
|
||||
|
||||
+37
-16
@@ -1,8 +1,18 @@
|
||||
#ifndef CPARTLISTWINDOW_H
|
||||
#define CPARTLISTWINDOW_H
|
||||
|
||||
|
||||
#include "cdistributor.h"
|
||||
#include "cpartgroup.h"
|
||||
#include "cpart.h"
|
||||
#include "cpartdistributor.h"
|
||||
|
||||
#include "cpartlistitem.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QTabWidget>
|
||||
#include <QStandardItemModel>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class cPartlistWindow;
|
||||
@@ -16,32 +26,43 @@ public:
|
||||
explicit cPartlistWindow(QWidget *parent = 0);
|
||||
~cPartlistWindow();
|
||||
|
||||
void setMainTab(QTabWidget* lpMainTab);
|
||||
void setMainTab(QTabWidget* lpMainTab);
|
||||
|
||||
void setPartlistName(const QString& szPartlistName);
|
||||
QString partlistName();
|
||||
void setPartlistName(const QString& szPartlistName);
|
||||
QString partlistName();
|
||||
|
||||
void setPartlistID(const qint32& id);
|
||||
void setPartlistID(const qint32& id);
|
||||
void setList(cDistributorList* lpDistributorList, cPartGroupList* lpPartGroupList, cPartList* lpPartList, cPartDistributorList* lpPartDistributorList);
|
||||
|
||||
bool close();
|
||||
bool save();
|
||||
bool saveAs();
|
||||
bool close();
|
||||
bool save();
|
||||
bool saveAs();
|
||||
|
||||
bool somethingChanged();
|
||||
bool somethingChanged();
|
||||
private slots:
|
||||
void on_m_lpName_textChanged(const QString &arg1);
|
||||
void on_m_lpPartList_doubleClicked(const QModelIndex &index);
|
||||
void on_m_lpName_textChanged(const QString &arg1);
|
||||
void on_m_lpPartList_doubleClicked(const QModelIndex &index);
|
||||
|
||||
signals:
|
||||
void partlistChanged(QWidget* lpWidget) const;
|
||||
void partlistChanged(QWidget* lpWidget) const;
|
||||
|
||||
private:
|
||||
Ui::cPartlistWindow *ui;
|
||||
QTabWidget* m_lpMainTab;
|
||||
qint32 m_id;
|
||||
bool m_bSomethingChanged;
|
||||
Ui::cPartlistWindow* ui;
|
||||
QTabWidget* m_lpMainTab;
|
||||
QStandardItemModel* m_lpPartListModel;
|
||||
qint32 m_id;
|
||||
bool m_bSomethingChanged;
|
||||
|
||||
bool save(qint32 id);
|
||||
cDistributorList* m_lpDistributorList;
|
||||
cPartGroupList* m_lpPartGroupList;
|
||||
cPartList* m_lpPartList;
|
||||
cPartDistributorList* m_lpPartDistributorList;
|
||||
|
||||
cPartlistItemList m_partlistItemList;
|
||||
|
||||
void showPartList();
|
||||
|
||||
bool save(qint32 id);
|
||||
};
|
||||
|
||||
#endif // CPARTLISTWINDOW_H
|
||||
|
||||
+14
-5
@@ -223,10 +223,10 @@ void cPartWindow::onDelete()
|
||||
continue;
|
||||
|
||||
QSqlQuery query;
|
||||
QString szQuery;
|
||||
|
||||
szQuery = QString("SELECT * FROM partlistitem WHERE partID = %1;").arg(lpPart->id());
|
||||
if(!query.exec(szQuery))
|
||||
query.prepare("SELECT * FROM partlistitem WHERE partID = :partID;");
|
||||
query.bindValue(":partID", lpPart->id());
|
||||
if(!query.exec())
|
||||
{
|
||||
myDebug << query.lastError().text();
|
||||
continue;
|
||||
@@ -241,8 +241,17 @@ void cPartWindow::onDelete()
|
||||
if(QMessageBox::question(this, "DELETE", QString("Are you sure to delete part '%1'?").arg(lpPart->name())) == QMessageBox::No)
|
||||
continue;
|
||||
|
||||
szQuery = QString("DELETE FROM part WHERE id=%1;").arg(lpPart->id());
|
||||
if(!query.exec(szQuery))
|
||||
query.prepare("DELETE FROM part_distributor WHERE partID = :partID;");
|
||||
query.bindValue(":partID", lpPart->id());
|
||||
if(!query.exec())
|
||||
{
|
||||
myDebug << query.lastError().text();
|
||||
continue;
|
||||
}
|
||||
|
||||
query.prepare("DELETE FROM part WHERE id=:partID;");
|
||||
query.bindValue(":partID", lpPart->id());
|
||||
if(!query.exec())
|
||||
{
|
||||
myDebug << query.lastError().text();
|
||||
continue;
|
||||
|
||||
+4
-2
@@ -37,7 +37,8 @@ SOURCES += \
|
||||
cparteditdialog.cpp \
|
||||
cpartdistributor.cpp \
|
||||
clabel.cpp \
|
||||
cpartdistributoreditdialog.cpp
|
||||
cpartdistributoreditdialog.cpp \
|
||||
cpartlistitem.cpp
|
||||
|
||||
HEADERS += \
|
||||
cmainwindow.h \
|
||||
@@ -52,7 +53,8 @@ HEADERS += \
|
||||
cparteditdialog.h \
|
||||
cpartdistributor.h \
|
||||
clabel.h \
|
||||
cpartdistributoreditdialog.h
|
||||
cpartdistributoreditdialog.h \
|
||||
cpartlistitem.h
|
||||
|
||||
FORMS += \
|
||||
cmainwindow.ui \
|
||||
|
||||
Reference in New Issue
Block a user