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.
 
 
 

88 lines
2.2 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 <QJsonObject>
  10. #include "infosproduitdialog.h"
  11. namespace Ui {
  12. class ProduitItem;
  13. }
  14. struct ProduitInfo {
  15. QString nomProduit;
  16. QDate dateAchat, dateFinGarantie;
  17. QPixmap image;
  18. qint32 indexMagasin;
  19. bool enSAV;
  20. QHash<QString, QByteArray> factures, garanties;
  21. };
  22. QDataStream &operator <<(QDataStream &out, const ProduitInfo &prod);
  23. QDataStream &operator >>(QDataStream &in, ProduitInfo &prod);
  24. class ProduitItem : public QWidget
  25. {
  26. Q_OBJECT
  27. public:
  28. explicit ProduitItem(QWidget *parent, QString nomProduit, QDate dateAchat, QDate dateFinGarantie, QPixmap image = QPixmap(":/images/no-picture.jpg"), int magasin = 0,
  29. bool enSAV = false, QHash<QString, QByteArray> factures = QHash<QString, QByteArray>(), QHash<QString, QByteArray> garanties = QHash<QString, QByteArray>());
  30. explicit ProduitItem();
  31. // Pour la sérialisation
  32. ProduitInfo getProduitInfo();
  33. // Conversion en JSON
  34. QJsonObject getJSON();
  35. // Getters
  36. QPixmap getImage();
  37. // Setters
  38. void setNomProduit(QString nomProduit);
  39. void setDateAchat(QDate dateAchat);
  40. void setDateFinGarantie(QDate dateFinGarantie);
  41. void setImage(QPixmap image);
  42. void setMagasin(int index); // le QString ne sert qu'à l'affichage, c'est l'index qui est utilisé par la boîte de dialogue
  43. void setEnSAV(bool y);
  44. void setFactures(QHash<QString, QByteArray> factures);
  45. void setGaranties(QHash<QString, QByteArray> garanties);
  46. int getMagasin();
  47. void updateDescription();
  48. void openDialog(bool deleteOnCancel = false);
  49. // Destructeur
  50. ~ProduitItem();
  51. public slots:
  52. void on_btnMoreInfo_clicked(bool deleteOnCancel = false);
  53. void winInfoProdCanceled();
  54. signals:
  55. void deleteAsked();
  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