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.
 
 
 

78 line
2.0 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(QWidget *parent, 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();
  30. // Pour la sérialisation
  31. ProduitInfo getProduitInfo();
  32. // Getters
  33. QPixmap getImage();
  34. // Setters
  35. void setNomProduit(QString nomProduit);
  36. void setDateAchat(QDate dateAchat);
  37. void setDateFinGarantie(QDate dateFinGarantie);
  38. void setImage(QPixmap image);
  39. void setMagasin(int index); // le QString ne sert qu'à l'affichage, c'est l'index qui est utilisé par la boîte de dialogue
  40. void setEnSAV(bool y);
  41. void setFactures(QHash<QString, QByteArray> factures);
  42. void setGaranties(QHash<QString, QByteArray> garanties);
  43. void updateDescription();
  44. void openDialog();
  45. // Destructeur
  46. ~ProduitItem();
  47. public slots:
  48. void on_btnMoreInfo_clicked();
  49. private:
  50. Ui::ProduitItem *ui;
  51. QString nomProduit;
  52. QDate dateAchat, dateFinGarantie;
  53. QString descriptionListe;
  54. QPixmap image;
  55. int indexMagasin;
  56. bool enSAV;
  57. QHash<QString, QByteArray> factures;
  58. QHash<QString, QByteArray> garanties;
  59. };
  60. #endif // PRODUITITEM_H