packinfo.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. goods_id = info.goods_id;
  10. packing_time = QDate::currentDate().toString("yyMMdd");
  11. packing_type = info.category;
  12. operator_id = GlobalInfo::this_()->user().accountId;
  13. }
  14. BoxInfo::BoxInfo(QSharedPointer<PackInfo> pack,QString code):case_number(code),parent(pack)
  15. {}
  16. QString PackInfo::buildPackId()
  17. {
  18. QDateTime now = QDateTime::currentDateTime();
  19. int min = now.time().minute();
  20. if(min != lastMin) lastNum = 1;
  21. else lastNum ++;
  22. QString packId = GlobalInfo::this_()->packNum() + now.toString("yyMMddhhmm") + QString::asprintf("%03d",lastNum);
  23. if(lastNum > 999) return QString();
  24. return packId;
  25. }
  26. QString PackInfo::buildBoxId()
  27. {
  28. int nowNum = boxes().size() + 1;
  29. QDateTime now = QDateTime::currentDateTime();
  30. QString id = now.toString("yyMMdd") + GlobalInfo::this_()->packNum() + QString::asprintf("%03d",nowNum);
  31. return id;
  32. }
  33. int PackInfo::tube_number()
  34. {
  35. int ret = 0;
  36. for(int i = 0; i < _boxes.size();++i){
  37. ret += _boxes.at(i)->tube_number;
  38. }
  39. return ret;
  40. }
  41. int PackInfo::gross_weight()
  42. {
  43. int ret = 0;
  44. for(int i = 0; i < _boxes.size();++i){
  45. ret += _boxes.at(i)->gross_weight;
  46. }
  47. return ret;
  48. }
  49. int PackInfo::net_weight()
  50. {
  51. int ret = 0;
  52. for(int i = 0; i < _boxes.size();++i){
  53. ret += _boxes.at(i)->net_weight;
  54. }
  55. return ret;
  56. }
  57. QSharedPointer<BoxInfo> PackInfo::addBoxInfo()
  58. {
  59. QSharedPointer<BoxInfo> ret(new BoxInfo(sharedFromThis(),buildBoxId()));
  60. return ret;
  61. }
  62. void PackInfo::addBoxInfoList(QSharedPointer<BoxInfo> boxes)
  63. {
  64. _boxes.append(boxes);
  65. }