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.
 
 
 

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