Your warranties manager
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

produititem.cpp 4.2 KiB

pirms 10 gadiem
pirms 10 gadiem
pirms 10 gadiem
pirms 10 gadiem
pirms 10 gadiem
pirms 10 gadiem
pirms 10 gadiem
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #include "produititem.h"
  2. #include "ui_produititem.h"
  3. #include <QMessageBox>
  4. QDataStream &operator <<(QDataStream &out, const ProduitInfo &prod)
  5. {
  6. out << prod.nomProduit << prod.dateAchat << prod.dateFinGarantie << prod.image << prod.indexMagasin << prod.enSAV << prod.factures << prod.garanties;
  7. return out;
  8. }
  9. QDataStream &operator >>(QDataStream &in, ProduitInfo &prod)
  10. {
  11. in >> prod.nomProduit >> prod.dateAchat >> prod.dateFinGarantie >> prod.image >> prod.indexMagasin >> prod.enSAV >> prod.factures >> prod.garanties;
  12. return in;
  13. }
  14. ProduitItem::ProduitItem(QWidget *parent, QString nomProduit, QDate dateAchat, QDate dateFinGarantie, QPixmap image, int magasin,
  15. bool enSAV, QHash<QString, QByteArray> factures, QHash<QString, QByteArray> garanties) :
  16. QWidget(parent),
  17. ui(new Ui::ProduitItem)
  18. {
  19. ui->setupUi(this);
  20. this->nomProduit = nomProduit;
  21. this->dateAchat = dateAchat;
  22. this->dateFinGarantie = dateFinGarantie;
  23. this->indexMagasin = magasin;
  24. this->enSAV = enSAV;
  25. this->factures = factures;
  26. this->garanties = garanties;
  27. ui->nomProduit->setText("<h1>"+nomProduit+"</h1>");
  28. updateDescription();
  29. this->image = image;
  30. this->image.scaled(QSize(128, 128), Qt::KeepAspectRatio);
  31. ui->image->setPixmap(this->image);
  32. ui->btnMoreInfo->setToolTip("Ouvre une fenêtre contenant toutes les informations\nsur votre "+nomProduit+".");
  33. }
  34. void ProduitItem::on_btnMoreInfo_clicked()
  35. {
  36. InfosProduitDialog *winInfoProd = new InfosProduitDialog(this, this->parentWidget(), nomProduit, dateAchat, dateFinGarantie, image, indexMagasin, enSAV, factures, garanties);
  37. winInfoProd->setModal(true);
  38. winInfoProd->show();
  39. }
  40. // Accesseurs
  41. QPixmap ProduitItem::getImage()
  42. {
  43. return this->image;
  44. }
  45. void ProduitItem::setNomProduit(QString nomProduit)
  46. {
  47. this->nomProduit = nomProduit;
  48. ui->nomProduit->setText("<h1>"+nomProduit+"</h1>");
  49. }
  50. void ProduitItem::setDateAchat(QDate dateAchat)
  51. {
  52. this->dateAchat = dateAchat;
  53. updateDescription();
  54. }
  55. void ProduitItem::setDateFinGarantie(QDate dateFinGarantie)
  56. {
  57. this->dateFinGarantie = dateFinGarantie;
  58. updateDescription();
  59. }
  60. void ProduitItem::setImage(QPixmap image)
  61. {
  62. this->image = image;
  63. ui->image->setPixmap(image);
  64. }
  65. void ProduitItem::setMagasin(int index)
  66. {
  67. this->indexMagasin = index;
  68. }
  69. void ProduitItem::setEnSAV(bool y)
  70. {
  71. this->enSAV = y;
  72. updateDescription();
  73. }
  74. void ProduitItem::setFactures(QHash<QString, QByteArray> factures)
  75. {
  76. this->factures = factures;
  77. }
  78. void ProduitItem::setGaranties(QHash<QString, QByteArray> garanties)
  79. {
  80. this->garanties = garanties;
  81. }
  82. // Permet de mettre à jour le petit texte en-dessous du nom du produit
  83. void ProduitItem::updateDescription()
  84. {
  85. QString jourAchat = QString::number(dateAchat.day());
  86. if(dateAchat.day() < 10)
  87. jourAchat = "0"+jourAchat;
  88. QString moisAchat = QString::number(dateAchat.month());
  89. if(dateAchat.month() < 10)
  90. moisAchat = "0"+moisAchat;
  91. descriptionListe = "Acheté le "+jourAchat+"/"+moisAchat+"/"+QString::number(dateAchat.year())+", ";
  92. QString jourFinGarantie = QString::number(dateFinGarantie.day());
  93. if(dateFinGarantie.day() < 10)
  94. jourFinGarantie = "0"+jourFinGarantie;
  95. QString moisFinGarantie = QString::number(dateFinGarantie.month());
  96. if(dateFinGarantie.month() < 10)
  97. moisFinGarantie = "0"+moisFinGarantie;
  98. if(QDate::currentDate() < dateFinGarantie)
  99. descriptionListe += "fin de la garantie le "+jourFinGarantie+"/"+moisFinGarantie+"/"+QString::number(dateFinGarantie.year());
  100. else
  101. descriptionListe += "garantie expirée";
  102. if(this->enSAV)
  103. descriptionListe += "\nParti en SAV";
  104. ui->infosProduit->setText(descriptionListe);
  105. }
  106. void ProduitItem::openDialog()
  107. {
  108. ui->btnMoreInfo->click();
  109. }
  110. // Pour la sérialisation
  111. ProduitInfo ProduitItem::getProduitInfo()
  112. {
  113. ProduitInfo i;
  114. i.nomProduit = this->nomProduit;
  115. i.dateAchat = this->dateAchat;
  116. i.dateFinGarantie = this->dateFinGarantie;
  117. i.image = this->image;
  118. i.indexMagasin = this->indexMagasin;
  119. i.enSAV = this->enSAV;
  120. i.factures = this->factures;
  121. i.garanties = this->garanties;
  122. return i;
  123. }
  124. ProduitItem::~ProduitItem()
  125. {
  126. delete ui;
  127. }