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.
 
 
 

84 lines
2.1 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. int getMagasin();
  44. void updateDescription();
  45. void openDialog(bool deleteOnCancel = false);
  46. // Destructeur
  47. ~ProduitItem();
  48. public slots:
  49. void on_btnMoreInfo_clicked(bool deleteOnCancel = false);
  50. void winInfoProdCanceled();
  51. signals:
  52. void deleteAsked();
  53. private:
  54. Ui::ProduitItem *ui;
  55. QString nomProduit;
  56. QDate dateAchat, dateFinGarantie;
  57. QString descriptionListe;
  58. QPixmap image;
  59. int indexMagasin;
  60. bool enSAV;
  61. QHash<QString, QByteArray> factures;
  62. QHash<QString, QByteArray> garanties;
  63. };
  64. #endif // PRODUITITEM_H