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.
 
 
 

87 lines
2.3 KiB

  1. #ifndef PRODUITITEM_H
  2. #define PRODUITITEM_H
  3. #include <QWidget>
  4. #include <QPixmap>
  5. #include <QDate>
  6. #include <QByteArray>
  7. #include <QHash>
  8. #include <QDataStream>
  9. #include "infosproduitdialog.h"
  10. namespace Ui {
  11. class ProduitItem;
  12. }
  13. struct ProduitInfo {
  14. QString nomProduit;
  15. QDate dateAchat, dateFinGarantie;
  16. QPixmap image;
  17. qint32 indexMagasin;
  18. bool enSAV;
  19. QHash<QString, QByteArray> factures, garanties;
  20. };
  21. QDataStream &operator <<(QDataStream &out, const ProduitInfo &prod);
  22. QDataStream &operator >>(QDataStream &in, ProduitInfo &prod);
  23. class ProduitItem : public QWidget
  24. {
  25. Q_OBJECT
  26. public:
  27. explicit ProduitItem(QString nomProduit, QDate dateAchat, QDate dateFinGarantie, QPixmap image = QPixmap(":/images/no-picture.jpg"), int magasin = 0,
  28. bool enSAV = false, QHash<QString, QByteArray> factures = QHash<QString, QByteArray>(), QHash<QString, QByteArray> garanties = QHash<QString, QByteArray>());
  29. explicit ProduitItem(ProduitInfo prod);
  30. explicit ProduitItem();
  31. /*QVector<ProduitItem*> items;
  32. ProduitInfo info();
  33. QVector<ProduitItem> extractInfo(QVector<ProduitItem*> const& v);
  34. static void save(QDataStream & out, QVector<ProduitInfo> const& v);
  35. ProduitItem* create(ProduitInfo const& info);
  36. QVector<ProduitItem*> load(QDataStream & in);*/
  37. // Pour la sérialisation
  38. ProduitInfo getProduitInfo();
  39. // Getters
  40. QPixmap getImage();
  41. // Setters
  42. void setNomProduit(QString nomProduit);
  43. void setDateAchat(QDate dateAchat);
  44. void setDateFinGarantie(QDate dateFinGarantie);
  45. void setImage(QPixmap image);
  46. void setMagasin(int index); // le QString ne sert qu'à l'affichage, c'est l'index qui est utilisé par la boîte de dialogue
  47. void setEnSAV(bool y);
  48. void setFactures(QHash<QString, QByteArray> factures);
  49. void setGaranties(QHash<QString, QByteArray> garanties);
  50. void updateDescription();
  51. void openDialog();
  52. // Destructeur
  53. ~ProduitItem();
  54. public slots:
  55. void on_btnMoreInfo_clicked();
  56. private:
  57. Ui::ProduitItem *ui;
  58. QString nomProduit;
  59. QDate dateAchat, dateFinGarantie;
  60. QString descriptionListe;
  61. QPixmap image;
  62. int indexMagasin;
  63. bool enSAV;
  64. QHash<QString, QByteArray> factures;
  65. QHash<QString, QByteArray> garanties;
  66. };
  67. #endif // PRODUITITEM_H