fixedweightpackform.cpp 23 KB

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