uncertainweightpackform.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. #include "uncertainweightpackform.h"
  2. #include "ui_uncertainweightpackform.h"
  3. #include <pqQtlib/utils/pqfileutils.h>
  4. using namespace PQ;
  5. UncertainWeightPackForm::UncertainWeightPackForm(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::UncertainWeightPackForm),packServer(nullptr),Manger(nullptr)
  8. {
  9. ui->setupUi(this);
  10. autoRead = true;
  11. QTimer *timer = new QTimer(this);
  12. connect(timer,&QTimer::timeout,this,&UncertainWeightPackForm::calcData);
  13. timer->start(500);
  14. // ui->widget_6->setEnabled(false);
  15. // //筒数限制,true限制
  16. istubeNumTure = false;
  17. // ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  18. // ui->pushStart->hide();
  19. connect(glo,&GlobalInfo::dbConfigUpdated,this,&UncertainWeightPackForm::upconfig);
  20. connect(glo,&GlobalInfo::dengJiUped,this,&UncertainWeightPackForm::upDengjiInfo);
  21. connect(glo,&GlobalInfo::doInited,this,&UncertainWeightPackForm::changeSpecs);
  22. connect(glo,&GlobalInfo::wareUped,this,&UncertainWeightPackForm::upWare);
  23. connect(glo,&GlobalInfo::boxModelUped,this,&UncertainWeightPackForm::upBoxModelList);
  24. connect(glo,&GlobalInfo::packModelUpde,this,&UncertainWeightPackForm::upPackModelList);
  25. auto dt = CacheFile::readFile("budingInfo.cache");
  26. auto list = QString::fromUtf8(dt).split("[,]");
  27. if(list.size() == 2){
  28. ui->taitou->setText(list.at(0));
  29. ui->taiPhone->setText(list.at(1));
  30. }
  31. ui->autoSync->setChecked(true);
  32. ui->buding->setChecked(true);
  33. // ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  34. }
  35. UncertainWeightPackForm::~UncertainWeightPackForm()
  36. {
  37. delete ui;
  38. }
  39. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  40. void UncertainWeightPackForm::calcData()
  41. {
  42. double pz = ui->pizhong->currentText().toDouble();
  43. double tz = ui->tongzhong->currentText().toDouble();
  44. double ts = ui->tongshu->text().toDouble();
  45. gross_weight = ui->grossWeight->text().toDouble();
  46. if(ui->autoRead->isChecked()){
  47. ui->grossWeight->setText(QString::number(GlobalInfo::this_()->currentWidght));
  48. }
  49. // qDebug()<<autoRead;
  50. // netNum = ui->grossWeight->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
  51. if(ui->showMaoZhong->isChecked()){
  52. gross_weight = floor((ui->grossWeight->text().toDouble()+chengZhongJingDuModel_Num)*100)/100;
  53. netNum = floor(((ui->grossWeight->text().toDouble() - pz - tz * ts)+chengZhongJingDuModel_Num)*100)/100;
  54. f_gross_weight = float(floor((gross_weight+f_chengZhongJingDuModel_Num)*10))/10;
  55. f_netNum = float(floor((netNum+f_chengZhongJingDuModel_Num)*10))/10;
  56. } else {
  57. netNum = floor((ui->grossWeight->text().toDouble()+chengZhongJingDuModel_Num)*100)/100;
  58. gross_weight = floor(((ui->grossWeight->text().toDouble() + pz + tz*ts)+chengZhongJingDuModel_Num)*100)/100;
  59. f_gross_weight = float(floor((gross_weight+f_chengZhongJingDuModel_Num)*10))/10;
  60. f_netNum = float(floor((netNum+f_chengZhongJingDuModel_Num)*10))/10;
  61. }
  62. if(istubeNumTure){
  63. if(ui->tongshu->text().toInt()>tubeNumMax || ui->tongshu->text().toInt()<tubeNumMin){
  64. ui->tongshu->setValue(tubeNumMin);
  65. }
  66. }
  67. // ui->netWeight_2->setText(QString::number(netNum));
  68. // ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
  69. }
  70. void UncertainWeightPackForm::save()
  71. {
  72. QStringList list;
  73. list << ui->taitou->text() << ui->taiPhone->text();
  74. PQ::CacheFile::writeFile("budingInfo.cache",list.join("[,]").toUtf8());
  75. if(!packinfo.isNull()){
  76. Manger->savePackInfo(packinfo);
  77. }
  78. }
  79. void UncertainWeightPackForm::on_addPackList_clicked()
  80. {
  81. if(packinfo.isNull()) return;
  82. if(!packinfo.isNull()&&packinfo->boxes().size()>0){
  83. packinfo->quantity = packinfo->boxes().size();
  84. packinfo->level_id = ui->dengji->currentData().toInt();
  85. packinfo->machine_no = ui->jitai->currentText();
  86. packinfo->carton_type = ui->zhixiang->currentText();
  87. packinfo->customer = ui->taitou->text();
  88. packinfo->telephone = ui->taiPhone->text();
  89. }
  90. // qDebug()<<packinfo->boxes().at(0)->tube_number;
  91. packinfo->autoRuku = ui->ruku->isChecked();
  92. if(ui->autoSync->isChecked() && !GlobalInfo::this_()->isNoLine())
  93. packServer->send(packinfo);
  94. Manger->savePackInfo(packinfo);
  95. // GlobalInfo::this_()->packInfoManger()->setPackInfoSync(packinfo->codeSingle(),packinfo->time(),true);
  96. if(ui->madanPrint->isChecked()){
  97. if(ui->madan->currentIndex() == 0){
  98. GlobalInfo::this_()->printerPack(packinfo);
  99. }else{
  100. GlobalInfo::this_()->printerPackModel(packinfo,ui->madan->currentIndex()-1);
  101. }
  102. }
  103. ui->tableWidget->clearContents();
  104. ui->tableWidget->setRowCount(0);
  105. // ui->widget_2->setEnabled(true);
  106. packinfo.clear();
  107. }
  108. void UncertainWeightPackForm::on_addBoxList_clicked()
  109. {
  110. if(ui->grossWeight->text().toDouble()<=0){
  111. QMessageBox::information(this,tr("注意"),tr("重量异常"));
  112. return;
  113. }
  114. if(ui->tongshu->text().toInt()<=0){
  115. QMessageBox::information(this,tr("注意"),tr("筒数异常"));
  116. return;
  117. }
  118. if(netNum<=0){
  119. // netNum = 0.00;
  120. QMessageBox::information(this,tr("注意"),tr("重量异常"));
  121. return;
  122. }
  123. checkPackInfo(); //检查packinfo isNull
  124. //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
  125. if(packinfo->boxes().size() >= ui->mashu->currentText().toInt()){
  126. on_addPackList_clicked();
  127. checkPackInfo();
  128. }
  129. auto index = packinfo->boxInfoSize();
  130. auto box = packinfo->addBoxInfo();
  131. calcData();
  132. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  133. box->tube_number = ui->tongshu->text().toInt();
  134. box->bucket_weight = int(floor((ui->tongzhong->currentText().toDouble()*ui->tongshu->text().toDouble()+0.005)*100)*10);
  135. if(chengZhongJingDu == 2){
  136. box->gross_weight = int(gross_weight*1000);
  137. box->net_weight = int(netNum*1000);
  138. }else if(chengZhongJingDu == 1){
  139. box->gross_weight = int(f_gross_weight*1000);
  140. box->net_weight = int(f_netNum*1000);
  141. }
  142. box->Level = ui->dengji->currentText();
  143. box->twist_type = ui->nianxiang->currentText();
  144. box->bucket_color = ui->guanse->currentText();
  145. box->sort = "1";
  146. // box->remark = ui->beizhu->toPlainText();
  147. packinfo->level = ui->dengji->currentText();
  148. packinfo->level_id = ui->dengji->currentData().toInt();
  149. packinfo->warehouse_id = ui->wareBox->currentData().toInt();
  150. packinfo->autoRuku = ui->ruku->isChecked();
  151. addTableWidget(box,index);
  152. // 把box数据添加到packinfo的boxes数据表里;
  153. packinfo->addBoxInfoList(box);
  154. if(ui->xiangdanPrint->isChecked()){
  155. if(ui->xiangdan->currentIndex() == 0){
  156. GlobalInfo::this_()->printerBox(box);
  157. }else{
  158. GlobalInfo::this_()->printerBoxModel(box,ui->xiangdan->currentIndex()-1);
  159. }
  160. }
  161. upSum();
  162. //添加数据库
  163. // aputils.insertDetailsSQL(box,packinfo->codeSingle());
  164. }
  165. void UncertainWeightPackForm::upSum()
  166. {
  167. if(packinfo.isNull()){
  168. ui->labelTongZHong->setText("0");
  169. ui->labelWight->setText("0");
  170. ui->labelJing->setText("0");
  171. } else {
  172. ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
  173. ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
  174. ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
  175. }
  176. }
  177. //自动读数按钮
  178. //void UncertainWeightPackForm::on_handleRead_2_clicked()
  179. //{
  180. // if(autoRead==true){
  181. // autoRead = false;
  182. // ui->handleRead_2->setText("自动读数");
  183. // ui->label->setText("已开启手动");
  184. // return;
  185. // }
  186. // autoRead = true;
  187. // ui->handleRead_2->setText("手动读数");
  188. // ui->label->setText("已开启自动");
  189. //}
  190. //筒数是否固定
  191. void UncertainWeightPackForm::on_tongshuguding_currentIndexChanged(const QString &arg1)
  192. {
  193. if(arg1=="固定"){
  194. ui->widget_6->setEnabled(false);
  195. return;
  196. }
  197. ui->widget_6->setEnabled(true);
  198. }
  199. //筒数是否限制
  200. void UncertainWeightPackForm::on_tongshuxianzhi_stateChanged(int arg1)
  201. {
  202. qDebug()<<arg1;
  203. if(arg1 == 2){
  204. istubeNumTure = true;
  205. return;
  206. }
  207. istubeNumTure = false;
  208. }
  209. //检查packinfo isNull
  210. void UncertainWeightPackForm::checkPackInfo()
  211. {
  212. if(packinfo.isNull()){
  213. packinfo.reset(new PackInfo(_info));
  214. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  215. packinfo->packing_time = QDate::currentDate().toString("yyyy-MM-dd");
  216. packinfo->packing_type = _info->category;
  217. packinfo->packType = 0;
  218. packinfo->batch_no = _info->batch_no;
  219. packinfo->quantity = packinfo->boxes().size();
  220. packinfo->level_id = ui->dengji->currentData().toInt();
  221. packinfo->machine_no = ui->jitai->currentText();
  222. packinfo->carton_type = ui->zhixiang->currentText();
  223. packinfo->customer = ui->taitou->text();
  224. packinfo->telephone = ui->taiPhone->text();
  225. restTableWidget();
  226. }
  227. }
  228. void UncertainWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box, int row)
  229. {
  230. ui->tableWidget->insertRow(row);
  231. ui->tableWidget->setItem(row,0,new QTableWidgetItem(box->caseNumber()));
  232. ui->tableWidget->setItem(row,1,new QTableWidgetItem(QString::number(box->tube_number)));
  233. ui->tableWidget->setItem(row,2,new QTableWidgetItem(QString::number(box->gross_weight / 1000.00)));
  234. ui->tableWidget->setItem(row,3,new QTableWidgetItem(ui->tongzhong->currentText()));
  235. ui->tableWidget->setItem(row,4,new QTableWidgetItem(box->bucket_color));
  236. ui->tableWidget->setItem(row,5,new QTableWidgetItem(QString::number(box->net_weight / 1000.00)));
  237. ui->tableWidget->item(row,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  238. ui->tableWidget->item(row,1)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  239. ui->tableWidget->item(row,2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  240. ui->tableWidget->item(row,3)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  241. ui->tableWidget->item(row,4)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  242. ui->tableWidget->item(row,5)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  243. QWidget *tmp_widget = new QWidget();
  244. QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
  245. auto btn_1 = new QPushButton("删除",tmp_widget);
  246. btn_1->setMaximumWidth(40);
  247. auto btn_2 = new QPushButton("修改",tmp_widget);
  248. btn_2->setMaximumWidth(40);
  249. auto btn_3 = new QPushButton("补打",tmp_widget);
  250. btn_3->setMaximumWidth(40);
  251. tmp_layout->addWidget(btn_1);
  252. tmp_layout->addWidget(btn_2);
  253. tmp_layout->addWidget(btn_3);
  254. tmp_layout->setMargin(0);
  255. int i = row;
  256. connect(btn_1,&QPushButton::clicked,[i,this](){this->del_clicked(i);});
  257. connect(btn_2,&QPushButton::clicked,[i,this](){this->edit_clicked(i);});
  258. connect(btn_3,&QPushButton::clicked,[i,this](){this->Makeup_clicked(i);});
  259. ui->tableWidget->setCellWidget(row,6,tmp_widget);
  260. ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //x先自适应宽度
  261. ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
  262. ui->tableWidget->horizontalHeader()->setSectionResizeMode(6, QHeaderView::ResizeToContents);
  263. }
  264. void UncertainWeightPackForm::init()
  265. {
  266. if(packServer == nullptr){
  267. Manger = GlobalInfo::this_()->packInfoManger();
  268. packServer = new PackInfoSeed2Server(Manger,this,true);
  269. }
  270. ui->pizhong->setCurrentText(QString(_info->box_weight));
  271. ui->guanse->setCurrentText(_info->bucket_color);
  272. ui->zhixiang->setCurrentText(_info->carton_type);
  273. ui->tongzhong->setCurrentText(_info->bucket_weight);
  274. ui->nianxiang->setCurrentText(_info->twist_type);
  275. if(!_info->customer.isEmpty()){
  276. ui->taitou->setText(_info->customer);
  277. }
  278. if(!_info->tel.isEmpty()){
  279. ui->taiPhone->setText(_info->tel);
  280. }
  281. restTableWidget();
  282. }
  283. void UncertainWeightPackForm::upconfig()
  284. {
  285. // TODO:打包配置更新
  286. DaBaoConfig config = glo->dbConfig();
  287. //称重精度
  288. chengZhongJingDu = config.chengZhongJIngDu;
  289. //称重精度方式//4:四舍五入 5:二舍三入 6:一舍二入
  290. chengZhongJingDuModel = config.chengZhongJingDuMode;
  291. switch (chengZhongJingDuModel) {
  292. case 4:
  293. chengZhongJingDuModel_Num = 0.005;
  294. f_chengZhongJingDuModel_Num = 0.05;
  295. break;
  296. case 5:
  297. chengZhongJingDuModel_Num = 0.007;
  298. f_chengZhongJingDuModel_Num = 0.07;
  299. break;
  300. case 6:
  301. chengZhongJingDuModel_Num = 0.008;
  302. f_chengZhongJingDuModel_Num = 0.08;
  303. break;
  304. }
  305. // qDebug()<<"称重精度数据"<<chengZhongJingDuModel_Num;
  306. // 码数
  307. ui->mashu->clear();
  308. for(int i = 0; i < config.mashu.size(); ++i){
  309. ui->mashu->addItem(QString::number(config.mashu.at(i)));
  310. }
  311. //机台
  312. ui->jitai->clear();
  313. ui->jitai->addItems(config.jitai);
  314. //打包工班次
  315. ui->dabaobanci->clear();
  316. ui->dabaobanci->addItems(config.daBaoGongBanCi);
  317. //皮重
  318. ui->pizhong->clear();
  319. for(int i = 0;i<config.xiangzhong.size();i++){
  320. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  321. }
  322. //管色
  323. ui->guanse->clear();
  324. ui->guanse->addItems(config.guanse);
  325. //捻向
  326. ui->nianxiang->clear();
  327. ui->nianxiang->addItems(config.nianxiang);
  328. //纸箱
  329. ui->zhixiang->clear();
  330. ui->zhixiang->addItems(config.zhixiang);
  331. //筒重
  332. ui->tongzhong->clear();
  333. for(int i = 0;i<config.tongZhong.size();i++){
  334. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  335. }
  336. tubeNumMin = config.buDingZhongTongShuFanWei.first;
  337. tubeNumMax = config.buDingZhongTongShuFanWei.second;
  338. }
  339. void UncertainWeightPackForm::upDengjiInfo()
  340. {
  341. // TODO: 等级信息更新
  342. QList<DengJiConfigItem> dengJis = glo->dengJiList();
  343. ui->dengji->clear();
  344. for(int i = 0;i<dengJis.size();i++){
  345. if(!dengJis.at(i).isEnable){
  346. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  347. }
  348. }
  349. }
  350. void UncertainWeightPackForm::upWare()
  351. {
  352. QList<WarehouseConfig> ware = glo->wareList();
  353. for(int i = 0;i<ware.size();i++){
  354. ui->wareBox->addItem(ware.at(i).name,ware.at(i).warehouse_id);
  355. }
  356. }
  357. void UncertainWeightPackForm::upBoxModelList()
  358. {
  359. ui->xiangdan->clear();
  360. ui->xiangdan->addItem("默认箱单");
  361. QList<QSharedPointer<BoxModel>> boxList = glo->BoxModelList();
  362. for(int i = 0;i<boxList.size();i++){
  363. ui->xiangdan->addItem(boxList.at(i)->Model_Name);
  364. }
  365. }
  366. void UncertainWeightPackForm::upPackModelList()
  367. {
  368. ui->madan->clear();
  369. ui->madan->addItem("默认码单");
  370. QList<QSharedPointer<PackModel>> packList = glo->PackModelList();
  371. for(int i = 0;i<packList.size();i++){
  372. ui->madan->addItem(packList.at(i)->Model_Name);
  373. }
  374. }
  375. //获取品目信息
  376. void UncertainWeightPackForm::on_searchButton_clicked()
  377. {
  378. auto str = ui->lineEdit->text();
  379. if(str.isEmpty()){
  380. updateTableWidget(prolist);
  381. } else {
  382. auto list = GlobalInfo::this_()->searchProject(str);
  383. updateTableWidget(list);
  384. }
  385. }
  386. void UncertainWeightPackForm::changeSpecs()
  387. {
  388. prolist = GlobalInfo::this_()->project().values();
  389. updateTableWidget(prolist);
  390. }
  391. void UncertainWeightPackForm::updateTableWidget(QList<QSharedPointer<ProjectInfo>> & list)
  392. {
  393. ui->tableWidget_2->clearContents();
  394. ui->tableWidget_2->setRowCount(0);
  395. ui->tableWidget_2->setColumnWidth(0,40);
  396. ui->tableWidget_2->setColumnWidth(1,80);
  397. ui->tableWidget_2->setColumnWidth(2,80);
  398. // ui->tableWidget_2->setColumnWidth(3,70);
  399. ui->tableWidget_2->setColumnWidth(4,40);
  400. ui->tableWidget_2->horizontalHeader()->setStretchLastSection(true);
  401. int currt = -1;
  402. for(int i = 0; i < list.size(); ++i){
  403. auto & v = list.at(i);
  404. ui->tableWidget_2->insertRow(i);
  405. auto xuanze_btn = new QRadioButton();
  406. xuanze_btn->setMaximumWidth(20);
  407. QString batchno = prolist.at(i)->batch_no;
  408. connect(xuanze_btn,&QPushButton::clicked,[batchno,this](){this->xuanZe_clicked(batchno);});
  409. ui->tableWidget_2->setCellWidget(i,0,xuanze_btn);
  410. ui->tableWidget_2->setItem(i,1,new QTableWidgetItem(v->specs));
  411. ui->tableWidget_2->setItem(i,2,new QTableWidgetItem(v->category));
  412. ui->tableWidget_2->setItem(i,3,new QTableWidgetItem(v->batch_no));
  413. ui->tableWidget_2->setItem(i,4,new QTableWidgetItem(v->color));
  414. if(!_info.isNull() && _info->batch_no == v->batch_no){
  415. xuanze_btn->setChecked(true);
  416. currt = i;
  417. }
  418. }
  419. if(currt >= 0)
  420. ui->tableWidget_2->setCurrentCell(currt,0);
  421. }
  422. void UncertainWeightPackForm::setProInfo(const QSharedPointer<ProjectInfo> & info)
  423. {
  424. _info = info;
  425. if(!packinfo.isNull()){
  426. packinfo->upInfo(_info);
  427. packinfo->packing_type = _info->category;
  428. }
  429. init();
  430. }
  431. void UncertainWeightPackForm::xuanZe_clicked(QString batchno)
  432. {
  433. save();
  434. packinfo.clear();
  435. ui->tableWidget->clearContents();
  436. ui->tableWidget->setRowCount(0);
  437. // ui->tableWidget->clear();
  438. setProInfo(GlobalInfo::this_()->project().value(batchno));
  439. }
  440. void UncertainWeightPackForm::del_clicked(int row)
  441. {
  442. if(packinfo.isNull()) return;
  443. qDebug()<<row;
  444. packinfo->delBoxInfoAt(row);
  445. restTableWidget();
  446. }
  447. void UncertainWeightPackForm::edit_clicked(int row)
  448. {
  449. if(packinfo.isNull()) return;
  450. auto box = packinfo->boxInfoAt(row);
  451. EditBoxInfoDialog dig(box,this);
  452. dig.exec();
  453. restTableWidget();
  454. }
  455. void UncertainWeightPackForm::Makeup_clicked(int row)
  456. {
  457. if(packinfo.isNull()) return;
  458. auto box = packinfo->boxInfoAt(row);
  459. GlobalInfo::this_()->printerBox(box);
  460. }
  461. void UncertainWeightPackForm::restTableWidget()
  462. {
  463. ui->tableWidget->clearContents();
  464. ui->tableWidget->setRowCount(0);
  465. // ui->tableWidget->setColumnWidth(0,200);
  466. // ui->tableWidget->setColumnWidth(1,75);
  467. // ui->tableWidget->setColumnWidth(2,75);
  468. // ui->tableWidget->setColumnWidth(3,75);
  469. // ui->tableWidget->setColumnWidth(4,75);
  470. // ui->tableWidget->setColumnWidth(5,75);
  471. // ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
  472. if(!packinfo.isNull()){
  473. for(int i = 0; i < packinfo->boxInfoSize(); ++i){
  474. addTableWidget(packinfo->boxInfoAt(i),i);
  475. }
  476. }
  477. upSum();
  478. }
  479. void UncertainWeightPackForm::on_pushContinue_clicked()
  480. {
  481. auto dt = QDate::currentDate();
  482. auto list = Manger->getPackInfoSync(dt);
  483. if(list.isEmpty()){
  484. dt = dt.addDays(-1);
  485. list = Manger->getPackInfoSync(dt);
  486. }
  487. if(list.isEmpty()){
  488. QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
  489. }
  490. qDebug()<<list.size();
  491. for(int i = 0;i<list.size();i++){
  492. if(list.at(i).packInfo->batch_no!=_info->batch_no){
  493. list.removeAt(i);
  494. }
  495. }
  496. std::sort(list.begin(),list.end(),[](const PackSaveInfo & item1, const PackSaveInfo & item2){
  497. return item1.packInfo->time() < item2.packInfo->time();
  498. });
  499. QSharedPointer<PackInfo> pInfo;
  500. for (int i = list.size() - 1;i >= 0 ; --i) {
  501. auto & v = list.at(i);
  502. if(v.packInfo->packType != 0) continue;
  503. if(v.packInfo->boxInfoSize() < ui->mashu->currentText().toInt()){
  504. pInfo = v.packInfo;
  505. break;
  506. }
  507. }
  508. if(pInfo.isNull()){
  509. QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
  510. }
  511. packinfo = pInfo;
  512. setProInfo(packinfo->info());
  513. }
  514. void UncertainWeightPackForm::on_showMaoZhong_stateChanged(int)
  515. {
  516. if(ui->showMaoZhong->isChecked()){
  517. ui->labelWidget->setText(tr("毛重"));
  518. } else {
  519. ui->labelWidget->setText(tr("净重"));
  520. }
  521. }
  522. void UncertainWeightPackForm::on_pushEditBatch_clicked()
  523. {
  524. emit backup(1);
  525. }
  526. void UncertainWeightPackForm::EditBatch()
  527. {
  528. if(packinfo.isNull()) return;
  529. for(int i = 0; i < packinfo->boxInfoSize(); ++i){
  530. auto box = packinfo->boxInfoAt(i);
  531. calcData();
  532. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  533. box->tube_number = ui->tongshu->text().toInt();
  534. box->bucket_weight = int((ui->pizhong->currentText().toDouble()*ui->tongshu->text().toDouble())*1000);
  535. box->gross_weight = int(gross_weight*1000);
  536. box->net_weight = int(netNum*1000);
  537. box->Level = ui->dengji->currentText();
  538. box->twist_type = ui->nianxiang->currentText();
  539. box->bucket_color = ui->guanse->currentText();
  540. box->sort = "1";
  541. // box->remark = ui->beizhu->toPlainText();
  542. }
  543. packinfo->level = ui->dengji->currentText();
  544. packinfo->level_id = ui->dengji->currentData().toInt();
  545. restTableWidget();
  546. }
  547. void UncertainWeightPackForm::on_pushNoSyncList_clicked()
  548. {
  549. emit NoSyncList();
  550. }
  551. void UncertainWeightPackForm::on_pushSync_clicked()
  552. {
  553. if(GlobalInfo::this_()->isNoLine()){
  554. QMessageBox::information(this,tr("注意"),tr("离线模式不予同步"));
  555. return;
  556. }
  557. QDate tm = QDate::currentDate();
  558. GlobalInfo::this_()->doSync(tm);
  559. QMessageBox::information(this,tr("注意"),tr("同步成功"));
  560. }
  561. void UncertainWeightPackForm::on_backButton_clicked()
  562. {
  563. emit back();
  564. }
  565. void UncertainWeightPackForm::on_dingzhong_clicked()
  566. {
  567. emit dingzhong();
  568. ui->buding->setChecked(true);
  569. }
  570. void UncertainWeightPackForm::on_ruku_stateChanged(int arg1)
  571. {
  572. if(arg1 == 2){
  573. isRuku = true;
  574. return;
  575. }
  576. isRuku = false;
  577. }
  578. void UncertainWeightPackForm::on_useNewDataButton_clicked()
  579. {
  580. if(packinfo.isNull()) return;
  581. for(int i = 0; i < packinfo->boxInfoSize(); ++i){
  582. QSharedPointer<BoxInfo> box = packinfo->boxInfoAt(i);
  583. calcData();
  584. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  585. box->tube_number = ui->tongshu->text().toInt();
  586. box->bucket_weight = int(ui->tongzhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
  587. box->gross_weight = int(gross_weight*1000);
  588. box->net_weight = int(netNum*1000);
  589. box->Level = ui->dengji->currentText();
  590. box->twist_type = ui->nianxiang->currentText();
  591. box->bucket_color = ui->guanse->currentText();
  592. box->sort = "1";
  593. }
  594. packinfo->level = ui->dengji->currentText();
  595. packinfo->level_id = ui->dengji->currentData().toInt();
  596. packinfo->customer = ui->taitou->text();
  597. packinfo->telephone = ui->taiPhone->text();
  598. packinfo->autoRuku = ui->ruku->isChecked();
  599. packinfo->warehouse_id = ui->wareBox->currentData().toInt();
  600. restTableWidget();
  601. }