Your warranties manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
3.3 KiB

  1. #include "gestionmagasinsdialog.h"
  2. #include "ui_gestionmagasinsdialog.h"
  3. #include <QDir>
  4. #include <QFile>
  5. #include <QtXml>
  6. #include <QInputDialog>
  7. #include <QMessageBox>
  8. GestionMagasinsDialog::GestionMagasinsDialog(QWidget *parent) :
  9. QDialog(parent),
  10. ui(new Ui::GestionMagasinsDialog)
  11. {
  12. ui->setupUi(this);
  13. settings = new QSettings("Deuchnord", "Hermes");
  14. placeSave = settings->value("placeSave").toString();
  15. QFile fichierMagasins(placeSave+"/deuchnord-hermes/manufacturers.xml");
  16. fichierMagasins.open(QFile::ReadOnly);
  17. if(fichierMagasins.isOpen())
  18. {
  19. QString contenuFichier = fichierMagasins.readAll();
  20. fichierMagasins.close();
  21. QDomDocument dom;
  22. dom.setContent(contenuFichier);
  23. QDomElement root = dom.firstChildElement();
  24. QDomElement manufacturer;
  25. QDomNode node = root.firstChild();
  26. while(!node.isNull())
  27. {
  28. manufacturer = node.toElement();
  29. if(manufacturer.tagName() == "manufacturer")
  30. ui->listMagasins->addItem(manufacturer.firstChild().toText().data());
  31. node = node.nextSibling();
  32. }
  33. fichierMagasins.close();
  34. }
  35. ui->listMagasins->setCurrentItem(ui->listMagasins->item(0));
  36. }
  37. void GestionMagasinsDialog::on_btnAjoutMagasin_clicked()
  38. {
  39. QString nom = QInputDialog::getText(this, tr("Ajouter un magasin"), tr("Veuillez entrer le nom du nouveau magasin :"));
  40. if(nom != "")
  41. {
  42. int nb = ui->listMagasins->count();
  43. bool alreadyHere = false;
  44. for(int i = 0; i < nb; i++)
  45. {
  46. QString magasin = ui->listMagasins->item(i)->text();
  47. if(magasin.toLower() == nom.toLower())
  48. alreadyHere = true;
  49. }
  50. if(alreadyHere)
  51. QMessageBox::warning(this, tr("Ajout impossible"), tr("Le magasin est déjà présent dans la liste !"));
  52. else
  53. ui->listMagasins->addItem(nom);
  54. }
  55. }
  56. void GestionMagasinsDialog::on_btnSupprMagasin_clicked()
  57. {
  58. if(QMessageBox::question(this, tr("Suppression"), tr("Voulez-vous vraiment supprimer ce magasin ?<br />Tous les produits associés perdront cette information, <em>même si vous cliquez sur Annuler plus tard</em>."), QMessageBox::Yes|QMessageBox::No) == QMessageBox::Yes)
  59. {
  60. int row = ui->listMagasins->currentRow();
  61. delete ui->listMagasins->currentItem();
  62. emit magasinDeleted(row);
  63. }
  64. }
  65. void GestionMagasinsDialog::on_listMagasins_currentRowChanged()
  66. {
  67. ui->btnSupprMagasin->setEnabled(true);
  68. }
  69. void GestionMagasinsDialog::on_buttonBox_accepted()
  70. {
  71. QDomDocument dom("manufacturers");
  72. QDomElement rootElement = dom.createElement("manufacturers");
  73. dom.appendChild(rootElement);
  74. for(int i = 0; i < ui->listMagasins->count(); i++)
  75. {
  76. QDomElement manufacturer = dom.createElement("manufacturer");
  77. rootElement.appendChild(manufacturer);
  78. QListWidgetItem *item = ui->listMagasins->item(i);
  79. QDomText nomMagasin = dom.createTextNode(item->text());
  80. manufacturer.appendChild(nomMagasin);
  81. }
  82. QFile fileManu(placeSave+"/deuchnord-hermes/manufacturers.xml");
  83. if(fileManu.open(QFile::WriteOnly))
  84. {
  85. fileManu.write(dom.toString().toUtf8());
  86. fileManu.close();
  87. }
  88. }
  89. GestionMagasinsDialog::~GestionMagasinsDialog()
  90. {
  91. delete ui;
  92. }