packinfo.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "packinfo.h"
  2. #include "globalinfo.h"
  3. #include <QDateTime>
  4. int PackInfo::lastMin = 0;
  5. int PackInfo::lastNum = 1;
  6. PackInfo::PackInfo(const ProjectInfo & info) : _info(info)
  7. {
  8. code_single = buildPackId();
  9. }
  10. BoxInfo::BoxInfo(QSharedPointer<PackInfo> pack,QString code):case_number(code),parent(pack)
  11. {}
  12. QString PackInfo::buildPackId()
  13. {
  14. QDateTime now = QDateTime::currentDateTime();
  15. int min = now.time().minute();
  16. if(min != lastMin) lastNum = 1;
  17. else lastNum ++;
  18. QString packId = GlobalInfo::this_()->packNum() + now.toString("yyMMddhhmm") + QString::asprintf("%03d",lastNum);
  19. if(lastNum > 999) return QString();
  20. return packId;
  21. }
  22. QString PackInfo::buildBoxId()
  23. {
  24. int nowNum = boxes().size() + 1;
  25. QDateTime now = QDateTime::currentDateTime();
  26. QString id = now.toString("yyMMdd") + GlobalInfo::this_()->packNum() + QString::asprintf("%03d",nowNum);
  27. return id;
  28. }
  29. int PackInfo::tube_number()
  30. {
  31. int ret = 0;
  32. for(int i = 0; i < _boxes.size();++i){
  33. ret += _boxes.at(i)->tube_number;
  34. }
  35. return ret;
  36. }
  37. int PackInfo::gross_weight()
  38. {
  39. int ret = 0;
  40. for(int i = 0; i < _boxes.size();++i){
  41. ret += _boxes.at(i)->gross_weight;
  42. }
  43. return ret;
  44. }
  45. int PackInfo::net_weight()
  46. {
  47. int ret = 0;
  48. for(int i = 0; i < _boxes.size();++i){
  49. ret += _boxes.at(i)->net_weight;
  50. }
  51. return ret;
  52. }
  53. QSharedPointer<BoxInfo> PackInfo::addBoxInfo()
  54. {
  55. QSharedPointer<BoxInfo> ret(new BoxInfo(sharedFromThis(),buildBoxId()));
  56. return ret;
  57. }
  58. void PackInfo::addBoxInfoList(QSharedPointer<BoxInfo> boxes)
  59. {
  60. _boxes.append(boxes);
  61. }