autopackform.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #include "autopackform.h"
  2. #include "ui_autopackform.h"
  3. #include "globalinfo.h"
  4. AutoPackForm::AutoPackForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::AutoPackForm)
  7. {
  8. ui->setupUi(this);
  9. }
  10. AutoPackForm::~AutoPackForm()
  11. {
  12. delete ui;
  13. }
  14. void AutoPackForm::on_pushBack_clicked()
  15. {
  16. aputils.doSend(packinfo);
  17. emit back();
  18. }
  19. void AutoPackForm::init()
  20. {
  21. // TODO: 页面进入初始化
  22. ui->pushStart->setChecked(false);
  23. ui->widget->setEnabled(true);
  24. packConfig.refConfig();
  25. connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig);
  26. connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
  27. ui->comboBox->clear();
  28. for(int i = 1;i<20;i++){
  29. ui->comboBox->addItem(QString::number(i));
  30. }
  31. ui->comboBox->setEditText("20");
  32. on_addPackList_clicked();
  33. }
  34. void AutoPackForm::on_addPackList_clicked()
  35. {
  36. //把数据添加到数据库里
  37. aputils.insertProductSQL(packinfo);
  38. //TODO: 缓存箱单数据,页面显示情空
  39. aputils.doSend(packinfo);
  40. //TODO: 初始化码单信息
  41. packinfo.reset(new PackInfo(_info));
  42. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  43. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  44. packinfo->packing_type = _info.category;
  45. }
  46. void AutoPackForm::upconfig(const DaBaoConfig &config)
  47. {
  48. // TODO:打包配置更新
  49. //机台
  50. ui->jitai->clear();
  51. ui->jitai->addItems(config.jitai);
  52. //打包工班次
  53. ui->comboBox_2->clear();
  54. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  55. //皮重
  56. ui->pizhong->clear();
  57. for(int i = 0;i<config.xiangzhong.size();i++){
  58. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  59. }
  60. //管色
  61. ui->guanse->clear();
  62. ui->guanse->addItems(config.guanse);
  63. //捻向
  64. ui->nianxiang->clear();
  65. ui->nianxiang->addItems(config.nianxiang);
  66. //纸箱
  67. ui->zhixiang->clear();
  68. ui->zhixiang->addItems(config.zhixiang);
  69. //筒重
  70. ui->tongzhong->clear();
  71. for(int i = 0;i<config.tongZhong.size();i++){
  72. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  73. }
  74. }
  75. void AutoPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  76. {
  77. // TODO: 等级信息更新
  78. ui->dengji->clear();
  79. for(int i = 0;i<dengJis.size();i++){
  80. if(!dengJis.at(i).isEnable){
  81. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  82. }
  83. }
  84. }
  85. void AutoPackForm::on_pushStart_clicked()
  86. {
  87. if(ui->pushStart->isChecked()){
  88. ui->pushStart->setChecked(true);
  89. ui->widget->setEnabled(false);
  90. ui->handleRead->setEnabled(true);
  91. } else {
  92. init();
  93. }
  94. }
  95. void AutoPackForm::on_addBoxList_clicked()
  96. {
  97. if(packinfo.isNull()) return;
  98. auto box = packinfo->addBoxInfo();
  99. //TODO: 添加箱单 数据
  100. box->box_weight = ui->pizhong->currentText().toInt();
  101. box->tube_number = ui->tongshu->text().toInt();
  102. box->bucket_weight = ui->pizhong->currentText().toInt()*ui->tongshu->text().toInt();
  103. box->gross_weight = ui->grossWeight_2->text().toInt();
  104. box->box_weight = ui->netWeight_2->text().toInt();
  105. box->sort = "1";
  106. box->remark = ui->beizhu->toPlainText();
  107. packinfo->level = ui->dengji->currentText();
  108. packinfo->level_id = ui->dengji->currentData().toInt();
  109. //TODO: 缓存数据,显示数据
  110. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  111. ui->tableWidget->setItem(ui->tableWidget->rowCount(),0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount()+1)));
  112. ui->tableWidget->setItem(ui->tableWidget->rowCount(),1,new QTableWidgetItem(box->caseNumber()));
  113. ui->tableWidget->setItem(ui->tableWidget->rowCount(),2,new QTableWidgetItem(box->tube_number));
  114. ui->tableWidget->setItem(ui->tableWidget->rowCount(),3,new QTableWidgetItem(box->gross_weight));
  115. ui->tableWidget->setItem(ui->tableWidget->rowCount(),4,new QTableWidgetItem(box->bucket_weight));
  116. ui->tableWidget->setItem(ui->tableWidget->rowCount(),5,new QTableWidgetItem(box->net_weight));
  117. emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
  118. // qDebug()<<packinfo->boxes().size();
  119. // doSend(packinfo);
  120. //把box数据添加到packinfo的boxes数据表里;
  121. packinfo->addBoxInfoList(box);
  122. //添加数据库
  123. aputils.insertDetailsSQL(box,packinfo->codeSingle());
  124. //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型
  125. if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){
  126. packinfo->quantity = packinfo->boxes().size();
  127. packinfo->level_id = ui->dengji->currentData().toInt();
  128. packinfo->machine_no = ui->jitai->currentText();
  129. packinfo->carton_type = ui->zhixiang->currentText();
  130. on_addPackList_clicked();
  131. }
  132. }