Skip to content

Commit

Permalink
Editing, fill Contributories
Browse files Browse the repository at this point in the history
  • Loading branch information
aroquemaurel committed Feb 19, 2015
1 parent f836e82 commit 251171f
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 33 deletions.
23 changes: 9 additions & 14 deletions src/gui/dialogs/addquotedialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,18 @@ AddQuoteDialog::AddQuoteDialog(bool isBilling, int idCustomer, int id, QWidget *
if (id != 0) {
_quote = new Billing(id);
fillFields();
if (isBilling) setWindowTitle("Modifier la facture n°"
+ QString::number(getNumber()) + " de "
+ (Customer(idCustomer).getCompany()));
else setWindowTitle("Modifier le devis n°"
+ QString::number(getNumber()) + " de "
+ (Customer(idCustomer).getCompany()));

setWindowTitle((isBilling ? "Modifier la facture" : "Modifier le devis")+
QString::number(getNumber())+ " de " +
(Customer(idCustomer).getCompany()));
} else {
_quote = new Billing();
_quote->setId(id);
ui->dateEditQuote->setDate(QDate::currentDate());
if (isBilling) setWindowTitle("Nouveau devis n°"
+ QString::number(getNumber()) + " de "
+ (Customer(idCustomer).getCompany()));
else setWindowTitle("Nouvelle facture n°"
+ QString::number(getNumber()) + " de "
+ (Customer(idCustomer).getCompany()));

setWindowTitle((isBilling ? "Nouvelle facture" : "Nouveau devis")+
QString::number(getNumber())+ " de " +
(Customer(idCustomer).getCompany()));
}
_quote->setIsBilling(isBilling);
ui->_2->addWidget(ui->wdgContributories, 5, 0, 1, 2);
Expand All @@ -53,8 +49,7 @@ void AddQuoteDialog::fillFields() {
ui->dateEditQuote->setDate(_quote->getDate());
ui->leDescription->setText(_quote->getDescription());

// TODO editing… FIXME.
// ((Gui::Widgets::ContributoriesWidget*)ui->wdgContributories)->add(_quote->getContributories().getAllContributories());
((Gui::Widgets::ContributoriesWidget*)ui->wdgContributories)->add(_quote->getContributories());
}

void AddQuoteDialog::accept() {
Expand Down
31 changes: 17 additions & 14 deletions src/gui/widgets/contributorieswidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,19 @@ ContributoriesList* ContributoriesWidget::getContributories() const

void ContributoriesWidget::add()
{
Contributory c;
add(c);
}
_modelsContributories[ui->stack->currentIndex()]->append(Contributory());

void ContributoriesWidget::add(Contributory& c)
{
_modelsContributories[ui->stack->currentIndex()]->append(c);
emit contributoryChanged();
}

void ContributoriesWidget::add(QList<Contributory>& contributories)
void ContributoriesWidget::add(ContributoriesList& list)
{
for(Contributory& c : contributories) {
add(c);
for(Project* p : list.getProjects()) {
addProject(new QPair<Project*, Rate>(p, list.getRate(p)));
for(Contributory c :list.getContributories(p)) {
_modelsContributories.last()->append(c);
}
}
emit contributoryChanged();
}

void ContributoriesWidget::remove(void)
Expand All @@ -76,10 +74,14 @@ void ContributoriesWidget::remove(void)
emit contributoryChanged();
}

void ContributoriesWidget::addProject(void)
void ContributoriesWidget::addProject(QPair<Project*, Rate>* p)
{
qDebug() << "Yeah ! I add a new project :)";
_modelProjects->append();
if(p == 0) {
_modelProjects->append();
} else {
_modelProjects->append(*p);
}
QTableView* view = new QTableView();
_modelsContributories << new WdgModels::ContributoriesTableModel();
view->setModel(_modelsContributories.last());
Expand Down Expand Up @@ -134,15 +136,16 @@ void ContributoriesWidget::updateUi()

void ContributoriesWidget::updatePrice()
{
// TODO put me in Billing
if(_modelsContributories.count() > 0) {
WdgModels::ContributoriesTableModel* currentContributory = _modelsContributories[ui->stack->currentIndex()];
QPair<Models::Project*, Models::Rate> currentProject = _modelProjects->getProject(ui->stack->currentIndex());

ui->sbSubSum->setValue(currentContributory->getSumQuantity() * currentProject.second.getDailyRate());
ui->sbSubSum->setValue(currentContributory->getSumQuantity() * currentProject.second.getHourlyRate());
double value;
int i;
for(WdgModels::ContributoriesTableModel* contributory : _modelsContributories) {
value += contributory->getSumQuantity() * _modelProjects->getProject(i++).second.getDailyRate();
value += contributory->getSumQuantity() * _modelProjects->getProject(i++).second.getHourlyRate();
}
ui->sbAllSums->setValue(value);
}
Expand Down
5 changes: 2 additions & 3 deletions src/gui/widgets/contributorieswidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ class ContributoriesWidget : public QWidget
* @brief add Add the Contributory <i>c</i> in the model
* @param c the <b>Contributory</b>
*/
void add(QList<Contributory> &c);
void add(Contributory &c);
void add(ContributoriesList &list);
public slots:
/**
* @brief add Add a new empty contributory
Expand All @@ -49,7 +48,7 @@ public slots:
*/
void remove(void);

void addProject(void);
void addProject(QPair<Project *, Rate> *p=0);
void removeProject(void);
void changeProject(void);
void editing(void);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ void ProjectContributoriesTableModel::append()
endInsertRows();
}

void ProjectContributoriesTableModel::append(QPair<Models::Project*, Models::Rate> p)
{
beginInsertRows(QModelIndex(), _projects.count(), _projects.count());
_projects.append(p);
_selectedProjects << p.first->getId();
endInsertRows();
}

bool ProjectContributoriesTableModel::allProjectsChose()
{
for(QPair<Models::Project*, Models::Rate> key : _projects) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ class ProjectContributoriesTableModel : public QAbstractTableModel
*/
Qt::ItemFlags flags(const QModelIndex & index) const ;

void append(QPair<Models::Project *, Models::Rate> p);
void append();

bool allProjectsChose();
Expand Down
2 changes: 1 addition & 1 deletion src/models/billing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ bool Billing::operator !=(const Billing &b)
return !(*this == b);
}

ContributoriesList Billing::getContributories() const
ContributoriesList& Billing::getContributories()
{
return _contributories;
}
Expand Down
2 changes: 1 addition & 1 deletion src/models/billing.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class Billing : public IModel
* for each <b>Project</b> of the <b>Billing</b>
* @return QMap<Project, QList<Contributory>>
*/
ContributoriesList getContributories() const;
ContributoriesList &getContributories();

/**
* @brief addContributories Add a new contributory for project p
Expand Down

0 comments on commit 251171f

Please sign in to comment.